diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/CHANGELOG.md b/sdk/resourcemanager/resourcehealth/armresourcehealth/CHANGELOG.md index da80fe2f436b..ceff20a23d3a 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/CHANGELOG.md +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/CHANGELOG.md @@ -1,5 +1,98 @@ # Release History +## 2.0.0 (2023-05-04) +### Breaking Changes + +- Struct `ErrorResponseError` has been removed +- Field `OccurredTime` of struct `AvailabilityStatusProperties` has been removed +- Field `UnavailabilitySummary`, `UnavailableOccurredTime` of struct `AvailabilityStatusPropertiesRecentlyResolved` has been removed +- Field `Error` of struct `ErrorResponse` has been removed + +### Features Added + +- New enum type `CreatedByType` with values `CreatedByTypeApplication`, `CreatedByTypeKey`, `CreatedByTypeManagedIdentity`, `CreatedByTypeUser` +- New enum type `EventLevelValues` with values `EventLevelValuesCritical`, `EventLevelValuesError`, `EventLevelValuesInformational`, `EventLevelValuesWarning` +- New enum type `EventSourceValues` with values `EventSourceValuesResourceHealth`, `EventSourceValuesServiceHealth` +- New enum type `EventStatusValues` with values `EventStatusValuesActive`, `EventStatusValuesResolved` +- New enum type `EventTypeValues` with values `EventTypeValuesEmergingIssues`, `EventTypeValuesHealthAdvisory`, `EventTypeValuesPlannedMaintenance`, `EventTypeValuesRCA`, `EventTypeValuesSecurityAdvisory`, `EventTypeValuesServiceIssue` +- New enum type `IssueNameParameter` with values `IssueNameParameterDefault` +- New enum type `LevelValues` with values `LevelValuesCritical`, `LevelValuesWarning` +- New enum type `LinkTypeValues` with values `LinkTypeValuesButton`, `LinkTypeValuesHyperlink` +- New enum type `Scenario` with values `ScenarioAlerts` +- New enum type `SeverityValues` with values `SeverityValuesError`, `SeverityValuesInformation`, `SeverityValuesWarning` +- New enum type `StageValues` with values `StageValuesActive`, `StageValuesArchived`, `StageValuesResolve` +- New function `NewChildAvailabilityStatusesClient(azcore.TokenCredential, *arm.ClientOptions) (*ChildAvailabilityStatusesClient, error)` +- New function `*ChildAvailabilityStatusesClient.GetByResource(context.Context, string, *ChildAvailabilityStatusesClientGetByResourceOptions) (ChildAvailabilityStatusesClientGetByResourceResponse, error)` +- New function `*ChildAvailabilityStatusesClient.NewListPager(string, *ChildAvailabilityStatusesClientListOptions) *runtime.Pager[ChildAvailabilityStatusesClientListResponse]` +- New function `NewChildResourcesClient(azcore.TokenCredential, *arm.ClientOptions) (*ChildResourcesClient, error)` +- New function `*ChildResourcesClient.NewListPager(string, *ChildResourcesClientListOptions) *runtime.Pager[ChildResourcesClientListResponse]` +- New function `*ClientFactory.NewChildAvailabilityStatusesClient() *ChildAvailabilityStatusesClient` +- New function `*ClientFactory.NewChildResourcesClient() *ChildResourcesClient` +- New function `*ClientFactory.NewEmergingIssuesClient() *EmergingIssuesClient` +- New function `*ClientFactory.NewEventClient() *EventClient` +- New function `*ClientFactory.NewEventsClient() *EventsClient` +- New function `*ClientFactory.NewImpactedResourcesClient() *ImpactedResourcesClient` +- New function `*ClientFactory.NewMetadataClient() *MetadataClient` +- New function `*ClientFactory.NewSecurityAdvisoryImpactedResourcesClient() *SecurityAdvisoryImpactedResourcesClient` +- New function `NewEmergingIssuesClient(azcore.TokenCredential, *arm.ClientOptions) (*EmergingIssuesClient, error)` +- New function `*EmergingIssuesClient.Get(context.Context, IssueNameParameter, *EmergingIssuesClientGetOptions) (EmergingIssuesClientGetResponse, error)` +- New function `*EmergingIssuesClient.NewListPager(*EmergingIssuesClientListOptions) *runtime.Pager[EmergingIssuesClientListResponse]` +- New function `NewEventClient(string, azcore.TokenCredential, *arm.ClientOptions) (*EventClient, error)` +- New function `*EventClient.FetchDetailsBySubscriptionIDAndTrackingID(context.Context, string, *EventClientFetchDetailsBySubscriptionIDAndTrackingIDOptions) (EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse, error)` +- New function `*EventClient.FetchDetailsByTenantIDAndTrackingID(context.Context, string, *EventClientFetchDetailsByTenantIDAndTrackingIDOptions) (EventClientFetchDetailsByTenantIDAndTrackingIDResponse, error)` +- New function `*EventClient.GetBySubscriptionIDAndTrackingID(context.Context, string, *EventClientGetBySubscriptionIDAndTrackingIDOptions) (EventClientGetBySubscriptionIDAndTrackingIDResponse, error)` +- New function `*EventClient.GetByTenantIDAndTrackingID(context.Context, string, *EventClientGetByTenantIDAndTrackingIDOptions) (EventClientGetByTenantIDAndTrackingIDResponse, error)` +- New function `NewEventsClient(string, azcore.TokenCredential, *arm.ClientOptions) (*EventsClient, error)` +- New function `*EventsClient.NewListBySingleResourcePager(string, *EventsClientListBySingleResourceOptions) *runtime.Pager[EventsClientListBySingleResourceResponse]` +- New function `*EventsClient.NewListBySubscriptionIDPager(*EventsClientListBySubscriptionIDOptions) *runtime.Pager[EventsClientListBySubscriptionIDResponse]` +- New function `*EventsClient.NewListByTenantIDPager(*EventsClientListByTenantIDOptions) *runtime.Pager[EventsClientListByTenantIDResponse]` +- New function `NewImpactedResourcesClient(string, azcore.TokenCredential, *arm.ClientOptions) (*ImpactedResourcesClient, error)` +- New function `*ImpactedResourcesClient.Get(context.Context, string, string, *ImpactedResourcesClientGetOptions) (ImpactedResourcesClientGetResponse, error)` +- New function `*ImpactedResourcesClient.GetByTenantID(context.Context, string, string, *ImpactedResourcesClientGetByTenantIDOptions) (ImpactedResourcesClientGetByTenantIDResponse, error)` +- New function `*ImpactedResourcesClient.NewListBySubscriptionIDAndEventIDPager(string, *ImpactedResourcesClientListBySubscriptionIDAndEventIDOptions) *runtime.Pager[ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse]` +- New function `*ImpactedResourcesClient.NewListByTenantIDAndEventIDPager(string, *ImpactedResourcesClientListByTenantIDAndEventIDOptions) *runtime.Pager[ImpactedResourcesClientListByTenantIDAndEventIDResponse]` +- New function `NewMetadataClient(azcore.TokenCredential, *arm.ClientOptions) (*MetadataClient, error)` +- New function `*MetadataClient.GetEntity(context.Context, string, *MetadataClientGetEntityOptions) (MetadataClientGetEntityResponse, error)` +- New function `*MetadataClient.NewListPager(*MetadataClientListOptions) *runtime.Pager[MetadataClientListResponse]` +- New function `NewSecurityAdvisoryImpactedResourcesClient(string, azcore.TokenCredential, *arm.ClientOptions) (*SecurityAdvisoryImpactedResourcesClient, error)` +- New function `*SecurityAdvisoryImpactedResourcesClient.NewListBySubscriptionIDAndEventIDPager(string, *SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDOptions) *runtime.Pager[SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse]` +- New function `*SecurityAdvisoryImpactedResourcesClient.NewListByTenantIDAndEventIDPager(string, *SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDOptions) *runtime.Pager[SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse]` +- New struct `EmergingIssue` +- New struct `EmergingIssueImpact` +- New struct `EmergingIssueListResult` +- New struct `EmergingIssuesGetResult` +- New struct `Event` +- New struct `EventImpactedResource` +- New struct `EventImpactedResourceListResult` +- New struct `EventImpactedResourceProperties` +- New struct `EventProperties` +- New struct `EventPropertiesAdditionalInformation` +- New struct `EventPropertiesArticle` +- New struct `EventPropertiesRecommendedActions` +- New struct `EventPropertiesRecommendedActionsItem` +- New struct `Events` +- New struct `Faq` +- New struct `Impact` +- New struct `ImpactedServiceRegion` +- New struct `KeyValueItem` +- New struct `Link` +- New struct `LinkDisplayText` +- New struct `MetadataEntity` +- New struct `MetadataEntityListResult` +- New struct `MetadataEntityProperties` +- New struct `MetadataSupportedValueDetail` +- New struct `ProxyResource` +- New struct `StatusActiveEvent` +- New struct `SystemData` +- New struct `Update` +- New field `ArticleID`, `Category`, `Context`, `OccuredTime` in struct `AvailabilityStatusProperties` +- New field `UnavailableOccuredTime`, `UnavailableSummary` in struct `AvailabilityStatusPropertiesRecentlyResolved` +- New field `Code`, `Details`, `Message` in struct `ErrorResponse` +- New field `SystemData` in struct `ImpactedResourceStatus` +- New field `ActionURLComment` in struct `RecommendedAction` +- New field `SystemData` in struct `Resource` + + ## 1.1.0 (2023-03-31) ### Features Added diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/autorest.md b/sdk/resourcemanager/resourcehealth/armresourcehealth/autorest.md index 9b1e6a8e7b75..d9103f7cb933 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/autorest.md +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/autorest.md @@ -5,8 +5,8 @@ ``` yaml azure-arm: true require: -- https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcehealth/resource-manager/readme.md -- https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcehealth/resource-manager/readme.go.md +- /mnt/vss/_work/1/s/azure-rest-api-specs/specification/resourcehealth/resource-manager/readme.md +- /mnt/vss/_work/1/s/azure-rest-api-specs/specification/resourcehealth/resource-manager/readme.go.md license-header: MICROSOFT_MIT_NO_VERSION -module-version: 1.1.0 +module-version: 2.0.0 ``` \ No newline at end of file diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/availabilitystatuses_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/availabilitystatuses_client.go index 4b0c0a9274a6..0ac84c7cdc1b 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/availabilitystatuses_client.go +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/availabilitystatuses_client.go @@ -29,8 +29,7 @@ type AvailabilityStatusesClient struct { } // NewAvailabilityStatusesClient creates a new instance of AvailabilityStatusesClient with the specified values. -// - subscriptionID - Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms -// part of the URI for every service call. +// - subscriptionID - The ID of the target subscription. // - credential - used to authorize requests. Usually a credential from azidentity. // - options - pass nil to accept the default values. func NewAvailabilityStatusesClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*AvailabilityStatusesClient, error) { @@ -48,7 +47,7 @@ func NewAvailabilityStatusesClient(subscriptionID string, credential azcore.Toke // GetByResource - Gets current availability status for a single resource // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2020-05-01 +// Generated from API version 2022-10-01 // - resourceURI - The fully qualified ID of the resource, including the resource name and resource type. Currently the API // support not nested and one nesting level resource types : // /subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/{resource-provider-name}/{resource-type}/{resource-name} @@ -80,7 +79,7 @@ func (client *AvailabilityStatusesClient) getByResourceCreateRequest(ctx context return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2020-05-01") + reqQP.Set("api-version", "2022-10-01") if options != nil && options.Filter != nil { reqQP.Set("$filter", *options.Filter) } @@ -103,7 +102,7 @@ func (client *AvailabilityStatusesClient) getByResourceHandleResponse(resp *http // NewListPager - Lists all historical availability transitions and impacting events for a single resource. // -// Generated from API version 2020-05-01 +// Generated from API version 2022-10-01 // - resourceURI - The fully qualified ID of the resource, including the resource name and resource type. Currently the API // support not nested and one nesting level resource types : // /subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/{resource-provider-name}/{resource-type}/{resource-name} @@ -148,7 +147,7 @@ func (client *AvailabilityStatusesClient) listCreateRequest(ctx context.Context, return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2020-05-01") + reqQP.Set("api-version", "2022-10-01") if options != nil && options.Filter != nil { reqQP.Set("$filter", *options.Filter) } @@ -171,8 +170,8 @@ func (client *AvailabilityStatusesClient) listHandleResponse(resp *http.Response // NewListByResourceGroupPager - Lists the current availability status for all the resources in the resource group. // -// Generated from API version 2020-05-01 -// - resourceGroupName - The name of the resource group. +// Generated from API version 2022-10-01 +// - resourceGroupName - The name of the resource group. The name is case insensitive. // - options - AvailabilityStatusesClientListByResourceGroupOptions contains the optional parameters for the AvailabilityStatusesClient.NewListByResourceGroupPager // method. func (client *AvailabilityStatusesClient) NewListByResourceGroupPager(resourceGroupName string, options *AvailabilityStatusesClientListByResourceGroupOptions) *runtime.Pager[AvailabilityStatusesClientListByResourceGroupResponse] { @@ -219,7 +218,7 @@ func (client *AvailabilityStatusesClient) listByResourceGroupCreateRequest(ctx c return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2020-05-01") + reqQP.Set("api-version", "2022-10-01") if options != nil && options.Filter != nil { reqQP.Set("$filter", *options.Filter) } @@ -242,7 +241,7 @@ func (client *AvailabilityStatusesClient) listByResourceGroupHandleResponse(resp // NewListBySubscriptionIDPager - Lists the current availability status for all the resources in the subscription. // -// Generated from API version 2020-05-01 +// Generated from API version 2022-10-01 // - options - AvailabilityStatusesClientListBySubscriptionIDOptions contains the optional parameters for the AvailabilityStatusesClient.NewListBySubscriptionIDPager // method. func (client *AvailabilityStatusesClient) NewListBySubscriptionIDPager(options *AvailabilityStatusesClientListBySubscriptionIDOptions) *runtime.Pager[AvailabilityStatusesClientListBySubscriptionIDResponse] { @@ -285,7 +284,7 @@ func (client *AvailabilityStatusesClient) listBySubscriptionIDCreateRequest(ctx return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2020-05-01") + reqQP.Set("api-version", "2022-10-01") if options != nil && options.Filter != nil { reqQP.Set("$filter", *options.Filter) } diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/availabilitystatuses_client_example_test.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/availabilitystatuses_client_example_test.go deleted file mode 100644 index 8f7a5e8cd847..000000000000 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/availabilitystatuses_client_example_test.go +++ /dev/null @@ -1,318 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. -// DO NOT EDIT. - -package armresourcehealth_test - -import ( - "context" - "log" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcehealth/armresourcehealth" -) - -// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2020-05-01/examples/AvailabilityStatuses_ListBySubscriptionId.json -func ExampleAvailabilityStatusesClient_NewListBySubscriptionIDPager() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - log.Fatalf("failed to obtain a credential: %v", err) - } - ctx := context.Background() - clientFactory, err := armresourcehealth.NewClientFactory("", cred, nil) - if err != nil { - log.Fatalf("failed to create client: %v", err) - } - pager := clientFactory.NewAvailabilityStatusesClient().NewListBySubscriptionIDPager(&armresourcehealth.AvailabilityStatusesClientListBySubscriptionIDOptions{Filter: nil, - Expand: to.Ptr("recommendedactions"), - }) - for pager.More() { - page, err := pager.NextPage(ctx) - if err != nil { - log.Fatalf("failed to advance page: %v", err) - } - for _, v := range page.Value { - // You could use page here. We use blank identifier for just demo purposes. - _ = v - } - // If the HTTP response code is 200 as defined in example definition, your page structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. - // page.AvailabilityStatusListResult = armresourcehealth.AvailabilityStatusListResult{ - // Value: []*armresourcehealth.AvailabilityStatus{ - // { - // Name: to.Ptr("current"), - // Type: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses"), - // ID: to.Ptr("/providers/Microsoft.ResourceHealth/AvailabilityStatueses/current"), - // Location: to.Ptr("eastus"), - // Properties: &armresourcehealth.AvailabilityStatusProperties{ - // AvailabilityState: to.Ptr(armresourcehealth.AvailabilityStateValuesAvailable), - // DetailedStatus: to.Ptr("We have not seen any issues with your virtual machine"), - // OccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:12:00Z"); return t}()), - // ReasonChronicity: to.Ptr(armresourcehealth.ReasonChronicityTypesPersistent), - // ReasonType: to.Ptr("Unplanned"), - // RecentlyResolved: &armresourcehealth.AvailabilityStatusPropertiesRecentlyResolved{ - // ResolvedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2017-02-28T00:49:00Z"); return t}()), - // UnavailabilitySummary: to.Ptr("We are sorry your SQL database is unavailable"), - // UnavailableOccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2017-02-28T00:48:00Z"); return t}()), - // }, - // RecommendedActions: []*armresourcehealth.RecommendedAction{ - // { - // Action: to.Ptr("To start this virtualmachine, open the resource blade and click Start"), - // ActionURL: to.Ptr("<#ResourceBlade>"), - // ActionURLText: to.Ptr("resourceblade"), - // }}, - // ReportedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-05-04T14:11:29.7598931Z"); return t}()), - // Summary: to.Ptr("Vm is available"), - // Title: to.Ptr("Available"), - // }, - // }, - // { - // Name: to.Ptr("current"), - // Type: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses"), - // ID: to.Ptr("/providers/Microsoft.ResourceHealth/AvailabilityStatueses/current"), - // Location: to.Ptr("eastus"), - // Properties: &armresourcehealth.AvailabilityStatusProperties{ - // AvailabilityState: to.Ptr(armresourcehealth.AvailabilityStateValuesUnavailable), - // DetailedStatus: to.Ptr("Diskproblemsarepreventingusfromautomaticallyrecoveringyourvirtualmachine"), - // OccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:12:00Z"); return t}()), - // ReasonChronicity: to.Ptr(armresourcehealth.ReasonChronicityTypesPersistent), - // ReasonType: to.Ptr("Unplanned"), - // RecommendedActions: []*armresourcehealth.RecommendedAction{ - // { - // Action: to.Ptr("To start this virtualmachine, open the resource blade"), - // ActionURL: to.Ptr("<#ResourceBlade>"), - // ActionURLText: to.Ptr("resourceblade"), - // }, - // { - // Action: to.Ptr("If you are experiencing problems you believe are caused by Azure, contact support"), - // ActionURL: to.Ptr("<#SupportCase>"), - // ActionURLText: to.Ptr("contactsupport"), - // }}, - // ReportedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-05-04T14:11:29.7598931Z"); return t}()), - // ResolutionETA: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:37:00Z"); return t}()), - // RootCauseAttributionTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:13:00Z"); return t}()), - // Summary: to.Ptr("We are sorry, we couldn't automatically recovery our virtualmachine"), - // Title: to.Ptr("Unavailable"), - // }, - // }}, - // } - } -} - -// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2020-05-01/examples/AvailabilityStatuses_ListByResourceGroup.json -func ExampleAvailabilityStatusesClient_NewListByResourceGroupPager() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - log.Fatalf("failed to obtain a credential: %v", err) - } - ctx := context.Background() - clientFactory, err := armresourcehealth.NewClientFactory("", cred, nil) - if err != nil { - log.Fatalf("failed to create client: %v", err) - } - pager := clientFactory.NewAvailabilityStatusesClient().NewListByResourceGroupPager("resourceGroupName", &armresourcehealth.AvailabilityStatusesClientListByResourceGroupOptions{Filter: nil, - Expand: to.Ptr("recommendedactions"), - }) - for pager.More() { - page, err := pager.NextPage(ctx) - if err != nil { - log.Fatalf("failed to advance page: %v", err) - } - for _, v := range page.Value { - // You could use page here. We use blank identifier for just demo purposes. - _ = v - } - // If the HTTP response code is 200 as defined in example definition, your page structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. - // page.AvailabilityStatusListResult = armresourcehealth.AvailabilityStatusListResult{ - // Value: []*armresourcehealth.AvailabilityStatus{ - // { - // Name: to.Ptr("current"), - // Type: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses"), - // ID: to.Ptr("/providers/Microsoft.ResourceHealth/AvailabilityStatueses/current"), - // Location: to.Ptr("eastus"), - // Properties: &armresourcehealth.AvailabilityStatusProperties{ - // AvailabilityState: to.Ptr(armresourcehealth.AvailabilityStateValuesAvailable), - // DetailedStatus: to.Ptr("We have not seen any issues with your virtual machine"), - // OccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:12:00Z"); return t}()), - // ReasonChronicity: to.Ptr(armresourcehealth.ReasonChronicityTypesPersistent), - // ReasonType: to.Ptr("Unplanned"), - // RecentlyResolved: &armresourcehealth.AvailabilityStatusPropertiesRecentlyResolved{ - // ResolvedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2017-02-28T00:49:00Z"); return t}()), - // UnavailabilitySummary: to.Ptr("We are sorry your SQL database is unavailable"), - // UnavailableOccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2017-02-28T00:48:00Z"); return t}()), - // }, - // RecommendedActions: []*armresourcehealth.RecommendedAction{ - // { - // Action: to.Ptr("To start this virtualmachine, open the resource blade and click Start"), - // ActionURL: to.Ptr("<#ResourceBlade>"), - // ActionURLText: to.Ptr("resourceblade"), - // }}, - // ReportedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-05-04T14:11:29.7598931Z"); return t}()), - // Summary: to.Ptr("Vm is available"), - // Title: to.Ptr("Available"), - // }, - // }, - // { - // Name: to.Ptr("current"), - // Type: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses"), - // ID: to.Ptr("/providers/Microsoft.ResourceHealth/AvailabilityStatueses/current"), - // Location: to.Ptr("eastus"), - // Properties: &armresourcehealth.AvailabilityStatusProperties{ - // AvailabilityState: to.Ptr(armresourcehealth.AvailabilityStateValuesUnavailable), - // DetailedStatus: to.Ptr("Diskproblemsarepreventingusfromautomaticallyrecoveringyourvirtualmachine"), - // OccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:12:00Z"); return t}()), - // ReasonChronicity: to.Ptr(armresourcehealth.ReasonChronicityTypesPersistent), - // ReasonType: to.Ptr("Unplanned"), - // RecommendedActions: []*armresourcehealth.RecommendedAction{ - // { - // Action: to.Ptr("To start this virtualmachine, open the resource blade"), - // ActionURL: to.Ptr("<#ResourceBlade>"), - // ActionURLText: to.Ptr("resourceblade"), - // }, - // { - // Action: to.Ptr("If you are experiencing problems you believe are caused by Azure, contact support"), - // ActionURL: to.Ptr("<#SupportCase>"), - // ActionURLText: to.Ptr("contactsupport"), - // }}, - // ReportedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-05-04T14:11:29.7598931Z"); return t}()), - // ResolutionETA: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:37:00Z"); return t}()), - // RootCauseAttributionTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:13:00Z"); return t}()), - // Summary: to.Ptr("We are sorry, we couldn't automatically recovery our virtualmachine"), - // Title: to.Ptr("Unavailable"), - // }, - // }}, - // } - } -} - -// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2020-05-01/examples/AvailabilityStatus_GetByResource.json -func ExampleAvailabilityStatusesClient_GetByResource() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - log.Fatalf("failed to obtain a credential: %v", err) - } - ctx := context.Background() - clientFactory, err := armresourcehealth.NewClientFactory("", cred, nil) - if err != nil { - log.Fatalf("failed to create client: %v", err) - } - res, err := clientFactory.NewAvailabilityStatusesClient().GetByResource(ctx, "resourceUri", &armresourcehealth.AvailabilityStatusesClientGetByResourceOptions{Filter: nil, - Expand: to.Ptr("recommendedactions"), - }) - if err != nil { - log.Fatalf("failed to finish the request: %v", err) - } - // You could use response here. We use blank identifier for just demo purposes. - _ = res - // If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. - // res.AvailabilityStatus = armresourcehealth.AvailabilityStatus{ - // Name: to.Ptr("current"), - // Type: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses"), - // ID: to.Ptr("/subscriptions/4abcdefgh-ijkl-mnop-qrstuvwxyz/resourceGroups/rhctestenv/providers/Microsoft.ClassicCompute/virtualMachines /rhctestenvV1PI/providers/Microsoft.ResourceHealth/availabilityStatuses/current"), - // Location: to.Ptr("eastus"), - // Properties: &armresourcehealth.AvailabilityStatusProperties{ - // AvailabilityState: to.Ptr(armresourcehealth.AvailabilityStateValuesUnavailable), - // DetailedStatus: to.Ptr("Disk problems are preventing us from automatically recovering your virtual machine"), - // OccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:12:00Z"); return t}()), - // ReasonChronicity: to.Ptr(armresourcehealth.ReasonChronicityTypesPersistent), - // ReasonType: to.Ptr("Unplanned"), - // RecommendedActions: []*armresourcehealth.RecommendedAction{ - // { - // Action: to.Ptr("To start this virtual machine, open the resource blade and click Start"), - // ActionURL: to.Ptr("<#ResourceBlade>"), - // ActionURLText: to.Ptr("resource blade"), - // }, - // { - // Action: to.Ptr("If you are experiencing problems you believe are caused by Azure, contact support"), - // ActionURL: to.Ptr("<#SupportCase>"), - // ActionURLText: to.Ptr("contact support"), - // }}, - // ReportedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-05-04T14:11:29.7598931Z"); return t}()), - // ResolutionETA: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:37:00Z"); return t}()), - // RootCauseAttributionTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:13:00Z"); return t}()), - // Summary: to.Ptr("We're sorry, we couldn't automatically recover your virtual machine"), - // Title: to.Ptr("Unavailable"), - // }, - // } -} - -// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2020-05-01/examples/AvailabilityStatuses_List.json -func ExampleAvailabilityStatusesClient_NewListPager() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - log.Fatalf("failed to obtain a credential: %v", err) - } - ctx := context.Background() - clientFactory, err := armresourcehealth.NewClientFactory("", cred, nil) - if err != nil { - log.Fatalf("failed to create client: %v", err) - } - pager := clientFactory.NewAvailabilityStatusesClient().NewListPager("resourceUri", &armresourcehealth.AvailabilityStatusesClientListOptions{Filter: nil, - Expand: nil, - }) - for pager.More() { - page, err := pager.NextPage(ctx) - if err != nil { - log.Fatalf("failed to advance page: %v", err) - } - for _, v := range page.Value { - // You could use page here. We use blank identifier for just demo purposes. - _ = v - } - // If the HTTP response code is 200 as defined in example definition, your page structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. - // page.AvailabilityStatusListResult = armresourcehealth.AvailabilityStatusListResult{ - // Value: []*armresourcehealth.AvailabilityStatus{ - // { - // Name: to.Ptr("current"), - // Type: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses"), - // ID: to.Ptr("/subscriptions/4abcdefgh-ijkl-mnop-qrstuvwxyz/resourceGroups/rhctestenv/providers/Microsoft.ClassicCompute/virtualMachines/rhctes tenvV1PI/providers/Microsoft.ResourceHealth/availabilityStatuses/current"), - // Location: to.Ptr("eastus"), - // Properties: &armresourcehealth.AvailabilityStatusProperties{ - // AvailabilityState: to.Ptr(armresourcehealth.AvailabilityStateValuesUnavailable), - // DetailedStatus: to.Ptr("Disk problems are preventing us from automatically recovering your virtual machine"), - // OccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:12:00Z"); return t}()), - // ReasonChronicity: to.Ptr(armresourcehealth.ReasonChronicityTypesPersistent), - // ReasonType: to.Ptr("Unplanned"), - // ReportedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-05-04T14:11:29.7598931Z"); return t}()), - // ResolutionETA: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:37:00Z"); return t}()), - // RootCauseAttributionTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-29T09:13:00Z"); return t}()), - // ServiceImpactingEvents: []*armresourcehealth.ServiceImpactingEvent{ - // { - // CorrelationID: to.Ptr("b56d0180-2d6c-4f7b-b750-c1eca681874c"), - // EventStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-05-02T19:23:13.7115125Z"); return t}()), - // EventStatusLastModifiedTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-05-02T19:27:04.9543491Z"); return t}()), - // IncidentProperties: &armresourcehealth.ServiceImpactingEventIncidentProperties{ - // IncidentType: to.Ptr("outage"), - // Region: to.Ptr("East US"), - // Service: to.Ptr("Virtual Machines"), - // Title: to.Ptr("Virtual Machines - West Europe [West Europe]"), - // }, - // Status: &armresourcehealth.ServiceImpactingEventStatus{ - // Value: to.Ptr("Resolved"), - // }, - // }}, - // Summary: to.Ptr("We're sorry, we couldn't automatically recover your virtual machine"), - // Title: to.Ptr("Unavailable"), - // }, - // }, - // { - // Name: to.Ptr("2016-03-28+16%3a23%3a00Z"), - // Type: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses"), - // ID: to.Ptr("/subscriptions/4abcdefgh-ijkl-mnop-qrstuvwxyz/resourceGroups/rhctestenv/providers/Microsoft.ClassicCompute/virtualMachines/rhctes tenvV1PI/providers/Microsoft.ResourceHealth/availabilityStatuses/2016-03-28+16%3a23%3a00Z"), - // Location: to.Ptr("eastus"), - // Properties: &armresourcehealth.AvailabilityStatusProperties{ - // AvailabilityState: to.Ptr(armresourcehealth.AvailabilityStateValuesAvailable), - // DetailedStatus: to.Ptr("There aren’t any known Azure platform problems affecting this virtual machine"), - // OccurredTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2016-03-28T16:23:00Z"); return t}()), - // ReasonChronicity: to.Ptr(armresourcehealth.ReasonChronicityTypesPersistent), - // Summary: to.Ptr("This virtual machine is running normally"), - // }, - // }}, - // } - } -} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/childavailabilitystatuses_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/childavailabilitystatuses_client.go new file mode 100644 index 000000000000..997b70bf6321 --- /dev/null +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/childavailabilitystatuses_client.go @@ -0,0 +1,161 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcehealth + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "strings" +) + +// ChildAvailabilityStatusesClient contains the methods for the ChildAvailabilityStatuses group. +// Don't use this type directly, use NewChildAvailabilityStatusesClient() instead. +type ChildAvailabilityStatusesClient struct { + internal *arm.Client +} + +// NewChildAvailabilityStatusesClient creates a new instance of ChildAvailabilityStatusesClient with the specified values. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewChildAvailabilityStatusesClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*ChildAvailabilityStatusesClient, error) { + cl, err := arm.NewClient(moduleName+".ChildAvailabilityStatusesClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &ChildAvailabilityStatusesClient{ + internal: cl, + } + return client, nil +} + +// GetByResource - Gets current availability status for a single resource +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - resourceURI - The fully qualified ID of the resource, including the resource name and resource type. Currently the API +// only support one nesting level resource types : +// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resource-provider-name}/{parentResourceType}/{parentResourceName}/{resourceType}/{resourceName} +// - options - ChildAvailabilityStatusesClientGetByResourceOptions contains the optional parameters for the ChildAvailabilityStatusesClient.GetByResource +// method. +func (client *ChildAvailabilityStatusesClient) GetByResource(ctx context.Context, resourceURI string, options *ChildAvailabilityStatusesClientGetByResourceOptions) (ChildAvailabilityStatusesClientGetByResourceResponse, error) { + req, err := client.getByResourceCreateRequest(ctx, resourceURI, options) + if err != nil { + return ChildAvailabilityStatusesClientGetByResourceResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ChildAvailabilityStatusesClientGetByResourceResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ChildAvailabilityStatusesClientGetByResourceResponse{}, runtime.NewResponseError(resp) + } + return client.getByResourceHandleResponse(resp) +} + +// getByResourceCreateRequest creates the GetByResource request. +func (client *ChildAvailabilityStatusesClient) getByResourceCreateRequest(ctx context.Context, resourceURI string, options *ChildAvailabilityStatusesClientGetByResourceOptions) (*policy.Request, error) { + urlPath := "/{resourceUri}/providers/Microsoft.ResourceHealth/childAvailabilityStatuses/current" + urlPath = strings.ReplaceAll(urlPath, "{resourceUri}", resourceURI) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + if options != nil && options.Expand != nil { + reqQP.Set("$expand", *options.Expand) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// getByResourceHandleResponse handles the GetByResource response. +func (client *ChildAvailabilityStatusesClient) getByResourceHandleResponse(resp *http.Response) (ChildAvailabilityStatusesClientGetByResourceResponse, error) { + result := ChildAvailabilityStatusesClientGetByResourceResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.AvailabilityStatus); err != nil { + return ChildAvailabilityStatusesClientGetByResourceResponse{}, err + } + return result, nil +} + +// NewListPager - Lists the historical availability statuses for a single child resource. Use the nextLink property in the +// response to get the next page of availability status +// +// Generated from API version 2022-10-01 +// - resourceURI - The fully qualified ID of the resource, including the resource name and resource type. Currently the API +// only support one nesting level resource types : +// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resource-provider-name}/{parentResourceType}/{parentResourceName}/{resourceType}/{resourceName} +// - options - ChildAvailabilityStatusesClientListOptions contains the optional parameters for the ChildAvailabilityStatusesClient.NewListPager +// method. +func (client *ChildAvailabilityStatusesClient) NewListPager(resourceURI string, options *ChildAvailabilityStatusesClientListOptions) *runtime.Pager[ChildAvailabilityStatusesClientListResponse] { + return runtime.NewPager(runtime.PagingHandler[ChildAvailabilityStatusesClientListResponse]{ + More: func(page ChildAvailabilityStatusesClientListResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *ChildAvailabilityStatusesClientListResponse) (ChildAvailabilityStatusesClientListResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listCreateRequest(ctx, resourceURI, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return ChildAvailabilityStatusesClientListResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ChildAvailabilityStatusesClientListResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ChildAvailabilityStatusesClientListResponse{}, runtime.NewResponseError(resp) + } + return client.listHandleResponse(resp) + }, + }) +} + +// listCreateRequest creates the List request. +func (client *ChildAvailabilityStatusesClient) listCreateRequest(ctx context.Context, resourceURI string, options *ChildAvailabilityStatusesClientListOptions) (*policy.Request, error) { + urlPath := "/{resourceUri}/providers/Microsoft.ResourceHealth/childAvailabilityStatuses" + urlPath = strings.ReplaceAll(urlPath, "{resourceUri}", resourceURI) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + if options != nil && options.Expand != nil { + reqQP.Set("$expand", *options.Expand) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listHandleResponse handles the List response. +func (client *ChildAvailabilityStatusesClient) listHandleResponse(resp *http.Response) (ChildAvailabilityStatusesClientListResponse, error) { + result := ChildAvailabilityStatusesClientListResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.AvailabilityStatusListResult); err != nil { + return ChildAvailabilityStatusesClientListResponse{}, err + } + return result, nil +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/childresources_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/childresources_client.go new file mode 100644 index 000000000000..f79316632e85 --- /dev/null +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/childresources_client.go @@ -0,0 +1,106 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcehealth + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "strings" +) + +// ChildResourcesClient contains the methods for the ChildResources group. +// Don't use this type directly, use NewChildResourcesClient() instead. +type ChildResourcesClient struct { + internal *arm.Client +} + +// NewChildResourcesClient creates a new instance of ChildResourcesClient with the specified values. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewChildResourcesClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*ChildResourcesClient, error) { + cl, err := arm.NewClient(moduleName+".ChildResourcesClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &ChildResourcesClient{ + internal: cl, + } + return client, nil +} + +// NewListPager - Lists the all the children and its current health status for a parent resource. Use the nextLink property +// in the response to get the next page of children current health +// +// Generated from API version 2022-10-01 +// - resourceURI - The fully qualified ID of the resource, including the resource name and resource type. Currently the API +// only support not nested parent resource type: +// /subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/{resource-provider-name}/{resource-type}/{resource-name} +// - options - ChildResourcesClientListOptions contains the optional parameters for the ChildResourcesClient.NewListPager method. +func (client *ChildResourcesClient) NewListPager(resourceURI string, options *ChildResourcesClientListOptions) *runtime.Pager[ChildResourcesClientListResponse] { + return runtime.NewPager(runtime.PagingHandler[ChildResourcesClientListResponse]{ + More: func(page ChildResourcesClientListResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *ChildResourcesClientListResponse) (ChildResourcesClientListResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listCreateRequest(ctx, resourceURI, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return ChildResourcesClientListResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ChildResourcesClientListResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ChildResourcesClientListResponse{}, runtime.NewResponseError(resp) + } + return client.listHandleResponse(resp) + }, + }) +} + +// listCreateRequest creates the List request. +func (client *ChildResourcesClient) listCreateRequest(ctx context.Context, resourceURI string, options *ChildResourcesClientListOptions) (*policy.Request, error) { + urlPath := "/{resourceUri}/providers/Microsoft.ResourceHealth/childResources" + urlPath = strings.ReplaceAll(urlPath, "{resourceUri}", resourceURI) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + if options != nil && options.Expand != nil { + reqQP.Set("$expand", *options.Expand) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listHandleResponse handles the List response. +func (client *ChildResourcesClient) listHandleResponse(resp *http.Response) (ChildResourcesClientListResponse, error) { + result := ChildResourcesClientListResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.AvailabilityStatusListResult); err != nil { + return ChildResourcesClientListResponse{}, err + } + return result, nil +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/client_factory.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/client_factory.go index fcd069ba382c..b68aaf5e8540 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/client_factory.go +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/client_factory.go @@ -24,8 +24,7 @@ type ClientFactory struct { // NewClientFactory creates a new instance of ClientFactory with the specified values. // The parameter values will be propagated to any client created from this factory. -// - subscriptionID - Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms -// part of the URI for every service call. +// - subscriptionID - The ID of the target subscription. // - credential - used to authorize requests. Usually a credential from azidentity. // - options - pass nil to accept the default values. func NewClientFactory(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*ClientFactory, error) { @@ -48,3 +47,43 @@ func (c *ClientFactory) NewOperationsClient() *OperationsClient { subClient, _ := NewOperationsClient(c.credential, c.options) return subClient } + +func (c *ClientFactory) NewMetadataClient() *MetadataClient { + subClient, _ := NewMetadataClient(c.credential, c.options) + return subClient +} + +func (c *ClientFactory) NewImpactedResourcesClient() *ImpactedResourcesClient { + subClient, _ := NewImpactedResourcesClient(c.subscriptionID, c.credential, c.options) + return subClient +} + +func (c *ClientFactory) NewSecurityAdvisoryImpactedResourcesClient() *SecurityAdvisoryImpactedResourcesClient { + subClient, _ := NewSecurityAdvisoryImpactedResourcesClient(c.subscriptionID, c.credential, c.options) + return subClient +} + +func (c *ClientFactory) NewEventsClient() *EventsClient { + subClient, _ := NewEventsClient(c.subscriptionID, c.credential, c.options) + return subClient +} + +func (c *ClientFactory) NewEventClient() *EventClient { + subClient, _ := NewEventClient(c.subscriptionID, c.credential, c.options) + return subClient +} + +func (c *ClientFactory) NewChildAvailabilityStatusesClient() *ChildAvailabilityStatusesClient { + subClient, _ := NewChildAvailabilityStatusesClient(c.credential, c.options) + return subClient +} + +func (c *ClientFactory) NewChildResourcesClient() *ChildResourcesClient { + subClient, _ := NewChildResourcesClient(c.credential, c.options) + return subClient +} + +func (c *ClientFactory) NewEmergingIssuesClient() *EmergingIssuesClient { + subClient, _ := NewEmergingIssuesClient(c.credential, c.options) + return subClient +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/constants.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/constants.go index 5d57d04fae40..c9e420ae6f3c 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/constants.go +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/constants.go @@ -11,7 +11,7 @@ package armresourcehealth const ( moduleName = "armresourcehealth" - moduleVersion = "v1.1.0" + moduleVersion = "v2.0.0" ) // AvailabilityStateValues - Impacted resource status of the resource. @@ -34,6 +34,147 @@ func PossibleAvailabilityStateValuesValues() []AvailabilityStateValues { } } +// CreatedByType - The type of identity that created the resource. +type CreatedByType string + +const ( + CreatedByTypeApplication CreatedByType = "Application" + CreatedByTypeKey CreatedByType = "Key" + CreatedByTypeManagedIdentity CreatedByType = "ManagedIdentity" + CreatedByTypeUser CreatedByType = "User" +) + +// PossibleCreatedByTypeValues returns the possible values for the CreatedByType const type. +func PossibleCreatedByTypeValues() []CreatedByType { + return []CreatedByType{ + CreatedByTypeApplication, + CreatedByTypeKey, + CreatedByTypeManagedIdentity, + CreatedByTypeUser, + } +} + +// EventLevelValues - Level of event. +type EventLevelValues string + +const ( + EventLevelValuesCritical EventLevelValues = "Critical" + EventLevelValuesError EventLevelValues = "Error" + EventLevelValuesInformational EventLevelValues = "Informational" + EventLevelValuesWarning EventLevelValues = "Warning" +) + +// PossibleEventLevelValuesValues returns the possible values for the EventLevelValues const type. +func PossibleEventLevelValuesValues() []EventLevelValues { + return []EventLevelValues{ + EventLevelValuesCritical, + EventLevelValuesError, + EventLevelValuesInformational, + EventLevelValuesWarning, + } +} + +// EventSourceValues - Source of event. +type EventSourceValues string + +const ( + EventSourceValuesResourceHealth EventSourceValues = "ResourceHealth" + EventSourceValuesServiceHealth EventSourceValues = "ServiceHealth" +) + +// PossibleEventSourceValuesValues returns the possible values for the EventSourceValues const type. +func PossibleEventSourceValuesValues() []EventSourceValues { + return []EventSourceValues{ + EventSourceValuesResourceHealth, + EventSourceValuesServiceHealth, + } +} + +// EventStatusValues - Current status of event. +type EventStatusValues string + +const ( + EventStatusValuesActive EventStatusValues = "Active" + EventStatusValuesResolved EventStatusValues = "Resolved" +) + +// PossibleEventStatusValuesValues returns the possible values for the EventStatusValues const type. +func PossibleEventStatusValuesValues() []EventStatusValues { + return []EventStatusValues{ + EventStatusValuesActive, + EventStatusValuesResolved, + } +} + +// EventTypeValues - Type of event. +type EventTypeValues string + +const ( + EventTypeValuesEmergingIssues EventTypeValues = "EmergingIssues" + EventTypeValuesHealthAdvisory EventTypeValues = "HealthAdvisory" + EventTypeValuesPlannedMaintenance EventTypeValues = "PlannedMaintenance" + EventTypeValuesRCA EventTypeValues = "RCA" + EventTypeValuesSecurityAdvisory EventTypeValues = "SecurityAdvisory" + EventTypeValuesServiceIssue EventTypeValues = "ServiceIssue" +) + +// PossibleEventTypeValuesValues returns the possible values for the EventTypeValues const type. +func PossibleEventTypeValuesValues() []EventTypeValues { + return []EventTypeValues{ + EventTypeValuesEmergingIssues, + EventTypeValuesHealthAdvisory, + EventTypeValuesPlannedMaintenance, + EventTypeValuesRCA, + EventTypeValuesSecurityAdvisory, + EventTypeValuesServiceIssue, + } +} + +type IssueNameParameter string + +const ( + IssueNameParameterDefault IssueNameParameter = "default" +) + +// PossibleIssueNameParameterValues returns the possible values for the IssueNameParameter const type. +func PossibleIssueNameParameterValues() []IssueNameParameter { + return []IssueNameParameter{ + IssueNameParameterDefault, + } +} + +// LevelValues - Level of insight. +type LevelValues string + +const ( + LevelValuesCritical LevelValues = "Critical" + LevelValuesWarning LevelValues = "Warning" +) + +// PossibleLevelValuesValues returns the possible values for the LevelValues const type. +func PossibleLevelValuesValues() []LevelValues { + return []LevelValues{ + LevelValuesCritical, + LevelValuesWarning, + } +} + +// LinkTypeValues - Type of link. +type LinkTypeValues string + +const ( + LinkTypeValuesButton LinkTypeValues = "Button" + LinkTypeValuesHyperlink LinkTypeValues = "Hyperlink" +) + +// PossibleLinkTypeValuesValues returns the possible values for the LinkTypeValues const type. +func PossibleLinkTypeValuesValues() []LinkTypeValues { + return []LinkTypeValues{ + LinkTypeValuesButton, + LinkTypeValuesHyperlink, + } +} + // ReasonChronicityTypes - Chronicity of the availability transition. type ReasonChronicityTypes string @@ -68,3 +209,52 @@ func PossibleReasonTypeValuesValues() []ReasonTypeValues { ReasonTypeValuesUserInitiated, } } + +type Scenario string + +const ( + ScenarioAlerts Scenario = "Alerts" +) + +// PossibleScenarioValues returns the possible values for the Scenario const type. +func PossibleScenarioValues() []Scenario { + return []Scenario{ + ScenarioAlerts, + } +} + +// SeverityValues - The severity level of this active event. +type SeverityValues string + +const ( + SeverityValuesError SeverityValues = "Error" + SeverityValuesInformation SeverityValues = "Information" + SeverityValuesWarning SeverityValues = "Warning" +) + +// PossibleSeverityValuesValues returns the possible values for the SeverityValues const type. +func PossibleSeverityValuesValues() []SeverityValues { + return []SeverityValues{ + SeverityValuesError, + SeverityValuesInformation, + SeverityValuesWarning, + } +} + +// StageValues - The stage of this active event. +type StageValues string + +const ( + StageValuesActive StageValues = "Active" + StageValuesArchived StageValues = "Archived" + StageValuesResolve StageValues = "Resolve" +) + +// PossibleStageValuesValues returns the possible values for the StageValues const type. +func PossibleStageValuesValues() []StageValues { + return []StageValues{ + StageValuesActive, + StageValuesArchived, + StageValuesResolve, + } +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/emergingissues_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/emergingissues_client.go new file mode 100644 index 000000000000..0bba66ca3517 --- /dev/null +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/emergingissues_client.go @@ -0,0 +1,145 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcehealth + +import ( + "context" + "errors" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "net/url" + "strings" +) + +// EmergingIssuesClient contains the methods for the EmergingIssues group. +// Don't use this type directly, use NewEmergingIssuesClient() instead. +type EmergingIssuesClient struct { + internal *arm.Client +} + +// NewEmergingIssuesClient creates a new instance of EmergingIssuesClient with the specified values. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewEmergingIssuesClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*EmergingIssuesClient, error) { + cl, err := arm.NewClient(moduleName+".EmergingIssuesClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &EmergingIssuesClient{ + internal: cl, + } + return client, nil +} + +// Get - Gets Azure services' emerging issues. +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - issueName - The name of the emerging issue. +// - options - EmergingIssuesClientGetOptions contains the optional parameters for the EmergingIssuesClient.Get method. +func (client *EmergingIssuesClient) Get(ctx context.Context, issueName IssueNameParameter, options *EmergingIssuesClientGetOptions) (EmergingIssuesClientGetResponse, error) { + req, err := client.getCreateRequest(ctx, issueName, options) + if err != nil { + return EmergingIssuesClientGetResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EmergingIssuesClientGetResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EmergingIssuesClientGetResponse{}, runtime.NewResponseError(resp) + } + return client.getHandleResponse(resp) +} + +// getCreateRequest creates the Get request. +func (client *EmergingIssuesClient) getCreateRequest(ctx context.Context, issueName IssueNameParameter, options *EmergingIssuesClientGetOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/emergingIssues/{issueName}" + if issueName == "" { + return nil, errors.New("parameter issueName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{issueName}", url.PathEscape(string(issueName))) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// getHandleResponse handles the Get response. +func (client *EmergingIssuesClient) getHandleResponse(resp *http.Response) (EmergingIssuesClientGetResponse, error) { + result := EmergingIssuesClientGetResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.EmergingIssuesGetResult); err != nil { + return EmergingIssuesClientGetResponse{}, err + } + return result, nil +} + +// NewListPager - Lists Azure services' emerging issues. +// +// Generated from API version 2022-10-01 +// - options - EmergingIssuesClientListOptions contains the optional parameters for the EmergingIssuesClient.NewListPager method. +func (client *EmergingIssuesClient) NewListPager(options *EmergingIssuesClientListOptions) *runtime.Pager[EmergingIssuesClientListResponse] { + return runtime.NewPager(runtime.PagingHandler[EmergingIssuesClientListResponse]{ + More: func(page EmergingIssuesClientListResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *EmergingIssuesClientListResponse) (EmergingIssuesClientListResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listCreateRequest(ctx, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return EmergingIssuesClientListResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EmergingIssuesClientListResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EmergingIssuesClientListResponse{}, runtime.NewResponseError(resp) + } + return client.listHandleResponse(resp) + }, + }) +} + +// listCreateRequest creates the List request. +func (client *EmergingIssuesClient) listCreateRequest(ctx context.Context, options *EmergingIssuesClientListOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/emergingIssues" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listHandleResponse handles the List response. +func (client *EmergingIssuesClient) listHandleResponse(resp *http.Response) (EmergingIssuesClientListResponse, error) { + result := EmergingIssuesClientListResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.EmergingIssueListResult); err != nil { + return EmergingIssuesClientListResponse{}, err + } + return result, nil +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/event_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/event_client.go new file mode 100644 index 000000000000..e73ae2b5e2de --- /dev/null +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/event_client.go @@ -0,0 +1,263 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcehealth + +import ( + "context" + "errors" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "net/url" + "strings" +) + +// EventClient contains the methods for the Event group. +// Don't use this type directly, use NewEventClient() instead. +type EventClient struct { + internal *arm.Client + subscriptionID string +} + +// NewEventClient creates a new instance of EventClient with the specified values. +// - subscriptionID - The ID of the target subscription. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewEventClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*EventClient, error) { + cl, err := arm.NewClient(moduleName+".EventClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &EventClient{ + subscriptionID: subscriptionID, + internal: cl, + } + return client, nil +} + +// FetchDetailsBySubscriptionIDAndTrackingID - Service health event details in the subscription by event tracking id. This +// can be used to fetch sensitive properties for Security Advisory events +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - options - EventClientFetchDetailsBySubscriptionIDAndTrackingIDOptions contains the optional parameters for the EventClient.FetchDetailsBySubscriptionIDAndTrackingID +// method. +func (client *EventClient) FetchDetailsBySubscriptionIDAndTrackingID(ctx context.Context, eventTrackingID string, options *EventClientFetchDetailsBySubscriptionIDAndTrackingIDOptions) (EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse, error) { + req, err := client.fetchDetailsBySubscriptionIDAndTrackingIDCreateRequest(ctx, eventTrackingID, options) + if err != nil { + return EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse{}, runtime.NewResponseError(resp) + } + return client.fetchDetailsBySubscriptionIDAndTrackingIDHandleResponse(resp) +} + +// fetchDetailsBySubscriptionIDAndTrackingIDCreateRequest creates the FetchDetailsBySubscriptionIDAndTrackingID request. +func (client *EventClient) fetchDetailsBySubscriptionIDAndTrackingIDCreateRequest(ctx context.Context, eventTrackingID string, options *EventClientFetchDetailsBySubscriptionIDAndTrackingIDOptions) (*policy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.ResourceHealth/events/{eventTrackingId}/fetchEventDetails" + if client.subscriptionID == "" { + return nil, errors.New("parameter client.subscriptionID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// fetchDetailsBySubscriptionIDAndTrackingIDHandleResponse handles the FetchDetailsBySubscriptionIDAndTrackingID response. +func (client *EventClient) fetchDetailsBySubscriptionIDAndTrackingIDHandleResponse(resp *http.Response) (EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse, error) { + result := EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Event); err != nil { + return EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse{}, err + } + return result, nil +} + +// FetchDetailsByTenantIDAndTrackingID - Service health event details in the tenant by event tracking id. This can be used +// to fetch sensitive properties for Security Advisory events +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - options - EventClientFetchDetailsByTenantIDAndTrackingIDOptions contains the optional parameters for the EventClient.FetchDetailsByTenantIDAndTrackingID +// method. +func (client *EventClient) FetchDetailsByTenantIDAndTrackingID(ctx context.Context, eventTrackingID string, options *EventClientFetchDetailsByTenantIDAndTrackingIDOptions) (EventClientFetchDetailsByTenantIDAndTrackingIDResponse, error) { + req, err := client.fetchDetailsByTenantIDAndTrackingIDCreateRequest(ctx, eventTrackingID, options) + if err != nil { + return EventClientFetchDetailsByTenantIDAndTrackingIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EventClientFetchDetailsByTenantIDAndTrackingIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EventClientFetchDetailsByTenantIDAndTrackingIDResponse{}, runtime.NewResponseError(resp) + } + return client.fetchDetailsByTenantIDAndTrackingIDHandleResponse(resp) +} + +// fetchDetailsByTenantIDAndTrackingIDCreateRequest creates the FetchDetailsByTenantIDAndTrackingID request. +func (client *EventClient) fetchDetailsByTenantIDAndTrackingIDCreateRequest(ctx context.Context, eventTrackingID string, options *EventClientFetchDetailsByTenantIDAndTrackingIDOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/events/{eventTrackingId}/fetchEventDetails" + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// fetchDetailsByTenantIDAndTrackingIDHandleResponse handles the FetchDetailsByTenantIDAndTrackingID response. +func (client *EventClient) fetchDetailsByTenantIDAndTrackingIDHandleResponse(resp *http.Response) (EventClientFetchDetailsByTenantIDAndTrackingIDResponse, error) { + result := EventClientFetchDetailsByTenantIDAndTrackingIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Event); err != nil { + return EventClientFetchDetailsByTenantIDAndTrackingIDResponse{}, err + } + return result, nil +} + +// GetBySubscriptionIDAndTrackingID - Service health event in the subscription by event tracking id +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - options - EventClientGetBySubscriptionIDAndTrackingIDOptions contains the optional parameters for the EventClient.GetBySubscriptionIDAndTrackingID +// method. +func (client *EventClient) GetBySubscriptionIDAndTrackingID(ctx context.Context, eventTrackingID string, options *EventClientGetBySubscriptionIDAndTrackingIDOptions) (EventClientGetBySubscriptionIDAndTrackingIDResponse, error) { + req, err := client.getBySubscriptionIDAndTrackingIDCreateRequest(ctx, eventTrackingID, options) + if err != nil { + return EventClientGetBySubscriptionIDAndTrackingIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EventClientGetBySubscriptionIDAndTrackingIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EventClientGetBySubscriptionIDAndTrackingIDResponse{}, runtime.NewResponseError(resp) + } + return client.getBySubscriptionIDAndTrackingIDHandleResponse(resp) +} + +// getBySubscriptionIDAndTrackingIDCreateRequest creates the GetBySubscriptionIDAndTrackingID request. +func (client *EventClient) getBySubscriptionIDAndTrackingIDCreateRequest(ctx context.Context, eventTrackingID string, options *EventClientGetBySubscriptionIDAndTrackingIDOptions) (*policy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.ResourceHealth/events/{eventTrackingId}" + if client.subscriptionID == "" { + return nil, errors.New("parameter client.subscriptionID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + if options != nil && options.QueryStartTime != nil { + reqQP.Set("queryStartTime", *options.QueryStartTime) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// getBySubscriptionIDAndTrackingIDHandleResponse handles the GetBySubscriptionIDAndTrackingID response. +func (client *EventClient) getBySubscriptionIDAndTrackingIDHandleResponse(resp *http.Response) (EventClientGetBySubscriptionIDAndTrackingIDResponse, error) { + result := EventClientGetBySubscriptionIDAndTrackingIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Event); err != nil { + return EventClientGetBySubscriptionIDAndTrackingIDResponse{}, err + } + return result, nil +} + +// GetByTenantIDAndTrackingID - Service health event in the tenant by event tracking id +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - options - EventClientGetByTenantIDAndTrackingIDOptions contains the optional parameters for the EventClient.GetByTenantIDAndTrackingID +// method. +func (client *EventClient) GetByTenantIDAndTrackingID(ctx context.Context, eventTrackingID string, options *EventClientGetByTenantIDAndTrackingIDOptions) (EventClientGetByTenantIDAndTrackingIDResponse, error) { + req, err := client.getByTenantIDAndTrackingIDCreateRequest(ctx, eventTrackingID, options) + if err != nil { + return EventClientGetByTenantIDAndTrackingIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EventClientGetByTenantIDAndTrackingIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EventClientGetByTenantIDAndTrackingIDResponse{}, runtime.NewResponseError(resp) + } + return client.getByTenantIDAndTrackingIDHandleResponse(resp) +} + +// getByTenantIDAndTrackingIDCreateRequest creates the GetByTenantIDAndTrackingID request. +func (client *EventClient) getByTenantIDAndTrackingIDCreateRequest(ctx context.Context, eventTrackingID string, options *EventClientGetByTenantIDAndTrackingIDOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/events/{eventTrackingId}" + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + if options != nil && options.QueryStartTime != nil { + reqQP.Set("queryStartTime", *options.QueryStartTime) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// getByTenantIDAndTrackingIDHandleResponse handles the GetByTenantIDAndTrackingID response. +func (client *EventClient) getByTenantIDAndTrackingIDHandleResponse(resp *http.Response) (EventClientGetByTenantIDAndTrackingIDResponse, error) { + result := EventClientGetByTenantIDAndTrackingIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Event); err != nil { + return EventClientGetByTenantIDAndTrackingIDResponse{}, err + } + return result, nil +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/events_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/events_client.go new file mode 100644 index 000000000000..58a6b5145344 --- /dev/null +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/events_client.go @@ -0,0 +1,238 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcehealth + +import ( + "context" + "errors" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "net/url" + "strings" +) + +// EventsClient contains the methods for the Events group. +// Don't use this type directly, use NewEventsClient() instead. +type EventsClient struct { + internal *arm.Client + subscriptionID string +} + +// NewEventsClient creates a new instance of EventsClient with the specified values. +// - subscriptionID - The ID of the target subscription. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewEventsClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*EventsClient, error) { + cl, err := arm.NewClient(moduleName+".EventsClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &EventsClient{ + subscriptionID: subscriptionID, + internal: cl, + } + return client, nil +} + +// NewListBySingleResourcePager - Lists current service health events for given resource. +// +// Generated from API version 2022-10-01 +// - resourceURI - The fully qualified ID of the resource, including the resource name and resource type. Currently the API +// support not nested and one nesting level resource types : +// /subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/{resource-provider-name}/{resource-type}/{resource-name} +// and +// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resource-provider-name}/{parentResourceType}/{parentResourceName}/{resourceType}/{resourceName} +// - options - EventsClientListBySingleResourceOptions contains the optional parameters for the EventsClient.NewListBySingleResourcePager +// method. +func (client *EventsClient) NewListBySingleResourcePager(resourceURI string, options *EventsClientListBySingleResourceOptions) *runtime.Pager[EventsClientListBySingleResourceResponse] { + return runtime.NewPager(runtime.PagingHandler[EventsClientListBySingleResourceResponse]{ + More: func(page EventsClientListBySingleResourceResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *EventsClientListBySingleResourceResponse) (EventsClientListBySingleResourceResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listBySingleResourceCreateRequest(ctx, resourceURI, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return EventsClientListBySingleResourceResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EventsClientListBySingleResourceResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EventsClientListBySingleResourceResponse{}, runtime.NewResponseError(resp) + } + return client.listBySingleResourceHandleResponse(resp) + }, + }) +} + +// listBySingleResourceCreateRequest creates the ListBySingleResource request. +func (client *EventsClient) listBySingleResourceCreateRequest(ctx context.Context, resourceURI string, options *EventsClientListBySingleResourceOptions) (*policy.Request, error) { + urlPath := "/{resourceUri}/providers/Microsoft.ResourceHealth/events" + urlPath = strings.ReplaceAll(urlPath, "{resourceUri}", resourceURI) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listBySingleResourceHandleResponse handles the ListBySingleResource response. +func (client *EventsClient) listBySingleResourceHandleResponse(resp *http.Response) (EventsClientListBySingleResourceResponse, error) { + result := EventsClientListBySingleResourceResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Events); err != nil { + return EventsClientListBySingleResourceResponse{}, err + } + return result, nil +} + +// NewListBySubscriptionIDPager - Lists service health events in the subscription. +// +// Generated from API version 2022-10-01 +// - options - EventsClientListBySubscriptionIDOptions contains the optional parameters for the EventsClient.NewListBySubscriptionIDPager +// method. +func (client *EventsClient) NewListBySubscriptionIDPager(options *EventsClientListBySubscriptionIDOptions) *runtime.Pager[EventsClientListBySubscriptionIDResponse] { + return runtime.NewPager(runtime.PagingHandler[EventsClientListBySubscriptionIDResponse]{ + More: func(page EventsClientListBySubscriptionIDResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *EventsClientListBySubscriptionIDResponse) (EventsClientListBySubscriptionIDResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listBySubscriptionIDCreateRequest(ctx, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return EventsClientListBySubscriptionIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EventsClientListBySubscriptionIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EventsClientListBySubscriptionIDResponse{}, runtime.NewResponseError(resp) + } + return client.listBySubscriptionIDHandleResponse(resp) + }, + }) +} + +// listBySubscriptionIDCreateRequest creates the ListBySubscriptionID request. +func (client *EventsClient) listBySubscriptionIDCreateRequest(ctx context.Context, options *EventsClientListBySubscriptionIDOptions) (*policy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.ResourceHealth/events" + if client.subscriptionID == "" { + return nil, errors.New("parameter client.subscriptionID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + if options != nil && options.QueryStartTime != nil { + reqQP.Set("queryStartTime", *options.QueryStartTime) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listBySubscriptionIDHandleResponse handles the ListBySubscriptionID response. +func (client *EventsClient) listBySubscriptionIDHandleResponse(resp *http.Response) (EventsClientListBySubscriptionIDResponse, error) { + result := EventsClientListBySubscriptionIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Events); err != nil { + return EventsClientListBySubscriptionIDResponse{}, err + } + return result, nil +} + +// NewListByTenantIDPager - Lists current service health events in the tenant. +// +// Generated from API version 2022-10-01 +// - options - EventsClientListByTenantIDOptions contains the optional parameters for the EventsClient.NewListByTenantIDPager +// method. +func (client *EventsClient) NewListByTenantIDPager(options *EventsClientListByTenantIDOptions) *runtime.Pager[EventsClientListByTenantIDResponse] { + return runtime.NewPager(runtime.PagingHandler[EventsClientListByTenantIDResponse]{ + More: func(page EventsClientListByTenantIDResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *EventsClientListByTenantIDResponse) (EventsClientListByTenantIDResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listByTenantIDCreateRequest(ctx, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return EventsClientListByTenantIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return EventsClientListByTenantIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return EventsClientListByTenantIDResponse{}, runtime.NewResponseError(resp) + } + return client.listByTenantIDHandleResponse(resp) + }, + }) +} + +// listByTenantIDCreateRequest creates the ListByTenantID request. +func (client *EventsClient) listByTenantIDCreateRequest(ctx context.Context, options *EventsClientListByTenantIDOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/events" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + if options != nil && options.QueryStartTime != nil { + reqQP.Set("queryStartTime", *options.QueryStartTime) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listByTenantIDHandleResponse handles the ListByTenantID response. +func (client *EventsClient) listByTenantIDHandleResponse(resp *http.Response) (EventsClientListByTenantIDResponse, error) { + result := EventsClientListByTenantIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Events); err != nil { + return EventsClientListByTenantIDResponse{}, err + } + return result, nil +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/go.mod b/sdk/resourcemanager/resourcehealth/armresourcehealth/go.mod index d065131e0cf9..b3b134a9ad0c 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/go.mod +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/go.mod @@ -1,21 +1,13 @@ -module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcehealth/armresourcehealth +module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcehealth/armresourcehealth/v2 go 1.18 -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2 -) +require github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 require ( github.com/Azure/azure-sdk-for-go/sdk/internal v1.2.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/google/uuid v1.3.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect - golang.org/x/crypto v0.6.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect golang.org/x/net v0.7.0 // indirect - golang.org/x/sys v0.5.0 // indirect golang.org/x/text v0.7.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/go.sum b/sdk/resourcemanager/resourcehealth/armresourcehealth/go.sum index 8ba445a8c4da..b6bd7eaad1ba 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/go.sum +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/go.sum @@ -1,31 +1,15 @@ github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0/go.mod h1:ON4tFdPTwRcgWEaVDrN3584Ef+b7GgSJaXxe5fW9t4M= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2 h1:uqM+VoHjVH6zdlkLF2b6O0ZANcHoj3rO0PoQ3jglUJA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2/go.mod h1:twTKAa1E6hLmSDjLhaCkbTMQKc7p/rNLU40rLxGEOCI= github.com/Azure/azure-sdk-for-go/sdk/internal v1.2.0 h1:leh5DwKv6Ihwi+h60uHtn6UWAxBbZ0q8DwQVMzf61zw= github.com/Azure/azure-sdk-for-go/sdk/internal v1.2.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0 h1:UE9n9rkJF62ArLb1F3DEjRt8O3jLwMWdSoypKV4f3MU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/impactedresources_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/impactedresources_client.go new file mode 100644 index 000000000000..f5ffd2bd1acc --- /dev/null +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/impactedresources_client.go @@ -0,0 +1,288 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcehealth + +import ( + "context" + "errors" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "net/url" + "strings" +) + +// ImpactedResourcesClient contains the methods for the ImpactedResources group. +// Don't use this type directly, use NewImpactedResourcesClient() instead. +type ImpactedResourcesClient struct { + internal *arm.Client + subscriptionID string +} + +// NewImpactedResourcesClient creates a new instance of ImpactedResourcesClient with the specified values. +// - subscriptionID - The ID of the target subscription. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewImpactedResourcesClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*ImpactedResourcesClient, error) { + cl, err := arm.NewClient(moduleName+".ImpactedResourcesClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &ImpactedResourcesClient{ + subscriptionID: subscriptionID, + internal: cl, + } + return client, nil +} + +// Get - Gets the specific impacted resource in the subscription by an event. +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - impactedResourceName - Name of the Impacted Resource. +// - options - ImpactedResourcesClientGetOptions contains the optional parameters for the ImpactedResourcesClient.Get method. +func (client *ImpactedResourcesClient) Get(ctx context.Context, eventTrackingID string, impactedResourceName string, options *ImpactedResourcesClientGetOptions) (ImpactedResourcesClientGetResponse, error) { + req, err := client.getCreateRequest(ctx, eventTrackingID, impactedResourceName, options) + if err != nil { + return ImpactedResourcesClientGetResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ImpactedResourcesClientGetResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ImpactedResourcesClientGetResponse{}, runtime.NewResponseError(resp) + } + return client.getHandleResponse(resp) +} + +// getCreateRequest creates the Get request. +func (client *ImpactedResourcesClient) getCreateRequest(ctx context.Context, eventTrackingID string, impactedResourceName string, options *ImpactedResourcesClientGetOptions) (*policy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.ResourceHealth/events/{eventTrackingId}/impactedResources/{impactedResourceName}" + if client.subscriptionID == "" { + return nil, errors.New("parameter client.subscriptionID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + if impactedResourceName == "" { + return nil, errors.New("parameter impactedResourceName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{impactedResourceName}", url.PathEscape(impactedResourceName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// getHandleResponse handles the Get response. +func (client *ImpactedResourcesClient) getHandleResponse(resp *http.Response) (ImpactedResourcesClientGetResponse, error) { + result := ImpactedResourcesClientGetResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.EventImpactedResource); err != nil { + return ImpactedResourcesClientGetResponse{}, err + } + return result, nil +} + +// GetByTenantID - Gets the specific impacted resource in the tenant by an event. +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - impactedResourceName - Name of the Impacted Resource. +// - options - ImpactedResourcesClientGetByTenantIDOptions contains the optional parameters for the ImpactedResourcesClient.GetByTenantID +// method. +func (client *ImpactedResourcesClient) GetByTenantID(ctx context.Context, eventTrackingID string, impactedResourceName string, options *ImpactedResourcesClientGetByTenantIDOptions) (ImpactedResourcesClientGetByTenantIDResponse, error) { + req, err := client.getByTenantIDCreateRequest(ctx, eventTrackingID, impactedResourceName, options) + if err != nil { + return ImpactedResourcesClientGetByTenantIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ImpactedResourcesClientGetByTenantIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ImpactedResourcesClientGetByTenantIDResponse{}, runtime.NewResponseError(resp) + } + return client.getByTenantIDHandleResponse(resp) +} + +// getByTenantIDCreateRequest creates the GetByTenantID request. +func (client *ImpactedResourcesClient) getByTenantIDCreateRequest(ctx context.Context, eventTrackingID string, impactedResourceName string, options *ImpactedResourcesClientGetByTenantIDOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/events/{eventTrackingId}/impactedResources/{impactedResourceName}" + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + if impactedResourceName == "" { + return nil, errors.New("parameter impactedResourceName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{impactedResourceName}", url.PathEscape(impactedResourceName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// getByTenantIDHandleResponse handles the GetByTenantID response. +func (client *ImpactedResourcesClient) getByTenantIDHandleResponse(resp *http.Response) (ImpactedResourcesClientGetByTenantIDResponse, error) { + result := ImpactedResourcesClientGetByTenantIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.EventImpactedResource); err != nil { + return ImpactedResourcesClientGetByTenantIDResponse{}, err + } + return result, nil +} + +// NewListBySubscriptionIDAndEventIDPager - Lists impacted resources in the subscription by an event. +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - options - ImpactedResourcesClientListBySubscriptionIDAndEventIDOptions contains the optional parameters for the ImpactedResourcesClient.NewListBySubscriptionIDAndEventIDPager +// method. +func (client *ImpactedResourcesClient) NewListBySubscriptionIDAndEventIDPager(eventTrackingID string, options *ImpactedResourcesClientListBySubscriptionIDAndEventIDOptions) *runtime.Pager[ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse] { + return runtime.NewPager(runtime.PagingHandler[ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse]{ + More: func(page ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse) (ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listBySubscriptionIDAndEventIDCreateRequest(ctx, eventTrackingID, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{}, runtime.NewResponseError(resp) + } + return client.listBySubscriptionIDAndEventIDHandleResponse(resp) + }, + }) +} + +// listBySubscriptionIDAndEventIDCreateRequest creates the ListBySubscriptionIDAndEventID request. +func (client *ImpactedResourcesClient) listBySubscriptionIDAndEventIDCreateRequest(ctx context.Context, eventTrackingID string, options *ImpactedResourcesClientListBySubscriptionIDAndEventIDOptions) (*policy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.ResourceHealth/events/{eventTrackingId}/impactedResources" + if client.subscriptionID == "" { + return nil, errors.New("parameter client.subscriptionID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listBySubscriptionIDAndEventIDHandleResponse handles the ListBySubscriptionIDAndEventID response. +func (client *ImpactedResourcesClient) listBySubscriptionIDAndEventIDHandleResponse(resp *http.Response) (ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse, error) { + result := ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.EventImpactedResourceListResult); err != nil { + return ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{}, err + } + return result, nil +} + +// NewListByTenantIDAndEventIDPager - Lists impacted resources in the tenant by an event. +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - options - ImpactedResourcesClientListByTenantIDAndEventIDOptions contains the optional parameters for the ImpactedResourcesClient.NewListByTenantIDAndEventIDPager +// method. +func (client *ImpactedResourcesClient) NewListByTenantIDAndEventIDPager(eventTrackingID string, options *ImpactedResourcesClientListByTenantIDAndEventIDOptions) *runtime.Pager[ImpactedResourcesClientListByTenantIDAndEventIDResponse] { + return runtime.NewPager(runtime.PagingHandler[ImpactedResourcesClientListByTenantIDAndEventIDResponse]{ + More: func(page ImpactedResourcesClientListByTenantIDAndEventIDResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *ImpactedResourcesClientListByTenantIDAndEventIDResponse) (ImpactedResourcesClientListByTenantIDAndEventIDResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listByTenantIDAndEventIDCreateRequest(ctx, eventTrackingID, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return ImpactedResourcesClientListByTenantIDAndEventIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ImpactedResourcesClientListByTenantIDAndEventIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ImpactedResourcesClientListByTenantIDAndEventIDResponse{}, runtime.NewResponseError(resp) + } + return client.listByTenantIDAndEventIDHandleResponse(resp) + }, + }) +} + +// listByTenantIDAndEventIDCreateRequest creates the ListByTenantIDAndEventID request. +func (client *ImpactedResourcesClient) listByTenantIDAndEventIDCreateRequest(ctx context.Context, eventTrackingID string, options *ImpactedResourcesClientListByTenantIDAndEventIDOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/events/{eventTrackingId}/impactedResources" + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listByTenantIDAndEventIDHandleResponse handles the ListByTenantIDAndEventID response. +func (client *ImpactedResourcesClient) listByTenantIDAndEventIDHandleResponse(resp *http.Response) (ImpactedResourcesClientListByTenantIDAndEventIDResponse, error) { + result := ImpactedResourcesClientListByTenantIDAndEventIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.EventImpactedResourceListResult); err != nil { + return ImpactedResourcesClientListByTenantIDAndEventIDResponse{}, err + } + return result, nil +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/metadata_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/metadata_client.go new file mode 100644 index 000000000000..4cf5111cc63a --- /dev/null +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/metadata_client.go @@ -0,0 +1,145 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcehealth + +import ( + "context" + "errors" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "net/url" + "strings" +) + +// MetadataClient contains the methods for the Metadata group. +// Don't use this type directly, use NewMetadataClient() instead. +type MetadataClient struct { + internal *arm.Client +} + +// NewMetadataClient creates a new instance of MetadataClient with the specified values. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewMetadataClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*MetadataClient, error) { + cl, err := arm.NewClient(moduleName+".MetadataClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &MetadataClient{ + internal: cl, + } + return client, nil +} + +// GetEntity - Gets the list of metadata entities. +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2022-10-01 +// - name - Name of metadata entity. +// - options - MetadataClientGetEntityOptions contains the optional parameters for the MetadataClient.GetEntity method. +func (client *MetadataClient) GetEntity(ctx context.Context, name string, options *MetadataClientGetEntityOptions) (MetadataClientGetEntityResponse, error) { + req, err := client.getEntityCreateRequest(ctx, name, options) + if err != nil { + return MetadataClientGetEntityResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return MetadataClientGetEntityResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return MetadataClientGetEntityResponse{}, runtime.NewResponseError(resp) + } + return client.getEntityHandleResponse(resp) +} + +// getEntityCreateRequest creates the GetEntity request. +func (client *MetadataClient) getEntityCreateRequest(ctx context.Context, name string, options *MetadataClientGetEntityOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/metadata/{name}" + if name == "" { + return nil, errors.New("parameter name cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{name}", url.PathEscape(name)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// getEntityHandleResponse handles the GetEntity response. +func (client *MetadataClient) getEntityHandleResponse(resp *http.Response) (MetadataClientGetEntityResponse, error) { + result := MetadataClientGetEntityResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.MetadataEntity); err != nil { + return MetadataClientGetEntityResponse{}, err + } + return result, nil +} + +// NewListPager - Gets the list of metadata entities. +// +// Generated from API version 2022-10-01 +// - options - MetadataClientListOptions contains the optional parameters for the MetadataClient.NewListPager method. +func (client *MetadataClient) NewListPager(options *MetadataClientListOptions) *runtime.Pager[MetadataClientListResponse] { + return runtime.NewPager(runtime.PagingHandler[MetadataClientListResponse]{ + More: func(page MetadataClientListResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *MetadataClientListResponse) (MetadataClientListResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listCreateRequest(ctx, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return MetadataClientListResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return MetadataClientListResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return MetadataClientListResponse{}, runtime.NewResponseError(resp) + } + return client.listHandleResponse(resp) + }, + }) +} + +// listCreateRequest creates the List request. +func (client *MetadataClient) listCreateRequest(ctx context.Context, options *MetadataClientListOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/metadata" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listHandleResponse handles the List response. +func (client *MetadataClient) listHandleResponse(resp *http.Response) (MetadataClientListResponse, error) { + result := MetadataClientListResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.MetadataEntityListResult); err != nil { + return MetadataClientListResponse{}, err + } + return result, nil +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/models.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/models.go index b5dea7c6cca5..e4a1f358aea4 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/models.go +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/models.go @@ -14,102 +14,113 @@ import "time" // AvailabilityStatus - availabilityStatus of a resource. type AvailabilityStatus struct { // Azure Resource Manager Identity for the availabilityStatuses resource. - ID *string `json:"id,omitempty"` + ID *string // Azure Resource Manager geo location of the resource. - Location *string `json:"location,omitempty"` + Location *string // current. - Name *string `json:"name,omitempty"` + Name *string // Properties of availability state. - Properties *AvailabilityStatusProperties `json:"properties,omitempty"` + Properties *AvailabilityStatusProperties // Microsoft.ResourceHealth/AvailabilityStatuses. - Type *string `json:"type,omitempty"` + Type *string } // AvailabilityStatusListResult - The List availabilityStatus operation response. type AvailabilityStatusListResult struct { // REQUIRED; The list of availabilityStatuses. - Value []*AvailabilityStatus `json:"value,omitempty"` + Value []*AvailabilityStatus // The URI to fetch the next page of availabilityStatuses. Call ListNext() with this URI to fetch the next page of availabilityStatuses. - NextLink *string `json:"nextLink,omitempty"` + NextLink *string } // AvailabilityStatusProperties - Properties of availability state. type AvailabilityStatusProperties struct { + // The Article Id + ArticleID *string + // Availability status of the resource. When it is null, this availabilityStatus object represents an availability impacting // event - AvailabilityState *AvailabilityStateValues `json:"availabilityState,omitempty"` + AvailabilityState *AvailabilityStateValues + + // When a context field is set to Platform, this field will reflect if the event was planned or unplanned. If the context + // field does not have a value of Platform, then this field will be ignored. + Category *string + + // When an event is created, it can either be triggered by a customer or the platform of the resource and this field will + // illustrate that. This field is connected to the category field in this object. + Context *string // Details of the availability status. - DetailedStatus *string `json:"detailedStatus,omitempty"` + DetailedStatus *string // In case of an availability impacting event, it describes the category of a PlatformInitiated health impacting event. Examples // are Planned, Unplanned etc. - HealthEventCategory *string `json:"healthEventCategory,omitempty"` + HealthEventCategory *string // In case of an availability impacting event, it describes where the health impacting event was originated. Examples are // PlatformInitiated, UserInitiated etc. - HealthEventCause *string `json:"healthEventCause,omitempty"` + HealthEventCause *string // It is a unique Id that identifies the event - HealthEventID *string `json:"healthEventId,omitempty"` + HealthEventID *string // In case of an availability impacting event, it describes when the health impacting event was originated. Examples are Lifecycle, // Downtime, Fault Analysis etc. - HealthEventType *string `json:"healthEventType,omitempty"` + HealthEventType *string // Timestamp for when last change in health status occurred. - OccurredTime *time.Time `json:"occurredTime,omitempty"` + OccuredTime *time.Time // Chronicity of the availability transition. - ReasonChronicity *ReasonChronicityTypes `json:"reasonChronicity,omitempty"` + ReasonChronicity *ReasonChronicityTypes // When the resource's availabilityState is Unavailable, it describes where the health impacting event was originated. Examples // are planned, unplanned, user initiated or an outage etc. - ReasonType *string `json:"reasonType,omitempty"` + ReasonType *string // An annotation describing a change in the availabilityState to Available from Unavailable with a reasonType of type Unplanned - RecentlyResolved *AvailabilityStatusPropertiesRecentlyResolved `json:"recentlyResolved,omitempty"` + RecentlyResolved *AvailabilityStatusPropertiesRecentlyResolved // Lists actions the user can take based on the current availabilityState of the resource. - RecommendedActions []*RecommendedAction `json:"recommendedActions,omitempty"` + RecommendedActions []*RecommendedAction // Timestamp for when the health was last checked. - ReportedTime *time.Time `json:"reportedTime,omitempty"` + ReportedTime *time.Time // When the resource's availabilityState is Unavailable and the reasonType is not User Initiated, it provides the date and // time for when the issue is expected to be resolved. - ResolutionETA *time.Time `json:"resolutionETA,omitempty"` + ResolutionETA *time.Time // When the resource's availabilityState is Unavailable, it provides the Timestamp for when the health impacting event was // received. - RootCauseAttributionTime *time.Time `json:"rootCauseAttributionTime,omitempty"` + RootCauseAttributionTime *time.Time // Lists the service impacting events that may be affecting the health of the resource. - ServiceImpactingEvents []*ServiceImpactingEvent `json:"serviceImpactingEvents,omitempty"` + ServiceImpactingEvents []*ServiceImpactingEvent // Summary description of the availability status. - Summary *string `json:"summary,omitempty"` + Summary *string // Title description of the availability status. - Title *string `json:"title,omitempty"` + Title *string } // AvailabilityStatusPropertiesRecentlyResolved - An annotation describing a change in the availabilityState to Available // from Unavailable with a reasonType of type Unplanned type AvailabilityStatusPropertiesRecentlyResolved struct { // Timestamp when the availabilityState changes to Available. - ResolvedTime *time.Time `json:"resolvedTime,omitempty"` - - // Brief description of cause of the resource becoming unavailable. - UnavailabilitySummary *string `json:"unavailabilitySummary,omitempty"` + ResolvedTime *time.Time // Timestamp for when the availabilityState changed to Unavailable - UnavailableOccurredTime *time.Time `json:"unavailableOccurredTime,omitempty"` + UnavailableOccuredTime *time.Time + + // Brief description of cause of the resource becoming unavailable. + UnavailableSummary *string } // AvailabilityStatusesClientGetByResourceOptions contains the optional parameters for the AvailabilityStatusesClient.GetByResource @@ -148,94 +159,600 @@ type AvailabilityStatusesClientListOptions struct { Filter *string } -// ErrorResponse - Error details. -type ErrorResponse struct { - // The error object. - Error *ErrorResponseError `json:"error,omitempty"` +// ChildAvailabilityStatusesClientGetByResourceOptions contains the optional parameters for the ChildAvailabilityStatusesClient.GetByResource +// method. +type ChildAvailabilityStatusesClientGetByResourceOptions struct { + // Setting $expand=recommendedactions in url query expands the recommendedactions in the response. + Expand *string + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string +} + +// ChildAvailabilityStatusesClientListOptions contains the optional parameters for the ChildAvailabilityStatusesClient.NewListPager +// method. +type ChildAvailabilityStatusesClientListOptions struct { + // Setting $expand=recommendedactions in url query expands the recommendedactions in the response. + Expand *string + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string +} + +// ChildResourcesClientListOptions contains the optional parameters for the ChildResourcesClient.NewListPager method. +type ChildResourcesClientListOptions struct { + // Setting $expand=recommendedactions in url query expands the recommendedactions in the response. + Expand *string + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string +} + +// EmergingIssue - On-going emerging issue from azure status. +type EmergingIssue struct { + // Timestamp for when last time refreshed for ongoing emerging issue. + RefreshTimestamp *time.Time + + // The list of emerging issues of active event type. + StatusActiveEvents []*StatusActiveEvent + + // The list of emerging issues of banner type. + StatusBanners []*StatusBanner +} + +// EmergingIssueImpact - Object of the emerging issue impact on services and regions. +type EmergingIssueImpact struct { + // The impacted service id. + ID *string + + // The impacted service name. + Name *string + + // The list of impacted regions for corresponding emerging issues. + Regions []*ImpactedRegion +} + +// EmergingIssueListResult - The list of emerging issues. +type EmergingIssueListResult struct { + // The link used to get the next page of emerging issues. + NextLink *string + + // The list of emerging issues. + Value []*EmergingIssuesGetResult +} + +// EmergingIssuesClientGetOptions contains the optional parameters for the EmergingIssuesClient.Get method. +type EmergingIssuesClientGetOptions struct { + // placeholder for future optional parameters +} + +// EmergingIssuesClientListOptions contains the optional parameters for the EmergingIssuesClient.NewListPager method. +type EmergingIssuesClientListOptions struct { + // placeholder for future optional parameters +} + +// EmergingIssuesGetResult - The Get EmergingIssues operation response. +type EmergingIssuesGetResult struct { + // The emerging issue entity properties. + Properties *EmergingIssue + + // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string + + // READ-ONLY; The name of the resource + Name *string + + // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData + + // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string } -// ErrorResponseError - The error object. -type ErrorResponseError struct { +// ErrorResponse - Error details. +type ErrorResponse struct { // READ-ONLY; The error code. - Code *string `json:"code,omitempty" azure:"ro"` + Code *string // READ-ONLY; The error details. - Details *string `json:"details,omitempty" azure:"ro"` + Details *string // READ-ONLY; The error message. - Message *string `json:"message,omitempty" azure:"ro"` + Message *string +} + +// Event - Service health event +type Event struct { + // Properties of event. + Properties *EventProperties + + // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string + + // READ-ONLY; The name of the resource + Name *string + + // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData + + // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string +} + +// EventClientFetchDetailsBySubscriptionIDAndTrackingIDOptions contains the optional parameters for the EventClient.FetchDetailsBySubscriptionIDAndTrackingID +// method. +type EventClientFetchDetailsBySubscriptionIDAndTrackingIDOptions struct { + // placeholder for future optional parameters +} + +// EventClientFetchDetailsByTenantIDAndTrackingIDOptions contains the optional parameters for the EventClient.FetchDetailsByTenantIDAndTrackingID +// method. +type EventClientFetchDetailsByTenantIDAndTrackingIDOptions struct { + // placeholder for future optional parameters +} + +// EventClientGetBySubscriptionIDAndTrackingIDOptions contains the optional parameters for the EventClient.GetBySubscriptionIDAndTrackingID +// method. +type EventClientGetBySubscriptionIDAndTrackingIDOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string + // Specifies from when to return events, based on the lastUpdateTime property. For example, queryStartTime = 7/24/2020 OR + // queryStartTime=7%2F24%2F2020 + QueryStartTime *string +} + +// EventClientGetByTenantIDAndTrackingIDOptions contains the optional parameters for the EventClient.GetByTenantIDAndTrackingID +// method. +type EventClientGetByTenantIDAndTrackingIDOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string + // Specifies from when to return events, based on the lastUpdateTime property. For example, queryStartTime = 7/24/2020 OR + // queryStartTime=7%2F24%2F2020 + QueryStartTime *string +} + +// EventImpactedResource - Impacted resource for an event. +type EventImpactedResource struct { + // Properties of impacted resource. + Properties *EventImpactedResourceProperties + + // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string + + // READ-ONLY; The name of the resource + Name *string + + // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData + + // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string +} + +// EventImpactedResourceListResult - The List of eventImpactedResources operation response. +type EventImpactedResourceListResult struct { + // REQUIRED; The list of eventImpactedResources. + Value []*EventImpactedResource + + // The URI to fetch the next page of events. Call ListNext() with this URI to fetch the next page of impacted resource. + NextLink *string +} + +// EventImpactedResourceProperties - Properties of impacted resource. +type EventImpactedResourceProperties struct { + // Additional information. + Info []*KeyValueItem + + // READ-ONLY; Impacted resource region name. + TargetRegion *string + + // READ-ONLY; Identity for resource within Microsoft cloud. + TargetResourceID *string + + // READ-ONLY; Resource type within Microsoft cloud. + TargetResourceType *string +} + +// EventProperties - Properties of event. +type EventProperties struct { + // Additional information + AdditionalInformation *EventPropertiesAdditionalInformation + + // Article of event. + Article *EventPropertiesArticle + + // Contains the communication message for the event, that could include summary, root cause and other details. + Description *string + + // duration in seconds + Duration *int32 + + // Tells if we want to enable or disable Microsoft Support for this event. + EnableChatWithUs *bool + + // Tells if we want to enable or disable Microsoft Support for this event. + EnableMicrosoftSupport *bool + + // Level of event. + EventLevel *EventLevelValues + + // Source of event. + EventSource *EventSourceValues + + // Type of event. + EventType *EventTypeValues + + // The id of the Incident + ExternalIncidentID *string + + // Frequently asked questions for the service health event. + Faqs []*Faq + + // Header text of event. + Header *string + + // Stage for HIR Document + HirStage *string + + // List services impacted by the service health event. + Impact []*Impact + + // It provides the Timestamp for when the health impacting event resolved. + ImpactMitigationTime *time.Time + + // It provides the Timestamp for when the health impacting event started. + ImpactStartTime *time.Time + + // The type of the impact + ImpactType *string + + // It provides information if the event is High incident rate event or not. + IsHIR *bool + + // It provides the Timestamp for when the health impacting event was last updated. + LastUpdateTime *time.Time + + // Level of insight. + Level *LevelValues + + // Useful links of event. + Links []*Link + + // Is true if the event is platform initiated. + PlatformInitiated *bool + + // Priority level of the event. Has value from 0 to 23. 0 is the highest priority. Service issue events have higher priority + // followed by planned maintenance and health advisory. Critical events have + // higher priority followed by error, warning and informational. Furthermore, active events have higher priority than resolved. + Priority *int32 + + // The reason for the Incident + Reason *string + + // Recommended actions of event. + RecommendedActions *EventPropertiesRecommendedActions + + // Current status of event. + Status *EventStatusValues + + // Summary text of event. + Summary *string + + // Title text of event. + Title *string +} + +// EventPropertiesAdditionalInformation - Additional information +type EventPropertiesAdditionalInformation struct { + // Additional information Message + Message *string +} + +// EventPropertiesArticle - Article of event. +type EventPropertiesArticle struct { + // Article content of event. + ArticleContent *string + + // Article Id + ArticleID *string + + // It provides a map of parameter name and value + Parameters any +} + +// EventPropertiesRecommendedActions - Recommended actions of event. +type EventPropertiesRecommendedActions struct { + // Recommended actions for the service health event. + Actions []*EventPropertiesRecommendedActionsItem + + // Recommended action locale for the service health event. + LocaleCode *string + + // Recommended action title for the service health event. + Message *string +} + +// EventPropertiesRecommendedActionsItem - Recommended action for the service health event. +type EventPropertiesRecommendedActionsItem struct { + // Recommended action text + ActionText *string + + // Recommended action group Id for the service health event. + GroupID *int32 +} + +// Events - The List events operation response. +type Events struct { + // REQUIRED; The list of event. + Value []*Event + + // The URI to fetch the next page of events. Call ListNext() with this URI to fetch the next page of events. + NextLink *string +} + +// EventsClientListBySingleResourceOptions contains the optional parameters for the EventsClient.NewListBySingleResourcePager +// method. +type EventsClientListBySingleResourceOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string +} + +// EventsClientListBySubscriptionIDOptions contains the optional parameters for the EventsClient.NewListBySubscriptionIDPager +// method. +type EventsClientListBySubscriptionIDOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string + // Specifies from when to return events, based on the lastUpdateTime property. For example, queryStartTime = 7/24/2020 OR + // queryStartTime=7%2F24%2F2020 + QueryStartTime *string +} + +// EventsClientListByTenantIDOptions contains the optional parameters for the EventsClient.NewListByTenantIDPager method. +type EventsClientListByTenantIDOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string + // Specifies from when to return events, based on the lastUpdateTime property. For example, queryStartTime = 7/24/2020 OR + // queryStartTime=7%2F24%2F2020 + QueryStartTime *string +} + +// Faq - Frequently asked question for the service health event +type Faq struct { + // FAQ answer for the service health event. + Answer *string + + // FAQ locale for the service health event. + LocaleCode *string + + // FAQ question for the service health event. + Question *string +} + +// Impact - Azure service impacted by the service health event. +type Impact struct { + // List regions impacted by the service health event. + ImpactedRegions []*ImpactedServiceRegion + + // Impacted service name. + ImpactedService *string } // ImpactedRegion - Object of impacted region. type ImpactedRegion struct { // The impacted region id. - ID *string `json:"id,omitempty"` + ID *string // The impacted region name. - Name *string `json:"name,omitempty"` + Name *string } // ImpactedResourceStatus - impactedResource with health status type ImpactedResourceStatus struct { // Properties of impacted resource status. - Properties *ImpactedResourceStatusProperties `json:"properties,omitempty"` + Properties *ImpactedResourceStatusProperties // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} - ID *string `json:"id,omitempty" azure:"ro"` + ID *string // READ-ONLY; The name of the resource - Name *string `json:"name,omitempty" azure:"ro"` + Name *string + + // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" - Type *string `json:"type,omitempty" azure:"ro"` + Type *string } // ImpactedResourceStatusProperties - Properties of impacted resource status. type ImpactedResourceStatusProperties struct { // Impacted resource status of the resource. - AvailabilityState *AvailabilityStateValues `json:"availabilityState,omitempty"` + AvailabilityState *AvailabilityStateValues // Timestamp for when last change in health status occurred. - OccurredTime *time.Time `json:"occurredTime,omitempty"` + OccurredTime *time.Time // When the resource's availabilityState is Unavailable, it describes where the health impacting event was originated. - ReasonType *ReasonTypeValues `json:"reasonType,omitempty"` + ReasonType *ReasonTypeValues // Summary description of the impacted resource status. - Summary *string `json:"summary,omitempty"` + Summary *string // Title description of the impacted resource status. - Title *string `json:"title,omitempty"` + Title *string +} + +// ImpactedResourcesClientGetByTenantIDOptions contains the optional parameters for the ImpactedResourcesClient.GetByTenantID +// method. +type ImpactedResourcesClientGetByTenantIDOptions struct { + // placeholder for future optional parameters } -// Operation available in the resourcehealth resource provider. +// ImpactedResourcesClientGetOptions contains the optional parameters for the ImpactedResourcesClient.Get method. +type ImpactedResourcesClientGetOptions struct { + // placeholder for future optional parameters +} + +// ImpactedResourcesClientListBySubscriptionIDAndEventIDOptions contains the optional parameters for the ImpactedResourcesClient.NewListBySubscriptionIDAndEventIDPager +// method. +type ImpactedResourcesClientListBySubscriptionIDAndEventIDOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string +} + +// ImpactedResourcesClientListByTenantIDAndEventIDOptions contains the optional parameters for the ImpactedResourcesClient.NewListByTenantIDAndEventIDPager +// method. +type ImpactedResourcesClientListByTenantIDAndEventIDOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string +} + +// ImpactedServiceRegion - Azure region impacted by the service health event. +type ImpactedServiceRegion struct { + // Impacted region name. + ImpactedRegion *string + + // List subscription impacted by the service health event. + ImpactedSubscriptions []*string + + // List tenant impacted by the service health event. + ImpactedTenants []*string + + // It provides the Timestamp for when the last update for the service health event. + LastUpdateTime *time.Time + + // Current status of event in the region. + Status *EventStatusValues + + // List of updates for given service health event. + Updates []*Update +} + +// KeyValueItem - Key value tuple. +type KeyValueItem struct { + // READ-ONLY; Key of tuple. + Key *string + + // READ-ONLY; Value of tuple. + Value *string +} + +// Link - Useful links for service health event. +type Link struct { + // It provides the name of portal extension blade to produce link for given service health event. + BladeName *string + + // Display text of link. + DisplayText *LinkDisplayText + + // It provides the name of portal extension to produce link for given service health event. + ExtensionName *string + + // It provides a map of parameter name and value for portal extension blade to produce lik for given service health event. + Parameters any + + // Type of link. + Type *LinkTypeValues +} + +// LinkDisplayText - Display text of link. +type LinkDisplayText struct { + // Localized display text of link. + LocalizedValue *string + + // Display text of link. + Value *string +} + +// MetadataClientGetEntityOptions contains the optional parameters for the MetadataClient.GetEntity method. +type MetadataClientGetEntityOptions struct { + // placeholder for future optional parameters +} + +// MetadataClientListOptions contains the optional parameters for the MetadataClient.NewListPager method. +type MetadataClientListOptions struct { + // placeholder for future optional parameters +} + +// MetadataEntity - The metadata entity contract. +type MetadataEntity struct { + // The metadata entity properties. + Properties *MetadataEntityProperties + + // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string + + // READ-ONLY; The name of the resource + Name *string + + // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData + + // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string +} + +// MetadataEntityListResult - The list of metadata entities +type MetadataEntityListResult struct { + // The link used to get the next page of metadata. + NextLink *string + + // The list of metadata entities. + Value []*MetadataEntity +} + +// MetadataEntityProperties - The metadata entity properties +type MetadataEntityProperties struct { + // The list of scenarios applicable to this metadata entity. + ApplicableScenarios []*Scenario + + // The list of keys on which this entity depends on. + DependsOn []*string + + // The display name. + DisplayName *string + + // The list of supported values. + SupportedValues []*MetadataSupportedValueDetail +} + +// MetadataSupportedValueDetail - The metadata supported value detail. +type MetadataSupportedValueDetail struct { + // The display name. + DisplayName *string + + // The id. + ID *string + + // The list of associated resource types. + ResourceTypes []*string +} + +// Operation available in the Microsoft.ResourceHealth resource provider. type Operation struct { // Properties of the operation. - Display *OperationDisplay `json:"display,omitempty"` + Display *OperationDisplay // Name of the operation. - Name *string `json:"name,omitempty"` + Name *string } // OperationDisplay - Properties of the operation. type OperationDisplay struct { // Description of the operation. - Description *string `json:"description,omitempty"` + Description *string // Operation name. - Operation *string `json:"operation,omitempty"` + Operation *string // Provider name. - Provider *string `json:"provider,omitempty"` + Provider *string // Resource name. - Resource *string `json:"resource,omitempty"` + Resource *string } // OperationListResult - Lists the operations response. type OperationListResult struct { - // REQUIRED; List of operations available in the resourcehealth resource provider. - Value []*Operation `json:"value,omitempty"` + // REQUIRED; List of operations available in the Microsoft.ResourceHealth resource provider. + Value []*Operation } // OperationsClientListOptions contains the optional parameters for the OperationsClient.List method. @@ -243,80 +760,179 @@ type OperationsClientListOptions struct { // placeholder for future optional parameters } +// ProxyResource - The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a +// location +type ProxyResource struct { + // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string + + // READ-ONLY; The name of the resource + Name *string + + // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData + + // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string +} + // RecommendedAction - Lists actions the user can take based on the current availabilityState of the resource. type RecommendedAction struct { // Recommended action. - Action *string `json:"action,omitempty"` + Action *string // Link to the action - ActionURL *string `json:"actionUrl,omitempty"` + ActionURL *string + + // the comment for the Action + ActionURLComment *string - // Substring of action, it describes which text should host the action url. - ActionURLText *string `json:"actionUrlText,omitempty"` + // Substring of action, it describes which text should host the action URL. + ActionURLText *string } // Resource - Common fields that are returned in the response for all Azure Resource Manager resources type Resource struct { // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} - ID *string `json:"id,omitempty" azure:"ro"` + ID *string // READ-ONLY; The name of the resource - Name *string `json:"name,omitempty" azure:"ro"` + Name *string + + // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" - Type *string `json:"type,omitempty" azure:"ro"` + Type *string +} + +// SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDOptions contains the optional parameters for the SecurityAdvisoryImpactedResourcesClient.NewListBySubscriptionIDAndEventIDPager +// method. +type SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string +} + +// SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDOptions contains the optional parameters for the SecurityAdvisoryImpactedResourcesClient.NewListByTenantIDAndEventIDPager +// method. +type SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDOptions struct { + // The filter to apply on the operation. For more information please see https://docs.microsoft.com/en-us/rest/api/apimanagement/apis?redirectedfrom=MSDN + Filter *string } // ServiceImpactingEvent - Lists the service impacting events that may be affecting the health of the resource. type ServiceImpactingEvent struct { // Correlation id for the event - CorrelationID *string `json:"correlationId,omitempty"` + CorrelationID *string // Timestamp for when the event started. - EventStartTime *time.Time `json:"eventStartTime,omitempty"` + EventStartTime *time.Time // Timestamp for when event was submitted/detected. - EventStatusLastModifiedTime *time.Time `json:"eventStatusLastModifiedTime,omitempty"` + EventStatusLastModifiedTime *time.Time // Properties of the service impacting event. - IncidentProperties *ServiceImpactingEventIncidentProperties `json:"incidentProperties,omitempty"` + IncidentProperties *ServiceImpactingEventIncidentProperties // Status of the service impacting event. - Status *ServiceImpactingEventStatus `json:"status,omitempty"` + Status *ServiceImpactingEventStatus } // ServiceImpactingEventIncidentProperties - Properties of the service impacting event. type ServiceImpactingEventIncidentProperties struct { // Type of Event. - IncidentType *string `json:"incidentType,omitempty"` + IncidentType *string // Region impacted by the event. - Region *string `json:"region,omitempty"` + Region *string // Service impacted by the event. - Service *string `json:"service,omitempty"` + Service *string // Title of the incident. - Title *string `json:"title,omitempty"` + Title *string } // ServiceImpactingEventStatus - Status of the service impacting event. type ServiceImpactingEventStatus struct { // Current status of the event - Value *string `json:"value,omitempty"` + Value *string +} + +// StatusActiveEvent - Active event type of emerging issue. +type StatusActiveEvent struct { + // The cloud type of this active event. + Cloud *string + + // The details of active event. + Description *string + + // The list of emerging issues impacts. + Impacts []*EmergingIssueImpact + + // The last time modified on this banner. + LastModifiedTime *time.Time + + // The boolean value of this active event if published or not. + Published *bool + + // The severity level of this active event. + Severity *SeverityValues + + // The stage of this active event. + Stage *StageValues + + // The impact start time on this active event. + StartTime *time.Time + + // The active event title. + Title *string + + // The tracking id of this active event. + TrackingID *string } // StatusBanner - Banner type of emerging issue. type StatusBanner struct { // The cloud type of this banner. - Cloud *string `json:"cloud,omitempty"` + Cloud *string // The last time modified on this banner. - LastModifiedTime *time.Time `json:"lastModifiedTime,omitempty"` + LastModifiedTime *time.Time // The details of banner. - Message *string `json:"message,omitempty"` + Message *string // The banner title. - Title *string `json:"title,omitempty"` + Title *string +} + +// SystemData - Metadata pertaining to creation and last modification of the resource. +type SystemData struct { + // The timestamp of resource creation (UTC). + CreatedAt *time.Time + + // The identity that created the resource. + CreatedBy *string + + // The type of identity that created the resource. + CreatedByType *CreatedByType + + // The timestamp of resource last modification (UTC) + LastModifiedAt *time.Time + + // The identity that last modified the resource. + LastModifiedBy *string + + // The type of identity that last modified the resource. + LastModifiedByType *CreatedByType +} + +// Update for service health event. +type Update struct { + // Summary text for the given update for the service health event. + Summary *string + + // It provides the Timestamp for the given update for the service health event. + UpdateDateTime *time.Time } diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/models_serde.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/models_serde.go index d87f6577a963..9bb8951c62c4 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/models_serde.go +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/models_serde.go @@ -93,13 +93,16 @@ func (a *AvailabilityStatusListResult) UnmarshalJSON(data []byte) error { // MarshalJSON implements the json.Marshaller interface for type AvailabilityStatusProperties. func (a AvailabilityStatusProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) + populate(objectMap, "articleId", a.ArticleID) populate(objectMap, "availabilityState", a.AvailabilityState) + populate(objectMap, "category", a.Category) + populate(objectMap, "context", a.Context) populate(objectMap, "detailedStatus", a.DetailedStatus) populate(objectMap, "healthEventCategory", a.HealthEventCategory) populate(objectMap, "healthEventCause", a.HealthEventCause) populate(objectMap, "healthEventId", a.HealthEventID) populate(objectMap, "healthEventType", a.HealthEventType) - populateTimeRFC3339(objectMap, "occurredTime", a.OccurredTime) + populateTimeRFC3339(objectMap, "occuredTime", a.OccuredTime) populate(objectMap, "reasonChronicity", a.ReasonChronicity) populate(objectMap, "reasonType", a.ReasonType) populate(objectMap, "recentlyResolved", a.RecentlyResolved) @@ -122,9 +125,18 @@ func (a *AvailabilityStatusProperties) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { + case "articleId": + err = unpopulate(val, "ArticleID", &a.ArticleID) + delete(rawMsg, key) case "availabilityState": err = unpopulate(val, "AvailabilityState", &a.AvailabilityState) delete(rawMsg, key) + case "category": + err = unpopulate(val, "Category", &a.Category) + delete(rawMsg, key) + case "context": + err = unpopulate(val, "Context", &a.Context) + delete(rawMsg, key) case "detailedStatus": err = unpopulate(val, "DetailedStatus", &a.DetailedStatus) delete(rawMsg, key) @@ -140,8 +152,8 @@ func (a *AvailabilityStatusProperties) UnmarshalJSON(data []byte) error { case "healthEventType": err = unpopulate(val, "HealthEventType", &a.HealthEventType) delete(rawMsg, key) - case "occurredTime": - err = unpopulateTimeRFC3339(val, "OccurredTime", &a.OccurredTime) + case "occuredTime": + err = unpopulateTimeRFC3339(val, "OccuredTime", &a.OccuredTime) delete(rawMsg, key) case "reasonChronicity": err = unpopulate(val, "ReasonChronicity", &a.ReasonChronicity) @@ -164,228 +176,1165 @@ func (a *AvailabilityStatusProperties) UnmarshalJSON(data []byte) error { case "rootCauseAttributionTime": err = unpopulateTimeRFC3339(val, "RootCauseAttributionTime", &a.RootCauseAttributionTime) delete(rawMsg, key) - case "serviceImpactingEvents": - err = unpopulate(val, "ServiceImpactingEvents", &a.ServiceImpactingEvents) + case "serviceImpactingEvents": + err = unpopulate(val, "ServiceImpactingEvents", &a.ServiceImpactingEvents) + delete(rawMsg, key) + case "summary": + err = unpopulate(val, "Summary", &a.Summary) + delete(rawMsg, key) + case "title": + err = unpopulate(val, "Title", &a.Title) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", a, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type AvailabilityStatusPropertiesRecentlyResolved. +func (a AvailabilityStatusPropertiesRecentlyResolved) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populateTimeRFC3339(objectMap, "resolvedTime", a.ResolvedTime) + populateTimeRFC3339(objectMap, "unavailableOccuredTime", a.UnavailableOccuredTime) + populate(objectMap, "unavailableSummary", a.UnavailableSummary) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type AvailabilityStatusPropertiesRecentlyResolved. +func (a *AvailabilityStatusPropertiesRecentlyResolved) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", a, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "resolvedTime": + err = unpopulateTimeRFC3339(val, "ResolvedTime", &a.ResolvedTime) + delete(rawMsg, key) + case "unavailableOccuredTime": + err = unpopulateTimeRFC3339(val, "UnavailableOccuredTime", &a.UnavailableOccuredTime) + delete(rawMsg, key) + case "unavailableSummary": + err = unpopulate(val, "UnavailableSummary", &a.UnavailableSummary) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", a, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EmergingIssue. +func (e EmergingIssue) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populateTimeRFC3339(objectMap, "refreshTimestamp", e.RefreshTimestamp) + populate(objectMap, "statusActiveEvents", e.StatusActiveEvents) + populate(objectMap, "statusBanners", e.StatusBanners) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EmergingIssue. +func (e *EmergingIssue) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "refreshTimestamp": + err = unpopulateTimeRFC3339(val, "RefreshTimestamp", &e.RefreshTimestamp) + delete(rawMsg, key) + case "statusActiveEvents": + err = unpopulate(val, "StatusActiveEvents", &e.StatusActiveEvents) + delete(rawMsg, key) + case "statusBanners": + err = unpopulate(val, "StatusBanners", &e.StatusBanners) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EmergingIssueImpact. +func (e EmergingIssueImpact) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "id", e.ID) + populate(objectMap, "name", e.Name) + populate(objectMap, "regions", e.Regions) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EmergingIssueImpact. +func (e *EmergingIssueImpact) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &e.ID) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &e.Name) + delete(rawMsg, key) + case "regions": + err = unpopulate(val, "Regions", &e.Regions) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EmergingIssueListResult. +func (e EmergingIssueListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "nextLink", e.NextLink) + populate(objectMap, "value", e.Value) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EmergingIssueListResult. +func (e *EmergingIssueListResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "nextLink": + err = unpopulate(val, "NextLink", &e.NextLink) + delete(rawMsg, key) + case "value": + err = unpopulate(val, "Value", &e.Value) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EmergingIssuesGetResult. +func (e EmergingIssuesGetResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "id", e.ID) + populate(objectMap, "name", e.Name) + populate(objectMap, "properties", e.Properties) + populate(objectMap, "systemData", e.SystemData) + populate(objectMap, "type", e.Type) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EmergingIssuesGetResult. +func (e *EmergingIssuesGetResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &e.ID) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &e.Name) + delete(rawMsg, key) + case "properties": + err = unpopulate(val, "Properties", &e.Properties) + delete(rawMsg, key) + case "systemData": + err = unpopulate(val, "SystemData", &e.SystemData) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &e.Type) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ErrorResponse. +func (e ErrorResponse) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "code", e.Code) + populate(objectMap, "details", e.Details) + populate(objectMap, "message", e.Message) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponse. +func (e *ErrorResponse) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "code": + err = unpopulate(val, "Code", &e.Code) + delete(rawMsg, key) + case "details": + err = unpopulate(val, "Details", &e.Details) + delete(rawMsg, key) + case "message": + err = unpopulate(val, "Message", &e.Message) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Event. +func (e Event) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "id", e.ID) + populate(objectMap, "name", e.Name) + populate(objectMap, "properties", e.Properties) + populate(objectMap, "systemData", e.SystemData) + populate(objectMap, "type", e.Type) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Event. +func (e *Event) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &e.ID) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &e.Name) + delete(rawMsg, key) + case "properties": + err = unpopulate(val, "Properties", &e.Properties) + delete(rawMsg, key) + case "systemData": + err = unpopulate(val, "SystemData", &e.SystemData) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &e.Type) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EventImpactedResource. +func (e EventImpactedResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "id", e.ID) + populate(objectMap, "name", e.Name) + populate(objectMap, "properties", e.Properties) + populate(objectMap, "systemData", e.SystemData) + populate(objectMap, "type", e.Type) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EventImpactedResource. +func (e *EventImpactedResource) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &e.ID) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &e.Name) + delete(rawMsg, key) + case "properties": + err = unpopulate(val, "Properties", &e.Properties) + delete(rawMsg, key) + case "systemData": + err = unpopulate(val, "SystemData", &e.SystemData) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &e.Type) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EventImpactedResourceListResult. +func (e EventImpactedResourceListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "nextLink", e.NextLink) + populate(objectMap, "value", e.Value) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EventImpactedResourceListResult. +func (e *EventImpactedResourceListResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "nextLink": + err = unpopulate(val, "NextLink", &e.NextLink) + delete(rawMsg, key) + case "value": + err = unpopulate(val, "Value", &e.Value) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EventImpactedResourceProperties. +func (e EventImpactedResourceProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "info", e.Info) + populate(objectMap, "targetRegion", e.TargetRegion) + populate(objectMap, "targetResourceId", e.TargetResourceID) + populate(objectMap, "targetResourceType", e.TargetResourceType) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EventImpactedResourceProperties. +func (e *EventImpactedResourceProperties) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "info": + err = unpopulate(val, "Info", &e.Info) + delete(rawMsg, key) + case "targetRegion": + err = unpopulate(val, "TargetRegion", &e.TargetRegion) + delete(rawMsg, key) + case "targetResourceId": + err = unpopulate(val, "TargetResourceID", &e.TargetResourceID) + delete(rawMsg, key) + case "targetResourceType": + err = unpopulate(val, "TargetResourceType", &e.TargetResourceType) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EventProperties. +func (e EventProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "additionalInformation", e.AdditionalInformation) + populate(objectMap, "article", e.Article) + populate(objectMap, "description", e.Description) + populate(objectMap, "duration", e.Duration) + populate(objectMap, "enableChatWithUs", e.EnableChatWithUs) + populate(objectMap, "enableMicrosoftSupport", e.EnableMicrosoftSupport) + populate(objectMap, "eventLevel", e.EventLevel) + populate(objectMap, "eventSource", e.EventSource) + populate(objectMap, "eventType", e.EventType) + populate(objectMap, "externalIncidentId", e.ExternalIncidentID) + populate(objectMap, "faqs", e.Faqs) + populate(objectMap, "header", e.Header) + populate(objectMap, "hirStage", e.HirStage) + populate(objectMap, "impact", e.Impact) + populateTimeRFC3339(objectMap, "impactMitigationTime", e.ImpactMitigationTime) + populateTimeRFC3339(objectMap, "impactStartTime", e.ImpactStartTime) + populate(objectMap, "impactType", e.ImpactType) + populate(objectMap, "isHIR", e.IsHIR) + populateTimeRFC3339(objectMap, "lastUpdateTime", e.LastUpdateTime) + populate(objectMap, "level", e.Level) + populate(objectMap, "links", e.Links) + populate(objectMap, "platformInitiated", e.PlatformInitiated) + populate(objectMap, "priority", e.Priority) + populate(objectMap, "reason", e.Reason) + populate(objectMap, "recommendedActions", e.RecommendedActions) + populate(objectMap, "status", e.Status) + populate(objectMap, "summary", e.Summary) + populate(objectMap, "title", e.Title) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EventProperties. +func (e *EventProperties) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "additionalInformation": + err = unpopulate(val, "AdditionalInformation", &e.AdditionalInformation) + delete(rawMsg, key) + case "article": + err = unpopulate(val, "Article", &e.Article) + delete(rawMsg, key) + case "description": + err = unpopulate(val, "Description", &e.Description) + delete(rawMsg, key) + case "duration": + err = unpopulate(val, "Duration", &e.Duration) + delete(rawMsg, key) + case "enableChatWithUs": + err = unpopulate(val, "EnableChatWithUs", &e.EnableChatWithUs) + delete(rawMsg, key) + case "enableMicrosoftSupport": + err = unpopulate(val, "EnableMicrosoftSupport", &e.EnableMicrosoftSupport) + delete(rawMsg, key) + case "eventLevel": + err = unpopulate(val, "EventLevel", &e.EventLevel) + delete(rawMsg, key) + case "eventSource": + err = unpopulate(val, "EventSource", &e.EventSource) + delete(rawMsg, key) + case "eventType": + err = unpopulate(val, "EventType", &e.EventType) + delete(rawMsg, key) + case "externalIncidentId": + err = unpopulate(val, "ExternalIncidentID", &e.ExternalIncidentID) + delete(rawMsg, key) + case "faqs": + err = unpopulate(val, "Faqs", &e.Faqs) + delete(rawMsg, key) + case "header": + err = unpopulate(val, "Header", &e.Header) + delete(rawMsg, key) + case "hirStage": + err = unpopulate(val, "HirStage", &e.HirStage) + delete(rawMsg, key) + case "impact": + err = unpopulate(val, "Impact", &e.Impact) + delete(rawMsg, key) + case "impactMitigationTime": + err = unpopulateTimeRFC3339(val, "ImpactMitigationTime", &e.ImpactMitigationTime) + delete(rawMsg, key) + case "impactStartTime": + err = unpopulateTimeRFC3339(val, "ImpactStartTime", &e.ImpactStartTime) + delete(rawMsg, key) + case "impactType": + err = unpopulate(val, "ImpactType", &e.ImpactType) + delete(rawMsg, key) + case "isHIR": + err = unpopulate(val, "IsHIR", &e.IsHIR) + delete(rawMsg, key) + case "lastUpdateTime": + err = unpopulateTimeRFC3339(val, "LastUpdateTime", &e.LastUpdateTime) + delete(rawMsg, key) + case "level": + err = unpopulate(val, "Level", &e.Level) + delete(rawMsg, key) + case "links": + err = unpopulate(val, "Links", &e.Links) + delete(rawMsg, key) + case "platformInitiated": + err = unpopulate(val, "PlatformInitiated", &e.PlatformInitiated) + delete(rawMsg, key) + case "priority": + err = unpopulate(val, "Priority", &e.Priority) + delete(rawMsg, key) + case "reason": + err = unpopulate(val, "Reason", &e.Reason) + delete(rawMsg, key) + case "recommendedActions": + err = unpopulate(val, "RecommendedActions", &e.RecommendedActions) + delete(rawMsg, key) + case "status": + err = unpopulate(val, "Status", &e.Status) + delete(rawMsg, key) + case "summary": + err = unpopulate(val, "Summary", &e.Summary) + delete(rawMsg, key) + case "title": + err = unpopulate(val, "Title", &e.Title) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EventPropertiesAdditionalInformation. +func (e EventPropertiesAdditionalInformation) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "message", e.Message) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EventPropertiesAdditionalInformation. +func (e *EventPropertiesAdditionalInformation) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "message": + err = unpopulate(val, "Message", &e.Message) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EventPropertiesArticle. +func (e EventPropertiesArticle) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "articleContent", e.ArticleContent) + populate(objectMap, "articleId", e.ArticleID) + populateAny(objectMap, "parameters", e.Parameters) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EventPropertiesArticle. +func (e *EventPropertiesArticle) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "articleContent": + err = unpopulate(val, "ArticleContent", &e.ArticleContent) + delete(rawMsg, key) + case "articleId": + err = unpopulate(val, "ArticleID", &e.ArticleID) + delete(rawMsg, key) + case "parameters": + err = unpopulate(val, "Parameters", &e.Parameters) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EventPropertiesRecommendedActions. +func (e EventPropertiesRecommendedActions) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "actions", e.Actions) + populate(objectMap, "localeCode", e.LocaleCode) + populate(objectMap, "message", e.Message) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EventPropertiesRecommendedActions. +func (e *EventPropertiesRecommendedActions) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "actions": + err = unpopulate(val, "Actions", &e.Actions) + delete(rawMsg, key) + case "localeCode": + err = unpopulate(val, "LocaleCode", &e.LocaleCode) + delete(rawMsg, key) + case "message": + err = unpopulate(val, "Message", &e.Message) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type EventPropertiesRecommendedActionsItem. +func (e EventPropertiesRecommendedActionsItem) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "actionText", e.ActionText) + populate(objectMap, "groupId", e.GroupID) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type EventPropertiesRecommendedActionsItem. +func (e *EventPropertiesRecommendedActionsItem) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "actionText": + err = unpopulate(val, "ActionText", &e.ActionText) + delete(rawMsg, key) + case "groupId": + err = unpopulate(val, "GroupID", &e.GroupID) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Events. +func (e Events) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "nextLink", e.NextLink) + populate(objectMap, "value", e.Value) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Events. +func (e *Events) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "nextLink": + err = unpopulate(val, "NextLink", &e.NextLink) + delete(rawMsg, key) + case "value": + err = unpopulate(val, "Value", &e.Value) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Faq. +func (f Faq) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "answer", f.Answer) + populate(objectMap, "localeCode", f.LocaleCode) + populate(objectMap, "question", f.Question) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Faq. +func (f *Faq) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "answer": + err = unpopulate(val, "Answer", &f.Answer) + delete(rawMsg, key) + case "localeCode": + err = unpopulate(val, "LocaleCode", &f.LocaleCode) + delete(rawMsg, key) + case "question": + err = unpopulate(val, "Question", &f.Question) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Impact. +func (i Impact) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "impactedRegions", i.ImpactedRegions) + populate(objectMap, "impactedService", i.ImpactedService) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Impact. +func (i *Impact) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "impactedRegions": + err = unpopulate(val, "ImpactedRegions", &i.ImpactedRegions) + delete(rawMsg, key) + case "impactedService": + err = unpopulate(val, "ImpactedService", &i.ImpactedService) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ImpactedRegion. +func (i ImpactedRegion) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "id", i.ID) + populate(objectMap, "name", i.Name) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ImpactedRegion. +func (i *ImpactedRegion) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &i.ID) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &i.Name) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ImpactedResourceStatus. +func (i ImpactedResourceStatus) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "id", i.ID) + populate(objectMap, "name", i.Name) + populate(objectMap, "properties", i.Properties) + populate(objectMap, "systemData", i.SystemData) + populate(objectMap, "type", i.Type) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ImpactedResourceStatus. +func (i *ImpactedResourceStatus) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &i.ID) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &i.Name) + delete(rawMsg, key) + case "properties": + err = unpopulate(val, "Properties", &i.Properties) + delete(rawMsg, key) + case "systemData": + err = unpopulate(val, "SystemData", &i.SystemData) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &i.Type) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ImpactedResourceStatusProperties. +func (i ImpactedResourceStatusProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "availabilityState", i.AvailabilityState) + populateTimeRFC3339(objectMap, "occurredTime", i.OccurredTime) + populate(objectMap, "reasonType", i.ReasonType) + populate(objectMap, "summary", i.Summary) + populate(objectMap, "title", i.Title) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ImpactedResourceStatusProperties. +func (i *ImpactedResourceStatusProperties) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "availabilityState": + err = unpopulate(val, "AvailabilityState", &i.AvailabilityState) + delete(rawMsg, key) + case "occurredTime": + err = unpopulateTimeRFC3339(val, "OccurredTime", &i.OccurredTime) + delete(rawMsg, key) + case "reasonType": + err = unpopulate(val, "ReasonType", &i.ReasonType) delete(rawMsg, key) case "summary": - err = unpopulate(val, "Summary", &a.Summary) + err = unpopulate(val, "Summary", &i.Summary) delete(rawMsg, key) case "title": - err = unpopulate(val, "Title", &a.Title) + err = unpopulate(val, "Title", &i.Title) delete(rawMsg, key) } if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", a, err) + return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } -// MarshalJSON implements the json.Marshaller interface for type AvailabilityStatusPropertiesRecentlyResolved. -func (a AvailabilityStatusPropertiesRecentlyResolved) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type ImpactedServiceRegion. +func (i ImpactedServiceRegion) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populateTimeRFC3339(objectMap, "resolvedTime", a.ResolvedTime) - populate(objectMap, "unavailabilitySummary", a.UnavailabilitySummary) - populateTimeRFC3339(objectMap, "unavailableOccurredTime", a.UnavailableOccurredTime) + populate(objectMap, "impactedRegion", i.ImpactedRegion) + populate(objectMap, "impactedSubscriptions", i.ImpactedSubscriptions) + populate(objectMap, "impactedTenants", i.ImpactedTenants) + populateTimeRFC3339(objectMap, "lastUpdateTime", i.LastUpdateTime) + populate(objectMap, "status", i.Status) + populate(objectMap, "updates", i.Updates) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type AvailabilityStatusPropertiesRecentlyResolved. -func (a *AvailabilityStatusPropertiesRecentlyResolved) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type ImpactedServiceRegion. +func (i *ImpactedServiceRegion) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", a, err) + return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { - case "resolvedTime": - err = unpopulateTimeRFC3339(val, "ResolvedTime", &a.ResolvedTime) + case "impactedRegion": + err = unpopulate(val, "ImpactedRegion", &i.ImpactedRegion) delete(rawMsg, key) - case "unavailabilitySummary": - err = unpopulate(val, "UnavailabilitySummary", &a.UnavailabilitySummary) + case "impactedSubscriptions": + err = unpopulate(val, "ImpactedSubscriptions", &i.ImpactedSubscriptions) + delete(rawMsg, key) + case "impactedTenants": + err = unpopulate(val, "ImpactedTenants", &i.ImpactedTenants) + delete(rawMsg, key) + case "lastUpdateTime": + err = unpopulateTimeRFC3339(val, "LastUpdateTime", &i.LastUpdateTime) + delete(rawMsg, key) + case "status": + err = unpopulate(val, "Status", &i.Status) delete(rawMsg, key) - case "unavailableOccurredTime": - err = unpopulateTimeRFC3339(val, "UnavailableOccurredTime", &a.UnavailableOccurredTime) + case "updates": + err = unpopulate(val, "Updates", &i.Updates) delete(rawMsg, key) } if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", a, err) + return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } -// MarshalJSON implements the json.Marshaller interface for type ErrorResponse. -func (e ErrorResponse) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyValueItem. +func (k KeyValueItem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populate(objectMap, "error", e.Error) + populate(objectMap, "key", k.Key) + populate(objectMap, "value", k.Value) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponse. -func (e *ErrorResponse) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyValueItem. +func (k *KeyValueItem) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", e, err) + return fmt.Errorf("unmarshalling type %T: %v", k, err) } for key, val := range rawMsg { var err error switch key { - case "error": - err = unpopulate(val, "Error", &e.Error) + case "key": + err = unpopulate(val, "Key", &k.Key) + delete(rawMsg, key) + case "value": + err = unpopulate(val, "Value", &k.Value) delete(rawMsg, key) } if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", e, err) + return fmt.Errorf("unmarshalling type %T: %v", k, err) } } return nil } -// MarshalJSON implements the json.Marshaller interface for type ErrorResponseError. -func (e ErrorResponseError) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type Link. +func (l Link) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populate(objectMap, "code", e.Code) - populate(objectMap, "details", e.Details) - populate(objectMap, "message", e.Message) + populate(objectMap, "bladeName", l.BladeName) + populate(objectMap, "displayText", l.DisplayText) + populate(objectMap, "extensionName", l.ExtensionName) + populateAny(objectMap, "parameters", l.Parameters) + populate(objectMap, "type", l.Type) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponseError. -func (e *ErrorResponseError) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type Link. +func (l *Link) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", e, err) + return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { - case "code": - err = unpopulate(val, "Code", &e.Code) + case "bladeName": + err = unpopulate(val, "BladeName", &l.BladeName) delete(rawMsg, key) - case "details": - err = unpopulate(val, "Details", &e.Details) + case "displayText": + err = unpopulate(val, "DisplayText", &l.DisplayText) delete(rawMsg, key) - case "message": - err = unpopulate(val, "Message", &e.Message) + case "extensionName": + err = unpopulate(val, "ExtensionName", &l.ExtensionName) + delete(rawMsg, key) + case "parameters": + err = unpopulate(val, "Parameters", &l.Parameters) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &l.Type) delete(rawMsg, key) } if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", e, err) + return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } -// MarshalJSON implements the json.Marshaller interface for type ImpactedRegion. -func (i ImpactedRegion) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type LinkDisplayText. +func (l LinkDisplayText) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populate(objectMap, "id", i.ID) - populate(objectMap, "name", i.Name) + populate(objectMap, "localizedValue", l.LocalizedValue) + populate(objectMap, "value", l.Value) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type ImpactedRegion. -func (i *ImpactedRegion) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type LinkDisplayText. +func (l *LinkDisplayText) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", i, err) + return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { - case "id": - err = unpopulate(val, "ID", &i.ID) + case "localizedValue": + err = unpopulate(val, "LocalizedValue", &l.LocalizedValue) delete(rawMsg, key) - case "name": - err = unpopulate(val, "Name", &i.Name) + case "value": + err = unpopulate(val, "Value", &l.Value) delete(rawMsg, key) } if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", i, err) + return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } -// MarshalJSON implements the json.Marshaller interface for type ImpactedResourceStatus. -func (i ImpactedResourceStatus) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type MetadataEntity. +func (m MetadataEntity) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populate(objectMap, "id", i.ID) - populate(objectMap, "name", i.Name) - populate(objectMap, "properties", i.Properties) - populate(objectMap, "type", i.Type) + populate(objectMap, "id", m.ID) + populate(objectMap, "name", m.Name) + populate(objectMap, "properties", m.Properties) + populate(objectMap, "systemData", m.SystemData) + populate(objectMap, "type", m.Type) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type ImpactedResourceStatus. -func (i *ImpactedResourceStatus) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type MetadataEntity. +func (m *MetadataEntity) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", i, err) + return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "id": - err = unpopulate(val, "ID", &i.ID) + err = unpopulate(val, "ID", &m.ID) delete(rawMsg, key) case "name": - err = unpopulate(val, "Name", &i.Name) + err = unpopulate(val, "Name", &m.Name) delete(rawMsg, key) case "properties": - err = unpopulate(val, "Properties", &i.Properties) + err = unpopulate(val, "Properties", &m.Properties) + delete(rawMsg, key) + case "systemData": + err = unpopulate(val, "SystemData", &m.SystemData) delete(rawMsg, key) case "type": - err = unpopulate(val, "Type", &i.Type) + err = unpopulate(val, "Type", &m.Type) delete(rawMsg, key) } if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", i, err) + return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } -// MarshalJSON implements the json.Marshaller interface for type ImpactedResourceStatusProperties. -func (i ImpactedResourceStatusProperties) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type MetadataEntityListResult. +func (m MetadataEntityListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populate(objectMap, "availabilityState", i.AvailabilityState) - populateTimeRFC3339(objectMap, "occurredTime", i.OccurredTime) - populate(objectMap, "reasonType", i.ReasonType) - populate(objectMap, "summary", i.Summary) - populate(objectMap, "title", i.Title) + populate(objectMap, "nextLink", m.NextLink) + populate(objectMap, "value", m.Value) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type ImpactedResourceStatusProperties. -func (i *ImpactedResourceStatusProperties) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type MetadataEntityListResult. +func (m *MetadataEntityListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", i, err) + return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { - case "availabilityState": - err = unpopulate(val, "AvailabilityState", &i.AvailabilityState) + case "nextLink": + err = unpopulate(val, "NextLink", &m.NextLink) delete(rawMsg, key) - case "occurredTime": - err = unpopulateTimeRFC3339(val, "OccurredTime", &i.OccurredTime) + case "value": + err = unpopulate(val, "Value", &m.Value) delete(rawMsg, key) - case "reasonType": - err = unpopulate(val, "ReasonType", &i.ReasonType) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", m, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type MetadataEntityProperties. +func (m MetadataEntityProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "applicableScenarios", m.ApplicableScenarios) + populate(objectMap, "dependsOn", m.DependsOn) + populate(objectMap, "displayName", m.DisplayName) + populate(objectMap, "supportedValues", m.SupportedValues) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type MetadataEntityProperties. +func (m *MetadataEntityProperties) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", m, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "applicableScenarios": + err = unpopulate(val, "ApplicableScenarios", &m.ApplicableScenarios) delete(rawMsg, key) - case "summary": - err = unpopulate(val, "Summary", &i.Summary) + case "dependsOn": + err = unpopulate(val, "DependsOn", &m.DependsOn) delete(rawMsg, key) - case "title": - err = unpopulate(val, "Title", &i.Title) + case "displayName": + err = unpopulate(val, "DisplayName", &m.DisplayName) + delete(rawMsg, key) + case "supportedValues": + err = unpopulate(val, "SupportedValues", &m.SupportedValues) delete(rawMsg, key) } if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", i, err) + return fmt.Errorf("unmarshalling type %T: %v", m, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type MetadataSupportedValueDetail. +func (m MetadataSupportedValueDetail) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "displayName", m.DisplayName) + populate(objectMap, "id", m.ID) + populate(objectMap, "resourceTypes", m.ResourceTypes) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type MetadataSupportedValueDetail. +func (m *MetadataSupportedValueDetail) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", m, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "displayName": + err = unpopulate(val, "DisplayName", &m.DisplayName) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &m.ID) + delete(rawMsg, key) + case "resourceTypes": + err = unpopulate(val, "ResourceTypes", &m.ResourceTypes) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil @@ -488,11 +1437,51 @@ func (o *OperationListResult) UnmarshalJSON(data []byte) error { return nil } +// MarshalJSON implements the json.Marshaller interface for type ProxyResource. +func (p ProxyResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "id", p.ID) + populate(objectMap, "name", p.Name) + populate(objectMap, "systemData", p.SystemData) + populate(objectMap, "type", p.Type) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ProxyResource. +func (p *ProxyResource) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", p, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &p.ID) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &p.Name) + delete(rawMsg, key) + case "systemData": + err = unpopulate(val, "SystemData", &p.SystemData) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &p.Type) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", p, err) + } + } + return nil +} + // MarshalJSON implements the json.Marshaller interface for type RecommendedAction. func (r RecommendedAction) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "action", r.Action) populate(objectMap, "actionUrl", r.ActionURL) + populate(objectMap, "_ActionUrl.Comment", r.ActionURLComment) populate(objectMap, "actionUrlText", r.ActionURLText) return json.Marshal(objectMap) } @@ -512,6 +1501,9 @@ func (r *RecommendedAction) UnmarshalJSON(data []byte) error { case "actionUrl": err = unpopulate(val, "ActionURL", &r.ActionURL) delete(rawMsg, key) + case "_ActionUrl.Comment": + err = unpopulate(val, "ActionURLComment", &r.ActionURLComment) + delete(rawMsg, key) case "actionUrlText": err = unpopulate(val, "ActionURLText", &r.ActionURLText) delete(rawMsg, key) @@ -528,6 +1520,7 @@ func (r Resource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "name", r.Name) + populate(objectMap, "systemData", r.SystemData) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } @@ -547,6 +1540,9 @@ func (r *Resource) UnmarshalJSON(data []byte) error { case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) + case "systemData": + err = unpopulate(val, "SystemData", &r.SystemData) + delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) @@ -667,6 +1663,69 @@ func (s *ServiceImpactingEventStatus) UnmarshalJSON(data []byte) error { return nil } +// MarshalJSON implements the json.Marshaller interface for type StatusActiveEvent. +func (s StatusActiveEvent) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "cloud", s.Cloud) + populate(objectMap, "description", s.Description) + populate(objectMap, "impacts", s.Impacts) + populateTimeRFC3339(objectMap, "lastModifiedTime", s.LastModifiedTime) + populate(objectMap, "published", s.Published) + populate(objectMap, "severity", s.Severity) + populate(objectMap, "stage", s.Stage) + populateTimeRFC3339(objectMap, "startTime", s.StartTime) + populate(objectMap, "title", s.Title) + populate(objectMap, "trackingId", s.TrackingID) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type StatusActiveEvent. +func (s *StatusActiveEvent) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "cloud": + err = unpopulate(val, "Cloud", &s.Cloud) + delete(rawMsg, key) + case "description": + err = unpopulate(val, "Description", &s.Description) + delete(rawMsg, key) + case "impacts": + err = unpopulate(val, "Impacts", &s.Impacts) + delete(rawMsg, key) + case "lastModifiedTime": + err = unpopulateTimeRFC3339(val, "LastModifiedTime", &s.LastModifiedTime) + delete(rawMsg, key) + case "published": + err = unpopulate(val, "Published", &s.Published) + delete(rawMsg, key) + case "severity": + err = unpopulate(val, "Severity", &s.Severity) + delete(rawMsg, key) + case "stage": + err = unpopulate(val, "Stage", &s.Stage) + delete(rawMsg, key) + case "startTime": + err = unpopulateTimeRFC3339(val, "StartTime", &s.StartTime) + delete(rawMsg, key) + case "title": + err = unpopulate(val, "Title", &s.Title) + delete(rawMsg, key) + case "trackingId": + err = unpopulate(val, "TrackingID", &s.TrackingID) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + } + return nil +} + // MarshalJSON implements the json.Marshaller interface for type StatusBanner. func (s StatusBanner) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) @@ -706,6 +1765,84 @@ func (s *StatusBanner) UnmarshalJSON(data []byte) error { return nil } +// MarshalJSON implements the json.Marshaller interface for type SystemData. +func (s SystemData) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populateTimeRFC3339(objectMap, "createdAt", s.CreatedAt) + populate(objectMap, "createdBy", s.CreatedBy) + populate(objectMap, "createdByType", s.CreatedByType) + populateTimeRFC3339(objectMap, "lastModifiedAt", s.LastModifiedAt) + populate(objectMap, "lastModifiedBy", s.LastModifiedBy) + populate(objectMap, "lastModifiedByType", s.LastModifiedByType) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type SystemData. +func (s *SystemData) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "createdAt": + err = unpopulateTimeRFC3339(val, "CreatedAt", &s.CreatedAt) + delete(rawMsg, key) + case "createdBy": + err = unpopulate(val, "CreatedBy", &s.CreatedBy) + delete(rawMsg, key) + case "createdByType": + err = unpopulate(val, "CreatedByType", &s.CreatedByType) + delete(rawMsg, key) + case "lastModifiedAt": + err = unpopulateTimeRFC3339(val, "LastModifiedAt", &s.LastModifiedAt) + delete(rawMsg, key) + case "lastModifiedBy": + err = unpopulate(val, "LastModifiedBy", &s.LastModifiedBy) + delete(rawMsg, key) + case "lastModifiedByType": + err = unpopulate(val, "LastModifiedByType", &s.LastModifiedByType) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Update. +func (u Update) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "summary", u.Summary) + populateTimeRFC3339(objectMap, "updateDateTime", u.UpdateDateTime) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Update. +func (u *Update) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", u, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "summary": + err = unpopulate(val, "Summary", &u.Summary) + delete(rawMsg, key) + case "updateDateTime": + err = unpopulateTimeRFC3339(val, "UpdateDateTime", &u.UpdateDateTime) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", u, err) + } + } + return nil +} + func populate(m map[string]any, k string, v any) { if v == nil { return @@ -716,6 +1853,16 @@ func populate(m map[string]any, k string, v any) { } } +func populateAny(m map[string]any, k string, v any) { + if v == nil { + return + } else if azcore.IsNullValue(v) { + m[k] = nil + } else { + m[k] = v + } +} + func unpopulate(data json.RawMessage, fn string, v any) error { if data == nil { return nil diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/operations_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/operations_client.go index b991cedfd195..8c28b80c30fe 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/operations_client.go +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/operations_client.go @@ -41,7 +41,7 @@ func NewOperationsClient(credential azcore.TokenCredential, options *arm.ClientO // List - Lists available operations for the resourcehealth resource provider // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2020-05-01 +// Generated from API version 2022-10-01 // - options - OperationsClientListOptions contains the optional parameters for the OperationsClient.List method. func (client *OperationsClient) List(ctx context.Context, options *OperationsClientListOptions) (OperationsClientListResponse, error) { req, err := client.listCreateRequest(ctx, options) @@ -66,7 +66,7 @@ func (client *OperationsClient) listCreateRequest(ctx context.Context, options * return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2020-05-01") + reqQP.Set("api-version", "2022-10-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/operations_client_example_test.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/operations_client_example_test.go deleted file mode 100644 index d493e7c06033..000000000000 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/operations_client_example_test.go +++ /dev/null @@ -1,191 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. -// DO NOT EDIT. - -package armresourcehealth_test - -import ( - "context" - "log" - - "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcehealth/armresourcehealth" -) - -// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2020-05-01/examples/Operations_List.json -func ExampleOperationsClient_List() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - log.Fatalf("failed to obtain a credential: %v", err) - } - ctx := context.Background() - clientFactory, err := armresourcehealth.NewClientFactory("", cred, nil) - if err != nil { - log.Fatalf("failed to create client: %v", err) - } - res, err := clientFactory.NewOperationsClient().List(ctx, nil) - if err != nil { - log.Fatalf("failed to finish the request: %v", err) - } - // You could use response here. We use blank identifier for just demo purposes. - _ = res - // If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. - // res.OperationListResult = armresourcehealth.OperationListResult{ - // Value: []*armresourcehealth.Operation{ - // { - // Name: to.Ptr("Microsoft.ResourceHealth/Operations/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Get the operations available for the Microsoft ResourceHealth"), - // Operation: to.Ptr("Get Operations"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Availability Status"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/Notifications/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Receives ARM notifications"), - // Operation: to.Ptr("Receive notification"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Notification"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Gets the availability statuses for all resources in the specified scope"), - // Operation: to.Ptr("Get Availability Statuses"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Availability Status"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/AvailabilityStatuses/current/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Gets the availability status for the specified resource"), - // Operation: to.Ptr("Get Availability Status"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Availability Status"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/events/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Get Service Health Events for given subscription"), - // Operation: to.Ptr("Get Service Health Events"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Events"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/emergingissues/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Get Azure services' emerging issues"), - // Operation: to.Ptr("Get Azure Emerging Issues"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Emerging Issues"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/potentialoutages/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Provider: to.Ptr("Microsoft ResourceHealth"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/impactedResources/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Get Impacted Resources for given subscription"), - // Operation: to.Ptr("Get Impacted Resources"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Impacted Resources"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/register/action"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Registers the subscription for the Microsoft ResourceHealth"), - // Operation: to.Ptr("Register with the Provider"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Registration"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/unregister/action"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Unregisters the subscription for the Microsoft ResourceHealth"), - // Operation: to.Ptr("Unregister with the Provider"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Unregistration"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.Resourcehealth/healthevent/action"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Denotes the change in health state for the specified resource"), - // Operation: to.Ptr("HealthEvent Change"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Availability Status"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.Resourcehealth/healthevent/Activated/action"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Denotes the change in health state for the specified resource"), - // Operation: to.Ptr("Health Event Activated"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Health Event"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.Resourcehealth/healthevent/Updated/action"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Denotes the change in health state for the specified resource"), - // Operation: to.Ptr("Health Event Updated"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Health Event"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.Resourcehealth/healthevent/Resolved/action"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Denotes the change in health state for the specified resource"), - // Operation: to.Ptr("Health Event Resolved"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Health Event"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.Resourcehealth/healthevent/InProgress/action"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Denotes the change in health state for the specified resource"), - // Operation: to.Ptr("Health Event InProgress"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Health Event"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.Resourcehealth/healthevent/Pending/action"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Denotes the change in health state for the specified resource"), - // Operation: to.Ptr("Health Event Pending"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Health Event"), - // }, - // }, - // { - // Name: to.Ptr("Microsoft.ResourceHealth/metadata/read"), - // Display: &armresourcehealth.OperationDisplay{ - // Description: to.Ptr("Gets Metadata"), - // Operation: to.Ptr("Read Metadata"), - // Provider: to.Ptr("Microsoft ResourceHealth"), - // Resource: to.Ptr("Metadata"), - // }, - // }}, - // } -} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/response_types.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/response_types.go index d4faab81e730..24766440666a 100644 --- a/sdk/resourcemanager/resourcehealth/armresourcehealth/response_types.go +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/response_types.go @@ -29,7 +29,107 @@ type AvailabilityStatusesClientListResponse struct { AvailabilityStatusListResult } +// ChildAvailabilityStatusesClientGetByResourceResponse contains the response from method ChildAvailabilityStatusesClient.GetByResource. +type ChildAvailabilityStatusesClientGetByResourceResponse struct { + AvailabilityStatus +} + +// ChildAvailabilityStatusesClientListResponse contains the response from method ChildAvailabilityStatusesClient.NewListPager. +type ChildAvailabilityStatusesClientListResponse struct { + AvailabilityStatusListResult +} + +// ChildResourcesClientListResponse contains the response from method ChildResourcesClient.NewListPager. +type ChildResourcesClientListResponse struct { + AvailabilityStatusListResult +} + +// EmergingIssuesClientGetResponse contains the response from method EmergingIssuesClient.Get. +type EmergingIssuesClientGetResponse struct { + EmergingIssuesGetResult +} + +// EmergingIssuesClientListResponse contains the response from method EmergingIssuesClient.NewListPager. +type EmergingIssuesClientListResponse struct { + EmergingIssueListResult +} + +// EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse contains the response from method EventClient.FetchDetailsBySubscriptionIDAndTrackingID. +type EventClientFetchDetailsBySubscriptionIDAndTrackingIDResponse struct { + Event +} + +// EventClientFetchDetailsByTenantIDAndTrackingIDResponse contains the response from method EventClient.FetchDetailsByTenantIDAndTrackingID. +type EventClientFetchDetailsByTenantIDAndTrackingIDResponse struct { + Event +} + +// EventClientGetBySubscriptionIDAndTrackingIDResponse contains the response from method EventClient.GetBySubscriptionIDAndTrackingID. +type EventClientGetBySubscriptionIDAndTrackingIDResponse struct { + Event +} + +// EventClientGetByTenantIDAndTrackingIDResponse contains the response from method EventClient.GetByTenantIDAndTrackingID. +type EventClientGetByTenantIDAndTrackingIDResponse struct { + Event +} + +// EventsClientListBySingleResourceResponse contains the response from method EventsClient.NewListBySingleResourcePager. +type EventsClientListBySingleResourceResponse struct { + Events +} + +// EventsClientListBySubscriptionIDResponse contains the response from method EventsClient.NewListBySubscriptionIDPager. +type EventsClientListBySubscriptionIDResponse struct { + Events +} + +// EventsClientListByTenantIDResponse contains the response from method EventsClient.NewListByTenantIDPager. +type EventsClientListByTenantIDResponse struct { + Events +} + +// ImpactedResourcesClientGetByTenantIDResponse contains the response from method ImpactedResourcesClient.GetByTenantID. +type ImpactedResourcesClientGetByTenantIDResponse struct { + EventImpactedResource +} + +// ImpactedResourcesClientGetResponse contains the response from method ImpactedResourcesClient.Get. +type ImpactedResourcesClientGetResponse struct { + EventImpactedResource +} + +// ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse contains the response from method ImpactedResourcesClient.NewListBySubscriptionIDAndEventIDPager. +type ImpactedResourcesClientListBySubscriptionIDAndEventIDResponse struct { + EventImpactedResourceListResult +} + +// ImpactedResourcesClientListByTenantIDAndEventIDResponse contains the response from method ImpactedResourcesClient.NewListByTenantIDAndEventIDPager. +type ImpactedResourcesClientListByTenantIDAndEventIDResponse struct { + EventImpactedResourceListResult +} + +// MetadataClientGetEntityResponse contains the response from method MetadataClient.GetEntity. +type MetadataClientGetEntityResponse struct { + MetadataEntity +} + +// MetadataClientListResponse contains the response from method MetadataClient.NewListPager. +type MetadataClientListResponse struct { + MetadataEntityListResult +} + // OperationsClientListResponse contains the response from method OperationsClient.List. type OperationsClientListResponse struct { OperationListResult } + +// SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse contains the response from method SecurityAdvisoryImpactedResourcesClient.NewListBySubscriptionIDAndEventIDPager. +type SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse struct { + EventImpactedResourceListResult +} + +// SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse contains the response from method SecurityAdvisoryImpactedResourcesClient.NewListByTenantIDAndEventIDPager. +type SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse struct { + EventImpactedResourceListResult +} diff --git a/sdk/resourcemanager/resourcehealth/armresourcehealth/securityadvisoryimpactedresources_client.go b/sdk/resourcemanager/resourcehealth/armresourcehealth/securityadvisoryimpactedresources_client.go new file mode 100644 index 000000000000..701e81b2fb69 --- /dev/null +++ b/sdk/resourcemanager/resourcehealth/armresourcehealth/securityadvisoryimpactedresources_client.go @@ -0,0 +1,177 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcehealth + +import ( + "context" + "errors" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "net/url" + "strings" +) + +// SecurityAdvisoryImpactedResourcesClient contains the methods for the SecurityAdvisoryImpactedResources group. +// Don't use this type directly, use NewSecurityAdvisoryImpactedResourcesClient() instead. +type SecurityAdvisoryImpactedResourcesClient struct { + internal *arm.Client + subscriptionID string +} + +// NewSecurityAdvisoryImpactedResourcesClient creates a new instance of SecurityAdvisoryImpactedResourcesClient with the specified values. +// - subscriptionID - The ID of the target subscription. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewSecurityAdvisoryImpactedResourcesClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*SecurityAdvisoryImpactedResourcesClient, error) { + cl, err := arm.NewClient(moduleName+".SecurityAdvisoryImpactedResourcesClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &SecurityAdvisoryImpactedResourcesClient{ + subscriptionID: subscriptionID, + internal: cl, + } + return client, nil +} + +// NewListBySubscriptionIDAndEventIDPager - Lists impacted resources in the subscription by an event (Security Advisory). +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - options - SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDOptions contains the optional parameters +// for the SecurityAdvisoryImpactedResourcesClient.NewListBySubscriptionIDAndEventIDPager method. +func (client *SecurityAdvisoryImpactedResourcesClient) NewListBySubscriptionIDAndEventIDPager(eventTrackingID string, options *SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDOptions) *runtime.Pager[SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse] { + return runtime.NewPager(runtime.PagingHandler[SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse]{ + More: func(page SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse) (SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listBySubscriptionIDAndEventIDCreateRequest(ctx, eventTrackingID, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{}, runtime.NewResponseError(resp) + } + return client.listBySubscriptionIDAndEventIDHandleResponse(resp) + }, + }) +} + +// listBySubscriptionIDAndEventIDCreateRequest creates the ListBySubscriptionIDAndEventID request. +func (client *SecurityAdvisoryImpactedResourcesClient) listBySubscriptionIDAndEventIDCreateRequest(ctx context.Context, eventTrackingID string, options *SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDOptions) (*policy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.ResourceHealth/events/{eventTrackingId}/listSecurityAdvisoryImpactedResources" + if client.subscriptionID == "" { + return nil, errors.New("parameter client.subscriptionID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listBySubscriptionIDAndEventIDHandleResponse handles the ListBySubscriptionIDAndEventID response. +func (client *SecurityAdvisoryImpactedResourcesClient) listBySubscriptionIDAndEventIDHandleResponse(resp *http.Response) (SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse, error) { + result := SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.EventImpactedResourceListResult); err != nil { + return SecurityAdvisoryImpactedResourcesClientListBySubscriptionIDAndEventIDResponse{}, err + } + return result, nil +} + +// NewListByTenantIDAndEventIDPager - Lists impacted resources in the tenant by an event (Security Advisory). +// +// Generated from API version 2022-10-01 +// - eventTrackingID - Event Id which uniquely identifies ServiceHealth event. +// - options - SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDOptions contains the optional parameters for the +// SecurityAdvisoryImpactedResourcesClient.NewListByTenantIDAndEventIDPager method. +func (client *SecurityAdvisoryImpactedResourcesClient) NewListByTenantIDAndEventIDPager(eventTrackingID string, options *SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDOptions) *runtime.Pager[SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse] { + return runtime.NewPager(runtime.PagingHandler[SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse]{ + More: func(page SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse) (SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listByTenantIDAndEventIDCreateRequest(ctx, eventTrackingID, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse{}, runtime.NewResponseError(resp) + } + return client.listByTenantIDAndEventIDHandleResponse(resp) + }, + }) +} + +// listByTenantIDAndEventIDCreateRequest creates the ListByTenantIDAndEventID request. +func (client *SecurityAdvisoryImpactedResourcesClient) listByTenantIDAndEventIDCreateRequest(ctx context.Context, eventTrackingID string, options *SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceHealth/events/{eventTrackingId}/listSecurityAdvisoryImpactedResources" + if eventTrackingID == "" { + return nil, errors.New("parameter eventTrackingID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{eventTrackingId}", url.PathEscape(eventTrackingID)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2022-10-01") + if options != nil && options.Filter != nil { + reqQP.Set("$filter", *options.Filter) + } + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listByTenantIDAndEventIDHandleResponse handles the ListByTenantIDAndEventID response. +func (client *SecurityAdvisoryImpactedResourcesClient) listByTenantIDAndEventIDHandleResponse(resp *http.Response) (SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse, error) { + result := SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.EventImpactedResourceListResult); err != nil { + return SecurityAdvisoryImpactedResourcesClientListByTenantIDAndEventIDResponse{}, err + } + return result, nil +}