From 97f372c3edb3c1f83f54393e36c956c7e334cce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=AE=AD=E9=A3=9E?= Date: Thu, 15 Jul 2021 14:49:37 +0800 Subject: [PATCH 1/5] Generated from specification/mediaservices/resource-manager/readme.md tag package-2021-06 (commit hash: e3980786418c280ecd7ed2e141407ed0f63cd493) --- .../mgmt/media/mediaapi/models.go | 2 +- .../latest/mediaservices/mgmt/media/models.go | 69 +- .../mgmt/media/mediaapi/models.go | 2 +- .../mediaservices/mgmt/media/models.go | 69 +- .../mgmt/2021-06-01/media/CHANGELOG.md | 2 + .../mgmt/2021-06-01/media/_meta.json | 11 + .../mgmt/2021-06-01/media/accountfilters.go | 478 + .../mgmt/2021-06-01/media/assetfilters.go | 488 + .../mgmt/2021-06-01/media/assets.go | 720 + .../mgmt/2021-06-01/media/client.go | 41 + .../2021-06-01/media/contentkeypolicies.go | 568 + .../mgmt/2021-06-01/media/enums.go | 1526 ++ .../mgmt/2021-06-01/media/jobs.go | 574 + .../mgmt/2021-06-01/media/liveevents.go | 867 + .../mgmt/2021-06-01/media/liveoutputs.go | 448 + .../mgmt/2021-06-01/media/locations.go | 108 + .../2021-06-01/media/mediaapi/interfaces.go | 204 + .../mgmt/2021-06-01/media/mediaservices.go | 741 + .../mgmt/2021-06-01/media/models.go | 13323 ++++++++++++++++ .../mgmt/2021-06-01/media/operations.go | 98 + .../media/privateendpointconnections.go | 349 + .../2021-06-01/media/privatelinkresources.go | 185 + .../2021-06-01/media/streamingendpoints.go | 779 + .../2021-06-01/media/streaminglocators.go | 566 + .../2021-06-01/media/streamingpolicies.go | 444 + .../mgmt/2021-06-01/media/transforms.go | 484 + .../mgmt/2021-06-01/media/version.go | 19 + 27 files changed, 23111 insertions(+), 54 deletions(-) create mode 100644 services/mediaservices/mgmt/2021-06-01/media/CHANGELOG.md create mode 100644 services/mediaservices/mgmt/2021-06-01/media/_meta.json create mode 100644 services/mediaservices/mgmt/2021-06-01/media/accountfilters.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/assetfilters.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/assets.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/client.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/contentkeypolicies.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/enums.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/jobs.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/liveevents.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/liveoutputs.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/locations.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/mediaapi/interfaces.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/mediaservices.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/models.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/operations.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/privateendpointconnections.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/privatelinkresources.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/streamingendpoints.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/streaminglocators.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/streamingpolicies.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/transforms.go create mode 100644 services/mediaservices/mgmt/2021-06-01/media/version.go diff --git a/profiles/latest/mediaservices/mgmt/media/mediaapi/models.go b/profiles/latest/mediaservices/mgmt/media/mediaapi/models.go index ac2ae3618edb..1dbfd49de517 100644 --- a/profiles/latest/mediaservices/mgmt/media/mediaapi/models.go +++ b/profiles/latest/mediaservices/mgmt/media/mediaapi/models.go @@ -8,7 +8,7 @@ package mediaapi -import original "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-05-01/media/mediaapi" +import original "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-06-01/media/mediaapi" type AccountFiltersClientAPI = original.AccountFiltersClientAPI type AssetFiltersClientAPI = original.AssetFiltersClientAPI diff --git a/profiles/latest/mediaservices/mgmt/media/models.go b/profiles/latest/mediaservices/mgmt/media/models.go index 944475608cb0..c0f87a841c37 100644 --- a/profiles/latest/mediaservices/mgmt/media/models.go +++ b/profiles/latest/mediaservices/mgmt/media/models.go @@ -11,7 +11,7 @@ package media import ( "context" - original "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-05-01/media" + original "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-06-01/media" ) const ( @@ -100,6 +100,14 @@ const ( ChannelMappingStereoRight ChannelMapping = original.ChannelMappingStereoRight ) +type Complexity = original.Complexity + +const ( + ComplexityBalanced Complexity = original.ComplexityBalanced + ComplexityQuality Complexity = original.ComplexityQuality + ComplexitySpeed Complexity = original.ComplexitySpeed +) + type ContentKeyPolicyFairPlayRentalAndLeaseKeyType = original.ContentKeyPolicyFairPlayRentalAndLeaseKeyType const ( @@ -280,6 +288,13 @@ const ( InsightsTypeVideoInsightsOnly InsightsType = original.InsightsTypeVideoInsightsOnly ) +type InterleaveOutput = original.InterleaveOutput + +const ( + InterleaveOutputInterleavedOutput InterleaveOutput = original.InterleaveOutputInterleavedOutput + InterleaveOutputNonInterleavedOutput InterleaveOutput = original.InterleaveOutputNonInterleavedOutput +) + type JobErrorCategory = original.JobErrorCategory const ( @@ -326,9 +341,11 @@ const ( type LiveEventEncodingType = original.LiveEventEncodingType const ( - LiveEventEncodingTypeNone LiveEventEncodingType = original.LiveEventEncodingTypeNone - LiveEventEncodingTypePremium1080p LiveEventEncodingType = original.LiveEventEncodingTypePremium1080p - LiveEventEncodingTypeStandard LiveEventEncodingType = original.LiveEventEncodingTypeStandard + LiveEventEncodingTypeNone LiveEventEncodingType = original.LiveEventEncodingTypeNone + LiveEventEncodingTypePassthroughBasic LiveEventEncodingType = original.LiveEventEncodingTypePassthroughBasic + LiveEventEncodingTypePassthroughStandard LiveEventEncodingType = original.LiveEventEncodingTypePassthroughStandard + LiveEventEncodingTypePremium1080p LiveEventEncodingType = original.LiveEventEncodingTypePremium1080p + LiveEventEncodingTypeStandard LiveEventEncodingType = original.LiveEventEncodingTypeStandard ) type LiveEventInputProtocol = original.LiveEventInputProtocol @@ -358,13 +375,6 @@ const ( LiveOutputResourceStateRunning LiveOutputResourceState = original.LiveOutputResourceStateRunning ) -type ManagedIdentityType = original.ManagedIdentityType - -const ( - ManagedIdentityTypeNone ManagedIdentityType = original.ManagedIdentityTypeNone - ManagedIdentityTypeSystemAssigned ManagedIdentityType = original.ManagedIdentityTypeSystemAssigned -) - type MetricAggregationType = original.MetricAggregationType const ( @@ -556,6 +566,13 @@ const ( PrivateEndpointServiceConnectionStatusRejected PrivateEndpointServiceConnectionStatus = original.PrivateEndpointServiceConnectionStatusRejected ) +type PublicNetworkAccess = original.PublicNetworkAccess + +const ( + PublicNetworkAccessDisabled PublicNetworkAccess = original.PublicNetworkAccessDisabled + PublicNetworkAccessEnabled PublicNetworkAccess = original.PublicNetworkAccessEnabled +) + type Rotation = original.Rotation const ( @@ -654,7 +671,6 @@ const ( VideoSyncModeVfr VideoSyncMode = original.VideoSyncModeVfr ) -type APIError = original.APIError type AacAudio = original.AacAudio type AbsoluteClipTime = original.AbsoluteClipTime type AccessControl = original.AccessControl @@ -759,6 +775,9 @@ type EdgeUsageDataEventHub = original.EdgeUsageDataEventHub type EnabledProtocols = original.EnabledProtocols type EntityNameAvailabilityCheckOutput = original.EntityNameAvailabilityCheckOutput type EnvelopeEncryption = original.EnvelopeEncryption +type ErrorAdditionalInfo = original.ErrorAdditionalInfo +type ErrorDetail = original.ErrorDetail +type ErrorResponse = original.ErrorResponse type FaceDetectorPreset = original.FaceDetectorPreset type FilterProperties = original.FilterProperties type FilterTrackPropertyCondition = original.FilterTrackPropertyCondition @@ -838,7 +857,6 @@ type LiveOutputProperties = original.LiveOutputProperties type LiveOutputsClient = original.LiveOutputsClient type LiveOutputsCreateFuture = original.LiveOutputsCreateFuture type LiveOutputsDeleteFuture = original.LiveOutputsDeleteFuture -type Location = original.Location type LocationsClient = original.LocationsClient type LogSpecification = original.LogSpecification type MediaservicesClient = original.MediaservicesClient @@ -847,11 +865,8 @@ type MetricSpecification = original.MetricSpecification type Mp4Format = original.Mp4Format type MultiBitrateFormat = original.MultiBitrateFormat type NoEncryption = original.NoEncryption -type ODataError = original.ODataError type Operation = original.Operation type OperationCollection = original.OperationCollection -type OperationCollectionIterator = original.OperationCollectionIterator -type OperationCollectionPage = original.OperationCollectionPage type OperationDisplay = original.OperationDisplay type OperationsClient = original.OperationsClient type OutputFile = original.OutputFile @@ -861,6 +876,7 @@ type PngImage = original.PngImage type PngLayer = original.PngLayer type PresentationTimeRange = original.PresentationTimeRange type Preset = original.Preset +type PresetConfigurations = original.PresetConfigurations type PrivateEndpoint = original.PrivateEndpoint type PrivateEndpointConnection = original.PrivateEndpointConnection type PrivateEndpointConnectionListResult = original.PrivateEndpointConnectionListResult @@ -872,10 +888,10 @@ type PrivateLinkResourceProperties = original.PrivateLinkResourceProperties type PrivateLinkResourcesClient = original.PrivateLinkResourcesClient type PrivateLinkServiceConnectionState = original.PrivateLinkServiceConnectionState type Properties = original.Properties -type Provider = original.Provider type ProxyResource = original.ProxyResource type Rectangle = original.Rectangle type Resource = original.Resource +type ResourceIdentity = original.ResourceIdentity type SelectAudioTrackByAttribute = original.SelectAudioTrackByAttribute type SelectAudioTrackByID = original.SelectAudioTrackByID type SelectVideoTrackByAttribute = original.SelectVideoTrackByAttribute @@ -938,6 +954,7 @@ type TransformOutput = original.TransformOutput type TransformProperties = original.TransformProperties type TransformsClient = original.TransformsClient type TransportStreamFormat = original.TransportStreamFormat +type UserAssignedManagedIdentity = original.UserAssignedManagedIdentity type UtcClipTime = original.UtcClipTime type Video = original.Video type VideoAnalyzerPreset = original.VideoAnalyzerPreset @@ -1044,12 +1061,6 @@ func NewMediaservicesClient(subscriptionID string) MediaservicesClient { func NewMediaservicesClientWithBaseURI(baseURI string, subscriptionID string) MediaservicesClient { return original.NewMediaservicesClientWithBaseURI(baseURI, subscriptionID) } -func NewOperationCollectionIterator(page OperationCollectionPage) OperationCollectionIterator { - return original.NewOperationCollectionIterator(page) -} -func NewOperationCollectionPage(cur OperationCollection, getNextPage func(context.Context, OperationCollection) (OperationCollection, error)) OperationCollectionPage { - return original.NewOperationCollectionPage(cur, getNextPage) -} func NewOperationsClient(subscriptionID string) OperationsClient { return original.NewOperationsClient(subscriptionID) } @@ -1155,6 +1166,9 @@ func PossibleBlurTypeValues() []BlurType { func PossibleChannelMappingValues() []ChannelMapping { return original.PossibleChannelMappingValues() } +func PossibleComplexityValues() []Complexity { + return original.PossibleComplexityValues() +} func PossibleContentKeyPolicyFairPlayRentalAndLeaseKeyTypeValues() []ContentKeyPolicyFairPlayRentalAndLeaseKeyType { return original.PossibleContentKeyPolicyFairPlayRentalAndLeaseKeyTypeValues() } @@ -1215,6 +1229,9 @@ func PossibleH265VideoProfileValues() []H265VideoProfile { func PossibleInsightsTypeValues() []InsightsType { return original.PossibleInsightsTypeValues() } +func PossibleInterleaveOutputValues() []InterleaveOutput { + return original.PossibleInterleaveOutputValues() +} func PossibleJobErrorCategoryValues() []JobErrorCategory { return original.PossibleJobErrorCategoryValues() } @@ -1239,9 +1256,6 @@ func PossibleLiveEventResourceStateValues() []LiveEventResourceState { func PossibleLiveOutputResourceStateValues() []LiveOutputResourceState { return original.PossibleLiveOutputResourceStateValues() } -func PossibleManagedIdentityTypeValues() []ManagedIdentityType { - return original.PossibleManagedIdentityTypeValues() -} func PossibleMetricAggregationTypeValues() []MetricAggregationType { return original.PossibleMetricAggregationTypeValues() } @@ -1302,6 +1316,9 @@ func PossiblePrivateEndpointConnectionProvisioningStateValues() []PrivateEndpoin func PossiblePrivateEndpointServiceConnectionStatusValues() []PrivateEndpointServiceConnectionStatus { return original.PossiblePrivateEndpointServiceConnectionStatusValues() } +func PossiblePublicNetworkAccessValues() []PublicNetworkAccess { + return original.PossiblePublicNetworkAccessValues() +} func PossibleRotationValues() []Rotation { return original.PossibleRotationValues() } diff --git a/profiles/preview/mediaservices/mgmt/media/mediaapi/models.go b/profiles/preview/mediaservices/mgmt/media/mediaapi/models.go index ac2ae3618edb..1dbfd49de517 100644 --- a/profiles/preview/mediaservices/mgmt/media/mediaapi/models.go +++ b/profiles/preview/mediaservices/mgmt/media/mediaapi/models.go @@ -8,7 +8,7 @@ package mediaapi -import original "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-05-01/media/mediaapi" +import original "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-06-01/media/mediaapi" type AccountFiltersClientAPI = original.AccountFiltersClientAPI type AssetFiltersClientAPI = original.AssetFiltersClientAPI diff --git a/profiles/preview/mediaservices/mgmt/media/models.go b/profiles/preview/mediaservices/mgmt/media/models.go index 745f9bf83b99..5de4ef5d6ed4 100644 --- a/profiles/preview/mediaservices/mgmt/media/models.go +++ b/profiles/preview/mediaservices/mgmt/media/models.go @@ -11,7 +11,7 @@ package media import ( "context" - original "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-05-01/media" + original "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-06-01/media" ) const ( @@ -100,6 +100,14 @@ const ( ChannelMappingStereoRight ChannelMapping = original.ChannelMappingStereoRight ) +type Complexity = original.Complexity + +const ( + ComplexityBalanced Complexity = original.ComplexityBalanced + ComplexityQuality Complexity = original.ComplexityQuality + ComplexitySpeed Complexity = original.ComplexitySpeed +) + type ContentKeyPolicyFairPlayRentalAndLeaseKeyType = original.ContentKeyPolicyFairPlayRentalAndLeaseKeyType const ( @@ -280,6 +288,13 @@ const ( InsightsTypeVideoInsightsOnly InsightsType = original.InsightsTypeVideoInsightsOnly ) +type InterleaveOutput = original.InterleaveOutput + +const ( + InterleaveOutputInterleavedOutput InterleaveOutput = original.InterleaveOutputInterleavedOutput + InterleaveOutputNonInterleavedOutput InterleaveOutput = original.InterleaveOutputNonInterleavedOutput +) + type JobErrorCategory = original.JobErrorCategory const ( @@ -326,9 +341,11 @@ const ( type LiveEventEncodingType = original.LiveEventEncodingType const ( - LiveEventEncodingTypeNone LiveEventEncodingType = original.LiveEventEncodingTypeNone - LiveEventEncodingTypePremium1080p LiveEventEncodingType = original.LiveEventEncodingTypePremium1080p - LiveEventEncodingTypeStandard LiveEventEncodingType = original.LiveEventEncodingTypeStandard + LiveEventEncodingTypeNone LiveEventEncodingType = original.LiveEventEncodingTypeNone + LiveEventEncodingTypePassthroughBasic LiveEventEncodingType = original.LiveEventEncodingTypePassthroughBasic + LiveEventEncodingTypePassthroughStandard LiveEventEncodingType = original.LiveEventEncodingTypePassthroughStandard + LiveEventEncodingTypePremium1080p LiveEventEncodingType = original.LiveEventEncodingTypePremium1080p + LiveEventEncodingTypeStandard LiveEventEncodingType = original.LiveEventEncodingTypeStandard ) type LiveEventInputProtocol = original.LiveEventInputProtocol @@ -358,13 +375,6 @@ const ( LiveOutputResourceStateRunning LiveOutputResourceState = original.LiveOutputResourceStateRunning ) -type ManagedIdentityType = original.ManagedIdentityType - -const ( - ManagedIdentityTypeNone ManagedIdentityType = original.ManagedIdentityTypeNone - ManagedIdentityTypeSystemAssigned ManagedIdentityType = original.ManagedIdentityTypeSystemAssigned -) - type MetricAggregationType = original.MetricAggregationType const ( @@ -556,6 +566,13 @@ const ( PrivateEndpointServiceConnectionStatusRejected PrivateEndpointServiceConnectionStatus = original.PrivateEndpointServiceConnectionStatusRejected ) +type PublicNetworkAccess = original.PublicNetworkAccess + +const ( + PublicNetworkAccessDisabled PublicNetworkAccess = original.PublicNetworkAccessDisabled + PublicNetworkAccessEnabled PublicNetworkAccess = original.PublicNetworkAccessEnabled +) + type Rotation = original.Rotation const ( @@ -654,7 +671,6 @@ const ( VideoSyncModeVfr VideoSyncMode = original.VideoSyncModeVfr ) -type APIError = original.APIError type AacAudio = original.AacAudio type AbsoluteClipTime = original.AbsoluteClipTime type AccessControl = original.AccessControl @@ -759,6 +775,9 @@ type EdgeUsageDataEventHub = original.EdgeUsageDataEventHub type EnabledProtocols = original.EnabledProtocols type EntityNameAvailabilityCheckOutput = original.EntityNameAvailabilityCheckOutput type EnvelopeEncryption = original.EnvelopeEncryption +type ErrorAdditionalInfo = original.ErrorAdditionalInfo +type ErrorDetail = original.ErrorDetail +type ErrorResponse = original.ErrorResponse type FaceDetectorPreset = original.FaceDetectorPreset type FilterProperties = original.FilterProperties type FilterTrackPropertyCondition = original.FilterTrackPropertyCondition @@ -838,7 +857,6 @@ type LiveOutputProperties = original.LiveOutputProperties type LiveOutputsClient = original.LiveOutputsClient type LiveOutputsCreateFuture = original.LiveOutputsCreateFuture type LiveOutputsDeleteFuture = original.LiveOutputsDeleteFuture -type Location = original.Location type LocationsClient = original.LocationsClient type LogSpecification = original.LogSpecification type MediaservicesClient = original.MediaservicesClient @@ -847,11 +865,8 @@ type MetricSpecification = original.MetricSpecification type Mp4Format = original.Mp4Format type MultiBitrateFormat = original.MultiBitrateFormat type NoEncryption = original.NoEncryption -type ODataError = original.ODataError type Operation = original.Operation type OperationCollection = original.OperationCollection -type OperationCollectionIterator = original.OperationCollectionIterator -type OperationCollectionPage = original.OperationCollectionPage type OperationDisplay = original.OperationDisplay type OperationsClient = original.OperationsClient type OutputFile = original.OutputFile @@ -861,6 +876,7 @@ type PngImage = original.PngImage type PngLayer = original.PngLayer type PresentationTimeRange = original.PresentationTimeRange type Preset = original.Preset +type PresetConfigurations = original.PresetConfigurations type PrivateEndpoint = original.PrivateEndpoint type PrivateEndpointConnection = original.PrivateEndpointConnection type PrivateEndpointConnectionListResult = original.PrivateEndpointConnectionListResult @@ -872,10 +888,10 @@ type PrivateLinkResourceProperties = original.PrivateLinkResourceProperties type PrivateLinkResourcesClient = original.PrivateLinkResourcesClient type PrivateLinkServiceConnectionState = original.PrivateLinkServiceConnectionState type Properties = original.Properties -type Provider = original.Provider type ProxyResource = original.ProxyResource type Rectangle = original.Rectangle type Resource = original.Resource +type ResourceIdentity = original.ResourceIdentity type SelectAudioTrackByAttribute = original.SelectAudioTrackByAttribute type SelectAudioTrackByID = original.SelectAudioTrackByID type SelectVideoTrackByAttribute = original.SelectVideoTrackByAttribute @@ -938,6 +954,7 @@ type TransformOutput = original.TransformOutput type TransformProperties = original.TransformProperties type TransformsClient = original.TransformsClient type TransportStreamFormat = original.TransportStreamFormat +type UserAssignedManagedIdentity = original.UserAssignedManagedIdentity type UtcClipTime = original.UtcClipTime type Video = original.Video type VideoAnalyzerPreset = original.VideoAnalyzerPreset @@ -1044,12 +1061,6 @@ func NewMediaservicesClient(subscriptionID string) MediaservicesClient { func NewMediaservicesClientWithBaseURI(baseURI string, subscriptionID string) MediaservicesClient { return original.NewMediaservicesClientWithBaseURI(baseURI, subscriptionID) } -func NewOperationCollectionIterator(page OperationCollectionPage) OperationCollectionIterator { - return original.NewOperationCollectionIterator(page) -} -func NewOperationCollectionPage(cur OperationCollection, getNextPage func(context.Context, OperationCollection) (OperationCollection, error)) OperationCollectionPage { - return original.NewOperationCollectionPage(cur, getNextPage) -} func NewOperationsClient(subscriptionID string) OperationsClient { return original.NewOperationsClient(subscriptionID) } @@ -1155,6 +1166,9 @@ func PossibleBlurTypeValues() []BlurType { func PossibleChannelMappingValues() []ChannelMapping { return original.PossibleChannelMappingValues() } +func PossibleComplexityValues() []Complexity { + return original.PossibleComplexityValues() +} func PossibleContentKeyPolicyFairPlayRentalAndLeaseKeyTypeValues() []ContentKeyPolicyFairPlayRentalAndLeaseKeyType { return original.PossibleContentKeyPolicyFairPlayRentalAndLeaseKeyTypeValues() } @@ -1215,6 +1229,9 @@ func PossibleH265VideoProfileValues() []H265VideoProfile { func PossibleInsightsTypeValues() []InsightsType { return original.PossibleInsightsTypeValues() } +func PossibleInterleaveOutputValues() []InterleaveOutput { + return original.PossibleInterleaveOutputValues() +} func PossibleJobErrorCategoryValues() []JobErrorCategory { return original.PossibleJobErrorCategoryValues() } @@ -1239,9 +1256,6 @@ func PossibleLiveEventResourceStateValues() []LiveEventResourceState { func PossibleLiveOutputResourceStateValues() []LiveOutputResourceState { return original.PossibleLiveOutputResourceStateValues() } -func PossibleManagedIdentityTypeValues() []ManagedIdentityType { - return original.PossibleManagedIdentityTypeValues() -} func PossibleMetricAggregationTypeValues() []MetricAggregationType { return original.PossibleMetricAggregationTypeValues() } @@ -1302,6 +1316,9 @@ func PossiblePrivateEndpointConnectionProvisioningStateValues() []PrivateEndpoin func PossiblePrivateEndpointServiceConnectionStatusValues() []PrivateEndpointServiceConnectionStatus { return original.PossiblePrivateEndpointServiceConnectionStatusValues() } +func PossiblePublicNetworkAccessValues() []PublicNetworkAccess { + return original.PossiblePublicNetworkAccessValues() +} func PossibleRotationValues() []Rotation { return original.PossibleRotationValues() } diff --git a/services/mediaservices/mgmt/2021-06-01/media/CHANGELOG.md b/services/mediaservices/mgmt/2021-06-01/media/CHANGELOG.md new file mode 100644 index 000000000000..52911e4cc5e4 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/CHANGELOG.md @@ -0,0 +1,2 @@ +# Change History + diff --git a/services/mediaservices/mgmt/2021-06-01/media/_meta.json b/services/mediaservices/mgmt/2021-06-01/media/_meta.json new file mode 100644 index 000000000000..01425b7beb6f --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/_meta.json @@ -0,0 +1,11 @@ +{ + "commit": "e3980786418c280ecd7ed2e141407ed0f63cd493", + "readme": "/_/azure-rest-api-specs/specification/mediaservices/resource-manager/readme.md", + "tag": "package-2021-06", + "use": "@microsoft.azure/autorest.go@2.1.183", + "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", + "autorest_command": "autorest --use=@microsoft.azure/autorest.go@2.1.183 --tag=package-2021-06 --go-sdk-folder=/_/azure-sdk-for-go --go --verbose --use-onever --version=V2 --go.license-header=MICROSOFT_MIT_NO_VERSION --enum-prefix /_/azure-rest-api-specs/specification/mediaservices/resource-manager/readme.md", + "additional_properties": { + "additional_options": "--go --verbose --use-onever --version=V2 --go.license-header=MICROSOFT_MIT_NO_VERSION --enum-prefix" + } +} \ No newline at end of file diff --git a/services/mediaservices/mgmt/2021-06-01/media/accountfilters.go b/services/mediaservices/mgmt/2021-06-01/media/accountfilters.go new file mode 100644 index 000000000000..efd9364a9ce6 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/accountfilters.go @@ -0,0 +1,478 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// AccountFiltersClient is the client for the AccountFilters methods of the Media service. +type AccountFiltersClient struct { + BaseClient +} + +// NewAccountFiltersClient creates an instance of the AccountFiltersClient client. +func NewAccountFiltersClient(subscriptionID string) AccountFiltersClient { + return NewAccountFiltersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewAccountFiltersClientWithBaseURI creates an instance of the AccountFiltersClient client using a custom endpoint. +// Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewAccountFiltersClientWithBaseURI(baseURI string, subscriptionID string) AccountFiltersClient { + return AccountFiltersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates an Account Filter in the Media Services account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filterName - the Account Filter name +// parameters - the request parameters +func (client AccountFiltersClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, filterName string, parameters AccountFilter) (result AccountFilter, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AccountFiltersClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.FilterProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.FilterProperties.FirstQuality", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.FilterProperties.FirstQuality.Bitrate", Name: validation.Null, Rule: true, Chain: nil}}}, + }}}}}); err != nil { + return result, validation.NewError("media.AccountFiltersClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, accountName, filterName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "CreateOrUpdate", resp, "Failure responding to request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client AccountFiltersClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, filterName string, parameters AccountFilter) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "filterName": autorest.Encode("path", filterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/accountFilters/{filterName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client AccountFiltersClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client AccountFiltersClient) CreateOrUpdateResponder(resp *http.Response) (result AccountFilter, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes an Account Filter in the Media Services account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filterName - the Account Filter name +func (client AccountFiltersClient) Delete(ctx context.Context, resourceGroupName string, accountName string, filterName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AccountFiltersClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, filterName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client AccountFiltersClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, filterName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "filterName": autorest.Encode("path", filterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/accountFilters/{filterName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client AccountFiltersClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client AccountFiltersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get the details of an Account Filter in the Media Services account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filterName - the Account Filter name +func (client AccountFiltersClient) Get(ctx context.Context, resourceGroupName string, accountName string, filterName string) (result AccountFilter, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AccountFiltersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, filterName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client AccountFiltersClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, filterName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "filterName": autorest.Encode("path", filterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/accountFilters/{filterName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client AccountFiltersClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client AccountFiltersClient) GetResponder(resp *http.Response) (result AccountFilter, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List list Account Filters in the Media Services account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client AccountFiltersClient) List(ctx context.Context, resourceGroupName string, accountName string) (result AccountFilterCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AccountFiltersClient.List") + defer func() { + sc := -1 + if result.afc.Response.Response != nil { + sc = result.afc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.afc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "List", resp, "Failure sending request") + return + } + + result.afc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "List", resp, "Failure responding to request") + return + } + if result.afc.hasNextLink() && result.afc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client AccountFiltersClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/accountFilters", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client AccountFiltersClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client AccountFiltersClient) ListResponder(resp *http.Response) (result AccountFilterCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client AccountFiltersClient) listNextResults(ctx context.Context, lastResults AccountFilterCollection) (result AccountFilterCollection, err error) { + req, err := lastResults.accountFilterCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.AccountFiltersClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.AccountFiltersClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client AccountFiltersClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string) (result AccountFilterCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AccountFiltersClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName) + return +} + +// Update updates an existing Account Filter in the Media Services account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filterName - the Account Filter name +// parameters - the request parameters +func (client AccountFiltersClient) Update(ctx context.Context, resourceGroupName string, accountName string, filterName string, parameters AccountFilter) (result AccountFilter, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AccountFiltersClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, filterName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AccountFiltersClient", "Update", resp, "Failure responding to request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client AccountFiltersClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, filterName string, parameters AccountFilter) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "filterName": autorest.Encode("path", filterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/accountFilters/{filterName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client AccountFiltersClient) UpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client AccountFiltersClient) UpdateResponder(resp *http.Response) (result AccountFilter, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/assetfilters.go b/services/mediaservices/mgmt/2021-06-01/media/assetfilters.go new file mode 100644 index 000000000000..3ff593a5eb3b --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/assetfilters.go @@ -0,0 +1,488 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// AssetFiltersClient is the client for the AssetFilters methods of the Media service. +type AssetFiltersClient struct { + BaseClient +} + +// NewAssetFiltersClient creates an instance of the AssetFiltersClient client. +func NewAssetFiltersClient(subscriptionID string) AssetFiltersClient { + return NewAssetFiltersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewAssetFiltersClientWithBaseURI creates an instance of the AssetFiltersClient client using a custom endpoint. Use +// this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewAssetFiltersClientWithBaseURI(baseURI string, subscriptionID string) AssetFiltersClient { + return AssetFiltersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates an Asset Filter associated with the specified Asset. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +// filterName - the Asset Filter name +// parameters - the request parameters +func (client AssetFiltersClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string, parameters AssetFilter) (result AssetFilter, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetFiltersClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.FilterProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.FilterProperties.FirstQuality", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.FilterProperties.FirstQuality.Bitrate", Name: validation.Null, Rule: true, Chain: nil}}}, + }}}}}); err != nil { + return result, validation.NewError("media.AssetFiltersClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, accountName, assetName, filterName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "CreateOrUpdate", resp, "Failure responding to request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client AssetFiltersClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string, parameters AssetFilter) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "filterName": autorest.Encode("path", filterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}/assetFilters/{filterName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client AssetFiltersClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client AssetFiltersClient) CreateOrUpdateResponder(resp *http.Response) (result AssetFilter, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes an Asset Filter associated with the specified Asset. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +// filterName - the Asset Filter name +func (client AssetFiltersClient) Delete(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetFiltersClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, assetName, filterName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client AssetFiltersClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "filterName": autorest.Encode("path", filterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}/assetFilters/{filterName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client AssetFiltersClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client AssetFiltersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get the details of an Asset Filter associated with the specified Asset. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +// filterName - the Asset Filter name +func (client AssetFiltersClient) Get(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string) (result AssetFilter, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetFiltersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, assetName, filterName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client AssetFiltersClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "filterName": autorest.Encode("path", filterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}/assetFilters/{filterName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client AssetFiltersClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client AssetFiltersClient) GetResponder(resp *http.Response) (result AssetFilter, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List list Asset Filters associated with the specified Asset. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +func (client AssetFiltersClient) List(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result AssetFilterCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetFiltersClient.List") + defer func() { + sc := -1 + if result.afc.Response.Response != nil { + sc = result.afc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName, assetName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.afc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "List", resp, "Failure sending request") + return + } + + result.afc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "List", resp, "Failure responding to request") + return + } + if result.afc.hasNextLink() && result.afc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client AssetFiltersClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}/assetFilters", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client AssetFiltersClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client AssetFiltersClient) ListResponder(resp *http.Response) (result AssetFilterCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client AssetFiltersClient) listNextResults(ctx context.Context, lastResults AssetFilterCollection) (result AssetFilterCollection, err error) { + req, err := lastResults.assetFilterCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.AssetFiltersClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.AssetFiltersClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client AssetFiltersClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result AssetFilterCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetFiltersClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName, assetName) + return +} + +// Update updates an existing Asset Filter associated with the specified Asset. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +// filterName - the Asset Filter name +// parameters - the request parameters +func (client AssetFiltersClient) Update(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string, parameters AssetFilter) (result AssetFilter, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetFiltersClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, assetName, filterName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetFiltersClient", "Update", resp, "Failure responding to request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client AssetFiltersClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string, parameters AssetFilter) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "filterName": autorest.Encode("path", filterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}/assetFilters/{filterName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client AssetFiltersClient) UpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client AssetFiltersClient) UpdateResponder(resp *http.Response) (result AssetFilter, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/assets.go b/services/mediaservices/mgmt/2021-06-01/media/assets.go new file mode 100644 index 000000000000..400eb63f3a34 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/assets.go @@ -0,0 +1,720 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// AssetsClient is the client for the Assets methods of the Media service. +type AssetsClient struct { + BaseClient +} + +// NewAssetsClient creates an instance of the AssetsClient client. +func NewAssetsClient(subscriptionID string) AssetsClient { + return NewAssetsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewAssetsClientWithBaseURI creates an instance of the AssetsClient client using a custom endpoint. Use this when +// interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewAssetsClientWithBaseURI(baseURI string, subscriptionID string) AssetsClient { + return AssetsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates an Asset in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +// parameters - the request parameters +func (client AssetsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters Asset) (result Asset, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, accountName, assetName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetsClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "CreateOrUpdate", resp, "Failure responding to request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client AssetsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters Asset) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client AssetsClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client AssetsClient) CreateOrUpdateResponder(resp *http.Response) (result Asset, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes an Asset in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +func (client AssetsClient) Delete(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, assetName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client AssetsClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client AssetsClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client AssetsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get the details of an Asset in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +func (client AssetsClient) Get(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result Asset, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, assetName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client AssetsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client AssetsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client AssetsClient) GetResponder(resp *http.Response) (result Asset, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetEncryptionKey gets the Asset storage encryption keys used to decrypt content created by version 2 of the Media +// Services API +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +func (client AssetsClient) GetEncryptionKey(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result StorageEncryptedAssetDecryptionData, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.GetEncryptionKey") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetEncryptionKeyPreparer(ctx, resourceGroupName, accountName, assetName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "GetEncryptionKey", nil, "Failure preparing request") + return + } + + resp, err := client.GetEncryptionKeySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetsClient", "GetEncryptionKey", resp, "Failure sending request") + return + } + + result, err = client.GetEncryptionKeyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "GetEncryptionKey", resp, "Failure responding to request") + return + } + + return +} + +// GetEncryptionKeyPreparer prepares the GetEncryptionKey request. +func (client AssetsClient) GetEncryptionKeyPreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}/getEncryptionKey", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetEncryptionKeySender sends the GetEncryptionKey request. The method will close the +// http.Response Body if it receives an error. +func (client AssetsClient) GetEncryptionKeySender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetEncryptionKeyResponder handles the response to the GetEncryptionKey request. The method always +// closes the http.Response Body. +func (client AssetsClient) GetEncryptionKeyResponder(resp *http.Response) (result StorageEncryptedAssetDecryptionData, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List list Assets in the Media Services account with optional filtering and ordering +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filter - restricts the set of items returned. +// top - specifies a non-negative integer n that limits the number of items returned from a collection. The +// service returns the number of available items up to but not greater than the specified value n. +// orderby - specifies the key by which the result collection should be ordered. +func (client AssetsClient) List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result AssetCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.List") + defer func() { + sc := -1 + if result.ac.Response.Response != nil { + sc = result.ac.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName, filter, top, orderby) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.ac.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetsClient", "List", resp, "Failure sending request") + return + } + + result.ac, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "List", resp, "Failure responding to request") + return + } + if result.ac.hasNextLink() && result.ac.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client AssetsClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(filter) > 0 { + queryParameters["$filter"] = autorest.Encode("query", filter) + } + if top != nil { + queryParameters["$top"] = autorest.Encode("query", *top) + } + if len(orderby) > 0 { + queryParameters["$orderby"] = autorest.Encode("query", orderby) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client AssetsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client AssetsClient) ListResponder(resp *http.Response) (result AssetCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client AssetsClient) listNextResults(ctx context.Context, lastResults AssetCollection) (result AssetCollection, err error) { + req, err := lastResults.assetCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.AssetsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.AssetsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client AssetsClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result AssetCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName, filter, top, orderby) + return +} + +// ListContainerSas lists storage container URLs with shared access signatures (SAS) for uploading and downloading +// Asset content. The signatures are derived from the storage account keys. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +// parameters - the request parameters +func (client AssetsClient) ListContainerSas(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters ListContainerSasInput) (result AssetContainerSas, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.ListContainerSas") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListContainerSasPreparer(ctx, resourceGroupName, accountName, assetName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "ListContainerSas", nil, "Failure preparing request") + return + } + + resp, err := client.ListContainerSasSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetsClient", "ListContainerSas", resp, "Failure sending request") + return + } + + result, err = client.ListContainerSasResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "ListContainerSas", resp, "Failure responding to request") + return + } + + return +} + +// ListContainerSasPreparer prepares the ListContainerSas request. +func (client AssetsClient) ListContainerSasPreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters ListContainerSasInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}/listContainerSas", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListContainerSasSender sends the ListContainerSas request. The method will close the +// http.Response Body if it receives an error. +func (client AssetsClient) ListContainerSasSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListContainerSasResponder handles the response to the ListContainerSas request. The method always +// closes the http.Response Body. +func (client AssetsClient) ListContainerSasResponder(resp *http.Response) (result AssetContainerSas, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListStreamingLocators lists Streaming Locators which are associated with this asset. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +func (client AssetsClient) ListStreamingLocators(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result ListStreamingLocatorsResponse, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.ListStreamingLocators") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListStreamingLocatorsPreparer(ctx, resourceGroupName, accountName, assetName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "ListStreamingLocators", nil, "Failure preparing request") + return + } + + resp, err := client.ListStreamingLocatorsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetsClient", "ListStreamingLocators", resp, "Failure sending request") + return + } + + result, err = client.ListStreamingLocatorsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "ListStreamingLocators", resp, "Failure responding to request") + return + } + + return +} + +// ListStreamingLocatorsPreparer prepares the ListStreamingLocators request. +func (client AssetsClient) ListStreamingLocatorsPreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}/listStreamingLocators", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListStreamingLocatorsSender sends the ListStreamingLocators request. The method will close the +// http.Response Body if it receives an error. +func (client AssetsClient) ListStreamingLocatorsSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListStreamingLocatorsResponder handles the response to the ListStreamingLocators request. The method always +// closes the http.Response Body. +func (client AssetsClient) ListStreamingLocatorsResponder(resp *http.Response) (result ListStreamingLocatorsResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Update updates an existing Asset in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// assetName - the Asset name. +// parameters - the request parameters +func (client AssetsClient) Update(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters Asset) (result Asset, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetsClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, assetName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.AssetsClient", "Update", resp, "Failure responding to request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client AssetsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters Asset) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "assetName": autorest.Encode("path", assetName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/assets/{assetName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client AssetsClient) UpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client AssetsClient) UpdateResponder(resp *http.Response) (result Asset, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/client.go b/services/mediaservices/mgmt/2021-06-01/media/client.go new file mode 100644 index 000000000000..5eb5a9a19ad6 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/client.go @@ -0,0 +1,41 @@ +// Package media implements the Azure ARM Media service API version 2021-06-01. +// +// +package media + +// 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. + +import ( + "github.com/Azure/go-autorest/autorest" +) + +const ( + // DefaultBaseURI is the default URI used for the service Media + DefaultBaseURI = "https://management.azure.com" +) + +// BaseClient is the base client for Media. +type BaseClient struct { + autorest.Client + BaseURI string + SubscriptionID string +} + +// New creates an instance of the BaseClient client. +func New(subscriptionID string) BaseClient { + return NewWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewWithBaseURI creates an instance of the BaseClient client using a custom endpoint. Use this when interacting with +// an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { + return BaseClient{ + Client: autorest.NewClientWithUserAgent(UserAgent()), + BaseURI: baseURI, + SubscriptionID: subscriptionID, + } +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/contentkeypolicies.go b/services/mediaservices/mgmt/2021-06-01/media/contentkeypolicies.go new file mode 100644 index 000000000000..6dd8d6064b68 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/contentkeypolicies.go @@ -0,0 +1,568 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ContentKeyPoliciesClient is the client for the ContentKeyPolicies methods of the Media service. +type ContentKeyPoliciesClient struct { + BaseClient +} + +// NewContentKeyPoliciesClient creates an instance of the ContentKeyPoliciesClient client. +func NewContentKeyPoliciesClient(subscriptionID string) ContentKeyPoliciesClient { + return NewContentKeyPoliciesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewContentKeyPoliciesClientWithBaseURI creates an instance of the ContentKeyPoliciesClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewContentKeyPoliciesClientWithBaseURI(baseURI string, subscriptionID string) ContentKeyPoliciesClient { + return ContentKeyPoliciesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate create or update a Content Key Policy in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// contentKeyPolicyName - the Content Key Policy name. +// parameters - the request parameters +func (client ContentKeyPoliciesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string, parameters ContentKeyPolicy) (result ContentKeyPolicy, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPoliciesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.ContentKeyPolicyProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ContentKeyPolicyProperties.Options", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("media.ContentKeyPoliciesClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, accountName, contentKeyPolicyName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "CreateOrUpdate", resp, "Failure responding to request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client ContentKeyPoliciesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string, parameters ContentKeyPolicy) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "contentKeyPolicyName": autorest.Encode("path", contentKeyPolicyName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies/{contentKeyPolicyName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client ContentKeyPoliciesClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client ContentKeyPoliciesClient) CreateOrUpdateResponder(resp *http.Response) (result ContentKeyPolicy, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a Content Key Policy in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// contentKeyPolicyName - the Content Key Policy name. +func (client ContentKeyPoliciesClient) Delete(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPoliciesClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, contentKeyPolicyName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client ContentKeyPoliciesClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "contentKeyPolicyName": autorest.Encode("path", contentKeyPolicyName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies/{contentKeyPolicyName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client ContentKeyPoliciesClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client ContentKeyPoliciesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get the details of a Content Key Policy in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// contentKeyPolicyName - the Content Key Policy name. +func (client ContentKeyPoliciesClient) Get(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (result ContentKeyPolicy, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPoliciesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, contentKeyPolicyName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client ContentKeyPoliciesClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "contentKeyPolicyName": autorest.Encode("path", contentKeyPolicyName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies/{contentKeyPolicyName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client ContentKeyPoliciesClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ContentKeyPoliciesClient) GetResponder(resp *http.Response) (result ContentKeyPolicy, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPolicyPropertiesWithSecrets get a Content Key Policy including secret values +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// contentKeyPolicyName - the Content Key Policy name. +func (client ContentKeyPoliciesClient) GetPolicyPropertiesWithSecrets(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (result ContentKeyPolicyProperties, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPoliciesClient.GetPolicyPropertiesWithSecrets") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPolicyPropertiesWithSecretsPreparer(ctx, resourceGroupName, accountName, contentKeyPolicyName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "GetPolicyPropertiesWithSecrets", nil, "Failure preparing request") + return + } + + resp, err := client.GetPolicyPropertiesWithSecretsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "GetPolicyPropertiesWithSecrets", resp, "Failure sending request") + return + } + + result, err = client.GetPolicyPropertiesWithSecretsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "GetPolicyPropertiesWithSecrets", resp, "Failure responding to request") + return + } + + return +} + +// GetPolicyPropertiesWithSecretsPreparer prepares the GetPolicyPropertiesWithSecrets request. +func (client ContentKeyPoliciesClient) GetPolicyPropertiesWithSecretsPreparer(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "contentKeyPolicyName": autorest.Encode("path", contentKeyPolicyName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies/{contentKeyPolicyName}/getPolicyPropertiesWithSecrets", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPolicyPropertiesWithSecretsSender sends the GetPolicyPropertiesWithSecrets request. The method will close the +// http.Response Body if it receives an error. +func (client ContentKeyPoliciesClient) GetPolicyPropertiesWithSecretsSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetPolicyPropertiesWithSecretsResponder handles the response to the GetPolicyPropertiesWithSecrets request. The method always +// closes the http.Response Body. +func (client ContentKeyPoliciesClient) GetPolicyPropertiesWithSecretsResponder(resp *http.Response) (result ContentKeyPolicyProperties, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List lists the Content Key Policies in the account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filter - restricts the set of items returned. +// top - specifies a non-negative integer n that limits the number of items returned from a collection. The +// service returns the number of available items up to but not greater than the specified value n. +// orderby - specifies the key by which the result collection should be ordered. +func (client ContentKeyPoliciesClient) List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result ContentKeyPolicyCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPoliciesClient.List") + defer func() { + sc := -1 + if result.ckpc.Response.Response != nil { + sc = result.ckpc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName, filter, top, orderby) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.ckpc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "List", resp, "Failure sending request") + return + } + + result.ckpc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "List", resp, "Failure responding to request") + return + } + if result.ckpc.hasNextLink() && result.ckpc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client ContentKeyPoliciesClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(filter) > 0 { + queryParameters["$filter"] = autorest.Encode("query", filter) + } + if top != nil { + queryParameters["$top"] = autorest.Encode("query", *top) + } + if len(orderby) > 0 { + queryParameters["$orderby"] = autorest.Encode("query", orderby) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ContentKeyPoliciesClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ContentKeyPoliciesClient) ListResponder(resp *http.Response) (result ContentKeyPolicyCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client ContentKeyPoliciesClient) listNextResults(ctx context.Context, lastResults ContentKeyPolicyCollection) (result ContentKeyPolicyCollection, err error) { + req, err := lastResults.contentKeyPolicyCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client ContentKeyPoliciesClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result ContentKeyPolicyCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPoliciesClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName, filter, top, orderby) + return +} + +// Update updates an existing Content Key Policy in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// contentKeyPolicyName - the Content Key Policy name. +// parameters - the request parameters +func (client ContentKeyPoliciesClient) Update(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string, parameters ContentKeyPolicy) (result ContentKeyPolicy, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPoliciesClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, contentKeyPolicyName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.ContentKeyPoliciesClient", "Update", resp, "Failure responding to request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client ContentKeyPoliciesClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string, parameters ContentKeyPolicy) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "contentKeyPolicyName": autorest.Encode("path", contentKeyPolicyName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies/{contentKeyPolicyName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client ContentKeyPoliciesClient) UpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client ContentKeyPoliciesClient) UpdateResponder(resp *http.Response) (result ContentKeyPolicy, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/enums.go b/services/mediaservices/mgmt/2021-06-01/media/enums.go new file mode 100644 index 000000000000..4860c291a6ea --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/enums.go @@ -0,0 +1,1526 @@ +package media + +// 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. + +// AacAudioProfile enumerates the values for aac audio profile. +type AacAudioProfile string + +const ( + // AacAudioProfileAacLc Specifies that the output audio is to be encoded into AAC Low Complexity profile + // (AAC-LC). + AacAudioProfileAacLc AacAudioProfile = "AacLc" + // AacAudioProfileHeAacV1 Specifies that the output audio is to be encoded into HE-AAC v1 profile. + AacAudioProfileHeAacV1 AacAudioProfile = "HeAacV1" + // AacAudioProfileHeAacV2 Specifies that the output audio is to be encoded into HE-AAC v2 profile. + AacAudioProfileHeAacV2 AacAudioProfile = "HeAacV2" +) + +// PossibleAacAudioProfileValues returns an array of possible values for the AacAudioProfile const type. +func PossibleAacAudioProfileValues() []AacAudioProfile { + return []AacAudioProfile{AacAudioProfileAacLc, AacAudioProfileHeAacV1, AacAudioProfileHeAacV2} +} + +// AccountEncryptionKeyType enumerates the values for account encryption key type. +type AccountEncryptionKeyType string + +const ( + // AccountEncryptionKeyTypeCustomerKey The Account Key is encrypted with a Customer Key. + AccountEncryptionKeyTypeCustomerKey AccountEncryptionKeyType = "CustomerKey" + // AccountEncryptionKeyTypeSystemKey The Account Key is encrypted with a System Key. + AccountEncryptionKeyTypeSystemKey AccountEncryptionKeyType = "SystemKey" +) + +// PossibleAccountEncryptionKeyTypeValues returns an array of possible values for the AccountEncryptionKeyType const type. +func PossibleAccountEncryptionKeyTypeValues() []AccountEncryptionKeyType { + return []AccountEncryptionKeyType{AccountEncryptionKeyTypeCustomerKey, AccountEncryptionKeyTypeSystemKey} +} + +// ActionType enumerates the values for action type. +type ActionType string + +const ( + // ActionTypeInternal An internal action. + ActionTypeInternal ActionType = "Internal" +) + +// PossibleActionTypeValues returns an array of possible values for the ActionType const type. +func PossibleActionTypeValues() []ActionType { + return []ActionType{ActionTypeInternal} +} + +// AnalysisResolution enumerates the values for analysis resolution. +type AnalysisResolution string + +const ( + // AnalysisResolutionSourceResolution ... + AnalysisResolutionSourceResolution AnalysisResolution = "SourceResolution" + // AnalysisResolutionStandardDefinition ... + AnalysisResolutionStandardDefinition AnalysisResolution = "StandardDefinition" +) + +// PossibleAnalysisResolutionValues returns an array of possible values for the AnalysisResolution const type. +func PossibleAnalysisResolutionValues() []AnalysisResolution { + return []AnalysisResolution{AnalysisResolutionSourceResolution, AnalysisResolutionStandardDefinition} +} + +// AssetContainerPermission enumerates the values for asset container permission. +type AssetContainerPermission string + +const ( + // AssetContainerPermissionRead The SAS URL will allow read access to the container. + AssetContainerPermissionRead AssetContainerPermission = "Read" + // AssetContainerPermissionReadWrite The SAS URL will allow read and write access to the container. + AssetContainerPermissionReadWrite AssetContainerPermission = "ReadWrite" + // AssetContainerPermissionReadWriteDelete The SAS URL will allow read, write and delete access to the + // container. + AssetContainerPermissionReadWriteDelete AssetContainerPermission = "ReadWriteDelete" +) + +// PossibleAssetContainerPermissionValues returns an array of possible values for the AssetContainerPermission const type. +func PossibleAssetContainerPermissionValues() []AssetContainerPermission { + return []AssetContainerPermission{AssetContainerPermissionRead, AssetContainerPermissionReadWrite, AssetContainerPermissionReadWriteDelete} +} + +// AssetStorageEncryptionFormat enumerates the values for asset storage encryption format. +type AssetStorageEncryptionFormat string + +const ( + // AssetStorageEncryptionFormatMediaStorageClientEncryption The Asset is encrypted with Media Services + // client-side encryption. + AssetStorageEncryptionFormatMediaStorageClientEncryption AssetStorageEncryptionFormat = "MediaStorageClientEncryption" + // AssetStorageEncryptionFormatNone The Asset does not use client-side storage encryption (this is the only + // allowed value for new Assets). + AssetStorageEncryptionFormatNone AssetStorageEncryptionFormat = "None" +) + +// PossibleAssetStorageEncryptionFormatValues returns an array of possible values for the AssetStorageEncryptionFormat const type. +func PossibleAssetStorageEncryptionFormatValues() []AssetStorageEncryptionFormat { + return []AssetStorageEncryptionFormat{AssetStorageEncryptionFormatMediaStorageClientEncryption, AssetStorageEncryptionFormatNone} +} + +// AttributeFilter enumerates the values for attribute filter. +type AttributeFilter string + +const ( + // AttributeFilterAll All tracks will be included. + AttributeFilterAll AttributeFilter = "All" + // AttributeFilterBottom The first track will be included when the attribute is sorted in ascending order. + // Generally used to select the smallest bitrate. + AttributeFilterBottom AttributeFilter = "Bottom" + // AttributeFilterTop The first track will be included when the attribute is sorted in descending order. + // Generally used to select the largest bitrate. + AttributeFilterTop AttributeFilter = "Top" + // AttributeFilterValueEquals Any tracks that have an attribute equal to the value given will be included. + AttributeFilterValueEquals AttributeFilter = "ValueEquals" +) + +// PossibleAttributeFilterValues returns an array of possible values for the AttributeFilter const type. +func PossibleAttributeFilterValues() []AttributeFilter { + return []AttributeFilter{AttributeFilterAll, AttributeFilterBottom, AttributeFilterTop, AttributeFilterValueEquals} +} + +// AudioAnalysisMode enumerates the values for audio analysis mode. +type AudioAnalysisMode string + +const ( + // AudioAnalysisModeBasic This mode performs speech-to-text transcription and generation of a VTT + // subtitle/caption file. The output of this mode includes an Insights JSON file including only the + // keywords, transcription,and timing information. Automatic language detection and speaker diarization are + // not included in this mode. + AudioAnalysisModeBasic AudioAnalysisMode = "Basic" + // AudioAnalysisModeStandard Performs all operations included in the Basic mode, additionally performing + // language detection and speaker diarization. + AudioAnalysisModeStandard AudioAnalysisMode = "Standard" +) + +// PossibleAudioAnalysisModeValues returns an array of possible values for the AudioAnalysisMode const type. +func PossibleAudioAnalysisModeValues() []AudioAnalysisMode { + return []AudioAnalysisMode{AudioAnalysisModeBasic, AudioAnalysisModeStandard} +} + +// BlurType enumerates the values for blur type. +type BlurType string + +const ( + // BlurTypeBlack Black: Black out filter + BlurTypeBlack BlurType = "Black" + // BlurTypeBox Box: debug filter, bounding box only + BlurTypeBox BlurType = "Box" + // BlurTypeHigh High: Confuse blur filter + BlurTypeHigh BlurType = "High" + // BlurTypeLow Low: box-car blur filter + BlurTypeLow BlurType = "Low" + // BlurTypeMed Med: Gaussian blur filter + BlurTypeMed BlurType = "Med" +) + +// PossibleBlurTypeValues returns an array of possible values for the BlurType const type. +func PossibleBlurTypeValues() []BlurType { + return []BlurType{BlurTypeBlack, BlurTypeBox, BlurTypeHigh, BlurTypeLow, BlurTypeMed} +} + +// ChannelMapping enumerates the values for channel mapping. +type ChannelMapping string + +const ( + // ChannelMappingBackLeft The Back Left Channel. Sometimes referred to as the Left Surround Channel. + ChannelMappingBackLeft ChannelMapping = "BackLeft" + // ChannelMappingBackRight The Back Right Channel. Sometimes referred to as the Right Surround Channel. + ChannelMappingBackRight ChannelMapping = "BackRight" + // ChannelMappingCenter The Center Channel. + ChannelMappingCenter ChannelMapping = "Center" + // ChannelMappingFrontLeft The Front Left Channel. + ChannelMappingFrontLeft ChannelMapping = "FrontLeft" + // ChannelMappingFrontRight The Front Right Channel. + ChannelMappingFrontRight ChannelMapping = "FrontRight" + // ChannelMappingLowFrequencyEffects Low Frequency Effects Channel. Sometimes referred to as the + // Subwoofer. + ChannelMappingLowFrequencyEffects ChannelMapping = "LowFrequencyEffects" + // ChannelMappingStereoLeft The Left Stereo channel. Sometimes referred to as Down Mix Left. + ChannelMappingStereoLeft ChannelMapping = "StereoLeft" + // ChannelMappingStereoRight The Right Stereo channel. Sometimes referred to as Down Mix Right. + ChannelMappingStereoRight ChannelMapping = "StereoRight" +) + +// PossibleChannelMappingValues returns an array of possible values for the ChannelMapping const type. +func PossibleChannelMappingValues() []ChannelMapping { + return []ChannelMapping{ChannelMappingBackLeft, ChannelMappingBackRight, ChannelMappingCenter, ChannelMappingFrontLeft, ChannelMappingFrontRight, ChannelMappingLowFrequencyEffects, ChannelMappingStereoLeft, ChannelMappingStereoRight} +} + +// Complexity enumerates the values for complexity. +type Complexity string + +const ( + // ComplexityBalanced Configures the encoder to use settings that achieve a balance between speed and + // quality. + ComplexityBalanced Complexity = "Balanced" + // ComplexityQuality Configures the encoder to use settings optimized to produce higher quality output at + // the expense of slower overall encode time. + ComplexityQuality Complexity = "Quality" + // ComplexitySpeed Configures the encoder to use settings optimized for faster encoding. Quality is + // sacrificed to decrease encoding time. + ComplexitySpeed Complexity = "Speed" +) + +// PossibleComplexityValues returns an array of possible values for the Complexity const type. +func PossibleComplexityValues() []Complexity { + return []Complexity{ComplexityBalanced, ComplexityQuality, ComplexitySpeed} +} + +// ContentKeyPolicyFairPlayRentalAndLeaseKeyType enumerates the values for content key policy fair play rental +// and lease key type. +type ContentKeyPolicyFairPlayRentalAndLeaseKeyType string + +const ( + // ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeDualExpiry Dual expiry for offline rental. + ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeDualExpiry ContentKeyPolicyFairPlayRentalAndLeaseKeyType = "DualExpiry" + // ContentKeyPolicyFairPlayRentalAndLeaseKeyTypePersistentLimited Content key can be persisted and the + // valid duration is limited by the Rental Duration value + ContentKeyPolicyFairPlayRentalAndLeaseKeyTypePersistentLimited ContentKeyPolicyFairPlayRentalAndLeaseKeyType = "PersistentLimited" + // ContentKeyPolicyFairPlayRentalAndLeaseKeyTypePersistentUnlimited Content key can be persisted with an + // unlimited duration + ContentKeyPolicyFairPlayRentalAndLeaseKeyTypePersistentUnlimited ContentKeyPolicyFairPlayRentalAndLeaseKeyType = "PersistentUnlimited" + // ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeUndefined Key duration is not specified. + ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeUndefined ContentKeyPolicyFairPlayRentalAndLeaseKeyType = "Undefined" + // ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeUnknown Represents a + // ContentKeyPolicyFairPlayRentalAndLeaseKeyType that is unavailable in current API version. + ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeUnknown ContentKeyPolicyFairPlayRentalAndLeaseKeyType = "Unknown" +) + +// PossibleContentKeyPolicyFairPlayRentalAndLeaseKeyTypeValues returns an array of possible values for the ContentKeyPolicyFairPlayRentalAndLeaseKeyType const type. +func PossibleContentKeyPolicyFairPlayRentalAndLeaseKeyTypeValues() []ContentKeyPolicyFairPlayRentalAndLeaseKeyType { + return []ContentKeyPolicyFairPlayRentalAndLeaseKeyType{ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeDualExpiry, ContentKeyPolicyFairPlayRentalAndLeaseKeyTypePersistentLimited, ContentKeyPolicyFairPlayRentalAndLeaseKeyTypePersistentUnlimited, ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeUndefined, ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeUnknown} +} + +// ContentKeyPolicyPlayReadyContentType enumerates the values for content key policy play ready content type. +type ContentKeyPolicyPlayReadyContentType string + +const ( + // ContentKeyPolicyPlayReadyContentTypeUltraVioletDownload Ultraviolet download content type. + ContentKeyPolicyPlayReadyContentTypeUltraVioletDownload ContentKeyPolicyPlayReadyContentType = "UltraVioletDownload" + // ContentKeyPolicyPlayReadyContentTypeUltraVioletStreaming Ultraviolet streaming content type. + ContentKeyPolicyPlayReadyContentTypeUltraVioletStreaming ContentKeyPolicyPlayReadyContentType = "UltraVioletStreaming" + // ContentKeyPolicyPlayReadyContentTypeUnknown Represents a ContentKeyPolicyPlayReadyContentType that is + // unavailable in current API version. + ContentKeyPolicyPlayReadyContentTypeUnknown ContentKeyPolicyPlayReadyContentType = "Unknown" + // ContentKeyPolicyPlayReadyContentTypeUnspecified Unspecified content type. + ContentKeyPolicyPlayReadyContentTypeUnspecified ContentKeyPolicyPlayReadyContentType = "Unspecified" +) + +// PossibleContentKeyPolicyPlayReadyContentTypeValues returns an array of possible values for the ContentKeyPolicyPlayReadyContentType const type. +func PossibleContentKeyPolicyPlayReadyContentTypeValues() []ContentKeyPolicyPlayReadyContentType { + return []ContentKeyPolicyPlayReadyContentType{ContentKeyPolicyPlayReadyContentTypeUltraVioletDownload, ContentKeyPolicyPlayReadyContentTypeUltraVioletStreaming, ContentKeyPolicyPlayReadyContentTypeUnknown, ContentKeyPolicyPlayReadyContentTypeUnspecified} +} + +// ContentKeyPolicyPlayReadyLicenseType enumerates the values for content key policy play ready license type. +type ContentKeyPolicyPlayReadyLicenseType string + +const ( + // ContentKeyPolicyPlayReadyLicenseTypeNonPersistent Non persistent license. + ContentKeyPolicyPlayReadyLicenseTypeNonPersistent ContentKeyPolicyPlayReadyLicenseType = "NonPersistent" + // ContentKeyPolicyPlayReadyLicenseTypePersistent Persistent license. Allows offline playback. + ContentKeyPolicyPlayReadyLicenseTypePersistent ContentKeyPolicyPlayReadyLicenseType = "Persistent" + // ContentKeyPolicyPlayReadyLicenseTypeUnknown Represents a ContentKeyPolicyPlayReadyLicenseType that is + // unavailable in current API version. + ContentKeyPolicyPlayReadyLicenseTypeUnknown ContentKeyPolicyPlayReadyLicenseType = "Unknown" +) + +// PossibleContentKeyPolicyPlayReadyLicenseTypeValues returns an array of possible values for the ContentKeyPolicyPlayReadyLicenseType const type. +func PossibleContentKeyPolicyPlayReadyLicenseTypeValues() []ContentKeyPolicyPlayReadyLicenseType { + return []ContentKeyPolicyPlayReadyLicenseType{ContentKeyPolicyPlayReadyLicenseTypeNonPersistent, ContentKeyPolicyPlayReadyLicenseTypePersistent, ContentKeyPolicyPlayReadyLicenseTypeUnknown} +} + +// ContentKeyPolicyPlayReadyUnknownOutputPassingOption enumerates the values for content key policy play ready +// unknown output passing option. +type ContentKeyPolicyPlayReadyUnknownOutputPassingOption string + +const ( + // ContentKeyPolicyPlayReadyUnknownOutputPassingOptionAllowed Passing the video portion of protected + // content to an Unknown Output is allowed. + ContentKeyPolicyPlayReadyUnknownOutputPassingOptionAllowed ContentKeyPolicyPlayReadyUnknownOutputPassingOption = "Allowed" + // ContentKeyPolicyPlayReadyUnknownOutputPassingOptionAllowedWithVideoConstriction Passing the video + // portion of protected content to an Unknown Output is allowed but with constrained resolution. + ContentKeyPolicyPlayReadyUnknownOutputPassingOptionAllowedWithVideoConstriction ContentKeyPolicyPlayReadyUnknownOutputPassingOption = "AllowedWithVideoConstriction" + // ContentKeyPolicyPlayReadyUnknownOutputPassingOptionNotAllowed Passing the video portion of protected + // content to an Unknown Output is not allowed. + ContentKeyPolicyPlayReadyUnknownOutputPassingOptionNotAllowed ContentKeyPolicyPlayReadyUnknownOutputPassingOption = "NotAllowed" + // ContentKeyPolicyPlayReadyUnknownOutputPassingOptionUnknown Represents a + // ContentKeyPolicyPlayReadyUnknownOutputPassingOption that is unavailable in current API version. + ContentKeyPolicyPlayReadyUnknownOutputPassingOptionUnknown ContentKeyPolicyPlayReadyUnknownOutputPassingOption = "Unknown" +) + +// PossibleContentKeyPolicyPlayReadyUnknownOutputPassingOptionValues returns an array of possible values for the ContentKeyPolicyPlayReadyUnknownOutputPassingOption const type. +func PossibleContentKeyPolicyPlayReadyUnknownOutputPassingOptionValues() []ContentKeyPolicyPlayReadyUnknownOutputPassingOption { + return []ContentKeyPolicyPlayReadyUnknownOutputPassingOption{ContentKeyPolicyPlayReadyUnknownOutputPassingOptionAllowed, ContentKeyPolicyPlayReadyUnknownOutputPassingOptionAllowedWithVideoConstriction, ContentKeyPolicyPlayReadyUnknownOutputPassingOptionNotAllowed, ContentKeyPolicyPlayReadyUnknownOutputPassingOptionUnknown} +} + +// ContentKeyPolicyRestrictionTokenType enumerates the values for content key policy restriction token type. +type ContentKeyPolicyRestrictionTokenType string + +const ( + // ContentKeyPolicyRestrictionTokenTypeJwt JSON Web Token. + ContentKeyPolicyRestrictionTokenTypeJwt ContentKeyPolicyRestrictionTokenType = "Jwt" + // ContentKeyPolicyRestrictionTokenTypeSwt Simple Web Token. + ContentKeyPolicyRestrictionTokenTypeSwt ContentKeyPolicyRestrictionTokenType = "Swt" + // ContentKeyPolicyRestrictionTokenTypeUnknown Represents a ContentKeyPolicyRestrictionTokenType that is + // unavailable in current API version. + ContentKeyPolicyRestrictionTokenTypeUnknown ContentKeyPolicyRestrictionTokenType = "Unknown" +) + +// PossibleContentKeyPolicyRestrictionTokenTypeValues returns an array of possible values for the ContentKeyPolicyRestrictionTokenType const type. +func PossibleContentKeyPolicyRestrictionTokenTypeValues() []ContentKeyPolicyRestrictionTokenType { + return []ContentKeyPolicyRestrictionTokenType{ContentKeyPolicyRestrictionTokenTypeJwt, ContentKeyPolicyRestrictionTokenTypeSwt, ContentKeyPolicyRestrictionTokenTypeUnknown} +} + +// CreatedByType enumerates the values for created by type. +type CreatedByType string + +const ( + // CreatedByTypeApplication ... + CreatedByTypeApplication CreatedByType = "Application" + // CreatedByTypeKey ... + CreatedByTypeKey CreatedByType = "Key" + // CreatedByTypeManagedIdentity ... + CreatedByTypeManagedIdentity CreatedByType = "ManagedIdentity" + // CreatedByTypeUser ... + CreatedByTypeUser CreatedByType = "User" +) + +// PossibleCreatedByTypeValues returns an array of possible values for the CreatedByType const type. +func PossibleCreatedByTypeValues() []CreatedByType { + return []CreatedByType{CreatedByTypeApplication, CreatedByTypeKey, CreatedByTypeManagedIdentity, CreatedByTypeUser} +} + +// DefaultAction enumerates the values for default action. +type DefaultAction string + +const ( + // DefaultActionAllow All public IP addresses are allowed. + DefaultActionAllow DefaultAction = "Allow" + // DefaultActionDeny Public IP addresses are blocked. + DefaultActionDeny DefaultAction = "Deny" +) + +// PossibleDefaultActionValues returns an array of possible values for the DefaultAction const type. +func PossibleDefaultActionValues() []DefaultAction { + return []DefaultAction{DefaultActionAllow, DefaultActionDeny} +} + +// DeinterlaceMode enumerates the values for deinterlace mode. +type DeinterlaceMode string + +const ( + // DeinterlaceModeAutoPixelAdaptive Apply automatic pixel adaptive de-interlacing on each frame in the + // input video. + DeinterlaceModeAutoPixelAdaptive DeinterlaceMode = "AutoPixelAdaptive" + // DeinterlaceModeOff Disables de-interlacing of the source video. + DeinterlaceModeOff DeinterlaceMode = "Off" +) + +// PossibleDeinterlaceModeValues returns an array of possible values for the DeinterlaceMode const type. +func PossibleDeinterlaceModeValues() []DeinterlaceMode { + return []DeinterlaceMode{DeinterlaceModeAutoPixelAdaptive, DeinterlaceModeOff} +} + +// DeinterlaceParity enumerates the values for deinterlace parity. +type DeinterlaceParity string + +const ( + // DeinterlaceParityAuto Automatically detect the order of fields + DeinterlaceParityAuto DeinterlaceParity = "Auto" + // DeinterlaceParityBottomFieldFirst Apply bottom field first processing of input video. + DeinterlaceParityBottomFieldFirst DeinterlaceParity = "BottomFieldFirst" + // DeinterlaceParityTopFieldFirst Apply top field first processing of input video. + DeinterlaceParityTopFieldFirst DeinterlaceParity = "TopFieldFirst" +) + +// PossibleDeinterlaceParityValues returns an array of possible values for the DeinterlaceParity const type. +func PossibleDeinterlaceParityValues() []DeinterlaceParity { + return []DeinterlaceParity{DeinterlaceParityAuto, DeinterlaceParityBottomFieldFirst, DeinterlaceParityTopFieldFirst} +} + +// EncoderNamedPreset enumerates the values for encoder named preset. +type EncoderNamedPreset string + +const ( + // EncoderNamedPresetAACGoodQualityAudio Produces a single MP4 file containing only stereo audio encoded at + // 192 kbps. + EncoderNamedPresetAACGoodQualityAudio EncoderNamedPreset = "AACGoodQualityAudio" + // EncoderNamedPresetAdaptiveStreaming Produces a set of GOP aligned MP4 files with H.264 video and stereo + // AAC audio. Auto-generates a bitrate ladder based on the input resolution, bitrate and frame rate. The + // auto-generated preset will never exceed the input resolution. For example, if the input is 720p, output + // will remain 720p at best. + EncoderNamedPresetAdaptiveStreaming EncoderNamedPreset = "AdaptiveStreaming" + // EncoderNamedPresetContentAwareEncoding Produces a set of GOP-aligned MP4s by using content-aware + // encoding. Given any input content, the service performs an initial lightweight analysis of the input + // content, and uses the results to determine the optimal number of layers, appropriate bitrate and + // resolution settings for delivery by adaptive streaming. This preset is particularly effective for low + // and medium complexity videos, where the output files will be at lower bitrates but at a quality that + // still delivers a good experience to viewers. The output will contain MP4 files with video and audio + // interleaved. + EncoderNamedPresetContentAwareEncoding EncoderNamedPreset = "ContentAwareEncoding" + // EncoderNamedPresetContentAwareEncodingExperimental Exposes an experimental preset for content-aware + // encoding. Given any input content, the service attempts to automatically determine the optimal number of + // layers, appropriate bitrate and resolution settings for delivery by adaptive streaming. The underlying + // algorithms will continue to evolve over time. The output will contain MP4 files with video and audio + // interleaved. + EncoderNamedPresetContentAwareEncodingExperimental EncoderNamedPreset = "ContentAwareEncodingExperimental" + // EncoderNamedPresetCopyAllBitrateNonInterleaved Copy all video and audio streams from the input asset as + // non-interleaved video and audio output files. This preset can be used to clip an existing asset or + // convert a group of key frame (GOP) aligned MP4 files as an asset that can be streamed. + EncoderNamedPresetCopyAllBitrateNonInterleaved EncoderNamedPreset = "CopyAllBitrateNonInterleaved" + // EncoderNamedPresetH264MultipleBitrate1080p Produces a set of 8 GOP-aligned MP4 files, ranging from 6000 + // kbps to 400 kbps, and stereo AAC audio. Resolution starts at 1080p and goes down to 180p. + EncoderNamedPresetH264MultipleBitrate1080p EncoderNamedPreset = "H264MultipleBitrate1080p" + // EncoderNamedPresetH264MultipleBitrate720p Produces a set of 6 GOP-aligned MP4 files, ranging from 3400 + // kbps to 400 kbps, and stereo AAC audio. Resolution starts at 720p and goes down to 180p. + EncoderNamedPresetH264MultipleBitrate720p EncoderNamedPreset = "H264MultipleBitrate720p" + // EncoderNamedPresetH264MultipleBitrateSD Produces a set of 5 GOP-aligned MP4 files, ranging from 1900kbps + // to 400 kbps, and stereo AAC audio. Resolution starts at 480p and goes down to 240p. + EncoderNamedPresetH264MultipleBitrateSD EncoderNamedPreset = "H264MultipleBitrateSD" + // EncoderNamedPresetH264SingleBitrate1080p Produces an MP4 file where the video is encoded with H.264 + // codec at 6750 kbps and a picture height of 1080 pixels, and the stereo audio is encoded with AAC-LC + // codec at 128 kbps. + EncoderNamedPresetH264SingleBitrate1080p EncoderNamedPreset = "H264SingleBitrate1080p" + // EncoderNamedPresetH264SingleBitrate720p Produces an MP4 file where the video is encoded with H.264 codec + // at 4500 kbps and a picture height of 720 pixels, and the stereo audio is encoded with AAC-LC codec at + // 128 kbps. + EncoderNamedPresetH264SingleBitrate720p EncoderNamedPreset = "H264SingleBitrate720p" + // EncoderNamedPresetH264SingleBitrateSD Produces an MP4 file where the video is encoded with H.264 codec + // at 2200 kbps and a picture height of 480 pixels, and the stereo audio is encoded with AAC-LC codec at + // 128 kbps. + EncoderNamedPresetH264SingleBitrateSD EncoderNamedPreset = "H264SingleBitrateSD" + // EncoderNamedPresetH265AdaptiveStreaming Produces a set of GOP aligned MP4 files with H.265 video and + // stereo AAC audio. Auto-generates a bitrate ladder based on the input resolution, bitrate and frame rate. + // The auto-generated preset will never exceed the input resolution. For example, if the input is 720p, + // output will remain 720p at best. + EncoderNamedPresetH265AdaptiveStreaming EncoderNamedPreset = "H265AdaptiveStreaming" + // EncoderNamedPresetH265ContentAwareEncoding Produces a set of GOP-aligned MP4s by using content-aware + // encoding. Given any input content, the service performs an initial lightweight analysis of the input + // content, and uses the results to determine the optimal number of layers, appropriate bitrate and + // resolution settings for delivery by adaptive streaming. This preset is particularly effective for low + // and medium complexity videos, where the output files will be at lower bitrates but at a quality that + // still delivers a good experience to viewers. The output will contain MP4 files with video and audio + // interleaved. + EncoderNamedPresetH265ContentAwareEncoding EncoderNamedPreset = "H265ContentAwareEncoding" + // EncoderNamedPresetH265SingleBitrate1080p Produces an MP4 file where the video is encoded with H.265 + // codec at 3500 kbps and a picture height of 1080 pixels, and the stereo audio is encoded with AAC-LC + // codec at 128 kbps. + EncoderNamedPresetH265SingleBitrate1080p EncoderNamedPreset = "H265SingleBitrate1080p" + // EncoderNamedPresetH265SingleBitrate4K Produces an MP4 file where the video is encoded with H.265 codec + // at 9500 kbps and a picture height of 2160 pixels, and the stereo audio is encoded with AAC-LC codec at + // 128 kbps. + EncoderNamedPresetH265SingleBitrate4K EncoderNamedPreset = "H265SingleBitrate4K" + // EncoderNamedPresetH265SingleBitrate720p Produces an MP4 file where the video is encoded with H.265 codec + // at 1800 kbps and a picture height of 720 pixels, and the stereo audio is encoded with AAC-LC codec at + // 128 kbps. + EncoderNamedPresetH265SingleBitrate720p EncoderNamedPreset = "H265SingleBitrate720p" +) + +// PossibleEncoderNamedPresetValues returns an array of possible values for the EncoderNamedPreset const type. +func PossibleEncoderNamedPresetValues() []EncoderNamedPreset { + return []EncoderNamedPreset{EncoderNamedPresetAACGoodQualityAudio, EncoderNamedPresetAdaptiveStreaming, EncoderNamedPresetContentAwareEncoding, EncoderNamedPresetContentAwareEncodingExperimental, EncoderNamedPresetCopyAllBitrateNonInterleaved, EncoderNamedPresetH264MultipleBitrate1080p, EncoderNamedPresetH264MultipleBitrate720p, EncoderNamedPresetH264MultipleBitrateSD, EncoderNamedPresetH264SingleBitrate1080p, EncoderNamedPresetH264SingleBitrate720p, EncoderNamedPresetH264SingleBitrateSD, EncoderNamedPresetH265AdaptiveStreaming, EncoderNamedPresetH265ContentAwareEncoding, EncoderNamedPresetH265SingleBitrate1080p, EncoderNamedPresetH265SingleBitrate4K, EncoderNamedPresetH265SingleBitrate720p} +} + +// EncryptionScheme enumerates the values for encryption scheme. +type EncryptionScheme string + +const ( + // EncryptionSchemeCommonEncryptionCbcs CommonEncryptionCbcs scheme + EncryptionSchemeCommonEncryptionCbcs EncryptionScheme = "CommonEncryptionCbcs" + // EncryptionSchemeCommonEncryptionCenc CommonEncryptionCenc scheme + EncryptionSchemeCommonEncryptionCenc EncryptionScheme = "CommonEncryptionCenc" + // EncryptionSchemeEnvelopeEncryption EnvelopeEncryption scheme + EncryptionSchemeEnvelopeEncryption EncryptionScheme = "EnvelopeEncryption" + // EncryptionSchemeNoEncryption NoEncryption scheme + EncryptionSchemeNoEncryption EncryptionScheme = "NoEncryption" +) + +// PossibleEncryptionSchemeValues returns an array of possible values for the EncryptionScheme const type. +func PossibleEncryptionSchemeValues() []EncryptionScheme { + return []EncryptionScheme{EncryptionSchemeCommonEncryptionCbcs, EncryptionSchemeCommonEncryptionCenc, EncryptionSchemeEnvelopeEncryption, EncryptionSchemeNoEncryption} +} + +// EntropyMode enumerates the values for entropy mode. +type EntropyMode string + +const ( + // EntropyModeCabac Context Adaptive Binary Arithmetic Coder (CABAC) entropy encoding. + EntropyModeCabac EntropyMode = "Cabac" + // EntropyModeCavlc Context Adaptive Variable Length Coder (CAVLC) entropy encoding. + EntropyModeCavlc EntropyMode = "Cavlc" +) + +// PossibleEntropyModeValues returns an array of possible values for the EntropyMode const type. +func PossibleEntropyModeValues() []EntropyMode { + return []EntropyMode{EntropyModeCabac, EntropyModeCavlc} +} + +// FaceRedactorMode enumerates the values for face redactor mode. +type FaceRedactorMode string + +const ( + // FaceRedactorModeAnalyze Analyze mode detects faces and outputs a metadata file with the results. Allows + // editing of the metadata file before faces are blurred with Redact mode. + FaceRedactorModeAnalyze FaceRedactorMode = "Analyze" + // FaceRedactorModeCombined Combined mode does the Analyze and Redact steps in one pass when editing the + // analyzed faces is not desired. + FaceRedactorModeCombined FaceRedactorMode = "Combined" + // FaceRedactorModeRedact Redact mode consumes the metadata file from Analyze mode and redacts the faces + // found. + FaceRedactorModeRedact FaceRedactorMode = "Redact" +) + +// PossibleFaceRedactorModeValues returns an array of possible values for the FaceRedactorMode const type. +func PossibleFaceRedactorModeValues() []FaceRedactorMode { + return []FaceRedactorMode{FaceRedactorModeAnalyze, FaceRedactorModeCombined, FaceRedactorModeRedact} +} + +// FilterTrackPropertyCompareOperation enumerates the values for filter track property compare operation. +type FilterTrackPropertyCompareOperation string + +const ( + // FilterTrackPropertyCompareOperationEqual The equal operation. + FilterTrackPropertyCompareOperationEqual FilterTrackPropertyCompareOperation = "Equal" + // FilterTrackPropertyCompareOperationNotEqual The not equal operation. + FilterTrackPropertyCompareOperationNotEqual FilterTrackPropertyCompareOperation = "NotEqual" +) + +// PossibleFilterTrackPropertyCompareOperationValues returns an array of possible values for the FilterTrackPropertyCompareOperation const type. +func PossibleFilterTrackPropertyCompareOperationValues() []FilterTrackPropertyCompareOperation { + return []FilterTrackPropertyCompareOperation{FilterTrackPropertyCompareOperationEqual, FilterTrackPropertyCompareOperationNotEqual} +} + +// FilterTrackPropertyType enumerates the values for filter track property type. +type FilterTrackPropertyType string + +const ( + // FilterTrackPropertyTypeBitrate The bitrate. + FilterTrackPropertyTypeBitrate FilterTrackPropertyType = "Bitrate" + // FilterTrackPropertyTypeFourCC The fourCC. + FilterTrackPropertyTypeFourCC FilterTrackPropertyType = "FourCC" + // FilterTrackPropertyTypeLanguage The language. + FilterTrackPropertyTypeLanguage FilterTrackPropertyType = "Language" + // FilterTrackPropertyTypeName The name. + FilterTrackPropertyTypeName FilterTrackPropertyType = "Name" + // FilterTrackPropertyTypeType The type. + FilterTrackPropertyTypeType FilterTrackPropertyType = "Type" + // FilterTrackPropertyTypeUnknown The unknown track property type. + FilterTrackPropertyTypeUnknown FilterTrackPropertyType = "Unknown" +) + +// PossibleFilterTrackPropertyTypeValues returns an array of possible values for the FilterTrackPropertyType const type. +func PossibleFilterTrackPropertyTypeValues() []FilterTrackPropertyType { + return []FilterTrackPropertyType{FilterTrackPropertyTypeBitrate, FilterTrackPropertyTypeFourCC, FilterTrackPropertyTypeLanguage, FilterTrackPropertyTypeName, FilterTrackPropertyTypeType, FilterTrackPropertyTypeUnknown} +} + +// H264Complexity enumerates the values for h264 complexity. +type H264Complexity string + +const ( + // H264ComplexityBalanced Tells the encoder to use settings that achieve a balance between speed and + // quality. + H264ComplexityBalanced H264Complexity = "Balanced" + // H264ComplexityQuality Tells the encoder to use settings that are optimized to produce higher quality + // output at the expense of slower overall encode time. + H264ComplexityQuality H264Complexity = "Quality" + // H264ComplexitySpeed Tells the encoder to use settings that are optimized for faster encoding. Quality is + // sacrificed to decrease encoding time. + H264ComplexitySpeed H264Complexity = "Speed" +) + +// PossibleH264ComplexityValues returns an array of possible values for the H264Complexity const type. +func PossibleH264ComplexityValues() []H264Complexity { + return []H264Complexity{H264ComplexityBalanced, H264ComplexityQuality, H264ComplexitySpeed} +} + +// H264VideoProfile enumerates the values for h264 video profile. +type H264VideoProfile string + +const ( + // H264VideoProfileAuto Tells the encoder to automatically determine the appropriate H.264 profile. + H264VideoProfileAuto H264VideoProfile = "Auto" + // H264VideoProfileBaseline Baseline profile + H264VideoProfileBaseline H264VideoProfile = "Baseline" + // H264VideoProfileHigh High profile. + H264VideoProfileHigh H264VideoProfile = "High" + // H264VideoProfileHigh422 High 4:2:2 profile. + H264VideoProfileHigh422 H264VideoProfile = "High422" + // H264VideoProfileHigh444 High 4:4:4 predictive profile. + H264VideoProfileHigh444 H264VideoProfile = "High444" + // H264VideoProfileMain Main profile + H264VideoProfileMain H264VideoProfile = "Main" +) + +// PossibleH264VideoProfileValues returns an array of possible values for the H264VideoProfile const type. +func PossibleH264VideoProfileValues() []H264VideoProfile { + return []H264VideoProfile{H264VideoProfileAuto, H264VideoProfileBaseline, H264VideoProfileHigh, H264VideoProfileHigh422, H264VideoProfileHigh444, H264VideoProfileMain} +} + +// H265Complexity enumerates the values for h265 complexity. +type H265Complexity string + +const ( + // H265ComplexityBalanced Tells the encoder to use settings that achieve a balance between speed and + // quality. + H265ComplexityBalanced H265Complexity = "Balanced" + // H265ComplexityQuality Tells the encoder to use settings that are optimized to produce higher quality + // output at the expense of slower overall encode time. + H265ComplexityQuality H265Complexity = "Quality" + // H265ComplexitySpeed Tells the encoder to use settings that are optimized for faster encoding. Quality is + // sacrificed to decrease encoding time. + H265ComplexitySpeed H265Complexity = "Speed" +) + +// PossibleH265ComplexityValues returns an array of possible values for the H265Complexity const type. +func PossibleH265ComplexityValues() []H265Complexity { + return []H265Complexity{H265ComplexityBalanced, H265ComplexityQuality, H265ComplexitySpeed} +} + +// H265VideoProfile enumerates the values for h265 video profile. +type H265VideoProfile string + +const ( + // H265VideoProfileAuto Tells the encoder to automatically determine the appropriate H.265 profile. + H265VideoProfileAuto H265VideoProfile = "Auto" + // H265VideoProfileMain Main profile + // (https://x265.readthedocs.io/en/default/cli.html?highlight=profile#profile-level-tier) + H265VideoProfileMain H265VideoProfile = "Main" +) + +// PossibleH265VideoProfileValues returns an array of possible values for the H265VideoProfile const type. +func PossibleH265VideoProfileValues() []H265VideoProfile { + return []H265VideoProfile{H265VideoProfileAuto, H265VideoProfileMain} +} + +// InsightsType enumerates the values for insights type. +type InsightsType string + +const ( + // InsightsTypeAllInsights Generate both audio and video insights. Fails if either audio or video Insights + // fail. + InsightsTypeAllInsights InsightsType = "AllInsights" + // InsightsTypeAudioInsightsOnly Generate audio only insights. Ignore video even if present. Fails if no + // audio is present. + InsightsTypeAudioInsightsOnly InsightsType = "AudioInsightsOnly" + // InsightsTypeVideoInsightsOnly Generate video only insights. Ignore audio if present. Fails if no video + // is present. + InsightsTypeVideoInsightsOnly InsightsType = "VideoInsightsOnly" +) + +// PossibleInsightsTypeValues returns an array of possible values for the InsightsType const type. +func PossibleInsightsTypeValues() []InsightsType { + return []InsightsType{InsightsTypeAllInsights, InsightsTypeAudioInsightsOnly, InsightsTypeVideoInsightsOnly} +} + +// InterleaveOutput enumerates the values for interleave output. +type InterleaveOutput string + +const ( + // InterleaveOutputInterleavedOutput The output includes both audio and video. + InterleaveOutputInterleavedOutput InterleaveOutput = "InterleavedOutput" + // InterleaveOutputNonInterleavedOutput The output is video-only or audio-only. + InterleaveOutputNonInterleavedOutput InterleaveOutput = "NonInterleavedOutput" +) + +// PossibleInterleaveOutputValues returns an array of possible values for the InterleaveOutput const type. +func PossibleInterleaveOutputValues() []InterleaveOutput { + return []InterleaveOutput{InterleaveOutputInterleavedOutput, InterleaveOutputNonInterleavedOutput} +} + +// JobErrorCategory enumerates the values for job error category. +type JobErrorCategory string + +const ( + // JobErrorCategoryConfiguration The error is configuration related. + JobErrorCategoryConfiguration JobErrorCategory = "Configuration" + // JobErrorCategoryContent The error is related to data in the input files. + JobErrorCategoryContent JobErrorCategory = "Content" + // JobErrorCategoryDownload The error is download related. + JobErrorCategoryDownload JobErrorCategory = "Download" + // JobErrorCategoryService The error is service related. + JobErrorCategoryService JobErrorCategory = "Service" + // JobErrorCategoryUpload The error is upload related. + JobErrorCategoryUpload JobErrorCategory = "Upload" +) + +// PossibleJobErrorCategoryValues returns an array of possible values for the JobErrorCategory const type. +func PossibleJobErrorCategoryValues() []JobErrorCategory { + return []JobErrorCategory{JobErrorCategoryConfiguration, JobErrorCategoryContent, JobErrorCategoryDownload, JobErrorCategoryService, JobErrorCategoryUpload} +} + +// JobErrorCode enumerates the values for job error code. +type JobErrorCode string + +const ( + // JobErrorCodeConfigurationUnsupported There was a problem with the combination of input files and the + // configuration settings applied, fix the configuration settings and retry with the same input, or change + // input to match the configuration. + JobErrorCodeConfigurationUnsupported JobErrorCode = "ConfigurationUnsupported" + // JobErrorCodeContentMalformed There was a problem with the input content (for example: zero byte files, + // or corrupt/non-decodable files), check the input files. + JobErrorCodeContentMalformed JobErrorCode = "ContentMalformed" + // JobErrorCodeContentUnsupported There was a problem with the format of the input (not valid media file, + // or an unsupported file/codec), check the validity of the input files. + JobErrorCodeContentUnsupported JobErrorCode = "ContentUnsupported" + // JobErrorCodeDownloadNotAccessible While trying to download the input files, the files were not + // accessible, please check the availability of the source. + JobErrorCodeDownloadNotAccessible JobErrorCode = "DownloadNotAccessible" + // JobErrorCodeDownloadTransientError While trying to download the input files, there was an issue during + // transfer (storage service, network errors), see details and check your source. + JobErrorCodeDownloadTransientError JobErrorCode = "DownloadTransientError" + // JobErrorCodeServiceError Fatal service error, please contact support. + JobErrorCodeServiceError JobErrorCode = "ServiceError" + // JobErrorCodeServiceTransientError Transient error, please retry, if retry is unsuccessful, please + // contact support. + JobErrorCodeServiceTransientError JobErrorCode = "ServiceTransientError" + // JobErrorCodeUploadNotAccessible While trying to upload the output files, the destination was not + // reachable, please check the availability of the destination. + JobErrorCodeUploadNotAccessible JobErrorCode = "UploadNotAccessible" + // JobErrorCodeUploadTransientError While trying to upload the output files, there was an issue during + // transfer (storage service, network errors), see details and check your destination. + JobErrorCodeUploadTransientError JobErrorCode = "UploadTransientError" +) + +// PossibleJobErrorCodeValues returns an array of possible values for the JobErrorCode const type. +func PossibleJobErrorCodeValues() []JobErrorCode { + return []JobErrorCode{JobErrorCodeConfigurationUnsupported, JobErrorCodeContentMalformed, JobErrorCodeContentUnsupported, JobErrorCodeDownloadNotAccessible, JobErrorCodeDownloadTransientError, JobErrorCodeServiceError, JobErrorCodeServiceTransientError, JobErrorCodeUploadNotAccessible, JobErrorCodeUploadTransientError} +} + +// JobRetry enumerates the values for job retry. +type JobRetry string + +const ( + // JobRetryDoNotRetry Issue needs to be investigated and then the job resubmitted with corrections or + // retried once the underlying issue has been corrected. + JobRetryDoNotRetry JobRetry = "DoNotRetry" + // JobRetryMayRetry Issue may be resolved after waiting for a period of time and resubmitting the same Job. + JobRetryMayRetry JobRetry = "MayRetry" +) + +// PossibleJobRetryValues returns an array of possible values for the JobRetry const type. +func PossibleJobRetryValues() []JobRetry { + return []JobRetry{JobRetryDoNotRetry, JobRetryMayRetry} +} + +// JobState enumerates the values for job state. +type JobState string + +const ( + // JobStateCanceled The job was canceled. This is a final state for the job. + JobStateCanceled JobState = "Canceled" + // JobStateCanceling The job is in the process of being canceled. This is a transient state for the job. + JobStateCanceling JobState = "Canceling" + // JobStateError The job has encountered an error. This is a final state for the job. + JobStateError JobState = "Error" + // JobStateFinished The job is finished. This is a final state for the job. + JobStateFinished JobState = "Finished" + // JobStateProcessing The job is processing. This is a transient state for the job. + JobStateProcessing JobState = "Processing" + // JobStateQueued The job is in a queued state, waiting for resources to become available. This is a + // transient state. + JobStateQueued JobState = "Queued" + // JobStateScheduled The job is being scheduled to run on an available resource. This is a transient state, + // between queued and processing states. + JobStateScheduled JobState = "Scheduled" +) + +// PossibleJobStateValues returns an array of possible values for the JobState const type. +func PossibleJobStateValues() []JobState { + return []JobState{JobStateCanceled, JobStateCanceling, JobStateError, JobStateFinished, JobStateProcessing, JobStateQueued, JobStateScheduled} +} + +// LiveEventEncodingType enumerates the values for live event encoding type. +type LiveEventEncodingType string + +const ( + // LiveEventEncodingTypeNone A contribution live encoder sends a multiple bitrate stream. The ingested + // stream passes through the live event without any further processing. It is also called the pass-through + // mode. + LiveEventEncodingTypeNone LiveEventEncodingType = "None" + // LiveEventEncodingTypePassthroughBasic Pending update... + LiveEventEncodingTypePassthroughBasic LiveEventEncodingType = "PassthroughBasic" + // LiveEventEncodingTypePassthroughStandard Pending update... + LiveEventEncodingTypePassthroughStandard LiveEventEncodingType = "PassthroughStandard" + // LiveEventEncodingTypePremium1080p A contribution live encoder sends a single bitrate stream to the live + // event and Media Services creates multiple bitrate streams. The output cannot exceed 1080p in resolution. + LiveEventEncodingTypePremium1080p LiveEventEncodingType = "Premium1080p" + // LiveEventEncodingTypeStandard A contribution live encoder sends a single bitrate stream to the live + // event and Media Services creates multiple bitrate streams. The output cannot exceed 720p in resolution. + LiveEventEncodingTypeStandard LiveEventEncodingType = "Standard" +) + +// PossibleLiveEventEncodingTypeValues returns an array of possible values for the LiveEventEncodingType const type. +func PossibleLiveEventEncodingTypeValues() []LiveEventEncodingType { + return []LiveEventEncodingType{LiveEventEncodingTypeNone, LiveEventEncodingTypePassthroughBasic, LiveEventEncodingTypePassthroughStandard, LiveEventEncodingTypePremium1080p, LiveEventEncodingTypeStandard} +} + +// LiveEventInputProtocol enumerates the values for live event input protocol. +type LiveEventInputProtocol string + +const ( + // LiveEventInputProtocolFragmentedMP4 Smooth Streaming input will be sent by the contribution encoder to + // the live event. + LiveEventInputProtocolFragmentedMP4 LiveEventInputProtocol = "FragmentedMP4" + // LiveEventInputProtocolRTMP RTMP input will be sent by the contribution encoder to the live event. + LiveEventInputProtocolRTMP LiveEventInputProtocol = "RTMP" +) + +// PossibleLiveEventInputProtocolValues returns an array of possible values for the LiveEventInputProtocol const type. +func PossibleLiveEventInputProtocolValues() []LiveEventInputProtocol { + return []LiveEventInputProtocol{LiveEventInputProtocolFragmentedMP4, LiveEventInputProtocolRTMP} +} + +// LiveEventResourceState enumerates the values for live event resource state. +type LiveEventResourceState string + +const ( + // LiveEventResourceStateAllocating Allocate action was called on the live event and resources are being + // provisioned for this live event. Once allocation completes successfully, the live event will transition + // to StandBy state. + LiveEventResourceStateAllocating LiveEventResourceState = "Allocating" + // LiveEventResourceStateDeleting The live event is being deleted. No billing occurs in this transient + // state. Updates or streaming are not allowed during this state. + LiveEventResourceStateDeleting LiveEventResourceState = "Deleting" + // LiveEventResourceStateRunning The live event resources have been allocated, ingest and preview URLs have + // been generated, and it is capable of receiving live streams. At this point, billing is active. You must + // explicitly call Stop on the live event resource to halt further billing. + LiveEventResourceStateRunning LiveEventResourceState = "Running" + // LiveEventResourceStateStandBy Live event resources have been provisioned and is ready to start. Billing + // occurs in this state. Most properties can still be updated, however ingest or streaming is not allowed + // during this state. + LiveEventResourceStateStandBy LiveEventResourceState = "StandBy" + // LiveEventResourceStateStarting The live event is being started and resources are being allocated. No + // billing occurs in this state. Updates or streaming are not allowed during this state. If an error + // occurs, the live event returns to the Stopped state. + LiveEventResourceStateStarting LiveEventResourceState = "Starting" + // LiveEventResourceStateStopped This is the initial state of the live event after creation (unless + // autostart was set to true.) No billing occurs in this state. In this state, the live event properties + // can be updated but streaming is not allowed. + LiveEventResourceStateStopped LiveEventResourceState = "Stopped" + // LiveEventResourceStateStopping The live event is being stopped and resources are being de-provisioned. + // No billing occurs in this transient state. Updates or streaming are not allowed during this state. + LiveEventResourceStateStopping LiveEventResourceState = "Stopping" +) + +// PossibleLiveEventResourceStateValues returns an array of possible values for the LiveEventResourceState const type. +func PossibleLiveEventResourceStateValues() []LiveEventResourceState { + return []LiveEventResourceState{LiveEventResourceStateAllocating, LiveEventResourceStateDeleting, LiveEventResourceStateRunning, LiveEventResourceStateStandBy, LiveEventResourceStateStarting, LiveEventResourceStateStopped, LiveEventResourceStateStopping} +} + +// LiveOutputResourceState enumerates the values for live output resource state. +type LiveOutputResourceState string + +const ( + // LiveOutputResourceStateCreating Live output is being created. No content is archived in the asset until + // the live output is in running state. + LiveOutputResourceStateCreating LiveOutputResourceState = "Creating" + // LiveOutputResourceStateDeleting Live output is being deleted. The live asset is being converted from + // live to on-demand asset. Any streaming URLs created on the live output asset continue to work. + LiveOutputResourceStateDeleting LiveOutputResourceState = "Deleting" + // LiveOutputResourceStateRunning Live output is running and archiving live streaming content to the asset + // if there is valid input from a contribution encoder. + LiveOutputResourceStateRunning LiveOutputResourceState = "Running" +) + +// PossibleLiveOutputResourceStateValues returns an array of possible values for the LiveOutputResourceState const type. +func PossibleLiveOutputResourceStateValues() []LiveOutputResourceState { + return []LiveOutputResourceState{LiveOutputResourceStateCreating, LiveOutputResourceStateDeleting, LiveOutputResourceStateRunning} +} + +// MetricAggregationType enumerates the values for metric aggregation type. +type MetricAggregationType string + +const ( + // MetricAggregationTypeAverage The average. + MetricAggregationTypeAverage MetricAggregationType = "Average" + // MetricAggregationTypeCount The count of a number of items, usually requests. + MetricAggregationTypeCount MetricAggregationType = "Count" + // MetricAggregationTypeTotal The sum. + MetricAggregationTypeTotal MetricAggregationType = "Total" +) + +// PossibleMetricAggregationTypeValues returns an array of possible values for the MetricAggregationType const type. +func PossibleMetricAggregationTypeValues() []MetricAggregationType { + return []MetricAggregationType{MetricAggregationTypeAverage, MetricAggregationTypeCount, MetricAggregationTypeTotal} +} + +// MetricUnit enumerates the values for metric unit. +type MetricUnit string + +const ( + // MetricUnitBytes The number of bytes. + MetricUnitBytes MetricUnit = "Bytes" + // MetricUnitCount The count. + MetricUnitCount MetricUnit = "Count" + // MetricUnitMilliseconds The number of milliseconds. + MetricUnitMilliseconds MetricUnit = "Milliseconds" +) + +// PossibleMetricUnitValues returns an array of possible values for the MetricUnit const type. +func PossibleMetricUnitValues() []MetricUnit { + return []MetricUnit{MetricUnitBytes, MetricUnitCount, MetricUnitMilliseconds} +} + +// OdataType enumerates the values for odata type. +type OdataType string + +const ( + // OdataTypeContentKeyPolicyPlayReadyContentKeyLocation ... + OdataTypeContentKeyPolicyPlayReadyContentKeyLocation OdataType = "ContentKeyPolicyPlayReadyContentKeyLocation" + // OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader ... + OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader OdataType = "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader" + // OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier ... + OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier OdataType = "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier" +) + +// PossibleOdataTypeValues returns an array of possible values for the OdataType const type. +func PossibleOdataTypeValues() []OdataType { + return []OdataType{OdataTypeContentKeyPolicyPlayReadyContentKeyLocation, OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader, OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier} +} + +// OdataTypeBasicClipTime enumerates the values for odata type basic clip time. +type OdataTypeBasicClipTime string + +const ( + // OdataTypeBasicClipTimeOdataTypeClipTime ... + OdataTypeBasicClipTimeOdataTypeClipTime OdataTypeBasicClipTime = "ClipTime" + // OdataTypeBasicClipTimeOdataTypeMicrosoftMediaAbsoluteClipTime ... + OdataTypeBasicClipTimeOdataTypeMicrosoftMediaAbsoluteClipTime OdataTypeBasicClipTime = "#Microsoft.Media.AbsoluteClipTime" + // OdataTypeBasicClipTimeOdataTypeMicrosoftMediaUtcClipTime ... + OdataTypeBasicClipTimeOdataTypeMicrosoftMediaUtcClipTime OdataTypeBasicClipTime = "#Microsoft.Media.UtcClipTime" +) + +// PossibleOdataTypeBasicClipTimeValues returns an array of possible values for the OdataTypeBasicClipTime const type. +func PossibleOdataTypeBasicClipTimeValues() []OdataTypeBasicClipTime { + return []OdataTypeBasicClipTime{OdataTypeBasicClipTimeOdataTypeClipTime, OdataTypeBasicClipTimeOdataTypeMicrosoftMediaAbsoluteClipTime, OdataTypeBasicClipTimeOdataTypeMicrosoftMediaUtcClipTime} +} + +// OdataTypeBasicCodec enumerates the values for odata type basic codec. +type OdataTypeBasicCodec string + +const ( + // OdataTypeBasicCodecOdataTypeCodec ... + OdataTypeBasicCodecOdataTypeCodec OdataTypeBasicCodec = "Codec" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio OdataTypeBasicCodec = "#Microsoft.Media.AacAudio" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio OdataTypeBasicCodec = "#Microsoft.Media.Audio" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio OdataTypeBasicCodec = "#Microsoft.Media.CopyAudio" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo OdataTypeBasicCodec = "#Microsoft.Media.CopyVideo" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video OdataTypeBasicCodec = "#Microsoft.Media.H264Video" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video OdataTypeBasicCodec = "#Microsoft.Media.H265Video" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaImage ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaImage OdataTypeBasicCodec = "#Microsoft.Media.Image" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage OdataTypeBasicCodec = "#Microsoft.Media.JpgImage" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage OdataTypeBasicCodec = "#Microsoft.Media.PngImage" + // OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo ... + OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo OdataTypeBasicCodec = "#Microsoft.Media.Video" +) + +// PossibleOdataTypeBasicCodecValues returns an array of possible values for the OdataTypeBasicCodec const type. +func PossibleOdataTypeBasicCodecValues() []OdataTypeBasicCodec { + return []OdataTypeBasicCodec{OdataTypeBasicCodecOdataTypeCodec, OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio, OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio, OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio, OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo, OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video, OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video, OdataTypeBasicCodecOdataTypeMicrosoftMediaImage, OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage, OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage, OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo} +} + +// OdataTypeBasicContentKeyPolicyConfiguration enumerates the values for odata type basic content key policy +// configuration. +type OdataTypeBasicContentKeyPolicyConfiguration string + +const ( + // OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration ... + OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration OdataTypeBasicContentKeyPolicyConfiguration = "ContentKeyPolicyConfiguration" + // OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration ... + OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration OdataTypeBasicContentKeyPolicyConfiguration = "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration" + // OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration ... + OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration OdataTypeBasicContentKeyPolicyConfiguration = "#Microsoft.Media.ContentKeyPolicyFairPlayConfiguration" + // OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration ... + OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration OdataTypeBasicContentKeyPolicyConfiguration = "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration" + // OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration ... + OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration OdataTypeBasicContentKeyPolicyConfiguration = "#Microsoft.Media.ContentKeyPolicyUnknownConfiguration" + // OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration ... + OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration OdataTypeBasicContentKeyPolicyConfiguration = "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration" +) + +// PossibleOdataTypeBasicContentKeyPolicyConfigurationValues returns an array of possible values for the OdataTypeBasicContentKeyPolicyConfiguration const type. +func PossibleOdataTypeBasicContentKeyPolicyConfigurationValues() []OdataTypeBasicContentKeyPolicyConfiguration { + return []OdataTypeBasicContentKeyPolicyConfiguration{OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration, OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration, OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration, OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration, OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration, OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration} +} + +// OdataTypeBasicContentKeyPolicyRestriction enumerates the values for odata type basic content key policy +// restriction. +type OdataTypeBasicContentKeyPolicyRestriction string + +const ( + // OdataTypeBasicContentKeyPolicyRestrictionOdataTypeContentKeyPolicyRestriction ... + OdataTypeBasicContentKeyPolicyRestrictionOdataTypeContentKeyPolicyRestriction OdataTypeBasicContentKeyPolicyRestriction = "ContentKeyPolicyRestriction" + // OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction ... + OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction OdataTypeBasicContentKeyPolicyRestriction = "#Microsoft.Media.ContentKeyPolicyOpenRestriction" + // OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction ... + OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction OdataTypeBasicContentKeyPolicyRestriction = "#Microsoft.Media.ContentKeyPolicyTokenRestriction" + // OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction ... + OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction OdataTypeBasicContentKeyPolicyRestriction = "#Microsoft.Media.ContentKeyPolicyUnknownRestriction" +) + +// PossibleOdataTypeBasicContentKeyPolicyRestrictionValues returns an array of possible values for the OdataTypeBasicContentKeyPolicyRestriction const type. +func PossibleOdataTypeBasicContentKeyPolicyRestrictionValues() []OdataTypeBasicContentKeyPolicyRestriction { + return []OdataTypeBasicContentKeyPolicyRestriction{OdataTypeBasicContentKeyPolicyRestrictionOdataTypeContentKeyPolicyRestriction, OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction, OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction, OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction} +} + +// OdataTypeBasicContentKeyPolicyRestrictionTokenKey enumerates the values for odata type basic content key +// policy restriction token key. +type OdataTypeBasicContentKeyPolicyRestrictionTokenKey string + +const ( + // OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeContentKeyPolicyRestrictionTokenKey ... + OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeContentKeyPolicyRestrictionTokenKey OdataTypeBasicContentKeyPolicyRestrictionTokenKey = "ContentKeyPolicyRestrictionTokenKey" + // OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey ... + OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey OdataTypeBasicContentKeyPolicyRestrictionTokenKey = "#Microsoft.Media.ContentKeyPolicyRsaTokenKey" + // OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey ... + OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey OdataTypeBasicContentKeyPolicyRestrictionTokenKey = "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey" + // OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey ... + OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey OdataTypeBasicContentKeyPolicyRestrictionTokenKey = "#Microsoft.Media.ContentKeyPolicyX509CertificateTokenKey" +) + +// PossibleOdataTypeBasicContentKeyPolicyRestrictionTokenKeyValues returns an array of possible values for the OdataTypeBasicContentKeyPolicyRestrictionTokenKey const type. +func PossibleOdataTypeBasicContentKeyPolicyRestrictionTokenKeyValues() []OdataTypeBasicContentKeyPolicyRestrictionTokenKey { + return []OdataTypeBasicContentKeyPolicyRestrictionTokenKey{OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeContentKeyPolicyRestrictionTokenKey, OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey, OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey, OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey} +} + +// OdataTypeBasicFormat enumerates the values for odata type basic format. +type OdataTypeBasicFormat string + +const ( + // OdataTypeBasicFormatOdataTypeFormat ... + OdataTypeBasicFormatOdataTypeFormat OdataTypeBasicFormat = "Format" + // OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat ... + OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat OdataTypeBasicFormat = "#Microsoft.Media.ImageFormat" + // OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat ... + OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat OdataTypeBasicFormat = "#Microsoft.Media.JpgFormat" + // OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format ... + OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format OdataTypeBasicFormat = "#Microsoft.Media.Mp4Format" + // OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat ... + OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat OdataTypeBasicFormat = "#Microsoft.Media.MultiBitrateFormat" + // OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat ... + OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat OdataTypeBasicFormat = "#Microsoft.Media.PngFormat" + // OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat ... + OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat OdataTypeBasicFormat = "#Microsoft.Media.TransportStreamFormat" +) + +// PossibleOdataTypeBasicFormatValues returns an array of possible values for the OdataTypeBasicFormat const type. +func PossibleOdataTypeBasicFormatValues() []OdataTypeBasicFormat { + return []OdataTypeBasicFormat{OdataTypeBasicFormatOdataTypeFormat, OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat, OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat, OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format, OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat, OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat, OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat} +} + +// OdataTypeBasicInputDefinition enumerates the values for odata type basic input definition. +type OdataTypeBasicInputDefinition string + +const ( + // OdataTypeBasicInputDefinitionOdataTypeInputDefinition ... + OdataTypeBasicInputDefinitionOdataTypeInputDefinition OdataTypeBasicInputDefinition = "InputDefinition" + // OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile ... + OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile OdataTypeBasicInputDefinition = "#Microsoft.Media.FromAllInputFile" + // OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile ... + OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile OdataTypeBasicInputDefinition = "#Microsoft.Media.FromEachInputFile" + // OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile ... + OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile OdataTypeBasicInputDefinition = "#Microsoft.Media.InputFile" +) + +// PossibleOdataTypeBasicInputDefinitionValues returns an array of possible values for the OdataTypeBasicInputDefinition const type. +func PossibleOdataTypeBasicInputDefinitionValues() []OdataTypeBasicInputDefinition { + return []OdataTypeBasicInputDefinition{OdataTypeBasicInputDefinitionOdataTypeInputDefinition, OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile, OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile, OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile} +} + +// OdataTypeBasicJobInput enumerates the values for odata type basic job input. +type OdataTypeBasicJobInput string + +const ( + // OdataTypeBasicJobInputOdataTypeJobInput ... + OdataTypeBasicJobInputOdataTypeJobInput OdataTypeBasicJobInput = "JobInput" + // OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset ... + OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset OdataTypeBasicJobInput = "#Microsoft.Media.JobInputAsset" + // OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip ... + OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip OdataTypeBasicJobInput = "#Microsoft.Media.JobInputClip" + // OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP ... + OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP OdataTypeBasicJobInput = "#Microsoft.Media.JobInputHttp" + // OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs ... + OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs OdataTypeBasicJobInput = "#Microsoft.Media.JobInputs" + // OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence ... + OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence OdataTypeBasicJobInput = "#Microsoft.Media.JobInputSequence" +) + +// PossibleOdataTypeBasicJobInputValues returns an array of possible values for the OdataTypeBasicJobInput const type. +func PossibleOdataTypeBasicJobInputValues() []OdataTypeBasicJobInput { + return []OdataTypeBasicJobInput{OdataTypeBasicJobInputOdataTypeJobInput, OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset, OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip, OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP, OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs, OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence} +} + +// OdataTypeBasicJobOutput enumerates the values for odata type basic job output. +type OdataTypeBasicJobOutput string + +const ( + // OdataTypeBasicJobOutputOdataTypeJobOutput ... + OdataTypeBasicJobOutputOdataTypeJobOutput OdataTypeBasicJobOutput = "JobOutput" + // OdataTypeBasicJobOutputOdataTypeMicrosoftMediaJobOutputAsset ... + OdataTypeBasicJobOutputOdataTypeMicrosoftMediaJobOutputAsset OdataTypeBasicJobOutput = "#Microsoft.Media.JobOutputAsset" +) + +// PossibleOdataTypeBasicJobOutputValues returns an array of possible values for the OdataTypeBasicJobOutput const type. +func PossibleOdataTypeBasicJobOutputValues() []OdataTypeBasicJobOutput { + return []OdataTypeBasicJobOutput{OdataTypeBasicJobOutputOdataTypeJobOutput, OdataTypeBasicJobOutputOdataTypeMicrosoftMediaJobOutputAsset} +} + +// OdataTypeBasicLayer enumerates the values for odata type basic layer. +type OdataTypeBasicLayer string + +const ( + // OdataTypeBasicLayerOdataTypeLayer ... + OdataTypeBasicLayerOdataTypeLayer OdataTypeBasicLayer = "Layer" + // OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer ... + OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer OdataTypeBasicLayer = "#Microsoft.Media.H264Layer" + // OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer ... + OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer OdataTypeBasicLayer = "#Microsoft.Media.H265Layer" + // OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer ... + OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer OdataTypeBasicLayer = "#Microsoft.Media.H265VideoLayer" + // OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer ... + OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer OdataTypeBasicLayer = "#Microsoft.Media.JpgLayer" + // OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer ... + OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer OdataTypeBasicLayer = "#Microsoft.Media.PngLayer" + // OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer ... + OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer OdataTypeBasicLayer = "#Microsoft.Media.VideoLayer" +) + +// PossibleOdataTypeBasicLayerValues returns an array of possible values for the OdataTypeBasicLayer const type. +func PossibleOdataTypeBasicLayerValues() []OdataTypeBasicLayer { + return []OdataTypeBasicLayer{OdataTypeBasicLayerOdataTypeLayer, OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer, OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer, OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer, OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer, OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer, OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer} +} + +// OdataTypeBasicOverlay enumerates the values for odata type basic overlay. +type OdataTypeBasicOverlay string + +const ( + // OdataTypeBasicOverlayOdataTypeMicrosoftMediaAudioOverlay ... + OdataTypeBasicOverlayOdataTypeMicrosoftMediaAudioOverlay OdataTypeBasicOverlay = "#Microsoft.Media.AudioOverlay" + // OdataTypeBasicOverlayOdataTypeMicrosoftMediaVideoOverlay ... + OdataTypeBasicOverlayOdataTypeMicrosoftMediaVideoOverlay OdataTypeBasicOverlay = "#Microsoft.Media.VideoOverlay" + // OdataTypeBasicOverlayOdataTypeOverlay ... + OdataTypeBasicOverlayOdataTypeOverlay OdataTypeBasicOverlay = "Overlay" +) + +// PossibleOdataTypeBasicOverlayValues returns an array of possible values for the OdataTypeBasicOverlay const type. +func PossibleOdataTypeBasicOverlayValues() []OdataTypeBasicOverlay { + return []OdataTypeBasicOverlay{OdataTypeBasicOverlayOdataTypeMicrosoftMediaAudioOverlay, OdataTypeBasicOverlayOdataTypeMicrosoftMediaVideoOverlay, OdataTypeBasicOverlayOdataTypeOverlay} +} + +// OdataTypeBasicPreset enumerates the values for odata type basic preset. +type OdataTypeBasicPreset string + +const ( + // OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset ... + OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset OdataTypeBasicPreset = "#Microsoft.Media.AudioAnalyzerPreset" + // OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset ... + OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset OdataTypeBasicPreset = "#Microsoft.Media.BuiltInStandardEncoderPreset" + // OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset ... + OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset OdataTypeBasicPreset = "#Microsoft.Media.FaceDetectorPreset" + // OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset ... + OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset OdataTypeBasicPreset = "#Microsoft.Media.StandardEncoderPreset" + // OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset ... + OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset OdataTypeBasicPreset = "#Microsoft.Media.VideoAnalyzerPreset" + // OdataTypeBasicPresetOdataTypePreset ... + OdataTypeBasicPresetOdataTypePreset OdataTypeBasicPreset = "Preset" +) + +// PossibleOdataTypeBasicPresetValues returns an array of possible values for the OdataTypeBasicPreset const type. +func PossibleOdataTypeBasicPresetValues() []OdataTypeBasicPreset { + return []OdataTypeBasicPreset{OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset, OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset, OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset, OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset, OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset, OdataTypeBasicPresetOdataTypePreset} +} + +// OdataTypeBasicTrackDescriptor enumerates the values for odata type basic track descriptor. +type OdataTypeBasicTrackDescriptor string + +const ( + // OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor ... + OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor OdataTypeBasicTrackDescriptor = "#Microsoft.Media.AudioTrackDescriptor" + // OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute ... + OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute OdataTypeBasicTrackDescriptor = "#Microsoft.Media.SelectAudioTrackByAttribute" + // OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID ... + OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID OdataTypeBasicTrackDescriptor = "#Microsoft.Media.SelectAudioTrackById" + // OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute ... + OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute OdataTypeBasicTrackDescriptor = "#Microsoft.Media.SelectVideoTrackByAttribute" + // OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID ... + OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID OdataTypeBasicTrackDescriptor = "#Microsoft.Media.SelectVideoTrackById" + // OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor ... + OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor OdataTypeBasicTrackDescriptor = "#Microsoft.Media.VideoTrackDescriptor" + // OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor ... + OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor OdataTypeBasicTrackDescriptor = "TrackDescriptor" +) + +// PossibleOdataTypeBasicTrackDescriptorValues returns an array of possible values for the OdataTypeBasicTrackDescriptor const type. +func PossibleOdataTypeBasicTrackDescriptorValues() []OdataTypeBasicTrackDescriptor { + return []OdataTypeBasicTrackDescriptor{OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor, OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute, OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID, OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute, OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID, OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor, OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor} +} + +// OnErrorType enumerates the values for on error type. +type OnErrorType string + +const ( + // OnErrorTypeContinueJob Tells the service that if this TransformOutput fails, then allow any other + // TransformOutput to continue. + OnErrorTypeContinueJob OnErrorType = "ContinueJob" + // OnErrorTypeStopProcessingJob Tells the service that if this TransformOutput fails, then any other + // incomplete TransformOutputs can be stopped. + OnErrorTypeStopProcessingJob OnErrorType = "StopProcessingJob" +) + +// PossibleOnErrorTypeValues returns an array of possible values for the OnErrorType const type. +func PossibleOnErrorTypeValues() []OnErrorType { + return []OnErrorType{OnErrorTypeContinueJob, OnErrorTypeStopProcessingJob} +} + +// Priority enumerates the values for priority. +type Priority string + +const ( + // PriorityHigh Used for TransformOutputs that should take precedence over others. + PriorityHigh Priority = "High" + // PriorityLow Used for TransformOutputs that can be generated after Normal and High priority + // TransformOutputs. + PriorityLow Priority = "Low" + // PriorityNormal Used for TransformOutputs that can be generated at Normal priority. + PriorityNormal Priority = "Normal" +) + +// PossiblePriorityValues returns an array of possible values for the Priority const type. +func PossiblePriorityValues() []Priority { + return []Priority{PriorityHigh, PriorityLow, PriorityNormal} +} + +// PrivateEndpointConnectionProvisioningState enumerates the values for private endpoint connection +// provisioning state. +type PrivateEndpointConnectionProvisioningState string + +const ( + // PrivateEndpointConnectionProvisioningStateCreating ... + PrivateEndpointConnectionProvisioningStateCreating PrivateEndpointConnectionProvisioningState = "Creating" + // PrivateEndpointConnectionProvisioningStateDeleting ... + PrivateEndpointConnectionProvisioningStateDeleting PrivateEndpointConnectionProvisioningState = "Deleting" + // PrivateEndpointConnectionProvisioningStateFailed ... + PrivateEndpointConnectionProvisioningStateFailed PrivateEndpointConnectionProvisioningState = "Failed" + // PrivateEndpointConnectionProvisioningStateSucceeded ... + PrivateEndpointConnectionProvisioningStateSucceeded PrivateEndpointConnectionProvisioningState = "Succeeded" +) + +// PossiblePrivateEndpointConnectionProvisioningStateValues returns an array of possible values for the PrivateEndpointConnectionProvisioningState const type. +func PossiblePrivateEndpointConnectionProvisioningStateValues() []PrivateEndpointConnectionProvisioningState { + return []PrivateEndpointConnectionProvisioningState{PrivateEndpointConnectionProvisioningStateCreating, PrivateEndpointConnectionProvisioningStateDeleting, PrivateEndpointConnectionProvisioningStateFailed, PrivateEndpointConnectionProvisioningStateSucceeded} +} + +// PrivateEndpointServiceConnectionStatus enumerates the values for private endpoint service connection status. +type PrivateEndpointServiceConnectionStatus string + +const ( + // PrivateEndpointServiceConnectionStatusApproved ... + PrivateEndpointServiceConnectionStatusApproved PrivateEndpointServiceConnectionStatus = "Approved" + // PrivateEndpointServiceConnectionStatusPending ... + PrivateEndpointServiceConnectionStatusPending PrivateEndpointServiceConnectionStatus = "Pending" + // PrivateEndpointServiceConnectionStatusRejected ... + PrivateEndpointServiceConnectionStatusRejected PrivateEndpointServiceConnectionStatus = "Rejected" +) + +// PossiblePrivateEndpointServiceConnectionStatusValues returns an array of possible values for the PrivateEndpointServiceConnectionStatus const type. +func PossiblePrivateEndpointServiceConnectionStatusValues() []PrivateEndpointServiceConnectionStatus { + return []PrivateEndpointServiceConnectionStatus{PrivateEndpointServiceConnectionStatusApproved, PrivateEndpointServiceConnectionStatusPending, PrivateEndpointServiceConnectionStatusRejected} +} + +// PublicNetworkAccess enumerates the values for public network access. +type PublicNetworkAccess string + +const ( + // PublicNetworkAccessDisabled Public network access is disabled. + PublicNetworkAccessDisabled PublicNetworkAccess = "Disabled" + // PublicNetworkAccessEnabled Public network access is enabled. + PublicNetworkAccessEnabled PublicNetworkAccess = "Enabled" +) + +// PossiblePublicNetworkAccessValues returns an array of possible values for the PublicNetworkAccess const type. +func PossiblePublicNetworkAccessValues() []PublicNetworkAccess { + return []PublicNetworkAccess{PublicNetworkAccessDisabled, PublicNetworkAccessEnabled} +} + +// Rotation enumerates the values for rotation. +type Rotation string + +const ( + // RotationAuto Automatically detect and rotate as needed. + RotationAuto Rotation = "Auto" + // RotationNone Do not rotate the video. If the output format supports it, any metadata about rotation is + // kept intact. + RotationNone Rotation = "None" + // RotationRotate0 Do not rotate the video but remove any metadata about the rotation. + RotationRotate0 Rotation = "Rotate0" + // RotationRotate180 Rotate 180 degrees clockwise. + RotationRotate180 Rotation = "Rotate180" + // RotationRotate270 Rotate 270 degrees clockwise. + RotationRotate270 Rotation = "Rotate270" + // RotationRotate90 Rotate 90 degrees clockwise. + RotationRotate90 Rotation = "Rotate90" +) + +// PossibleRotationValues returns an array of possible values for the Rotation const type. +func PossibleRotationValues() []Rotation { + return []Rotation{RotationAuto, RotationNone, RotationRotate0, RotationRotate180, RotationRotate270, RotationRotate90} +} + +// StorageAccountType enumerates the values for storage account type. +type StorageAccountType string + +const ( + // StorageAccountTypePrimary The primary storage account for the Media Services account. + StorageAccountTypePrimary StorageAccountType = "Primary" + // StorageAccountTypeSecondary A secondary storage account for the Media Services account. + StorageAccountTypeSecondary StorageAccountType = "Secondary" +) + +// PossibleStorageAccountTypeValues returns an array of possible values for the StorageAccountType const type. +func PossibleStorageAccountTypeValues() []StorageAccountType { + return []StorageAccountType{StorageAccountTypePrimary, StorageAccountTypeSecondary} +} + +// StorageAuthentication enumerates the values for storage authentication. +type StorageAuthentication string + +const ( + // StorageAuthenticationManagedIdentity Managed Identity authentication. + StorageAuthenticationManagedIdentity StorageAuthentication = "ManagedIdentity" + // StorageAuthenticationSystem System authentication. + StorageAuthenticationSystem StorageAuthentication = "System" +) + +// PossibleStorageAuthenticationValues returns an array of possible values for the StorageAuthentication const type. +func PossibleStorageAuthenticationValues() []StorageAuthentication { + return []StorageAuthentication{StorageAuthenticationManagedIdentity, StorageAuthenticationSystem} +} + +// StreamingEndpointResourceState enumerates the values for streaming endpoint resource state. +type StreamingEndpointResourceState string + +const ( + // StreamingEndpointResourceStateDeleting The streaming endpoint is being deleted. + StreamingEndpointResourceStateDeleting StreamingEndpointResourceState = "Deleting" + // StreamingEndpointResourceStateRunning The streaming endpoint is running. It is able to stream content to + // clients + StreamingEndpointResourceStateRunning StreamingEndpointResourceState = "Running" + // StreamingEndpointResourceStateScaling The streaming endpoint is increasing or decreasing scale units. + StreamingEndpointResourceStateScaling StreamingEndpointResourceState = "Scaling" + // StreamingEndpointResourceStateStarting The streaming endpoint is transitioning to the running state. + StreamingEndpointResourceStateStarting StreamingEndpointResourceState = "Starting" + // StreamingEndpointResourceStateStopped The initial state of a streaming endpoint after creation. Content + // is not ready to be streamed from this endpoint. + StreamingEndpointResourceStateStopped StreamingEndpointResourceState = "Stopped" + // StreamingEndpointResourceStateStopping The streaming endpoint is transitioning to the stopped state. + StreamingEndpointResourceStateStopping StreamingEndpointResourceState = "Stopping" +) + +// PossibleStreamingEndpointResourceStateValues returns an array of possible values for the StreamingEndpointResourceState const type. +func PossibleStreamingEndpointResourceStateValues() []StreamingEndpointResourceState { + return []StreamingEndpointResourceState{StreamingEndpointResourceStateDeleting, StreamingEndpointResourceStateRunning, StreamingEndpointResourceStateScaling, StreamingEndpointResourceStateStarting, StreamingEndpointResourceStateStopped, StreamingEndpointResourceStateStopping} +} + +// StreamingLocatorContentKeyType enumerates the values for streaming locator content key type. +type StreamingLocatorContentKeyType string + +const ( + // StreamingLocatorContentKeyTypeCommonEncryptionCbcs Common Encryption using CBCS + StreamingLocatorContentKeyTypeCommonEncryptionCbcs StreamingLocatorContentKeyType = "CommonEncryptionCbcs" + // StreamingLocatorContentKeyTypeCommonEncryptionCenc Common Encryption using CENC + StreamingLocatorContentKeyTypeCommonEncryptionCenc StreamingLocatorContentKeyType = "CommonEncryptionCenc" + // StreamingLocatorContentKeyTypeEnvelopeEncryption Envelope Encryption + StreamingLocatorContentKeyTypeEnvelopeEncryption StreamingLocatorContentKeyType = "EnvelopeEncryption" +) + +// PossibleStreamingLocatorContentKeyTypeValues returns an array of possible values for the StreamingLocatorContentKeyType const type. +func PossibleStreamingLocatorContentKeyTypeValues() []StreamingLocatorContentKeyType { + return []StreamingLocatorContentKeyType{StreamingLocatorContentKeyTypeCommonEncryptionCbcs, StreamingLocatorContentKeyTypeCommonEncryptionCenc, StreamingLocatorContentKeyTypeEnvelopeEncryption} +} + +// StreamingPolicyStreamingProtocol enumerates the values for streaming policy streaming protocol. +type StreamingPolicyStreamingProtocol string + +const ( + // StreamingPolicyStreamingProtocolDash DASH protocol + StreamingPolicyStreamingProtocolDash StreamingPolicyStreamingProtocol = "Dash" + // StreamingPolicyStreamingProtocolDownload Download protocol + StreamingPolicyStreamingProtocolDownload StreamingPolicyStreamingProtocol = "Download" + // StreamingPolicyStreamingProtocolHls HLS protocol + StreamingPolicyStreamingProtocolHls StreamingPolicyStreamingProtocol = "Hls" + // StreamingPolicyStreamingProtocolSmoothStreaming SmoothStreaming protocol + StreamingPolicyStreamingProtocolSmoothStreaming StreamingPolicyStreamingProtocol = "SmoothStreaming" +) + +// PossibleStreamingPolicyStreamingProtocolValues returns an array of possible values for the StreamingPolicyStreamingProtocol const type. +func PossibleStreamingPolicyStreamingProtocolValues() []StreamingPolicyStreamingProtocol { + return []StreamingPolicyStreamingProtocol{StreamingPolicyStreamingProtocolDash, StreamingPolicyStreamingProtocolDownload, StreamingPolicyStreamingProtocolHls, StreamingPolicyStreamingProtocolSmoothStreaming} +} + +// StreamOptionsFlag enumerates the values for stream options flag. +type StreamOptionsFlag string + +const ( + // StreamOptionsFlagDefault Live streaming with no special latency optimizations. + StreamOptionsFlagDefault StreamOptionsFlag = "Default" + // StreamOptionsFlagLowLatency The live event provides lower end to end latency by reducing its internal + // buffers. This could result in more client buffering during playback if network bandwidth is low. + StreamOptionsFlagLowLatency StreamOptionsFlag = "LowLatency" +) + +// PossibleStreamOptionsFlagValues returns an array of possible values for the StreamOptionsFlag const type. +func PossibleStreamOptionsFlagValues() []StreamOptionsFlag { + return []StreamOptionsFlag{StreamOptionsFlagDefault, StreamOptionsFlagLowLatency} +} + +// StretchMode enumerates the values for stretch mode. +type StretchMode string + +const ( + // StretchModeAutoFit Pad the output (with either letterbox or pillar box) to honor the output resolution, + // while ensuring that the active video region in the output has the same aspect ratio as the input. For + // example, if the input is 1920x1080 and the encoding preset asks for 1280x1280, then the output will be + // at 1280x1280, which contains an inner rectangle of 1280x720 at aspect ratio of 16:9, and pillar box + // regions 280 pixels wide at the left and right. + StretchModeAutoFit StretchMode = "AutoFit" + // StretchModeAutoSize Override the output resolution, and change it to match the display aspect ratio of + // the input, without padding. For example, if the input is 1920x1080 and the encoding preset asks for + // 1280x1280, then the value in the preset is overridden, and the output will be at 1280x720, which + // maintains the input aspect ratio of 16:9. + StretchModeAutoSize StretchMode = "AutoSize" + // StretchModeNone Strictly respect the output resolution without considering the pixel aspect ratio or + // display aspect ratio of the input video. + StretchModeNone StretchMode = "None" +) + +// PossibleStretchModeValues returns an array of possible values for the StretchMode const type. +func PossibleStretchModeValues() []StretchMode { + return []StretchMode{StretchModeAutoFit, StretchModeAutoSize, StretchModeNone} +} + +// TrackAttribute enumerates the values for track attribute. +type TrackAttribute string + +const ( + // TrackAttributeBitrate The bitrate of the track. + TrackAttributeBitrate TrackAttribute = "Bitrate" + // TrackAttributeLanguage The language of the track. + TrackAttributeLanguage TrackAttribute = "Language" +) + +// PossibleTrackAttributeValues returns an array of possible values for the TrackAttribute const type. +func PossibleTrackAttributeValues() []TrackAttribute { + return []TrackAttribute{TrackAttributeBitrate, TrackAttributeLanguage} +} + +// TrackPropertyCompareOperation enumerates the values for track property compare operation. +type TrackPropertyCompareOperation string + +const ( + // TrackPropertyCompareOperationEqual Equal operation + TrackPropertyCompareOperationEqual TrackPropertyCompareOperation = "Equal" + // TrackPropertyCompareOperationUnknown Unknown track property compare operation + TrackPropertyCompareOperationUnknown TrackPropertyCompareOperation = "Unknown" +) + +// PossibleTrackPropertyCompareOperationValues returns an array of possible values for the TrackPropertyCompareOperation const type. +func PossibleTrackPropertyCompareOperationValues() []TrackPropertyCompareOperation { + return []TrackPropertyCompareOperation{TrackPropertyCompareOperationEqual, TrackPropertyCompareOperationUnknown} +} + +// TrackPropertyType enumerates the values for track property type. +type TrackPropertyType string + +const ( + // TrackPropertyTypeFourCC Track FourCC + TrackPropertyTypeFourCC TrackPropertyType = "FourCC" + // TrackPropertyTypeUnknown Unknown track property + TrackPropertyTypeUnknown TrackPropertyType = "Unknown" +) + +// PossibleTrackPropertyTypeValues returns an array of possible values for the TrackPropertyType const type. +func PossibleTrackPropertyTypeValues() []TrackPropertyType { + return []TrackPropertyType{TrackPropertyTypeFourCC, TrackPropertyTypeUnknown} +} + +// VideoSyncMode enumerates the values for video sync mode. +type VideoSyncMode string + +const ( + // VideoSyncModeAuto This is the default method. Chooses between Cfr and Vfr depending on muxer + // capabilities. For output format MP4, the default mode is Cfr. + VideoSyncModeAuto VideoSyncMode = "Auto" + // VideoSyncModeCfr Input frames will be repeated and/or dropped as needed to achieve exactly the requested + // constant frame rate. Recommended when the output frame rate is explicitly set at a specified value + VideoSyncModeCfr VideoSyncMode = "Cfr" + // VideoSyncModePassthrough The presentation timestamps on frames are passed through from the input file to + // the output file writer. Recommended when the input source has variable frame rate, and are attempting to + // produce multiple layers for adaptive streaming in the output which have aligned GOP boundaries. Note: if + // two or more frames in the input have duplicate timestamps, then the output will also have the same + // behavior + VideoSyncModePassthrough VideoSyncMode = "Passthrough" + // VideoSyncModeVfr Similar to the Passthrough mode, but if the input has frames that have duplicate + // timestamps, then only one frame is passed through to the output, and others are dropped. Recommended + // when the number of output frames is expected to be equal to the number of input frames. For example, the + // output is used to calculate a quality metric like PSNR against the input + VideoSyncModeVfr VideoSyncMode = "Vfr" +) + +// PossibleVideoSyncModeValues returns an array of possible values for the VideoSyncMode const type. +func PossibleVideoSyncModeValues() []VideoSyncMode { + return []VideoSyncMode{VideoSyncModeAuto, VideoSyncModeCfr, VideoSyncModePassthrough, VideoSyncModeVfr} +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/jobs.go b/services/mediaservices/mgmt/2021-06-01/media/jobs.go new file mode 100644 index 000000000000..40af5e5510bd --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/jobs.go @@ -0,0 +1,574 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// JobsClient is the client for the Jobs methods of the Media service. +type JobsClient struct { + BaseClient +} + +// NewJobsClient creates an instance of the JobsClient client. +func NewJobsClient(subscriptionID string) JobsClient { + return NewJobsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewJobsClientWithBaseURI creates an instance of the JobsClient client using a custom endpoint. Use this when +// interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewJobsClientWithBaseURI(baseURI string, subscriptionID string) JobsClient { + return JobsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CancelJob cancel a Job. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +// jobName - the Job name. +func (client JobsClient) CancelJob(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.CancelJob") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CancelJobPreparer(ctx, resourceGroupName, accountName, transformName, jobName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "CancelJob", nil, "Failure preparing request") + return + } + + resp, err := client.CancelJobSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.JobsClient", "CancelJob", resp, "Failure sending request") + return + } + + result, err = client.CancelJobResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "CancelJob", resp, "Failure responding to request") + return + } + + return +} + +// CancelJobPreparer prepares the CancelJob request. +func (client JobsClient) CancelJobPreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "jobName": autorest.Encode("path", jobName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs/{jobName}/cancelJob", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CancelJobSender sends the CancelJob request. The method will close the +// http.Response Body if it receives an error. +func (client JobsClient) CancelJobSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CancelJobResponder handles the response to the CancelJob request. The method always +// closes the http.Response Body. +func (client JobsClient) CancelJobResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// Create creates a Job. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +// jobName - the Job name. +// parameters - the request parameters +func (client JobsClient) Create(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string, parameters Job) (result Job, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.Create") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.JobProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.JobProperties.Outputs", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("media.JobsClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, resourceGroupName, accountName, transformName, jobName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "Create", nil, "Failure preparing request") + return + } + + resp, err := client.CreateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.JobsClient", "Create", resp, "Failure sending request") + return + } + + result, err = client.CreateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "Create", resp, "Failure responding to request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client JobsClient) CreatePreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string, parameters Job) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "jobName": autorest.Encode("path", jobName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs/{jobName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client JobsClient) CreateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client JobsClient) CreateResponder(resp *http.Response) (result Job, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a Job. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +// jobName - the Job name. +func (client JobsClient) Delete(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, transformName, jobName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.JobsClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client JobsClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "jobName": autorest.Encode("path", jobName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs/{jobName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client JobsClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client JobsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets a Job. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +// jobName - the Job name. +func (client JobsClient) Get(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (result Job, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, transformName, jobName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.JobsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client JobsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "jobName": autorest.Encode("path", jobName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs/{jobName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client JobsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client JobsClient) GetResponder(resp *http.Response) (result Job, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List lists all of the Jobs for the Transform. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +// filter - restricts the set of items returned. +// orderby - specifies the key by which the result collection should be ordered. +func (client JobsClient) List(ctx context.Context, resourceGroupName string, accountName string, transformName string, filter string, orderby string) (result JobCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.List") + defer func() { + sc := -1 + if result.jc.Response.Response != nil { + sc = result.jc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName, transformName, filter, orderby) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.jc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.JobsClient", "List", resp, "Failure sending request") + return + } + + result.jc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "List", resp, "Failure responding to request") + return + } + if result.jc.hasNextLink() && result.jc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client JobsClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string, filter string, orderby string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(filter) > 0 { + queryParameters["$filter"] = autorest.Encode("query", filter) + } + if len(orderby) > 0 { + queryParameters["$orderby"] = autorest.Encode("query", orderby) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client JobsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client JobsClient) ListResponder(resp *http.Response) (result JobCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client JobsClient) listNextResults(ctx context.Context, lastResults JobCollection) (result JobCollection, err error) { + req, err := lastResults.jobCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.JobsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.JobsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client JobsClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string, transformName string, filter string, orderby string) (result JobCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName, transformName, filter, orderby) + return +} + +// Update update is only supported for description and priority. Updating Priority will take effect when the Job state +// is Queued or Scheduled and depending on the timing the priority update may be ignored. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +// jobName - the Job name. +// parameters - the request parameters +func (client JobsClient) Update(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string, parameters Job) (result Job, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, transformName, jobName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.JobsClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.JobsClient", "Update", resp, "Failure responding to request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client JobsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string, parameters Job) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "jobName": autorest.Encode("path", jobName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs/{jobName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client JobsClient) UpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client JobsClient) UpdateResponder(resp *http.Response) (result Job, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/liveevents.go b/services/mediaservices/mgmt/2021-06-01/media/liveevents.go new file mode 100644 index 000000000000..6be199dc8e41 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/liveevents.go @@ -0,0 +1,867 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// LiveEventsClient is the client for the LiveEvents methods of the Media service. +type LiveEventsClient struct { + BaseClient +} + +// NewLiveEventsClient creates an instance of the LiveEventsClient client. +func NewLiveEventsClient(subscriptionID string) LiveEventsClient { + return NewLiveEventsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewLiveEventsClientWithBaseURI creates an instance of the LiveEventsClient client using a custom endpoint. Use this +// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewLiveEventsClientWithBaseURI(baseURI string, subscriptionID string) LiveEventsClient { + return LiveEventsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Allocate a live event is in StandBy state after allocation completes, and is ready to start. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +func (client LiveEventsClient) Allocate(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result LiveEventsAllocateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.Allocate") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveEventsClient", "Allocate", err.Error()) + } + + req, err := client.AllocatePreparer(ctx, resourceGroupName, accountName, liveEventName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Allocate", nil, "Failure preparing request") + return + } + + result, err = client.AllocateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Allocate", nil, "Failure sending request") + return + } + + return +} + +// AllocatePreparer prepares the Allocate request. +func (client LiveEventsClient) AllocatePreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}/allocate", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// AllocateSender sends the Allocate request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) AllocateSender(req *http.Request) (future LiveEventsAllocateFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// AllocateResponder handles the response to the Allocate request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) AllocateResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Create creates a new live event. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +// parameters - live event properties needed for creation. +// autoStart - the flag indicates if the resource should be automatically started on creation. +func (client LiveEventsClient) Create(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters LiveEvent, autoStart *bool) (result LiveEventsCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.Create") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}, + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.LiveEventProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.LiveEventProperties.Input", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("media.LiveEventsClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, resourceGroupName, accountName, liveEventName, parameters, autoStart) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Create", nil, "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client LiveEventsClient) CreatePreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters LiveEvent, autoStart *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if autoStart != nil { + queryParameters["autoStart"] = autorest.Encode("query", *autoStart) + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) CreateSender(req *http.Request) (future LiveEventsCreateFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) CreateResponder(resp *http.Response) (result LiveEvent, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a live event. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +func (client LiveEventsClient) Delete(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result LiveEventsDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.Delete") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveEventsClient", "Delete", err.Error()) + } + + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, liveEventName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Delete", nil, "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client LiveEventsClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) DeleteSender(req *http.Request) (future LiveEventsDeleteFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets properties of a live event. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +func (client LiveEventsClient) Get(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result LiveEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveEventsClient", "Get", err.Error()) + } + + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, liveEventName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client LiveEventsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) GetResponder(resp *http.Response) (result LiveEvent, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List lists all the live events in the account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client LiveEventsClient) List(ctx context.Context, resourceGroupName string, accountName string) (result LiveEventListResultPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.List") + defer func() { + sc := -1 + if result.lelr.Response.Response != nil { + sc = result.lelr.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.lelr.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "List", resp, "Failure sending request") + return + } + + result.lelr, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "List", resp, "Failure responding to request") + return + } + if result.lelr.hasNextLink() && result.lelr.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client LiveEventsClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) ListResponder(resp *http.Response) (result LiveEventListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client LiveEventsClient) listNextResults(ctx context.Context, lastResults LiveEventListResult) (result LiveEventListResult, err error) { + req, err := lastResults.liveEventListResultPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.LiveEventsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.LiveEventsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client LiveEventsClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string) (result LiveEventListResultIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName) + return +} + +// Reset resets an existing live event. All live outputs for the live event are deleted and the live event is stopped +// and will be started again. All assets used by the live outputs and streaming locators created on these assets are +// unaffected. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +func (client LiveEventsClient) Reset(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result LiveEventsResetFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.Reset") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveEventsClient", "Reset", err.Error()) + } + + req, err := client.ResetPreparer(ctx, resourceGroupName, accountName, liveEventName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Reset", nil, "Failure preparing request") + return + } + + result, err = client.ResetSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Reset", nil, "Failure sending request") + return + } + + return +} + +// ResetPreparer prepares the Reset request. +func (client LiveEventsClient) ResetPreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}/reset", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResetSender sends the Reset request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) ResetSender(req *http.Request) (future LiveEventsResetFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// ResetResponder handles the response to the Reset request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) ResetResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Start a live event in Stopped or StandBy state will be in Running state after the start operation completes. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +func (client LiveEventsClient) Start(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result LiveEventsStartFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.Start") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveEventsClient", "Start", err.Error()) + } + + req, err := client.StartPreparer(ctx, resourceGroupName, accountName, liveEventName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Start", nil, "Failure preparing request") + return + } + + result, err = client.StartSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Start", nil, "Failure sending request") + return + } + + return +} + +// StartPreparer prepares the Start request. +func (client LiveEventsClient) StartPreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}/start", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartSender sends the Start request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) StartSender(req *http.Request) (future LiveEventsStartFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// StartResponder handles the response to the Start request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) StartResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Stop stops a running live event. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +// parameters - liveEvent stop parameters +func (client LiveEventsClient) Stop(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters LiveEventActionInput) (result LiveEventsStopFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.Stop") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveEventsClient", "Stop", err.Error()) + } + + req, err := client.StopPreparer(ctx, resourceGroupName, accountName, liveEventName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Stop", nil, "Failure preparing request") + return + } + + result, err = client.StopSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Stop", nil, "Failure sending request") + return + } + + return +} + +// StopPreparer prepares the Stop request. +func (client LiveEventsClient) StopPreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters LiveEventActionInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}/stop", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StopSender sends the Stop request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) StopSender(req *http.Request) (future LiveEventsStopFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// StopResponder handles the response to the Stop request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) StopResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Update updates settings on an existing live event. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +// parameters - live event properties needed for patch. +func (client LiveEventsClient) Update(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters LiveEvent) (result LiveEventsUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventsClient.Update") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveEventsClient", "Update", err.Error()) + } + + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, liveEventName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Update", nil, "Failure preparing request") + return + } + + result, err = client.UpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsClient", "Update", nil, "Failure sending request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client LiveEventsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters LiveEvent) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client LiveEventsClient) UpdateSender(req *http.Request) (future LiveEventsUpdateFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client LiveEventsClient) UpdateResponder(resp *http.Response) (result LiveEvent, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/liveoutputs.go b/services/mediaservices/mgmt/2021-06-01/media/liveoutputs.go new file mode 100644 index 000000000000..bb19db859f28 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/liveoutputs.go @@ -0,0 +1,448 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// LiveOutputsClient is the client for the LiveOutputs methods of the Media service. +type LiveOutputsClient struct { + BaseClient +} + +// NewLiveOutputsClient creates an instance of the LiveOutputsClient client. +func NewLiveOutputsClient(subscriptionID string) LiveOutputsClient { + return NewLiveOutputsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewLiveOutputsClientWithBaseURI creates an instance of the LiveOutputsClient client using a custom endpoint. Use +// this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewLiveOutputsClientWithBaseURI(baseURI string, subscriptionID string) LiveOutputsClient { + return LiveOutputsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create creates a new live output. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +// liveOutputName - the name of the live output. +// parameters - live Output properties needed for creation. +func (client LiveOutputsClient) Create(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string, parameters LiveOutput) (result LiveOutputsCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveOutputsClient.Create") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}, + {TargetValue: liveOutputName, + Constraints: []validation.Constraint{{Target: "liveOutputName", Name: validation.MaxLength, Rule: 256, Chain: nil}, + {Target: "liveOutputName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveOutputName", Name: validation.Pattern, Rule: `^([a-zA-Z0-9])+(-*[a-zA-Z0-9])*$`, Chain: nil}}}, + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.LiveOutputProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.LiveOutputProperties.AssetName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.LiveOutputProperties.ArchiveWindowLength", Name: validation.Null, Rule: true, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("media.LiveOutputsClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, resourceGroupName, accountName, liveEventName, liveOutputName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "Create", nil, "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client LiveOutputsClient) CreatePreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string, parameters LiveOutput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "liveOutputName": autorest.Encode("path", liveOutputName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}/liveOutputs/{liveOutputName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client LiveOutputsClient) CreateSender(req *http.Request) (future LiveOutputsCreateFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client LiveOutputsClient) CreateResponder(resp *http.Response) (result LiveOutput, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a live output. Deleting a live output does not delete the asset the live output is writing to. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +// liveOutputName - the name of the live output. +func (client LiveOutputsClient) Delete(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string) (result LiveOutputsDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveOutputsClient.Delete") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}, + {TargetValue: liveOutputName, + Constraints: []validation.Constraint{{Target: "liveOutputName", Name: validation.MaxLength, Rule: 256, Chain: nil}, + {Target: "liveOutputName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveOutputName", Name: validation.Pattern, Rule: `^([a-zA-Z0-9])+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveOutputsClient", "Delete", err.Error()) + } + + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, liveEventName, liveOutputName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "Delete", nil, "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client LiveOutputsClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "liveOutputName": autorest.Encode("path", liveOutputName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}/liveOutputs/{liveOutputName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client LiveOutputsClient) DeleteSender(req *http.Request) (future LiveOutputsDeleteFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client LiveOutputsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets a live output. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +// liveOutputName - the name of the live output. +func (client LiveOutputsClient) Get(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string) (result LiveOutput, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveOutputsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}, + {TargetValue: liveOutputName, + Constraints: []validation.Constraint{{Target: "liveOutputName", Name: validation.MaxLength, Rule: 256, Chain: nil}, + {Target: "liveOutputName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveOutputName", Name: validation.Pattern, Rule: `^([a-zA-Z0-9])+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveOutputsClient", "Get", err.Error()) + } + + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, liveEventName, liveOutputName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client LiveOutputsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "liveOutputName": autorest.Encode("path", liveOutputName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}/liveOutputs/{liveOutputName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client LiveOutputsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client LiveOutputsClient) GetResponder(resp *http.Response) (result LiveOutput, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List lists the live outputs of a live event. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// liveEventName - the name of the live event, maximum length is 32. +func (client LiveOutputsClient) List(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result LiveOutputListResultPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveOutputsClient.List") + defer func() { + sc := -1 + if result.lolr.Response.Response != nil { + sc = result.lolr.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: liveEventName, + Constraints: []validation.Constraint{{Target: "liveEventName", Name: validation.MaxLength, Rule: 32, Chain: nil}, + {Target: "liveEventName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "liveEventName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.LiveOutputsClient", "List", err.Error()) + } + + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName, liveEventName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.lolr.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "List", resp, "Failure sending request") + return + } + + result.lolr, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "List", resp, "Failure responding to request") + return + } + if result.lolr.hasNextLink() && result.lolr.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client LiveOutputsClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "liveEventName": autorest.Encode("path", liveEventName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/liveEvents/{liveEventName}/liveOutputs", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client LiveOutputsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client LiveOutputsClient) ListResponder(resp *http.Response) (result LiveOutputListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client LiveOutputsClient) listNextResults(ctx context.Context, lastResults LiveOutputListResult) (result LiveOutputListResult, err error) { + req, err := lastResults.liveOutputListResultPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.LiveOutputsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.LiveOutputsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client LiveOutputsClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result LiveOutputListResultIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveOutputsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName, liveEventName) + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/locations.go b/services/mediaservices/mgmt/2021-06-01/media/locations.go new file mode 100644 index 000000000000..6638d7f332da --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/locations.go @@ -0,0 +1,108 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// LocationsClient is the client for the Locations methods of the Media service. +type LocationsClient struct { + BaseClient +} + +// NewLocationsClient creates an instance of the LocationsClient client. +func NewLocationsClient(subscriptionID string) LocationsClient { + return NewLocationsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewLocationsClientWithBaseURI creates an instance of the LocationsClient client using a custom endpoint. Use this +// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewLocationsClientWithBaseURI(baseURI string, subscriptionID string) LocationsClient { + return LocationsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CheckNameAvailability checks whether the Media Service resource name is available. +// Parameters: +// locationName - the name of the location +// parameters - the request parameters +func (client LocationsClient) CheckNameAvailability(ctx context.Context, locationName string, parameters CheckNameAvailabilityInput) (result EntityNameAvailabilityCheckOutput, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LocationsClient.CheckNameAvailability") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CheckNameAvailabilityPreparer(ctx, locationName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LocationsClient", "CheckNameAvailability", nil, "Failure preparing request") + return + } + + resp, err := client.CheckNameAvailabilitySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.LocationsClient", "CheckNameAvailability", resp, "Failure sending request") + return + } + + result, err = client.CheckNameAvailabilityResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LocationsClient", "CheckNameAvailability", resp, "Failure responding to request") + return + } + + return +} + +// CheckNameAvailabilityPreparer prepares the CheckNameAvailability request. +func (client LocationsClient) CheckNameAvailabilityPreparer(ctx context.Context, locationName string, parameters CheckNameAvailabilityInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "locationName": autorest.Encode("path", locationName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Media/locations/{locationName}/checkNameAvailability", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CheckNameAvailabilitySender sends the CheckNameAvailability request. The method will close the +// http.Response Body if it receives an error. +func (client LocationsClient) CheckNameAvailabilitySender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CheckNameAvailabilityResponder handles the response to the CheckNameAvailability request. The method always +// closes the http.Response Body. +func (client LocationsClient) CheckNameAvailabilityResponder(resp *http.Response) (result EntityNameAvailabilityCheckOutput, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/mediaapi/interfaces.go b/services/mediaservices/mgmt/2021-06-01/media/mediaapi/interfaces.go new file mode 100644 index 000000000000..8f4ed747635f --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/mediaapi/interfaces.go @@ -0,0 +1,204 @@ +package mediaapi + +// 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. + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-06-01/media" + "github.com/Azure/go-autorest/autorest" +) + +// OperationsClientAPI contains the set of methods on the OperationsClient type. +type OperationsClientAPI interface { + List(ctx context.Context) (result media.OperationCollection, err error) +} + +var _ OperationsClientAPI = (*media.OperationsClient)(nil) + +// MediaservicesClientAPI contains the set of methods on the MediaservicesClient type. +type MediaservicesClientAPI interface { + CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, parameters media.Service) (result media.Service, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string) (result media.Service, err error) + List(ctx context.Context, resourceGroupName string) (result media.ServiceCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string) (result media.ServiceCollectionIterator, err error) + ListBySubscription(ctx context.Context) (result media.ServiceCollectionPage, err error) + ListBySubscriptionComplete(ctx context.Context) (result media.ServiceCollectionIterator, err error) + ListEdgePolicies(ctx context.Context, resourceGroupName string, accountName string, parameters media.ListEdgePoliciesInput) (result media.EdgePolicies, err error) + SyncStorageKeys(ctx context.Context, resourceGroupName string, accountName string, parameters media.SyncStorageKeysInput) (result autorest.Response, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, parameters media.ServiceUpdate) (result media.Service, err error) +} + +var _ MediaservicesClientAPI = (*media.MediaservicesClient)(nil) + +// PrivateLinkResourcesClientAPI contains the set of methods on the PrivateLinkResourcesClient type. +type PrivateLinkResourcesClientAPI interface { + Get(ctx context.Context, resourceGroupName string, accountName string, name string) (result media.PrivateLinkResource, err error) + List(ctx context.Context, resourceGroupName string, accountName string) (result media.PrivateLinkResourceListResult, err error) +} + +var _ PrivateLinkResourcesClientAPI = (*media.PrivateLinkResourcesClient)(nil) + +// PrivateEndpointConnectionsClientAPI contains the set of methods on the PrivateEndpointConnectionsClient type. +type PrivateEndpointConnectionsClientAPI interface { + CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, name string, parameters media.PrivateEndpointConnection) (result media.PrivateEndpointConnection, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, name string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, name string) (result media.PrivateEndpointConnection, err error) + List(ctx context.Context, resourceGroupName string, accountName string) (result media.PrivateEndpointConnectionListResult, err error) +} + +var _ PrivateEndpointConnectionsClientAPI = (*media.PrivateEndpointConnectionsClient)(nil) + +// LocationsClientAPI contains the set of methods on the LocationsClient type. +type LocationsClientAPI interface { + CheckNameAvailability(ctx context.Context, locationName string, parameters media.CheckNameAvailabilityInput) (result media.EntityNameAvailabilityCheckOutput, err error) +} + +var _ LocationsClientAPI = (*media.LocationsClient)(nil) + +// AccountFiltersClientAPI contains the set of methods on the AccountFiltersClient type. +type AccountFiltersClientAPI interface { + CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, filterName string, parameters media.AccountFilter) (result media.AccountFilter, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, filterName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, filterName string) (result media.AccountFilter, err error) + List(ctx context.Context, resourceGroupName string, accountName string) (result media.AccountFilterCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string) (result media.AccountFilterCollectionIterator, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, filterName string, parameters media.AccountFilter) (result media.AccountFilter, err error) +} + +var _ AccountFiltersClientAPI = (*media.AccountFiltersClient)(nil) + +// AssetsClientAPI contains the set of methods on the AssetsClient type. +type AssetsClientAPI interface { + CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters media.Asset) (result media.Asset, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result media.Asset, err error) + GetEncryptionKey(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result media.StorageEncryptedAssetDecryptionData, err error) + List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result media.AssetCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result media.AssetCollectionIterator, err error) + ListContainerSas(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters media.ListContainerSasInput) (result media.AssetContainerSas, err error) + ListStreamingLocators(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result media.ListStreamingLocatorsResponse, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, assetName string, parameters media.Asset) (result media.Asset, err error) +} + +var _ AssetsClientAPI = (*media.AssetsClient)(nil) + +// AssetFiltersClientAPI contains the set of methods on the AssetFiltersClient type. +type AssetFiltersClientAPI interface { + CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string, parameters media.AssetFilter) (result media.AssetFilter, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string) (result media.AssetFilter, err error) + List(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result media.AssetFilterCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string, assetName string) (result media.AssetFilterCollectionIterator, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, assetName string, filterName string, parameters media.AssetFilter) (result media.AssetFilter, err error) +} + +var _ AssetFiltersClientAPI = (*media.AssetFiltersClient)(nil) + +// ContentKeyPoliciesClientAPI contains the set of methods on the ContentKeyPoliciesClient type. +type ContentKeyPoliciesClientAPI interface { + CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string, parameters media.ContentKeyPolicy) (result media.ContentKeyPolicy, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (result media.ContentKeyPolicy, err error) + GetPolicyPropertiesWithSecrets(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string) (result media.ContentKeyPolicyProperties, err error) + List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result media.ContentKeyPolicyCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result media.ContentKeyPolicyCollectionIterator, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, contentKeyPolicyName string, parameters media.ContentKeyPolicy) (result media.ContentKeyPolicy, err error) +} + +var _ ContentKeyPoliciesClientAPI = (*media.ContentKeyPoliciesClient)(nil) + +// TransformsClientAPI contains the set of methods on the TransformsClient type. +type TransformsClientAPI interface { + CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, transformName string, parameters media.Transform) (result media.Transform, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, transformName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, transformName string) (result media.Transform, err error) + List(ctx context.Context, resourceGroupName string, accountName string, filter string, orderby string) (result media.TransformCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, orderby string) (result media.TransformCollectionIterator, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, transformName string, parameters media.Transform) (result media.Transform, err error) +} + +var _ TransformsClientAPI = (*media.TransformsClient)(nil) + +// JobsClientAPI contains the set of methods on the JobsClient type. +type JobsClientAPI interface { + CancelJob(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (result autorest.Response, err error) + Create(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string, parameters media.Job) (result media.Job, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string) (result media.Job, err error) + List(ctx context.Context, resourceGroupName string, accountName string, transformName string, filter string, orderby string) (result media.JobCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string, transformName string, filter string, orderby string) (result media.JobCollectionIterator, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, transformName string, jobName string, parameters media.Job) (result media.Job, err error) +} + +var _ JobsClientAPI = (*media.JobsClient)(nil) + +// StreamingPoliciesClientAPI contains the set of methods on the StreamingPoliciesClient type. +type StreamingPoliciesClientAPI interface { + Create(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string, parameters media.StreamingPolicy) (result media.StreamingPolicy, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string) (result media.StreamingPolicy, err error) + List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result media.StreamingPolicyCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result media.StreamingPolicyCollectionIterator, err error) +} + +var _ StreamingPoliciesClientAPI = (*media.StreamingPoliciesClient)(nil) + +// StreamingLocatorsClientAPI contains the set of methods on the StreamingLocatorsClient type. +type StreamingLocatorsClientAPI interface { + Create(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string, parameters media.StreamingLocator) (result media.StreamingLocator, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (result media.StreamingLocator, err error) + List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result media.StreamingLocatorCollectionPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result media.StreamingLocatorCollectionIterator, err error) + ListContentKeys(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (result media.ListContentKeysResponse, err error) + ListPaths(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (result media.ListPathsResponse, err error) +} + +var _ StreamingLocatorsClientAPI = (*media.StreamingLocatorsClient)(nil) + +// LiveEventsClientAPI contains the set of methods on the LiveEventsClient type. +type LiveEventsClientAPI interface { + Allocate(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result media.LiveEventsAllocateFuture, err error) + Create(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters media.LiveEvent, autoStart *bool) (result media.LiveEventsCreateFuture, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result media.LiveEventsDeleteFuture, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result media.LiveEvent, err error) + List(ctx context.Context, resourceGroupName string, accountName string) (result media.LiveEventListResultPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string) (result media.LiveEventListResultIterator, err error) + Reset(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result media.LiveEventsResetFuture, err error) + Start(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result media.LiveEventsStartFuture, err error) + Stop(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters media.LiveEventActionInput) (result media.LiveEventsStopFuture, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, parameters media.LiveEvent) (result media.LiveEventsUpdateFuture, err error) +} + +var _ LiveEventsClientAPI = (*media.LiveEventsClient)(nil) + +// LiveOutputsClientAPI contains the set of methods on the LiveOutputsClient type. +type LiveOutputsClientAPI interface { + Create(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string, parameters media.LiveOutput) (result media.LiveOutputsCreateFuture, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string) (result media.LiveOutputsDeleteFuture, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, liveEventName string, liveOutputName string) (result media.LiveOutput, err error) + List(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result media.LiveOutputListResultPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string, liveEventName string) (result media.LiveOutputListResultIterator, err error) +} + +var _ LiveOutputsClientAPI = (*media.LiveOutputsClient)(nil) + +// StreamingEndpointsClientAPI contains the set of methods on the StreamingEndpointsClient type. +type StreamingEndpointsClientAPI interface { + Create(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters media.StreamingEndpoint, autoStart *bool) (result media.StreamingEndpointsCreateFuture, err error) + Delete(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (result media.StreamingEndpointsDeleteFuture, err error) + Get(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (result media.StreamingEndpoint, err error) + List(ctx context.Context, resourceGroupName string, accountName string) (result media.StreamingEndpointListResultPage, err error) + ListComplete(ctx context.Context, resourceGroupName string, accountName string) (result media.StreamingEndpointListResultIterator, err error) + Scale(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters media.StreamingEntityScaleUnit) (result media.StreamingEndpointsScaleFuture, err error) + Start(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (result media.StreamingEndpointsStartFuture, err error) + Stop(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (result media.StreamingEndpointsStopFuture, err error) + Update(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters media.StreamingEndpoint) (result media.StreamingEndpointsUpdateFuture, err error) +} + +var _ StreamingEndpointsClientAPI = (*media.StreamingEndpointsClient)(nil) diff --git a/services/mediaservices/mgmt/2021-06-01/media/mediaservices.go b/services/mediaservices/mgmt/2021-06-01/media/mediaservices.go new file mode 100644 index 000000000000..70e3951c66ad --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/mediaservices.go @@ -0,0 +1,741 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MediaservicesClient is the client for the Mediaservices methods of the Media service. +type MediaservicesClient struct { + BaseClient +} + +// NewMediaservicesClient creates an instance of the MediaservicesClient client. +func NewMediaservicesClient(subscriptionID string) MediaservicesClient { + return NewMediaservicesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewMediaservicesClientWithBaseURI creates an instance of the MediaservicesClient client using a custom endpoint. +// Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewMediaservicesClientWithBaseURI(baseURI string, subscriptionID string) MediaservicesClient { + return MediaservicesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates a Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// parameters - the request parameters +func (client MediaservicesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, parameters Service) (result Service, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.ServiceProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ServiceProperties.Encryption", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ServiceProperties.Encryption.Identity", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ServiceProperties.Encryption.Identity.UseSystemAssignedIdentity", Name: validation.Null, Rule: true, Chain: nil}}}, + }}, + }}, + {Target: "parameters.Identity", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.Identity.Type", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("media.MediaservicesClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, accountName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "CreateOrUpdate", resp, "Failure responding to request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client MediaservicesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, parameters Service) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client MediaservicesClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client MediaservicesClient) CreateOrUpdateResponder(resp *http.Response) (result Service, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client MediaservicesClient) Delete(ctx context.Context, resourceGroupName string, accountName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client MediaservicesClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client MediaservicesClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client MediaservicesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get the details of a Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client MediaservicesClient) Get(ctx context.Context, resourceGroupName string, accountName string) (result Service, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client MediaservicesClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MediaservicesClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MediaservicesClient) GetResponder(resp *http.Response) (result Service, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List list Media Services accounts in the resource group +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +func (client MediaservicesClient) List(ctx context.Context, resourceGroupName string) (result ServiceCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.List") + defer func() { + sc := -1 + if result.sc.Response.Response != nil { + sc = result.sc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.sc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "List", resp, "Failure sending request") + return + } + + result.sc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "List", resp, "Failure responding to request") + return + } + if result.sc.hasNextLink() && result.sc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client MediaservicesClient) ListPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MediaservicesClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MediaservicesClient) ListResponder(resp *http.Response) (result ServiceCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client MediaservicesClient) listNextResults(ctx context.Context, lastResults ServiceCollection) (result ServiceCollection, err error) { + req, err := lastResults.serviceCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.MediaservicesClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.MediaservicesClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client MediaservicesClient) ListComplete(ctx context.Context, resourceGroupName string) (result ServiceCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName) + return +} + +// ListBySubscription list Media Services accounts in the subscription. +func (client MediaservicesClient) ListBySubscription(ctx context.Context) (result ServiceCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.ListBySubscription") + defer func() { + sc := -1 + if result.sc.Response.Response != nil { + sc = result.sc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listBySubscriptionNextResults + req, err := client.ListBySubscriptionPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "ListBySubscription", nil, "Failure preparing request") + return + } + + resp, err := client.ListBySubscriptionSender(req) + if err != nil { + result.sc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "ListBySubscription", resp, "Failure sending request") + return + } + + result.sc, err = client.ListBySubscriptionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "ListBySubscription", resp, "Failure responding to request") + return + } + if result.sc.hasNextLink() && result.sc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListBySubscriptionPreparer prepares the ListBySubscription request. +func (client MediaservicesClient) ListBySubscriptionPreparer(ctx context.Context) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Media/mediaservices", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListBySubscriptionSender sends the ListBySubscription request. The method will close the +// http.Response Body if it receives an error. +func (client MediaservicesClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListBySubscriptionResponder handles the response to the ListBySubscription request. The method always +// closes the http.Response Body. +func (client MediaservicesClient) ListBySubscriptionResponder(resp *http.Response) (result ServiceCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listBySubscriptionNextResults retrieves the next set of results, if any. +func (client MediaservicesClient) listBySubscriptionNextResults(ctx context.Context, lastResults ServiceCollection) (result ServiceCollection, err error) { + req, err := lastResults.serviceCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.MediaservicesClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListBySubscriptionSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.MediaservicesClient", "listBySubscriptionNextResults", resp, "Failure sending next results request") + } + result, err = client.ListBySubscriptionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListBySubscriptionComplete enumerates all values, automatically crossing page boundaries as required. +func (client MediaservicesClient) ListBySubscriptionComplete(ctx context.Context) (result ServiceCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.ListBySubscription") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListBySubscription(ctx) + return +} + +// ListEdgePolicies list the media edge policies associated with the Media Services account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// parameters - the request parameters +func (client MediaservicesClient) ListEdgePolicies(ctx context.Context, resourceGroupName string, accountName string, parameters ListEdgePoliciesInput) (result EdgePolicies, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.ListEdgePolicies") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListEdgePoliciesPreparer(ctx, resourceGroupName, accountName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "ListEdgePolicies", nil, "Failure preparing request") + return + } + + resp, err := client.ListEdgePoliciesSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "ListEdgePolicies", resp, "Failure sending request") + return + } + + result, err = client.ListEdgePoliciesResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "ListEdgePolicies", resp, "Failure responding to request") + return + } + + return +} + +// ListEdgePoliciesPreparer prepares the ListEdgePolicies request. +func (client MediaservicesClient) ListEdgePoliciesPreparer(ctx context.Context, resourceGroupName string, accountName string, parameters ListEdgePoliciesInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/listEdgePolicies", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListEdgePoliciesSender sends the ListEdgePolicies request. The method will close the +// http.Response Body if it receives an error. +func (client MediaservicesClient) ListEdgePoliciesSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListEdgePoliciesResponder handles the response to the ListEdgePolicies request. The method always +// closes the http.Response Body. +func (client MediaservicesClient) ListEdgePoliciesResponder(resp *http.Response) (result EdgePolicies, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// SyncStorageKeys synchronizes storage account keys for a storage account associated with the Media Service account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// parameters - the request parameters +func (client MediaservicesClient) SyncStorageKeys(ctx context.Context, resourceGroupName string, accountName string, parameters SyncStorageKeysInput) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.SyncStorageKeys") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.SyncStorageKeysPreparer(ctx, resourceGroupName, accountName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "SyncStorageKeys", nil, "Failure preparing request") + return + } + + resp, err := client.SyncStorageKeysSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "SyncStorageKeys", resp, "Failure sending request") + return + } + + result, err = client.SyncStorageKeysResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "SyncStorageKeys", resp, "Failure responding to request") + return + } + + return +} + +// SyncStorageKeysPreparer prepares the SyncStorageKeys request. +func (client MediaservicesClient) SyncStorageKeysPreparer(ctx context.Context, resourceGroupName string, accountName string, parameters SyncStorageKeysInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/syncStorageKeys", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SyncStorageKeysSender sends the SyncStorageKeys request. The method will close the +// http.Response Body if it receives an error. +func (client MediaservicesClient) SyncStorageKeysSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// SyncStorageKeysResponder handles the response to the SyncStorageKeys request. The method always +// closes the http.Response Body. +func (client MediaservicesClient) SyncStorageKeysResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// Update updates an existing Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// parameters - the request parameters +func (client MediaservicesClient) Update(ctx context.Context, resourceGroupName string, accountName string, parameters ServiceUpdate) (result Service, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MediaservicesClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.MediaservicesClient", "Update", resp, "Failure responding to request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client MediaservicesClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, parameters ServiceUpdate) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client MediaservicesClient) UpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client MediaservicesClient) UpdateResponder(resp *http.Response) (result Service, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/models.go b/services/mediaservices/mgmt/2021-06-01/media/models.go new file mode 100644 index 000000000000..92b17de2d88d --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/models.go @@ -0,0 +1,13323 @@ +package media + +// 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. + +import ( + "context" + "encoding/json" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/date" + "github.com/Azure/go-autorest/autorest/to" + "github.com/Azure/go-autorest/tracing" + "github.com/gofrs/uuid" + "net/http" +) + +// The package's fully qualified name. +const fqdn = "github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-06-01/media" + +// AacAudio describes Advanced Audio Codec (AAC) audio encoding settings. +type AacAudio struct { + // Profile - The encoding profile to be used when encoding audio with AAC. Possible values include: 'AacAudioProfileAacLc', 'AacAudioProfileHeAacV1', 'AacAudioProfileHeAacV2' + Profile AacAudioProfile `json:"profile,omitempty"` + // Channels - The number of channels in the audio. + Channels *int32 `json:"channels,omitempty"` + // SamplingRate - The sampling rate to use for encoding in hertz. + SamplingRate *int32 `json:"samplingRate,omitempty"` + // Bitrate - The bitrate, in bits per second, of the output encoded audio. + Bitrate *int32 `json:"bitrate,omitempty"` + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for AacAudio. +func (aa AacAudio) MarshalJSON() ([]byte, error) { + aa.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio + objectMap := make(map[string]interface{}) + if aa.Profile != "" { + objectMap["profile"] = aa.Profile + } + if aa.Channels != nil { + objectMap["channels"] = aa.Channels + } + if aa.SamplingRate != nil { + objectMap["samplingRate"] = aa.SamplingRate + } + if aa.Bitrate != nil { + objectMap["bitrate"] = aa.Bitrate + } + if aa.Label != nil { + objectMap["label"] = aa.Label + } + if aa.OdataType != "" { + objectMap["@odata.type"] = aa.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsBasicAudio() (BasicAudio, bool) { + return &aa, true +} + +// AsAacAudio is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsAacAudio() (*AacAudio, bool) { + return &aa, true +} + +// AsVideo is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsBasicVideo() (BasicVideo, bool) { + return nil, false +} + +// AsH265Video is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsBasicImage() (BasicImage, bool) { + return nil, false +} + +// AsCopyAudio is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for AacAudio. +func (aa AacAudio) AsBasicCodec() (BasicCodec, bool) { + return &aa, true +} + +// AbsoluteClipTime specifies the clip time as an absolute time position in the media file. The absolute +// time can point to a different position depending on whether the media file starts from a timestamp of +// zero or not. +type AbsoluteClipTime struct { + // Time - The time position on the timeline of the input media. It is usually specified as an ISO8601 period. e.g PT30S for 30 seconds. + Time *string `json:"time,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicClipTimeOdataTypeClipTime', 'OdataTypeBasicClipTimeOdataTypeMicrosoftMediaAbsoluteClipTime', 'OdataTypeBasicClipTimeOdataTypeMicrosoftMediaUtcClipTime' + OdataType OdataTypeBasicClipTime `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for AbsoluteClipTime. +func (act AbsoluteClipTime) MarshalJSON() ([]byte, error) { + act.OdataType = OdataTypeBasicClipTimeOdataTypeMicrosoftMediaAbsoluteClipTime + objectMap := make(map[string]interface{}) + if act.Time != nil { + objectMap["time"] = act.Time + } + if act.OdataType != "" { + objectMap["@odata.type"] = act.OdataType + } + return json.Marshal(objectMap) +} + +// AsAbsoluteClipTime is the BasicClipTime implementation for AbsoluteClipTime. +func (act AbsoluteClipTime) AsAbsoluteClipTime() (*AbsoluteClipTime, bool) { + return &act, true +} + +// AsUtcClipTime is the BasicClipTime implementation for AbsoluteClipTime. +func (act AbsoluteClipTime) AsUtcClipTime() (*UtcClipTime, bool) { + return nil, false +} + +// AsClipTime is the BasicClipTime implementation for AbsoluteClipTime. +func (act AbsoluteClipTime) AsClipTime() (*ClipTime, bool) { + return nil, false +} + +// AsBasicClipTime is the BasicClipTime implementation for AbsoluteClipTime. +func (act AbsoluteClipTime) AsBasicClipTime() (BasicClipTime, bool) { + return &act, true +} + +// AccessControl ... +type AccessControl struct { + // DefaultAction - The behavior for IP access control in Key Delivery. Possible values include: 'DefaultActionAllow', 'DefaultActionDeny' + DefaultAction DefaultAction `json:"defaultAction,omitempty"` + // IPAllowList - The IP allow list for access control in Key Delivery. If the default action is set to 'Allow', the IP allow list must be empty. + IPAllowList *[]string `json:"ipAllowList,omitempty"` +} + +// AccountEncryption ... +type AccountEncryption struct { + // Type - The type of key used to encrypt the Account Key. Possible values include: 'AccountEncryptionKeyTypeSystemKey', 'AccountEncryptionKeyTypeCustomerKey' + Type AccountEncryptionKeyType `json:"type,omitempty"` + // KeyVaultProperties - The properties of the key used to encrypt the account. + KeyVaultProperties *KeyVaultProperties `json:"keyVaultProperties,omitempty"` + // Identity - The Key Vault identity. + Identity *ResourceIdentity `json:"identity,omitempty"` + // Status - READ-ONLY; The current status of the Key Vault mapping. + Status *string `json:"status,omitempty"` +} + +// MarshalJSON is the custom marshaler for AccountEncryption. +func (ae AccountEncryption) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ae.Type != "" { + objectMap["type"] = ae.Type + } + if ae.KeyVaultProperties != nil { + objectMap["keyVaultProperties"] = ae.KeyVaultProperties + } + if ae.Identity != nil { + objectMap["identity"] = ae.Identity + } + return json.Marshal(objectMap) +} + +// AccountFilter an Account Filter. +type AccountFilter struct { + autorest.Response `json:"-"` + *FilterProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for AccountFilter. +func (af AccountFilter) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if af.FilterProperties != nil { + objectMap["properties"] = af.FilterProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for AccountFilter struct. +func (af *AccountFilter) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var filterProperties FilterProperties + err = json.Unmarshal(*v, &filterProperties) + if err != nil { + return err + } + af.FilterProperties = &filterProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + af.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + af.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + af.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + af.Type = &typeVar + } + } + } + + return nil +} + +// AccountFilterCollection a collection of AccountFilter items. +type AccountFilterCollection struct { + autorest.Response `json:"-"` + // Value - A collection of AccountFilter items. + Value *[]AccountFilter `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// AccountFilterCollectionIterator provides access to a complete listing of AccountFilter values. +type AccountFilterCollectionIterator struct { + i int + page AccountFilterCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *AccountFilterCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AccountFilterCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *AccountFilterCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter AccountFilterCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter AccountFilterCollectionIterator) Response() AccountFilterCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter AccountFilterCollectionIterator) Value() AccountFilter { + if !iter.page.NotDone() { + return AccountFilter{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the AccountFilterCollectionIterator type. +func NewAccountFilterCollectionIterator(page AccountFilterCollectionPage) AccountFilterCollectionIterator { + return AccountFilterCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (afc AccountFilterCollection) IsEmpty() bool { + return afc.Value == nil || len(*afc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (afc AccountFilterCollection) hasNextLink() bool { + return afc.OdataNextLink != nil && len(*afc.OdataNextLink) != 0 +} + +// accountFilterCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (afc AccountFilterCollection) accountFilterCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !afc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(afc.OdataNextLink))) +} + +// AccountFilterCollectionPage contains a page of AccountFilter values. +type AccountFilterCollectionPage struct { + fn func(context.Context, AccountFilterCollection) (AccountFilterCollection, error) + afc AccountFilterCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *AccountFilterCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AccountFilterCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.afc) + if err != nil { + return err + } + page.afc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *AccountFilterCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page AccountFilterCollectionPage) NotDone() bool { + return !page.afc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page AccountFilterCollectionPage) Response() AccountFilterCollection { + return page.afc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page AccountFilterCollectionPage) Values() []AccountFilter { + if page.afc.IsEmpty() { + return nil + } + return *page.afc.Value +} + +// Creates a new instance of the AccountFilterCollectionPage type. +func NewAccountFilterCollectionPage(cur AccountFilterCollection, getNextPage func(context.Context, AccountFilterCollection) (AccountFilterCollection, error)) AccountFilterCollectionPage { + return AccountFilterCollectionPage{ + fn: getNextPage, + afc: cur, + } +} + +// AkamaiAccessControl akamai access control +type AkamaiAccessControl struct { + // AkamaiSignatureHeaderAuthenticationKeyList - authentication key list + AkamaiSignatureHeaderAuthenticationKeyList *[]AkamaiSignatureHeaderAuthenticationKey `json:"akamaiSignatureHeaderAuthenticationKeyList,omitempty"` +} + +// AkamaiSignatureHeaderAuthenticationKey akamai Signature Header authentication key. +type AkamaiSignatureHeaderAuthenticationKey struct { + // Identifier - identifier of the key + Identifier *string `json:"identifier,omitempty"` + // Base64Key - authentication key + Base64Key *string `json:"base64Key,omitempty"` + // Expiration - The expiration time of the authentication key. + Expiration *date.Time `json:"expiration,omitempty"` +} + +// Asset an Asset. +type Asset struct { + autorest.Response `json:"-"` + // AssetProperties - The resource properties. + *AssetProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Asset. +func (a Asset) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if a.AssetProperties != nil { + objectMap["properties"] = a.AssetProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Asset struct. +func (a *Asset) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var assetProperties AssetProperties + err = json.Unmarshal(*v, &assetProperties) + if err != nil { + return err + } + a.AssetProperties = &assetProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + a.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + a.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + a.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + a.Type = &typeVar + } + } + } + + return nil +} + +// AssetCollection a collection of Asset items. +type AssetCollection struct { + autorest.Response `json:"-"` + // Value - A collection of Asset items. + Value *[]Asset `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// AssetCollectionIterator provides access to a complete listing of Asset values. +type AssetCollectionIterator struct { + i int + page AssetCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *AssetCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *AssetCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter AssetCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter AssetCollectionIterator) Response() AssetCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter AssetCollectionIterator) Value() Asset { + if !iter.page.NotDone() { + return Asset{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the AssetCollectionIterator type. +func NewAssetCollectionIterator(page AssetCollectionPage) AssetCollectionIterator { + return AssetCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ac AssetCollection) IsEmpty() bool { + return ac.Value == nil || len(*ac.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (ac AssetCollection) hasNextLink() bool { + return ac.OdataNextLink != nil && len(*ac.OdataNextLink) != 0 +} + +// assetCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ac AssetCollection) assetCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !ac.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ac.OdataNextLink))) +} + +// AssetCollectionPage contains a page of Asset values. +type AssetCollectionPage struct { + fn func(context.Context, AssetCollection) (AssetCollection, error) + ac AssetCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *AssetCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.ac) + if err != nil { + return err + } + page.ac = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *AssetCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page AssetCollectionPage) NotDone() bool { + return !page.ac.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page AssetCollectionPage) Response() AssetCollection { + return page.ac +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page AssetCollectionPage) Values() []Asset { + if page.ac.IsEmpty() { + return nil + } + return *page.ac.Value +} + +// Creates a new instance of the AssetCollectionPage type. +func NewAssetCollectionPage(cur AssetCollection, getNextPage func(context.Context, AssetCollection) (AssetCollection, error)) AssetCollectionPage { + return AssetCollectionPage{ + fn: getNextPage, + ac: cur, + } +} + +// AssetContainerSas the Asset Storage container SAS URLs. +type AssetContainerSas struct { + autorest.Response `json:"-"` + // AssetContainerSasUrls - The list of Asset container SAS URLs. + AssetContainerSasUrls *[]string `json:"assetContainerSasUrls,omitempty"` +} + +// AssetFileEncryptionMetadata the Asset File Storage encryption metadata. +type AssetFileEncryptionMetadata struct { + // InitializationVector - The Asset File initialization vector. + InitializationVector *string `json:"initializationVector,omitempty"` + // AssetFileName - The Asset File name. + AssetFileName *string `json:"assetFileName,omitempty"` + // AssetFileID - The Asset File Id. + AssetFileID *uuid.UUID `json:"assetFileId,omitempty"` +} + +// AssetFilter an Asset Filter. +type AssetFilter struct { + autorest.Response `json:"-"` + *FilterProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for AssetFilter. +func (af AssetFilter) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if af.FilterProperties != nil { + objectMap["properties"] = af.FilterProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for AssetFilter struct. +func (af *AssetFilter) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var filterProperties FilterProperties + err = json.Unmarshal(*v, &filterProperties) + if err != nil { + return err + } + af.FilterProperties = &filterProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + af.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + af.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + af.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + af.Type = &typeVar + } + } + } + + return nil +} + +// AssetFilterCollection a collection of AssetFilter items. +type AssetFilterCollection struct { + autorest.Response `json:"-"` + // Value - A collection of AssetFilter items. + Value *[]AssetFilter `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// AssetFilterCollectionIterator provides access to a complete listing of AssetFilter values. +type AssetFilterCollectionIterator struct { + i int + page AssetFilterCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *AssetFilterCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetFilterCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *AssetFilterCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter AssetFilterCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter AssetFilterCollectionIterator) Response() AssetFilterCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter AssetFilterCollectionIterator) Value() AssetFilter { + if !iter.page.NotDone() { + return AssetFilter{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the AssetFilterCollectionIterator type. +func NewAssetFilterCollectionIterator(page AssetFilterCollectionPage) AssetFilterCollectionIterator { + return AssetFilterCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (afc AssetFilterCollection) IsEmpty() bool { + return afc.Value == nil || len(*afc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (afc AssetFilterCollection) hasNextLink() bool { + return afc.OdataNextLink != nil && len(*afc.OdataNextLink) != 0 +} + +// assetFilterCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (afc AssetFilterCollection) assetFilterCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !afc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(afc.OdataNextLink))) +} + +// AssetFilterCollectionPage contains a page of AssetFilter values. +type AssetFilterCollectionPage struct { + fn func(context.Context, AssetFilterCollection) (AssetFilterCollection, error) + afc AssetFilterCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *AssetFilterCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AssetFilterCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.afc) + if err != nil { + return err + } + page.afc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *AssetFilterCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page AssetFilterCollectionPage) NotDone() bool { + return !page.afc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page AssetFilterCollectionPage) Response() AssetFilterCollection { + return page.afc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page AssetFilterCollectionPage) Values() []AssetFilter { + if page.afc.IsEmpty() { + return nil + } + return *page.afc.Value +} + +// Creates a new instance of the AssetFilterCollectionPage type. +func NewAssetFilterCollectionPage(cur AssetFilterCollection, getNextPage func(context.Context, AssetFilterCollection) (AssetFilterCollection, error)) AssetFilterCollectionPage { + return AssetFilterCollectionPage{ + fn: getNextPage, + afc: cur, + } +} + +// AssetProperties the Asset properties. +type AssetProperties struct { + // AssetID - READ-ONLY; The Asset ID. + AssetID *uuid.UUID `json:"assetId,omitempty"` + // Created - READ-ONLY; The creation date of the Asset. + Created *date.Time `json:"created,omitempty"` + // LastModified - READ-ONLY; The last modified date of the Asset. + LastModified *date.Time `json:"lastModified,omitempty"` + // AlternateID - The alternate ID of the Asset. + AlternateID *string `json:"alternateId,omitempty"` + // Description - The Asset description. + Description *string `json:"description,omitempty"` + // Container - The name of the asset blob container. + Container *string `json:"container,omitempty"` + // StorageAccountName - The name of the storage account. + StorageAccountName *string `json:"storageAccountName,omitempty"` + // StorageEncryptionFormat - READ-ONLY; The Asset encryption format. One of None or MediaStorageEncryption. Possible values include: 'AssetStorageEncryptionFormatNone', 'AssetStorageEncryptionFormatMediaStorageClientEncryption' + StorageEncryptionFormat AssetStorageEncryptionFormat `json:"storageEncryptionFormat,omitempty"` +} + +// MarshalJSON is the custom marshaler for AssetProperties. +func (ap AssetProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ap.AlternateID != nil { + objectMap["alternateId"] = ap.AlternateID + } + if ap.Description != nil { + objectMap["description"] = ap.Description + } + if ap.Container != nil { + objectMap["container"] = ap.Container + } + if ap.StorageAccountName != nil { + objectMap["storageAccountName"] = ap.StorageAccountName + } + return json.Marshal(objectMap) +} + +// AssetStreamingLocator properties of the Streaming Locator. +type AssetStreamingLocator struct { + // Name - READ-ONLY; Streaming Locator name. + Name *string `json:"name,omitempty"` + // AssetName - READ-ONLY; Asset Name. + AssetName *string `json:"assetName,omitempty"` + // Created - READ-ONLY; The creation time of the Streaming Locator. + Created *date.Time `json:"created,omitempty"` + // StartTime - READ-ONLY; The start time of the Streaming Locator. + StartTime *date.Time `json:"startTime,omitempty"` + // EndTime - READ-ONLY; The end time of the Streaming Locator. + EndTime *date.Time `json:"endTime,omitempty"` + // StreamingLocatorID - READ-ONLY; StreamingLocatorId of the Streaming Locator. + StreamingLocatorID *uuid.UUID `json:"streamingLocatorId,omitempty"` + // StreamingPolicyName - READ-ONLY; Name of the Streaming Policy used by this Streaming Locator. + StreamingPolicyName *string `json:"streamingPolicyName,omitempty"` + // DefaultContentKeyPolicyName - READ-ONLY; Name of the default ContentKeyPolicy used by this Streaming Locator. + DefaultContentKeyPolicyName *string `json:"defaultContentKeyPolicyName,omitempty"` +} + +// MarshalJSON is the custom marshaler for AssetStreamingLocator. +func (asl AssetStreamingLocator) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// BasicAudio defines the common properties for all audio codecs. +type BasicAudio interface { + AsAacAudio() (*AacAudio, bool) + AsAudio() (*Audio, bool) +} + +// Audio defines the common properties for all audio codecs. +type Audio struct { + // Channels - The number of channels in the audio. + Channels *int32 `json:"channels,omitempty"` + // SamplingRate - The sampling rate to use for encoding in hertz. + SamplingRate *int32 `json:"samplingRate,omitempty"` + // Bitrate - The bitrate, in bits per second, of the output encoded audio. + Bitrate *int32 `json:"bitrate,omitempty"` + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +func unmarshalBasicAudio(body []byte) (BasicAudio, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio): + var aa AacAudio + err := json.Unmarshal(body, &aa) + return aa, err + default: + var a Audio + err := json.Unmarshal(body, &a) + return a, err + } +} +func unmarshalBasicAudioArray(body []byte) ([]BasicAudio, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + aArray := make([]BasicAudio, len(rawMessages)) + + for index, rawMessage := range rawMessages { + a, err := unmarshalBasicAudio(*rawMessage) + if err != nil { + return nil, err + } + aArray[index] = a + } + return aArray, nil +} + +// MarshalJSON is the custom marshaler for Audio. +func (a Audio) MarshalJSON() ([]byte, error) { + a.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio + objectMap := make(map[string]interface{}) + if a.Channels != nil { + objectMap["channels"] = a.Channels + } + if a.SamplingRate != nil { + objectMap["samplingRate"] = a.SamplingRate + } + if a.Bitrate != nil { + objectMap["bitrate"] = a.Bitrate + } + if a.Label != nil { + objectMap["label"] = a.Label + } + if a.OdataType != "" { + objectMap["@odata.type"] = a.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for Audio. +func (a Audio) AsAudio() (*Audio, bool) { + return &a, true +} + +// AsBasicAudio is the BasicCodec implementation for Audio. +func (a Audio) AsBasicAudio() (BasicAudio, bool) { + return &a, true +} + +// AsAacAudio is the BasicCodec implementation for Audio. +func (a Audio) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for Audio. +func (a Audio) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for Audio. +func (a Audio) AsBasicVideo() (BasicVideo, bool) { + return nil, false +} + +// AsH265Video is the BasicCodec implementation for Audio. +func (a Audio) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for Audio. +func (a Audio) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for Audio. +func (a Audio) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for Audio. +func (a Audio) AsBasicImage() (BasicImage, bool) { + return nil, false +} + +// AsCopyAudio is the BasicCodec implementation for Audio. +func (a Audio) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for Audio. +func (a Audio) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for Audio. +func (a Audio) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for Audio. +func (a Audio) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for Audio. +func (a Audio) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for Audio. +func (a Audio) AsBasicCodec() (BasicCodec, bool) { + return &a, true +} + +// BasicAudioAnalyzerPreset the Audio Analyzer preset applies a pre-defined set of AI-based analysis operations, +// including speech transcription. Currently, the preset supports processing of content with a single audio track. +type BasicAudioAnalyzerPreset interface { + AsVideoAnalyzerPreset() (*VideoAnalyzerPreset, bool) + AsAudioAnalyzerPreset() (*AudioAnalyzerPreset, bool) +} + +// AudioAnalyzerPreset the Audio Analyzer preset applies a pre-defined set of AI-based analysis operations, +// including speech transcription. Currently, the preset supports processing of content with a single audio +// track. +type AudioAnalyzerPreset struct { + // AudioLanguage - The language for the audio payload in the input using the BCP-47 format of 'language tag-region' (e.g: 'en-US'). If you know the language of your content, it is recommended that you specify it. The language must be specified explicitly for AudioAnalysisMode::Basic, since automatic language detection is not included in basic mode. If the language isn't specified or set to null, automatic language detection will choose the first language detected and process with the selected language for the duration of the file. It does not currently support dynamically switching between languages after the first language is detected. The automatic detection works best with audio recordings with clearly discernable speech. If automatic detection fails to find the language, transcription would fallback to 'en-US'." The list of supported languages is available here: https://go.microsoft.com/fwlink/?linkid=2109463 + AudioLanguage *string `json:"audioLanguage,omitempty"` + // Mode - Determines the set of audio analysis operations to be performed. If unspecified, the Standard AudioAnalysisMode would be chosen. Possible values include: 'AudioAnalysisModeStandard', 'AudioAnalysisModeBasic' + Mode AudioAnalysisMode `json:"mode,omitempty"` + // ExperimentalOptions - Dictionary containing key value pairs for parameters not exposed in the preset itself + ExperimentalOptions map[string]*string `json:"experimentalOptions"` + // OdataType - Possible values include: 'OdataTypeBasicPresetOdataTypePreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset' + OdataType OdataTypeBasicPreset `json:"@odata.type,omitempty"` +} + +func unmarshalBasicAudioAnalyzerPreset(body []byte) (BasicAudioAnalyzerPreset, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset): + var vap VideoAnalyzerPreset + err := json.Unmarshal(body, &vap) + return vap, err + default: + var aap AudioAnalyzerPreset + err := json.Unmarshal(body, &aap) + return aap, err + } +} +func unmarshalBasicAudioAnalyzerPresetArray(body []byte) ([]BasicAudioAnalyzerPreset, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + aapArray := make([]BasicAudioAnalyzerPreset, len(rawMessages)) + + for index, rawMessage := range rawMessages { + aap, err := unmarshalBasicAudioAnalyzerPreset(*rawMessage) + if err != nil { + return nil, err + } + aapArray[index] = aap + } + return aapArray, nil +} + +// MarshalJSON is the custom marshaler for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) MarshalJSON() ([]byte, error) { + aap.OdataType = OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset + objectMap := make(map[string]interface{}) + if aap.AudioLanguage != nil { + objectMap["audioLanguage"] = aap.AudioLanguage + } + if aap.Mode != "" { + objectMap["mode"] = aap.Mode + } + if aap.ExperimentalOptions != nil { + objectMap["experimentalOptions"] = aap.ExperimentalOptions + } + if aap.OdataType != "" { + objectMap["@odata.type"] = aap.OdataType + } + return json.Marshal(objectMap) +} + +// AsFaceDetectorPreset is the BasicPreset implementation for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) AsFaceDetectorPreset() (*FaceDetectorPreset, bool) { + return nil, false +} + +// AsAudioAnalyzerPreset is the BasicPreset implementation for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) AsAudioAnalyzerPreset() (*AudioAnalyzerPreset, bool) { + return &aap, true +} + +// AsBasicAudioAnalyzerPreset is the BasicPreset implementation for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) AsBasicAudioAnalyzerPreset() (BasicAudioAnalyzerPreset, bool) { + return &aap, true +} + +// AsBuiltInStandardEncoderPreset is the BasicPreset implementation for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) AsBuiltInStandardEncoderPreset() (*BuiltInStandardEncoderPreset, bool) { + return nil, false +} + +// AsStandardEncoderPreset is the BasicPreset implementation for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) AsStandardEncoderPreset() (*StandardEncoderPreset, bool) { + return nil, false +} + +// AsVideoAnalyzerPreset is the BasicPreset implementation for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) AsVideoAnalyzerPreset() (*VideoAnalyzerPreset, bool) { + return nil, false +} + +// AsPreset is the BasicPreset implementation for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) AsPreset() (*Preset, bool) { + return nil, false +} + +// AsBasicPreset is the BasicPreset implementation for AudioAnalyzerPreset. +func (aap AudioAnalyzerPreset) AsBasicPreset() (BasicPreset, bool) { + return &aap, true +} + +// AudioOverlay describes the properties of an audio overlay. +type AudioOverlay struct { + // InputLabel - The label of the job input which is to be used as an overlay. The Input must specify exactly one file. You can specify an image file in JPG, PNG, GIF or BMP format, or an audio file (such as a WAV, MP3, WMA or M4A file), or a video file. See https://aka.ms/mesformats for the complete list of supported audio and video file formats. + InputLabel *string `json:"inputLabel,omitempty"` + // Start - The start position, with reference to the input video, at which the overlay starts. The value should be in ISO 8601 format. For example, PT05S to start the overlay at 5 seconds into the input video. If not specified the overlay starts from the beginning of the input video. + Start *string `json:"start,omitempty"` + // End - The end position, with reference to the input video, at which the overlay ends. The value should be in ISO 8601 format. For example, PT30S to end the overlay at 30 seconds into the input video. If not specified or the value is greater than the input video duration, the overlay will be applied until the end of the input video if the overlay media duration is greater than the input video duration, else the overlay will last as long as the overlay media duration. + End *string `json:"end,omitempty"` + // FadeInDuration - The duration over which the overlay fades in onto the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade in (same as PT0S). + FadeInDuration *string `json:"fadeInDuration,omitempty"` + // FadeOutDuration - The duration over which the overlay fades out of the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade out (same as PT0S). + FadeOutDuration *string `json:"fadeOutDuration,omitempty"` + // AudioGainLevel - The gain level of audio in the overlay. The value should be in the range [0, 1.0]. The default is 1.0. + AudioGainLevel *float64 `json:"audioGainLevel,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicOverlayOdataTypeOverlay', 'OdataTypeBasicOverlayOdataTypeMicrosoftMediaAudioOverlay', 'OdataTypeBasicOverlayOdataTypeMicrosoftMediaVideoOverlay' + OdataType OdataTypeBasicOverlay `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for AudioOverlay. +func (ao AudioOverlay) MarshalJSON() ([]byte, error) { + ao.OdataType = OdataTypeBasicOverlayOdataTypeMicrosoftMediaAudioOverlay + objectMap := make(map[string]interface{}) + if ao.InputLabel != nil { + objectMap["inputLabel"] = ao.InputLabel + } + if ao.Start != nil { + objectMap["start"] = ao.Start + } + if ao.End != nil { + objectMap["end"] = ao.End + } + if ao.FadeInDuration != nil { + objectMap["fadeInDuration"] = ao.FadeInDuration + } + if ao.FadeOutDuration != nil { + objectMap["fadeOutDuration"] = ao.FadeOutDuration + } + if ao.AudioGainLevel != nil { + objectMap["audioGainLevel"] = ao.AudioGainLevel + } + if ao.OdataType != "" { + objectMap["@odata.type"] = ao.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioOverlay is the BasicOverlay implementation for AudioOverlay. +func (ao AudioOverlay) AsAudioOverlay() (*AudioOverlay, bool) { + return &ao, true +} + +// AsVideoOverlay is the BasicOverlay implementation for AudioOverlay. +func (ao AudioOverlay) AsVideoOverlay() (*VideoOverlay, bool) { + return nil, false +} + +// AsOverlay is the BasicOverlay implementation for AudioOverlay. +func (ao AudioOverlay) AsOverlay() (*Overlay, bool) { + return nil, false +} + +// AsBasicOverlay is the BasicOverlay implementation for AudioOverlay. +func (ao AudioOverlay) AsBasicOverlay() (BasicOverlay, bool) { + return &ao, true +} + +// BasicAudioTrackDescriptor a TrackSelection to select audio tracks. +type BasicAudioTrackDescriptor interface { + AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) + AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) + AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) +} + +// AudioTrackDescriptor a TrackSelection to select audio tracks. +type AudioTrackDescriptor struct { + // ChannelMapping - Optional designation for single channel audio tracks. Can be used to combine the tracks into stereo or multi-channel audio tracks. Possible values include: 'ChannelMappingFrontLeft', 'ChannelMappingFrontRight', 'ChannelMappingCenter', 'ChannelMappingLowFrequencyEffects', 'ChannelMappingBackLeft', 'ChannelMappingBackRight', 'ChannelMappingStereoLeft', 'ChannelMappingStereoRight' + ChannelMapping ChannelMapping `json:"channelMapping,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID' + OdataType OdataTypeBasicTrackDescriptor `json:"@odata.type,omitempty"` +} + +func unmarshalBasicAudioTrackDescriptor(body []byte) (BasicAudioTrackDescriptor, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute): + var satba SelectAudioTrackByAttribute + err := json.Unmarshal(body, &satba) + return satba, err + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID): + var satbi SelectAudioTrackByID + err := json.Unmarshal(body, &satbi) + return satbi, err + default: + var atd AudioTrackDescriptor + err := json.Unmarshal(body, &atd) + return atd, err + } +} +func unmarshalBasicAudioTrackDescriptorArray(body []byte) ([]BasicAudioTrackDescriptor, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + atdArray := make([]BasicAudioTrackDescriptor, len(rawMessages)) + + for index, rawMessage := range rawMessages { + atd, err := unmarshalBasicAudioTrackDescriptor(*rawMessage) + if err != nil { + return nil, err + } + atdArray[index] = atd + } + return atdArray, nil +} + +// MarshalJSON is the custom marshaler for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) MarshalJSON() ([]byte, error) { + atd.OdataType = OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor + objectMap := make(map[string]interface{}) + if atd.ChannelMapping != "" { + objectMap["channelMapping"] = atd.ChannelMapping + } + if atd.OdataType != "" { + objectMap["@odata.type"] = atd.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioTrackDescriptor is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) { + return &atd, true +} + +// AsBasicAudioTrackDescriptor is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsBasicAudioTrackDescriptor() (BasicAudioTrackDescriptor, bool) { + return &atd, true +} + +// AsSelectAudioTrackByAttribute is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) { + return nil, false +} + +// AsSelectAudioTrackByID is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) { + return nil, false +} + +// AsVideoTrackDescriptor is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) { + return nil, false +} + +// AsBasicVideoTrackDescriptor is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsBasicVideoTrackDescriptor() (BasicVideoTrackDescriptor, bool) { + return nil, false +} + +// AsSelectVideoTrackByAttribute is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) { + return nil, false +} + +// AsSelectVideoTrackByID is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) { + return nil, false +} + +// AsTrackDescriptor is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsTrackDescriptor() (*TrackDescriptor, bool) { + return nil, false +} + +// AsBasicTrackDescriptor is the BasicTrackDescriptor implementation for AudioTrackDescriptor. +func (atd AudioTrackDescriptor) AsBasicTrackDescriptor() (BasicTrackDescriptor, bool) { + return &atd, true +} + +// AzureEntityResource the resource model definition for an Azure Resource Manager resource with an etag. +type AzureEntityResource struct { + // Etag - READ-ONLY; Resource Etag. + Etag *string `json:"etag,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for AzureEntityResource. +func (aer AzureEntityResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// BuiltInStandardEncoderPreset describes a built-in preset for encoding the input video with the Standard +// Encoder. +type BuiltInStandardEncoderPreset struct { + // Configurations - PresetConfigurations are only supported for the ContentAwareEncoding and H265ContentAwareEncoding built-in presets. These settings will not affect other built-in or custom defined presets. + Configurations *PresetConfigurations `json:"configurations,omitempty"` + // PresetName - The built-in preset to be used for encoding videos. Possible values include: 'EncoderNamedPresetH264SingleBitrateSD', 'EncoderNamedPresetH264SingleBitrate720p', 'EncoderNamedPresetH264SingleBitrate1080p', 'EncoderNamedPresetAdaptiveStreaming', 'EncoderNamedPresetAACGoodQualityAudio', 'EncoderNamedPresetContentAwareEncodingExperimental', 'EncoderNamedPresetContentAwareEncoding', 'EncoderNamedPresetCopyAllBitrateNonInterleaved', 'EncoderNamedPresetH264MultipleBitrate1080p', 'EncoderNamedPresetH264MultipleBitrate720p', 'EncoderNamedPresetH264MultipleBitrateSD', 'EncoderNamedPresetH265ContentAwareEncoding', 'EncoderNamedPresetH265AdaptiveStreaming', 'EncoderNamedPresetH265SingleBitrate720p', 'EncoderNamedPresetH265SingleBitrate1080p', 'EncoderNamedPresetH265SingleBitrate4K' + PresetName EncoderNamedPreset `json:"presetName,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicPresetOdataTypePreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset' + OdataType OdataTypeBasicPreset `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) MarshalJSON() ([]byte, error) { + bisep.OdataType = OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset + objectMap := make(map[string]interface{}) + if bisep.Configurations != nil { + objectMap["configurations"] = bisep.Configurations + } + if bisep.PresetName != "" { + objectMap["presetName"] = bisep.PresetName + } + if bisep.OdataType != "" { + objectMap["@odata.type"] = bisep.OdataType + } + return json.Marshal(objectMap) +} + +// AsFaceDetectorPreset is the BasicPreset implementation for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) AsFaceDetectorPreset() (*FaceDetectorPreset, bool) { + return nil, false +} + +// AsAudioAnalyzerPreset is the BasicPreset implementation for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) AsAudioAnalyzerPreset() (*AudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBasicAudioAnalyzerPreset is the BasicPreset implementation for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) AsBasicAudioAnalyzerPreset() (BasicAudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBuiltInStandardEncoderPreset is the BasicPreset implementation for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) AsBuiltInStandardEncoderPreset() (*BuiltInStandardEncoderPreset, bool) { + return &bisep, true +} + +// AsStandardEncoderPreset is the BasicPreset implementation for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) AsStandardEncoderPreset() (*StandardEncoderPreset, bool) { + return nil, false +} + +// AsVideoAnalyzerPreset is the BasicPreset implementation for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) AsVideoAnalyzerPreset() (*VideoAnalyzerPreset, bool) { + return nil, false +} + +// AsPreset is the BasicPreset implementation for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) AsPreset() (*Preset, bool) { + return nil, false +} + +// AsBasicPreset is the BasicPreset implementation for BuiltInStandardEncoderPreset. +func (bisep BuiltInStandardEncoderPreset) AsBasicPreset() (BasicPreset, bool) { + return &bisep, true +} + +// CbcsDrmConfiguration class to specify DRM configurations of CommonEncryptionCbcs scheme in Streaming +// Policy +type CbcsDrmConfiguration struct { + // FairPlay - FairPlay configurations + FairPlay *StreamingPolicyFairPlayConfiguration `json:"fairPlay,omitempty"` + // PlayReady - PlayReady configurations + PlayReady *StreamingPolicyPlayReadyConfiguration `json:"playReady,omitempty"` + // Widevine - Widevine configurations + Widevine *StreamingPolicyWidevineConfiguration `json:"widevine,omitempty"` +} + +// CencDrmConfiguration class to specify DRM configurations of CommonEncryptionCenc scheme in Streaming +// Policy +type CencDrmConfiguration struct { + // PlayReady - PlayReady configurations + PlayReady *StreamingPolicyPlayReadyConfiguration `json:"playReady,omitempty"` + // Widevine - Widevine configurations + Widevine *StreamingPolicyWidevineConfiguration `json:"widevine,omitempty"` +} + +// CheckNameAvailabilityInput the input to the check name availability request. +type CheckNameAvailabilityInput struct { + // Name - The account name. + Name *string `json:"name,omitempty"` + // Type - The account type. For a Media Services account, this should be 'MediaServices'. + Type *string `json:"type,omitempty"` +} + +// BasicClipTime base class for specifying a clip time. Use sub classes of this class to specify the time position in +// the media. +type BasicClipTime interface { + AsAbsoluteClipTime() (*AbsoluteClipTime, bool) + AsUtcClipTime() (*UtcClipTime, bool) + AsClipTime() (*ClipTime, bool) +} + +// ClipTime base class for specifying a clip time. Use sub classes of this class to specify the time position +// in the media. +type ClipTime struct { + // OdataType - Possible values include: 'OdataTypeBasicClipTimeOdataTypeClipTime', 'OdataTypeBasicClipTimeOdataTypeMicrosoftMediaAbsoluteClipTime', 'OdataTypeBasicClipTimeOdataTypeMicrosoftMediaUtcClipTime' + OdataType OdataTypeBasicClipTime `json:"@odata.type,omitempty"` +} + +func unmarshalBasicClipTime(body []byte) (BasicClipTime, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicClipTimeOdataTypeMicrosoftMediaAbsoluteClipTime): + var act AbsoluteClipTime + err := json.Unmarshal(body, &act) + return act, err + case string(OdataTypeBasicClipTimeOdataTypeMicrosoftMediaUtcClipTime): + var uct UtcClipTime + err := json.Unmarshal(body, &uct) + return uct, err + default: + var ct ClipTime + err := json.Unmarshal(body, &ct) + return ct, err + } +} +func unmarshalBasicClipTimeArray(body []byte) ([]BasicClipTime, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ctArray := make([]BasicClipTime, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ct, err := unmarshalBasicClipTime(*rawMessage) + if err != nil { + return nil, err + } + ctArray[index] = ct + } + return ctArray, nil +} + +// MarshalJSON is the custom marshaler for ClipTime. +func (ct ClipTime) MarshalJSON() ([]byte, error) { + ct.OdataType = OdataTypeBasicClipTimeOdataTypeClipTime + objectMap := make(map[string]interface{}) + if ct.OdataType != "" { + objectMap["@odata.type"] = ct.OdataType + } + return json.Marshal(objectMap) +} + +// AsAbsoluteClipTime is the BasicClipTime implementation for ClipTime. +func (ct ClipTime) AsAbsoluteClipTime() (*AbsoluteClipTime, bool) { + return nil, false +} + +// AsUtcClipTime is the BasicClipTime implementation for ClipTime. +func (ct ClipTime) AsUtcClipTime() (*UtcClipTime, bool) { + return nil, false +} + +// AsClipTime is the BasicClipTime implementation for ClipTime. +func (ct ClipTime) AsClipTime() (*ClipTime, bool) { + return &ct, true +} + +// AsBasicClipTime is the BasicClipTime implementation for ClipTime. +func (ct ClipTime) AsBasicClipTime() (BasicClipTime, bool) { + return &ct, true +} + +// BasicCodec describes the basic properties of all codecs. +type BasicCodec interface { + AsAudio() (*Audio, bool) + AsBasicAudio() (BasicAudio, bool) + AsAacAudio() (*AacAudio, bool) + AsVideo() (*Video, bool) + AsBasicVideo() (BasicVideo, bool) + AsH265Video() (*H265Video, bool) + AsCopyVideo() (*CopyVideo, bool) + AsImage() (*Image, bool) + AsBasicImage() (BasicImage, bool) + AsCopyAudio() (*CopyAudio, bool) + AsH264Video() (*H264Video, bool) + AsJpgImage() (*JpgImage, bool) + AsPngImage() (*PngImage, bool) + AsCodec() (*Codec, bool) +} + +// Codec describes the basic properties of all codecs. +type Codec struct { + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +func unmarshalBasicCodec(body []byte) (BasicCodec, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio): + var a Audio + err := json.Unmarshal(body, &a) + return a, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio): + var aa AacAudio + err := json.Unmarshal(body, &aa) + return aa, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo): + var vVar Video + err := json.Unmarshal(body, &vVar) + return vVar, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video): + var hv H265Video + err := json.Unmarshal(body, &hv) + return hv, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo): + var cv CopyVideo + err := json.Unmarshal(body, &cv) + return cv, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaImage): + var i Image + err := json.Unmarshal(body, &i) + return i, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio): + var ca CopyAudio + err := json.Unmarshal(body, &ca) + return ca, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video): + var hv H264Video + err := json.Unmarshal(body, &hv) + return hv, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage): + var ji JpgImage + err := json.Unmarshal(body, &ji) + return ji, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage): + var pi PngImage + err := json.Unmarshal(body, &pi) + return pi, err + default: + var c Codec + err := json.Unmarshal(body, &c) + return c, err + } +} +func unmarshalBasicCodecArray(body []byte) ([]BasicCodec, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + cArray := make([]BasicCodec, len(rawMessages)) + + for index, rawMessage := range rawMessages { + c, err := unmarshalBasicCodec(*rawMessage) + if err != nil { + return nil, err + } + cArray[index] = c + } + return cArray, nil +} + +// MarshalJSON is the custom marshaler for Codec. +func (c Codec) MarshalJSON() ([]byte, error) { + c.OdataType = OdataTypeBasicCodecOdataTypeCodec + objectMap := make(map[string]interface{}) + if c.Label != nil { + objectMap["label"] = c.Label + } + if c.OdataType != "" { + objectMap["@odata.type"] = c.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for Codec. +func (c Codec) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for Codec. +func (c Codec) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for Codec. +func (c Codec) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for Codec. +func (c Codec) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for Codec. +func (c Codec) AsBasicVideo() (BasicVideo, bool) { + return nil, false +} + +// AsH265Video is the BasicCodec implementation for Codec. +func (c Codec) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for Codec. +func (c Codec) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for Codec. +func (c Codec) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for Codec. +func (c Codec) AsBasicImage() (BasicImage, bool) { + return nil, false +} + +// AsCopyAudio is the BasicCodec implementation for Codec. +func (c Codec) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for Codec. +func (c Codec) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for Codec. +func (c Codec) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for Codec. +func (c Codec) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for Codec. +func (c Codec) AsCodec() (*Codec, bool) { + return &c, true +} + +// AsBasicCodec is the BasicCodec implementation for Codec. +func (c Codec) AsBasicCodec() (BasicCodec, bool) { + return &c, true +} + +// CommonEncryptionCbcs class for CommonEncryptionCbcs encryption scheme +type CommonEncryptionCbcs struct { + // EnabledProtocols - Representing supported protocols + EnabledProtocols *EnabledProtocols `json:"enabledProtocols,omitempty"` + // ClearTracks - Representing which tracks should not be encrypted + ClearTracks *[]TrackSelection `json:"clearTracks,omitempty"` + // ContentKeys - Representing default content key for each encryption scheme and separate content keys for specific tracks + ContentKeys *StreamingPolicyContentKeys `json:"contentKeys,omitempty"` + // Drm - Configuration of DRMs for current encryption scheme + Drm *CbcsDrmConfiguration `json:"drm,omitempty"` +} + +// CommonEncryptionCenc class for envelope encryption scheme +type CommonEncryptionCenc struct { + // EnabledProtocols - Representing supported protocols + EnabledProtocols *EnabledProtocols `json:"enabledProtocols,omitempty"` + // ClearTracks - Representing which tracks should not be encrypted + ClearTracks *[]TrackSelection `json:"clearTracks,omitempty"` + // ContentKeys - Representing default content key for each encryption scheme and separate content keys for specific tracks + ContentKeys *StreamingPolicyContentKeys `json:"contentKeys,omitempty"` + // Drm - Configuration of DRMs for CommonEncryptionCenc encryption scheme + Drm *CencDrmConfiguration `json:"drm,omitempty"` +} + +// ContentKeyPolicy a Content Key Policy resource. +type ContentKeyPolicy struct { + autorest.Response `json:"-"` + *ContentKeyPolicyProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicy. +func (ckp ContentKeyPolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ckp.ContentKeyPolicyProperties != nil { + objectMap["properties"] = ckp.ContentKeyPolicyProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ContentKeyPolicy struct. +func (ckp *ContentKeyPolicy) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var contentKeyPolicyProperties ContentKeyPolicyProperties + err = json.Unmarshal(*v, &contentKeyPolicyProperties) + if err != nil { + return err + } + ckp.ContentKeyPolicyProperties = &contentKeyPolicyProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + ckp.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ckp.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ckp.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ckp.Type = &typeVar + } + } + } + + return nil +} + +// ContentKeyPolicyClearKeyConfiguration represents a configuration for non-DRM keys. +type ContentKeyPolicyClearKeyConfiguration struct { + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration' + OdataType OdataTypeBasicContentKeyPolicyConfiguration `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyClearKeyConfiguration. +func (ckpckc ContentKeyPolicyClearKeyConfiguration) MarshalJSON() ([]byte, error) { + ckpckc.OdataType = OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration + objectMap := make(map[string]interface{}) + if ckpckc.OdataType != "" { + objectMap["@odata.type"] = ckpckc.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyClearKeyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyClearKeyConfiguration. +func (ckpckc ContentKeyPolicyClearKeyConfiguration) AsContentKeyPolicyClearKeyConfiguration() (*ContentKeyPolicyClearKeyConfiguration, bool) { + return &ckpckc, true +} + +// AsContentKeyPolicyUnknownConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyClearKeyConfiguration. +func (ckpckc ContentKeyPolicyClearKeyConfiguration) AsContentKeyPolicyUnknownConfiguration() (*ContentKeyPolicyUnknownConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyWidevineConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyClearKeyConfiguration. +func (ckpckc ContentKeyPolicyClearKeyConfiguration) AsContentKeyPolicyWidevineConfiguration() (*ContentKeyPolicyWidevineConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyClearKeyConfiguration. +func (ckpckc ContentKeyPolicyClearKeyConfiguration) AsContentKeyPolicyPlayReadyConfiguration() (*ContentKeyPolicyPlayReadyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyFairPlayConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyClearKeyConfiguration. +func (ckpckc ContentKeyPolicyClearKeyConfiguration) AsContentKeyPolicyFairPlayConfiguration() (*ContentKeyPolicyFairPlayConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyClearKeyConfiguration. +func (ckpckc ContentKeyPolicyClearKeyConfiguration) AsContentKeyPolicyConfiguration() (*ContentKeyPolicyConfiguration, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyClearKeyConfiguration. +func (ckpckc ContentKeyPolicyClearKeyConfiguration) AsBasicContentKeyPolicyConfiguration() (BasicContentKeyPolicyConfiguration, bool) { + return &ckpckc, true +} + +// ContentKeyPolicyCollection a collection of ContentKeyPolicy items. +type ContentKeyPolicyCollection struct { + autorest.Response `json:"-"` + // Value - A collection of ContentKeyPolicy items. + Value *[]ContentKeyPolicy `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// ContentKeyPolicyCollectionIterator provides access to a complete listing of ContentKeyPolicy values. +type ContentKeyPolicyCollectionIterator struct { + i int + page ContentKeyPolicyCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *ContentKeyPolicyCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPolicyCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *ContentKeyPolicyCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter ContentKeyPolicyCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter ContentKeyPolicyCollectionIterator) Response() ContentKeyPolicyCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter ContentKeyPolicyCollectionIterator) Value() ContentKeyPolicy { + if !iter.page.NotDone() { + return ContentKeyPolicy{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the ContentKeyPolicyCollectionIterator type. +func NewContentKeyPolicyCollectionIterator(page ContentKeyPolicyCollectionPage) ContentKeyPolicyCollectionIterator { + return ContentKeyPolicyCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ckpc ContentKeyPolicyCollection) IsEmpty() bool { + return ckpc.Value == nil || len(*ckpc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (ckpc ContentKeyPolicyCollection) hasNextLink() bool { + return ckpc.OdataNextLink != nil && len(*ckpc.OdataNextLink) != 0 +} + +// contentKeyPolicyCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ckpc ContentKeyPolicyCollection) contentKeyPolicyCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !ckpc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ckpc.OdataNextLink))) +} + +// ContentKeyPolicyCollectionPage contains a page of ContentKeyPolicy values. +type ContentKeyPolicyCollectionPage struct { + fn func(context.Context, ContentKeyPolicyCollection) (ContentKeyPolicyCollection, error) + ckpc ContentKeyPolicyCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *ContentKeyPolicyCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ContentKeyPolicyCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.ckpc) + if err != nil { + return err + } + page.ckpc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *ContentKeyPolicyCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page ContentKeyPolicyCollectionPage) NotDone() bool { + return !page.ckpc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page ContentKeyPolicyCollectionPage) Response() ContentKeyPolicyCollection { + return page.ckpc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page ContentKeyPolicyCollectionPage) Values() []ContentKeyPolicy { + if page.ckpc.IsEmpty() { + return nil + } + return *page.ckpc.Value +} + +// Creates a new instance of the ContentKeyPolicyCollectionPage type. +func NewContentKeyPolicyCollectionPage(cur ContentKeyPolicyCollection, getNextPage func(context.Context, ContentKeyPolicyCollection) (ContentKeyPolicyCollection, error)) ContentKeyPolicyCollectionPage { + return ContentKeyPolicyCollectionPage{ + fn: getNextPage, + ckpc: cur, + } +} + +// BasicContentKeyPolicyConfiguration base class for Content Key Policy configuration. A derived class must be used to +// create a configuration. +type BasicContentKeyPolicyConfiguration interface { + AsContentKeyPolicyClearKeyConfiguration() (*ContentKeyPolicyClearKeyConfiguration, bool) + AsContentKeyPolicyUnknownConfiguration() (*ContentKeyPolicyUnknownConfiguration, bool) + AsContentKeyPolicyWidevineConfiguration() (*ContentKeyPolicyWidevineConfiguration, bool) + AsContentKeyPolicyPlayReadyConfiguration() (*ContentKeyPolicyPlayReadyConfiguration, bool) + AsContentKeyPolicyFairPlayConfiguration() (*ContentKeyPolicyFairPlayConfiguration, bool) + AsContentKeyPolicyConfiguration() (*ContentKeyPolicyConfiguration, bool) +} + +// ContentKeyPolicyConfiguration base class for Content Key Policy configuration. A derived class must be used +// to create a configuration. +type ContentKeyPolicyConfiguration struct { + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration' + OdataType OdataTypeBasicContentKeyPolicyConfiguration `json:"@odata.type,omitempty"` +} + +func unmarshalBasicContentKeyPolicyConfiguration(body []byte) (BasicContentKeyPolicyConfiguration, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration): + var ckpckc ContentKeyPolicyClearKeyConfiguration + err := json.Unmarshal(body, &ckpckc) + return ckpckc, err + case string(OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration): + var ckpuc ContentKeyPolicyUnknownConfiguration + err := json.Unmarshal(body, &ckpuc) + return ckpuc, err + case string(OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration): + var ckpwc ContentKeyPolicyWidevineConfiguration + err := json.Unmarshal(body, &ckpwc) + return ckpwc, err + case string(OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration): + var ckpprc ContentKeyPolicyPlayReadyConfiguration + err := json.Unmarshal(body, &ckpprc) + return ckpprc, err + case string(OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration): + var ckpfpc ContentKeyPolicyFairPlayConfiguration + err := json.Unmarshal(body, &ckpfpc) + return ckpfpc, err + default: + var ckpc ContentKeyPolicyConfiguration + err := json.Unmarshal(body, &ckpc) + return ckpc, err + } +} +func unmarshalBasicContentKeyPolicyConfigurationArray(body []byte) ([]BasicContentKeyPolicyConfiguration, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ckpcArray := make([]BasicContentKeyPolicyConfiguration, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ckpc, err := unmarshalBasicContentKeyPolicyConfiguration(*rawMessage) + if err != nil { + return nil, err + } + ckpcArray[index] = ckpc + } + return ckpcArray, nil +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyConfiguration. +func (ckpc ContentKeyPolicyConfiguration) MarshalJSON() ([]byte, error) { + ckpc.OdataType = OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration + objectMap := make(map[string]interface{}) + if ckpc.OdataType != "" { + objectMap["@odata.type"] = ckpc.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyClearKeyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyConfiguration. +func (ckpc ContentKeyPolicyConfiguration) AsContentKeyPolicyClearKeyConfiguration() (*ContentKeyPolicyClearKeyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyUnknownConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyConfiguration. +func (ckpc ContentKeyPolicyConfiguration) AsContentKeyPolicyUnknownConfiguration() (*ContentKeyPolicyUnknownConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyWidevineConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyConfiguration. +func (ckpc ContentKeyPolicyConfiguration) AsContentKeyPolicyWidevineConfiguration() (*ContentKeyPolicyWidevineConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyConfiguration. +func (ckpc ContentKeyPolicyConfiguration) AsContentKeyPolicyPlayReadyConfiguration() (*ContentKeyPolicyPlayReadyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyFairPlayConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyConfiguration. +func (ckpc ContentKeyPolicyConfiguration) AsContentKeyPolicyFairPlayConfiguration() (*ContentKeyPolicyFairPlayConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyConfiguration. +func (ckpc ContentKeyPolicyConfiguration) AsContentKeyPolicyConfiguration() (*ContentKeyPolicyConfiguration, bool) { + return &ckpc, true +} + +// AsBasicContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyConfiguration. +func (ckpc ContentKeyPolicyConfiguration) AsBasicContentKeyPolicyConfiguration() (BasicContentKeyPolicyConfiguration, bool) { + return &ckpc, true +} + +// ContentKeyPolicyFairPlayConfiguration specifies a configuration for FairPlay licenses. +type ContentKeyPolicyFairPlayConfiguration struct { + // Ask - The key that must be used as FairPlay Application Secret key. + Ask *[]byte `json:"ask,omitempty"` + // FairPlayPfxPassword - The password encrypting FairPlay certificate in PKCS 12 (pfx) format. + FairPlayPfxPassword *string `json:"fairPlayPfxPassword,omitempty"` + // FairPlayPfx - The Base64 representation of FairPlay certificate in PKCS 12 (pfx) format (including private key). + FairPlayPfx *string `json:"fairPlayPfx,omitempty"` + // RentalAndLeaseKeyType - The rental and lease key type. Possible values include: 'ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeUnknown', 'ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeUndefined', 'ContentKeyPolicyFairPlayRentalAndLeaseKeyTypeDualExpiry', 'ContentKeyPolicyFairPlayRentalAndLeaseKeyTypePersistentUnlimited', 'ContentKeyPolicyFairPlayRentalAndLeaseKeyTypePersistentLimited' + RentalAndLeaseKeyType ContentKeyPolicyFairPlayRentalAndLeaseKeyType `json:"rentalAndLeaseKeyType,omitempty"` + // RentalDuration - The rental duration. Must be greater than or equal to 0. + RentalDuration *int64 `json:"rentalDuration,omitempty"` + // OfflineRentalConfiguration - Offline rental policy + OfflineRentalConfiguration *ContentKeyPolicyFairPlayOfflineRentalConfiguration `json:"offlineRentalConfiguration,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration' + OdataType OdataTypeBasicContentKeyPolicyConfiguration `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyFairPlayConfiguration. +func (ckpfpc ContentKeyPolicyFairPlayConfiguration) MarshalJSON() ([]byte, error) { + ckpfpc.OdataType = OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration + objectMap := make(map[string]interface{}) + if ckpfpc.Ask != nil { + objectMap["ask"] = ckpfpc.Ask + } + if ckpfpc.FairPlayPfxPassword != nil { + objectMap["fairPlayPfxPassword"] = ckpfpc.FairPlayPfxPassword + } + if ckpfpc.FairPlayPfx != nil { + objectMap["fairPlayPfx"] = ckpfpc.FairPlayPfx + } + if ckpfpc.RentalAndLeaseKeyType != "" { + objectMap["rentalAndLeaseKeyType"] = ckpfpc.RentalAndLeaseKeyType + } + if ckpfpc.RentalDuration != nil { + objectMap["rentalDuration"] = ckpfpc.RentalDuration + } + if ckpfpc.OfflineRentalConfiguration != nil { + objectMap["offlineRentalConfiguration"] = ckpfpc.OfflineRentalConfiguration + } + if ckpfpc.OdataType != "" { + objectMap["@odata.type"] = ckpfpc.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyClearKeyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyFairPlayConfiguration. +func (ckpfpc ContentKeyPolicyFairPlayConfiguration) AsContentKeyPolicyClearKeyConfiguration() (*ContentKeyPolicyClearKeyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyUnknownConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyFairPlayConfiguration. +func (ckpfpc ContentKeyPolicyFairPlayConfiguration) AsContentKeyPolicyUnknownConfiguration() (*ContentKeyPolicyUnknownConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyWidevineConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyFairPlayConfiguration. +func (ckpfpc ContentKeyPolicyFairPlayConfiguration) AsContentKeyPolicyWidevineConfiguration() (*ContentKeyPolicyWidevineConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyFairPlayConfiguration. +func (ckpfpc ContentKeyPolicyFairPlayConfiguration) AsContentKeyPolicyPlayReadyConfiguration() (*ContentKeyPolicyPlayReadyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyFairPlayConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyFairPlayConfiguration. +func (ckpfpc ContentKeyPolicyFairPlayConfiguration) AsContentKeyPolicyFairPlayConfiguration() (*ContentKeyPolicyFairPlayConfiguration, bool) { + return &ckpfpc, true +} + +// AsContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyFairPlayConfiguration. +func (ckpfpc ContentKeyPolicyFairPlayConfiguration) AsContentKeyPolicyConfiguration() (*ContentKeyPolicyConfiguration, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyFairPlayConfiguration. +func (ckpfpc ContentKeyPolicyFairPlayConfiguration) AsBasicContentKeyPolicyConfiguration() (BasicContentKeyPolicyConfiguration, bool) { + return &ckpfpc, true +} + +// ContentKeyPolicyFairPlayOfflineRentalConfiguration ... +type ContentKeyPolicyFairPlayOfflineRentalConfiguration struct { + // PlaybackDurationSeconds - Playback duration + PlaybackDurationSeconds *int64 `json:"playbackDurationSeconds,omitempty"` + // StorageDurationSeconds - Storage duration + StorageDurationSeconds *int64 `json:"storageDurationSeconds,omitempty"` +} + +// ContentKeyPolicyOpenRestriction represents an open restriction. License or key will be delivered on +// every request. +type ContentKeyPolicyOpenRestriction struct { + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeContentKeyPolicyRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction' + OdataType OdataTypeBasicContentKeyPolicyRestriction `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyOpenRestriction. +func (ckpor ContentKeyPolicyOpenRestriction) MarshalJSON() ([]byte, error) { + ckpor.OdataType = OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction + objectMap := make(map[string]interface{}) + if ckpor.OdataType != "" { + objectMap["@odata.type"] = ckpor.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyOpenRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyOpenRestriction. +func (ckpor ContentKeyPolicyOpenRestriction) AsContentKeyPolicyOpenRestriction() (*ContentKeyPolicyOpenRestriction, bool) { + return &ckpor, true +} + +// AsContentKeyPolicyUnknownRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyOpenRestriction. +func (ckpor ContentKeyPolicyOpenRestriction) AsContentKeyPolicyUnknownRestriction() (*ContentKeyPolicyUnknownRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyTokenRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyOpenRestriction. +func (ckpor ContentKeyPolicyOpenRestriction) AsContentKeyPolicyTokenRestriction() (*ContentKeyPolicyTokenRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyOpenRestriction. +func (ckpor ContentKeyPolicyOpenRestriction) AsContentKeyPolicyRestriction() (*ContentKeyPolicyRestriction, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyOpenRestriction. +func (ckpor ContentKeyPolicyOpenRestriction) AsBasicContentKeyPolicyRestriction() (BasicContentKeyPolicyRestriction, bool) { + return &ckpor, true +} + +// ContentKeyPolicyOption represents a policy option. +type ContentKeyPolicyOption struct { + // PolicyOptionID - READ-ONLY; The legacy Policy Option ID. + PolicyOptionID *uuid.UUID `json:"policyOptionId,omitempty"` + // Name - The Policy Option description. + Name *string `json:"name,omitempty"` + // Configuration - The key delivery configuration. + Configuration BasicContentKeyPolicyConfiguration `json:"configuration,omitempty"` + // Restriction - The requirements that must be met to deliver keys with this configuration + Restriction BasicContentKeyPolicyRestriction `json:"restriction,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyOption. +func (ckpo ContentKeyPolicyOption) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ckpo.Name != nil { + objectMap["name"] = ckpo.Name + } + objectMap["configuration"] = ckpo.Configuration + objectMap["restriction"] = ckpo.Restriction + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ContentKeyPolicyOption struct. +func (ckpo *ContentKeyPolicyOption) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "policyOptionId": + if v != nil { + var policyOptionID uuid.UUID + err = json.Unmarshal(*v, &policyOptionID) + if err != nil { + return err + } + ckpo.PolicyOptionID = &policyOptionID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ckpo.Name = &name + } + case "configuration": + if v != nil { + configuration, err := unmarshalBasicContentKeyPolicyConfiguration(*v) + if err != nil { + return err + } + ckpo.Configuration = configuration + } + case "restriction": + if v != nil { + restriction, err := unmarshalBasicContentKeyPolicyRestriction(*v) + if err != nil { + return err + } + ckpo.Restriction = restriction + } + } + } + + return nil +} + +// ContentKeyPolicyPlayReadyConfiguration specifies a configuration for PlayReady licenses. +type ContentKeyPolicyPlayReadyConfiguration struct { + // Licenses - The PlayReady licenses. + Licenses *[]ContentKeyPolicyPlayReadyLicense `json:"licenses,omitempty"` + // ResponseCustomData - The custom response data. + ResponseCustomData *string `json:"responseCustomData,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration' + OdataType OdataTypeBasicContentKeyPolicyConfiguration `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyPlayReadyConfiguration. +func (ckpprc ContentKeyPolicyPlayReadyConfiguration) MarshalJSON() ([]byte, error) { + ckpprc.OdataType = OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration + objectMap := make(map[string]interface{}) + if ckpprc.Licenses != nil { + objectMap["licenses"] = ckpprc.Licenses + } + if ckpprc.ResponseCustomData != nil { + objectMap["responseCustomData"] = ckpprc.ResponseCustomData + } + if ckpprc.OdataType != "" { + objectMap["@odata.type"] = ckpprc.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyClearKeyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyPlayReadyConfiguration. +func (ckpprc ContentKeyPolicyPlayReadyConfiguration) AsContentKeyPolicyClearKeyConfiguration() (*ContentKeyPolicyClearKeyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyUnknownConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyPlayReadyConfiguration. +func (ckpprc ContentKeyPolicyPlayReadyConfiguration) AsContentKeyPolicyUnknownConfiguration() (*ContentKeyPolicyUnknownConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyWidevineConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyPlayReadyConfiguration. +func (ckpprc ContentKeyPolicyPlayReadyConfiguration) AsContentKeyPolicyWidevineConfiguration() (*ContentKeyPolicyWidevineConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyPlayReadyConfiguration. +func (ckpprc ContentKeyPolicyPlayReadyConfiguration) AsContentKeyPolicyPlayReadyConfiguration() (*ContentKeyPolicyPlayReadyConfiguration, bool) { + return &ckpprc, true +} + +// AsContentKeyPolicyFairPlayConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyPlayReadyConfiguration. +func (ckpprc ContentKeyPolicyPlayReadyConfiguration) AsContentKeyPolicyFairPlayConfiguration() (*ContentKeyPolicyFairPlayConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyPlayReadyConfiguration. +func (ckpprc ContentKeyPolicyPlayReadyConfiguration) AsContentKeyPolicyConfiguration() (*ContentKeyPolicyConfiguration, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyPlayReadyConfiguration. +func (ckpprc ContentKeyPolicyPlayReadyConfiguration) AsBasicContentKeyPolicyConfiguration() (BasicContentKeyPolicyConfiguration, bool) { + return &ckpprc, true +} + +// ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader specifies that the content key ID is in the +// PlayReady header. +type ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader struct { + // OdataType - Possible values include: 'OdataTypeContentKeyPolicyPlayReadyContentKeyLocation', 'OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader', 'OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier' + OdataType OdataType `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader. +func (ckpprcekfh ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader) MarshalJSON() ([]byte, error) { + ckpprcekfh.OdataType = OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader + objectMap := make(map[string]interface{}) + if ckpprcekfh.OdataType != "" { + objectMap["@odata.type"] = ckpprcekfh.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader. +func (ckpprcekfh ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader) AsContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader() (*ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader, bool) { + return &ckpprcekfh, true +} + +// AsContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader. +func (ckpprcekfh ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader) AsContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier() (*ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyContentKeyLocation is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader. +func (ckpprcekfh ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader) AsContentKeyPolicyPlayReadyContentKeyLocation() (*ContentKeyPolicyPlayReadyContentKeyLocation, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyPlayReadyContentKeyLocation is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader. +func (ckpprcekfh ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader) AsBasicContentKeyPolicyPlayReadyContentKeyLocation() (BasicContentKeyPolicyPlayReadyContentKeyLocation, bool) { + return &ckpprcekfh, true +} + +// ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier specifies that the content key ID is +// specified in the PlayReady configuration. +type ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier struct { + // KeyID - The content key ID. + KeyID *uuid.UUID `json:"keyId,omitempty"` + // OdataType - Possible values include: 'OdataTypeContentKeyPolicyPlayReadyContentKeyLocation', 'OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader', 'OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier' + OdataType OdataType `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier. +func (ckpprcekfki ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier) MarshalJSON() ([]byte, error) { + ckpprcekfki.OdataType = OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier + objectMap := make(map[string]interface{}) + if ckpprcekfki.KeyID != nil { + objectMap["keyId"] = ckpprcekfki.KeyID + } + if ckpprcekfki.OdataType != "" { + objectMap["@odata.type"] = ckpprcekfki.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier. +func (ckpprcekfki ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier) AsContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader() (*ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier. +func (ckpprcekfki ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier) AsContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier() (*ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier, bool) { + return &ckpprcekfki, true +} + +// AsContentKeyPolicyPlayReadyContentKeyLocation is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier. +func (ckpprcekfki ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier) AsContentKeyPolicyPlayReadyContentKeyLocation() (*ContentKeyPolicyPlayReadyContentKeyLocation, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyPlayReadyContentKeyLocation is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier. +func (ckpprcekfki ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier) AsBasicContentKeyPolicyPlayReadyContentKeyLocation() (BasicContentKeyPolicyPlayReadyContentKeyLocation, bool) { + return &ckpprcekfki, true +} + +// BasicContentKeyPolicyPlayReadyContentKeyLocation base class for content key ID location. A derived class must be +// used to represent the location. +type BasicContentKeyPolicyPlayReadyContentKeyLocation interface { + AsContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader() (*ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader, bool) + AsContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier() (*ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier, bool) + AsContentKeyPolicyPlayReadyContentKeyLocation() (*ContentKeyPolicyPlayReadyContentKeyLocation, bool) +} + +// ContentKeyPolicyPlayReadyContentKeyLocation base class for content key ID location. A derived class must be +// used to represent the location. +type ContentKeyPolicyPlayReadyContentKeyLocation struct { + // OdataType - Possible values include: 'OdataTypeContentKeyPolicyPlayReadyContentKeyLocation', 'OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader', 'OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier' + OdataType OdataType `json:"@odata.type,omitempty"` +} + +func unmarshalBasicContentKeyPolicyPlayReadyContentKeyLocation(body []byte) (BasicContentKeyPolicyPlayReadyContentKeyLocation, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader): + var ckpprcekfh ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader + err := json.Unmarshal(body, &ckpprcekfh) + return ckpprcekfh, err + case string(OdataTypeMicrosoftMediaContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier): + var ckpprcekfki ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier + err := json.Unmarshal(body, &ckpprcekfki) + return ckpprcekfki, err + default: + var ckpprckl ContentKeyPolicyPlayReadyContentKeyLocation + err := json.Unmarshal(body, &ckpprckl) + return ckpprckl, err + } +} +func unmarshalBasicContentKeyPolicyPlayReadyContentKeyLocationArray(body []byte) ([]BasicContentKeyPolicyPlayReadyContentKeyLocation, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ckpprcklArray := make([]BasicContentKeyPolicyPlayReadyContentKeyLocation, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ckpprckl, err := unmarshalBasicContentKeyPolicyPlayReadyContentKeyLocation(*rawMessage) + if err != nil { + return nil, err + } + ckpprcklArray[index] = ckpprckl + } + return ckpprcklArray, nil +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyPlayReadyContentKeyLocation. +func (ckpprckl ContentKeyPolicyPlayReadyContentKeyLocation) MarshalJSON() ([]byte, error) { + ckpprckl.OdataType = OdataTypeContentKeyPolicyPlayReadyContentKeyLocation + objectMap := make(map[string]interface{}) + if ckpprckl.OdataType != "" { + objectMap["@odata.type"] = ckpprckl.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentKeyLocation. +func (ckpprckl ContentKeyPolicyPlayReadyContentKeyLocation) AsContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader() (*ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentKeyLocation. +func (ckpprckl ContentKeyPolicyPlayReadyContentKeyLocation) AsContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier() (*ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyContentKeyLocation is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentKeyLocation. +func (ckpprckl ContentKeyPolicyPlayReadyContentKeyLocation) AsContentKeyPolicyPlayReadyContentKeyLocation() (*ContentKeyPolicyPlayReadyContentKeyLocation, bool) { + return &ckpprckl, true +} + +// AsBasicContentKeyPolicyPlayReadyContentKeyLocation is the BasicContentKeyPolicyPlayReadyContentKeyLocation implementation for ContentKeyPolicyPlayReadyContentKeyLocation. +func (ckpprckl ContentKeyPolicyPlayReadyContentKeyLocation) AsBasicContentKeyPolicyPlayReadyContentKeyLocation() (BasicContentKeyPolicyPlayReadyContentKeyLocation, bool) { + return &ckpprckl, true +} + +// ContentKeyPolicyPlayReadyExplicitAnalogTelevisionRestriction configures the Explicit Analog Television +// Output Restriction control bits. For further details see the PlayReady Compliance Rules. +type ContentKeyPolicyPlayReadyExplicitAnalogTelevisionRestriction struct { + // BestEffort - Indicates whether this restriction is enforced on a Best Effort basis. + BestEffort *bool `json:"bestEffort,omitempty"` + // ConfigurationData - Configures the restriction control bits. Must be between 0 and 3 inclusive. + ConfigurationData *int32 `json:"configurationData,omitempty"` +} + +// ContentKeyPolicyPlayReadyLicense the PlayReady license +type ContentKeyPolicyPlayReadyLicense struct { + // AllowTestDevices - A flag indicating whether test devices can use the license. + AllowTestDevices *bool `json:"allowTestDevices,omitempty"` + // BeginDate - The begin date of license + BeginDate *date.Time `json:"beginDate,omitempty"` + // ExpirationDate - The expiration date of license. + ExpirationDate *date.Time `json:"expirationDate,omitempty"` + // RelativeBeginDate - The relative begin date of license. + RelativeBeginDate *string `json:"relativeBeginDate,omitempty"` + // RelativeExpirationDate - The relative expiration date of license. + RelativeExpirationDate *string `json:"relativeExpirationDate,omitempty"` + // GracePeriod - The grace period of license. + GracePeriod *string `json:"gracePeriod,omitempty"` + // PlayRight - The license PlayRight + PlayRight *ContentKeyPolicyPlayReadyPlayRight `json:"playRight,omitempty"` + // LicenseType - The license type. Possible values include: 'ContentKeyPolicyPlayReadyLicenseTypeUnknown', 'ContentKeyPolicyPlayReadyLicenseTypeNonPersistent', 'ContentKeyPolicyPlayReadyLicenseTypePersistent' + LicenseType ContentKeyPolicyPlayReadyLicenseType `json:"licenseType,omitempty"` + // ContentKeyLocation - The content key location. + ContentKeyLocation BasicContentKeyPolicyPlayReadyContentKeyLocation `json:"contentKeyLocation,omitempty"` + // ContentType - The PlayReady content type. Possible values include: 'ContentKeyPolicyPlayReadyContentTypeUnknown', 'ContentKeyPolicyPlayReadyContentTypeUnspecified', 'ContentKeyPolicyPlayReadyContentTypeUltraVioletDownload', 'ContentKeyPolicyPlayReadyContentTypeUltraVioletStreaming' + ContentType ContentKeyPolicyPlayReadyContentType `json:"contentType,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ContentKeyPolicyPlayReadyLicense struct. +func (ckpprl *ContentKeyPolicyPlayReadyLicense) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "allowTestDevices": + if v != nil { + var allowTestDevices bool + err = json.Unmarshal(*v, &allowTestDevices) + if err != nil { + return err + } + ckpprl.AllowTestDevices = &allowTestDevices + } + case "beginDate": + if v != nil { + var beginDate date.Time + err = json.Unmarshal(*v, &beginDate) + if err != nil { + return err + } + ckpprl.BeginDate = &beginDate + } + case "expirationDate": + if v != nil { + var expirationDate date.Time + err = json.Unmarshal(*v, &expirationDate) + if err != nil { + return err + } + ckpprl.ExpirationDate = &expirationDate + } + case "relativeBeginDate": + if v != nil { + var relativeBeginDate string + err = json.Unmarshal(*v, &relativeBeginDate) + if err != nil { + return err + } + ckpprl.RelativeBeginDate = &relativeBeginDate + } + case "relativeExpirationDate": + if v != nil { + var relativeExpirationDate string + err = json.Unmarshal(*v, &relativeExpirationDate) + if err != nil { + return err + } + ckpprl.RelativeExpirationDate = &relativeExpirationDate + } + case "gracePeriod": + if v != nil { + var gracePeriod string + err = json.Unmarshal(*v, &gracePeriod) + if err != nil { + return err + } + ckpprl.GracePeriod = &gracePeriod + } + case "playRight": + if v != nil { + var playRight ContentKeyPolicyPlayReadyPlayRight + err = json.Unmarshal(*v, &playRight) + if err != nil { + return err + } + ckpprl.PlayRight = &playRight + } + case "licenseType": + if v != nil { + var licenseType ContentKeyPolicyPlayReadyLicenseType + err = json.Unmarshal(*v, &licenseType) + if err != nil { + return err + } + ckpprl.LicenseType = licenseType + } + case "contentKeyLocation": + if v != nil { + contentKeyLocation, err := unmarshalBasicContentKeyPolicyPlayReadyContentKeyLocation(*v) + if err != nil { + return err + } + ckpprl.ContentKeyLocation = contentKeyLocation + } + case "contentType": + if v != nil { + var contentType ContentKeyPolicyPlayReadyContentType + err = json.Unmarshal(*v, &contentType) + if err != nil { + return err + } + ckpprl.ContentType = contentType + } + } + } + + return nil +} + +// ContentKeyPolicyPlayReadyPlayRight configures the Play Right in the PlayReady license. +type ContentKeyPolicyPlayReadyPlayRight struct { + // FirstPlayExpiration - The amount of time that the license is valid after the license is first used to play content. + FirstPlayExpiration *string `json:"firstPlayExpiration,omitempty"` + // ScmsRestriction - Configures the Serial Copy Management System (SCMS) in the license. Must be between 0 and 3 inclusive. + ScmsRestriction *int32 `json:"scmsRestriction,omitempty"` + // AgcAndColorStripeRestriction - Configures Automatic Gain Control (AGC) and Color Stripe in the license. Must be between 0 and 3 inclusive. + AgcAndColorStripeRestriction *int32 `json:"agcAndColorStripeRestriction,omitempty"` + // ExplicitAnalogTelevisionOutputRestriction - Configures the Explicit Analog Television Output Restriction in the license. Configuration data must be between 0 and 3 inclusive. + ExplicitAnalogTelevisionOutputRestriction *ContentKeyPolicyPlayReadyExplicitAnalogTelevisionRestriction `json:"explicitAnalogTelevisionOutputRestriction,omitempty"` + // DigitalVideoOnlyContentRestriction - Enables the Image Constraint For Analog Component Video Restriction in the license. + DigitalVideoOnlyContentRestriction *bool `json:"digitalVideoOnlyContentRestriction,omitempty"` + // ImageConstraintForAnalogComponentVideoRestriction - Enables the Image Constraint For Analog Component Video Restriction in the license. + ImageConstraintForAnalogComponentVideoRestriction *bool `json:"imageConstraintForAnalogComponentVideoRestriction,omitempty"` + // ImageConstraintForAnalogComputerMonitorRestriction - Enables the Image Constraint For Analog Component Video Restriction in the license. + ImageConstraintForAnalogComputerMonitorRestriction *bool `json:"imageConstraintForAnalogComputerMonitorRestriction,omitempty"` + // AllowPassingVideoContentToUnknownOutput - Configures Unknown output handling settings of the license. Possible values include: 'ContentKeyPolicyPlayReadyUnknownOutputPassingOptionUnknown', 'ContentKeyPolicyPlayReadyUnknownOutputPassingOptionNotAllowed', 'ContentKeyPolicyPlayReadyUnknownOutputPassingOptionAllowed', 'ContentKeyPolicyPlayReadyUnknownOutputPassingOptionAllowedWithVideoConstriction' + AllowPassingVideoContentToUnknownOutput ContentKeyPolicyPlayReadyUnknownOutputPassingOption `json:"allowPassingVideoContentToUnknownOutput,omitempty"` + // UncompressedDigitalVideoOpl - Specifies the output protection level for uncompressed digital video. + UncompressedDigitalVideoOpl *int32 `json:"uncompressedDigitalVideoOpl,omitempty"` + // CompressedDigitalVideoOpl - Specifies the output protection level for compressed digital video. + CompressedDigitalVideoOpl *int32 `json:"compressedDigitalVideoOpl,omitempty"` + // AnalogVideoOpl - Specifies the output protection level for compressed digital audio. + AnalogVideoOpl *int32 `json:"analogVideoOpl,omitempty"` + // CompressedDigitalAudioOpl - Specifies the output protection level for compressed digital audio. + CompressedDigitalAudioOpl *int32 `json:"compressedDigitalAudioOpl,omitempty"` + // UncompressedDigitalAudioOpl - Specifies the output protection level for uncompressed digital audio. + UncompressedDigitalAudioOpl *int32 `json:"uncompressedDigitalAudioOpl,omitempty"` +} + +// ContentKeyPolicyProperties the properties of the Content Key Policy. +type ContentKeyPolicyProperties struct { + autorest.Response `json:"-"` + // PolicyID - READ-ONLY; The legacy Policy ID. + PolicyID *uuid.UUID `json:"policyId,omitempty"` + // Created - READ-ONLY; The creation date of the Policy + Created *date.Time `json:"created,omitempty"` + // LastModified - READ-ONLY; The last modified date of the Policy + LastModified *date.Time `json:"lastModified,omitempty"` + // Description - A description for the Policy. + Description *string `json:"description,omitempty"` + // Options - The Key Policy options. + Options *[]ContentKeyPolicyOption `json:"options,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyProperties. +func (ckpp ContentKeyPolicyProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ckpp.Description != nil { + objectMap["description"] = ckpp.Description + } + if ckpp.Options != nil { + objectMap["options"] = ckpp.Options + } + return json.Marshal(objectMap) +} + +// BasicContentKeyPolicyRestriction base class for Content Key Policy restrictions. A derived class must be used to +// create a restriction. +type BasicContentKeyPolicyRestriction interface { + AsContentKeyPolicyOpenRestriction() (*ContentKeyPolicyOpenRestriction, bool) + AsContentKeyPolicyUnknownRestriction() (*ContentKeyPolicyUnknownRestriction, bool) + AsContentKeyPolicyTokenRestriction() (*ContentKeyPolicyTokenRestriction, bool) + AsContentKeyPolicyRestriction() (*ContentKeyPolicyRestriction, bool) +} + +// ContentKeyPolicyRestriction base class for Content Key Policy restrictions. A derived class must be used to +// create a restriction. +type ContentKeyPolicyRestriction struct { + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeContentKeyPolicyRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction' + OdataType OdataTypeBasicContentKeyPolicyRestriction `json:"@odata.type,omitempty"` +} + +func unmarshalBasicContentKeyPolicyRestriction(body []byte) (BasicContentKeyPolicyRestriction, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction): + var ckpor ContentKeyPolicyOpenRestriction + err := json.Unmarshal(body, &ckpor) + return ckpor, err + case string(OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction): + var ckpur ContentKeyPolicyUnknownRestriction + err := json.Unmarshal(body, &ckpur) + return ckpur, err + case string(OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction): + var ckptr ContentKeyPolicyTokenRestriction + err := json.Unmarshal(body, &ckptr) + return ckptr, err + default: + var ckpr ContentKeyPolicyRestriction + err := json.Unmarshal(body, &ckpr) + return ckpr, err + } +} +func unmarshalBasicContentKeyPolicyRestrictionArray(body []byte) ([]BasicContentKeyPolicyRestriction, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ckprArray := make([]BasicContentKeyPolicyRestriction, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ckpr, err := unmarshalBasicContentKeyPolicyRestriction(*rawMessage) + if err != nil { + return nil, err + } + ckprArray[index] = ckpr + } + return ckprArray, nil +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyRestriction. +func (ckpr ContentKeyPolicyRestriction) MarshalJSON() ([]byte, error) { + ckpr.OdataType = OdataTypeBasicContentKeyPolicyRestrictionOdataTypeContentKeyPolicyRestriction + objectMap := make(map[string]interface{}) + if ckpr.OdataType != "" { + objectMap["@odata.type"] = ckpr.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyOpenRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyRestriction. +func (ckpr ContentKeyPolicyRestriction) AsContentKeyPolicyOpenRestriction() (*ContentKeyPolicyOpenRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyUnknownRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyRestriction. +func (ckpr ContentKeyPolicyRestriction) AsContentKeyPolicyUnknownRestriction() (*ContentKeyPolicyUnknownRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyTokenRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyRestriction. +func (ckpr ContentKeyPolicyRestriction) AsContentKeyPolicyTokenRestriction() (*ContentKeyPolicyTokenRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyRestriction. +func (ckpr ContentKeyPolicyRestriction) AsContentKeyPolicyRestriction() (*ContentKeyPolicyRestriction, bool) { + return &ckpr, true +} + +// AsBasicContentKeyPolicyRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyRestriction. +func (ckpr ContentKeyPolicyRestriction) AsBasicContentKeyPolicyRestriction() (BasicContentKeyPolicyRestriction, bool) { + return &ckpr, true +} + +// BasicContentKeyPolicyRestrictionTokenKey base class for Content Key Policy key for token validation. A derived class +// must be used to create a token key. +type BasicContentKeyPolicyRestrictionTokenKey interface { + AsContentKeyPolicySymmetricTokenKey() (*ContentKeyPolicySymmetricTokenKey, bool) + AsContentKeyPolicyRsaTokenKey() (*ContentKeyPolicyRsaTokenKey, bool) + AsContentKeyPolicyX509CertificateTokenKey() (*ContentKeyPolicyX509CertificateTokenKey, bool) + AsContentKeyPolicyRestrictionTokenKey() (*ContentKeyPolicyRestrictionTokenKey, bool) +} + +// ContentKeyPolicyRestrictionTokenKey base class for Content Key Policy key for token validation. A derived +// class must be used to create a token key. +type ContentKeyPolicyRestrictionTokenKey struct { + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeContentKeyPolicyRestrictionTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey' + OdataType OdataTypeBasicContentKeyPolicyRestrictionTokenKey `json:"@odata.type,omitempty"` +} + +func unmarshalBasicContentKeyPolicyRestrictionTokenKey(body []byte) (BasicContentKeyPolicyRestrictionTokenKey, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey): + var ckpstk ContentKeyPolicySymmetricTokenKey + err := json.Unmarshal(body, &ckpstk) + return ckpstk, err + case string(OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey): + var ckprtk ContentKeyPolicyRsaTokenKey + err := json.Unmarshal(body, &ckprtk) + return ckprtk, err + case string(OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey): + var ckpxctk ContentKeyPolicyX509CertificateTokenKey + err := json.Unmarshal(body, &ckpxctk) + return ckpxctk, err + default: + var ckprtk ContentKeyPolicyRestrictionTokenKey + err := json.Unmarshal(body, &ckprtk) + return ckprtk, err + } +} +func unmarshalBasicContentKeyPolicyRestrictionTokenKeyArray(body []byte) ([]BasicContentKeyPolicyRestrictionTokenKey, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ckprtkArray := make([]BasicContentKeyPolicyRestrictionTokenKey, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ckprtk, err := unmarshalBasicContentKeyPolicyRestrictionTokenKey(*rawMessage) + if err != nil { + return nil, err + } + ckprtkArray[index] = ckprtk + } + return ckprtkArray, nil +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyRestrictionTokenKey. +func (ckprtk ContentKeyPolicyRestrictionTokenKey) MarshalJSON() ([]byte, error) { + ckprtk.OdataType = OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeContentKeyPolicyRestrictionTokenKey + objectMap := make(map[string]interface{}) + if ckprtk.OdataType != "" { + objectMap["@odata.type"] = ckprtk.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicySymmetricTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRestrictionTokenKey. +func (ckprtk ContentKeyPolicyRestrictionTokenKey) AsContentKeyPolicySymmetricTokenKey() (*ContentKeyPolicySymmetricTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyRsaTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRestrictionTokenKey. +func (ckprtk ContentKeyPolicyRestrictionTokenKey) AsContentKeyPolicyRsaTokenKey() (*ContentKeyPolicyRsaTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyX509CertificateTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRestrictionTokenKey. +func (ckprtk ContentKeyPolicyRestrictionTokenKey) AsContentKeyPolicyX509CertificateTokenKey() (*ContentKeyPolicyX509CertificateTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyRestrictionTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRestrictionTokenKey. +func (ckprtk ContentKeyPolicyRestrictionTokenKey) AsContentKeyPolicyRestrictionTokenKey() (*ContentKeyPolicyRestrictionTokenKey, bool) { + return &ckprtk, true +} + +// AsBasicContentKeyPolicyRestrictionTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRestrictionTokenKey. +func (ckprtk ContentKeyPolicyRestrictionTokenKey) AsBasicContentKeyPolicyRestrictionTokenKey() (BasicContentKeyPolicyRestrictionTokenKey, bool) { + return &ckprtk, true +} + +// ContentKeyPolicyRsaTokenKey specifies a RSA key for token validation +type ContentKeyPolicyRsaTokenKey struct { + // Exponent - The RSA Parameter exponent + Exponent *[]byte `json:"exponent,omitempty"` + // Modulus - The RSA Parameter modulus + Modulus *[]byte `json:"modulus,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeContentKeyPolicyRestrictionTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey' + OdataType OdataTypeBasicContentKeyPolicyRestrictionTokenKey `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyRsaTokenKey. +func (ckprtk ContentKeyPolicyRsaTokenKey) MarshalJSON() ([]byte, error) { + ckprtk.OdataType = OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey + objectMap := make(map[string]interface{}) + if ckprtk.Exponent != nil { + objectMap["exponent"] = ckprtk.Exponent + } + if ckprtk.Modulus != nil { + objectMap["modulus"] = ckprtk.Modulus + } + if ckprtk.OdataType != "" { + objectMap["@odata.type"] = ckprtk.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicySymmetricTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRsaTokenKey. +func (ckprtk ContentKeyPolicyRsaTokenKey) AsContentKeyPolicySymmetricTokenKey() (*ContentKeyPolicySymmetricTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyRsaTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRsaTokenKey. +func (ckprtk ContentKeyPolicyRsaTokenKey) AsContentKeyPolicyRsaTokenKey() (*ContentKeyPolicyRsaTokenKey, bool) { + return &ckprtk, true +} + +// AsContentKeyPolicyX509CertificateTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRsaTokenKey. +func (ckprtk ContentKeyPolicyRsaTokenKey) AsContentKeyPolicyX509CertificateTokenKey() (*ContentKeyPolicyX509CertificateTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyRestrictionTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRsaTokenKey. +func (ckprtk ContentKeyPolicyRsaTokenKey) AsContentKeyPolicyRestrictionTokenKey() (*ContentKeyPolicyRestrictionTokenKey, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyRestrictionTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyRsaTokenKey. +func (ckprtk ContentKeyPolicyRsaTokenKey) AsBasicContentKeyPolicyRestrictionTokenKey() (BasicContentKeyPolicyRestrictionTokenKey, bool) { + return &ckprtk, true +} + +// ContentKeyPolicySymmetricTokenKey specifies a symmetric key for token validation. +type ContentKeyPolicySymmetricTokenKey struct { + // KeyValue - The key value of the key + KeyValue *[]byte `json:"keyValue,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeContentKeyPolicyRestrictionTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey' + OdataType OdataTypeBasicContentKeyPolicyRestrictionTokenKey `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicySymmetricTokenKey. +func (ckpstk ContentKeyPolicySymmetricTokenKey) MarshalJSON() ([]byte, error) { + ckpstk.OdataType = OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey + objectMap := make(map[string]interface{}) + if ckpstk.KeyValue != nil { + objectMap["keyValue"] = ckpstk.KeyValue + } + if ckpstk.OdataType != "" { + objectMap["@odata.type"] = ckpstk.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicySymmetricTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicySymmetricTokenKey. +func (ckpstk ContentKeyPolicySymmetricTokenKey) AsContentKeyPolicySymmetricTokenKey() (*ContentKeyPolicySymmetricTokenKey, bool) { + return &ckpstk, true +} + +// AsContentKeyPolicyRsaTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicySymmetricTokenKey. +func (ckpstk ContentKeyPolicySymmetricTokenKey) AsContentKeyPolicyRsaTokenKey() (*ContentKeyPolicyRsaTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyX509CertificateTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicySymmetricTokenKey. +func (ckpstk ContentKeyPolicySymmetricTokenKey) AsContentKeyPolicyX509CertificateTokenKey() (*ContentKeyPolicyX509CertificateTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyRestrictionTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicySymmetricTokenKey. +func (ckpstk ContentKeyPolicySymmetricTokenKey) AsContentKeyPolicyRestrictionTokenKey() (*ContentKeyPolicyRestrictionTokenKey, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyRestrictionTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicySymmetricTokenKey. +func (ckpstk ContentKeyPolicySymmetricTokenKey) AsBasicContentKeyPolicyRestrictionTokenKey() (BasicContentKeyPolicyRestrictionTokenKey, bool) { + return &ckpstk, true +} + +// ContentKeyPolicyTokenClaim represents a token claim. +type ContentKeyPolicyTokenClaim struct { + // ClaimType - Token claim type. + ClaimType *string `json:"claimType,omitempty"` + // ClaimValue - Token claim value. + ClaimValue *string `json:"claimValue,omitempty"` +} + +// ContentKeyPolicyTokenRestriction represents a token restriction. Provided token must match these +// requirements for successful license or key delivery. +type ContentKeyPolicyTokenRestriction struct { + // Issuer - The token issuer. + Issuer *string `json:"issuer,omitempty"` + // Audience - The audience for the token. + Audience *string `json:"audience,omitempty"` + // PrimaryVerificationKey - The primary verification key. + PrimaryVerificationKey BasicContentKeyPolicyRestrictionTokenKey `json:"primaryVerificationKey,omitempty"` + // AlternateVerificationKeys - A list of alternative verification keys. + AlternateVerificationKeys *[]BasicContentKeyPolicyRestrictionTokenKey `json:"alternateVerificationKeys,omitempty"` + // RequiredClaims - A list of required token claims. + RequiredClaims *[]ContentKeyPolicyTokenClaim `json:"requiredClaims,omitempty"` + // RestrictionTokenType - The type of token. Possible values include: 'ContentKeyPolicyRestrictionTokenTypeUnknown', 'ContentKeyPolicyRestrictionTokenTypeSwt', 'ContentKeyPolicyRestrictionTokenTypeJwt' + RestrictionTokenType ContentKeyPolicyRestrictionTokenType `json:"restrictionTokenType,omitempty"` + // OpenIDConnectDiscoveryDocument - The OpenID connect discovery document. + OpenIDConnectDiscoveryDocument *string `json:"openIdConnectDiscoveryDocument,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeContentKeyPolicyRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction' + OdataType OdataTypeBasicContentKeyPolicyRestriction `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyTokenRestriction. +func (ckptr ContentKeyPolicyTokenRestriction) MarshalJSON() ([]byte, error) { + ckptr.OdataType = OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction + objectMap := make(map[string]interface{}) + if ckptr.Issuer != nil { + objectMap["issuer"] = ckptr.Issuer + } + if ckptr.Audience != nil { + objectMap["audience"] = ckptr.Audience + } + objectMap["primaryVerificationKey"] = ckptr.PrimaryVerificationKey + if ckptr.AlternateVerificationKeys != nil { + objectMap["alternateVerificationKeys"] = ckptr.AlternateVerificationKeys + } + if ckptr.RequiredClaims != nil { + objectMap["requiredClaims"] = ckptr.RequiredClaims + } + if ckptr.RestrictionTokenType != "" { + objectMap["restrictionTokenType"] = ckptr.RestrictionTokenType + } + if ckptr.OpenIDConnectDiscoveryDocument != nil { + objectMap["openIdConnectDiscoveryDocument"] = ckptr.OpenIDConnectDiscoveryDocument + } + if ckptr.OdataType != "" { + objectMap["@odata.type"] = ckptr.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyOpenRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyTokenRestriction. +func (ckptr ContentKeyPolicyTokenRestriction) AsContentKeyPolicyOpenRestriction() (*ContentKeyPolicyOpenRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyUnknownRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyTokenRestriction. +func (ckptr ContentKeyPolicyTokenRestriction) AsContentKeyPolicyUnknownRestriction() (*ContentKeyPolicyUnknownRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyTokenRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyTokenRestriction. +func (ckptr ContentKeyPolicyTokenRestriction) AsContentKeyPolicyTokenRestriction() (*ContentKeyPolicyTokenRestriction, bool) { + return &ckptr, true +} + +// AsContentKeyPolicyRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyTokenRestriction. +func (ckptr ContentKeyPolicyTokenRestriction) AsContentKeyPolicyRestriction() (*ContentKeyPolicyRestriction, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyTokenRestriction. +func (ckptr ContentKeyPolicyTokenRestriction) AsBasicContentKeyPolicyRestriction() (BasicContentKeyPolicyRestriction, bool) { + return &ckptr, true +} + +// UnmarshalJSON is the custom unmarshaler for ContentKeyPolicyTokenRestriction struct. +func (ckptr *ContentKeyPolicyTokenRestriction) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "issuer": + if v != nil { + var issuer string + err = json.Unmarshal(*v, &issuer) + if err != nil { + return err + } + ckptr.Issuer = &issuer + } + case "audience": + if v != nil { + var audience string + err = json.Unmarshal(*v, &audience) + if err != nil { + return err + } + ckptr.Audience = &audience + } + case "primaryVerificationKey": + if v != nil { + primaryVerificationKey, err := unmarshalBasicContentKeyPolicyRestrictionTokenKey(*v) + if err != nil { + return err + } + ckptr.PrimaryVerificationKey = primaryVerificationKey + } + case "alternateVerificationKeys": + if v != nil { + alternateVerificationKeys, err := unmarshalBasicContentKeyPolicyRestrictionTokenKeyArray(*v) + if err != nil { + return err + } + ckptr.AlternateVerificationKeys = &alternateVerificationKeys + } + case "requiredClaims": + if v != nil { + var requiredClaims []ContentKeyPolicyTokenClaim + err = json.Unmarshal(*v, &requiredClaims) + if err != nil { + return err + } + ckptr.RequiredClaims = &requiredClaims + } + case "restrictionTokenType": + if v != nil { + var restrictionTokenType ContentKeyPolicyRestrictionTokenType + err = json.Unmarshal(*v, &restrictionTokenType) + if err != nil { + return err + } + ckptr.RestrictionTokenType = restrictionTokenType + } + case "openIdConnectDiscoveryDocument": + if v != nil { + var openIDConnectDiscoveryDocument string + err = json.Unmarshal(*v, &openIDConnectDiscoveryDocument) + if err != nil { + return err + } + ckptr.OpenIDConnectDiscoveryDocument = &openIDConnectDiscoveryDocument + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicContentKeyPolicyRestriction + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + ckptr.OdataType = odataType + } + } + } + + return nil +} + +// ContentKeyPolicyUnknownConfiguration represents a ContentKeyPolicyConfiguration that is unavailable in +// the current API version. +type ContentKeyPolicyUnknownConfiguration struct { + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration' + OdataType OdataTypeBasicContentKeyPolicyConfiguration `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyUnknownConfiguration. +func (ckpuc ContentKeyPolicyUnknownConfiguration) MarshalJSON() ([]byte, error) { + ckpuc.OdataType = OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration + objectMap := make(map[string]interface{}) + if ckpuc.OdataType != "" { + objectMap["@odata.type"] = ckpuc.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyClearKeyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyUnknownConfiguration. +func (ckpuc ContentKeyPolicyUnknownConfiguration) AsContentKeyPolicyClearKeyConfiguration() (*ContentKeyPolicyClearKeyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyUnknownConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyUnknownConfiguration. +func (ckpuc ContentKeyPolicyUnknownConfiguration) AsContentKeyPolicyUnknownConfiguration() (*ContentKeyPolicyUnknownConfiguration, bool) { + return &ckpuc, true +} + +// AsContentKeyPolicyWidevineConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyUnknownConfiguration. +func (ckpuc ContentKeyPolicyUnknownConfiguration) AsContentKeyPolicyWidevineConfiguration() (*ContentKeyPolicyWidevineConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyPlayReadyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyUnknownConfiguration. +func (ckpuc ContentKeyPolicyUnknownConfiguration) AsContentKeyPolicyPlayReadyConfiguration() (*ContentKeyPolicyPlayReadyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyFairPlayConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyUnknownConfiguration. +func (ckpuc ContentKeyPolicyUnknownConfiguration) AsContentKeyPolicyFairPlayConfiguration() (*ContentKeyPolicyFairPlayConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyUnknownConfiguration. +func (ckpuc ContentKeyPolicyUnknownConfiguration) AsContentKeyPolicyConfiguration() (*ContentKeyPolicyConfiguration, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyUnknownConfiguration. +func (ckpuc ContentKeyPolicyUnknownConfiguration) AsBasicContentKeyPolicyConfiguration() (BasicContentKeyPolicyConfiguration, bool) { + return &ckpuc, true +} + +// ContentKeyPolicyUnknownRestriction represents a ContentKeyPolicyRestriction that is unavailable in the +// current API version. +type ContentKeyPolicyUnknownRestriction struct { + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeContentKeyPolicyRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyOpenRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction', 'OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyTokenRestriction' + OdataType OdataTypeBasicContentKeyPolicyRestriction `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyUnknownRestriction. +func (ckpur ContentKeyPolicyUnknownRestriction) MarshalJSON() ([]byte, error) { + ckpur.OdataType = OdataTypeBasicContentKeyPolicyRestrictionOdataTypeMicrosoftMediaContentKeyPolicyUnknownRestriction + objectMap := make(map[string]interface{}) + if ckpur.OdataType != "" { + objectMap["@odata.type"] = ckpur.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyOpenRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyUnknownRestriction. +func (ckpur ContentKeyPolicyUnknownRestriction) AsContentKeyPolicyOpenRestriction() (*ContentKeyPolicyOpenRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyUnknownRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyUnknownRestriction. +func (ckpur ContentKeyPolicyUnknownRestriction) AsContentKeyPolicyUnknownRestriction() (*ContentKeyPolicyUnknownRestriction, bool) { + return &ckpur, true +} + +// AsContentKeyPolicyTokenRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyUnknownRestriction. +func (ckpur ContentKeyPolicyUnknownRestriction) AsContentKeyPolicyTokenRestriction() (*ContentKeyPolicyTokenRestriction, bool) { + return nil, false +} + +// AsContentKeyPolicyRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyUnknownRestriction. +func (ckpur ContentKeyPolicyUnknownRestriction) AsContentKeyPolicyRestriction() (*ContentKeyPolicyRestriction, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyRestriction is the BasicContentKeyPolicyRestriction implementation for ContentKeyPolicyUnknownRestriction. +func (ckpur ContentKeyPolicyUnknownRestriction) AsBasicContentKeyPolicyRestriction() (BasicContentKeyPolicyRestriction, bool) { + return &ckpur, true +} + +// ContentKeyPolicyWidevineConfiguration specifies a configuration for Widevine licenses. +type ContentKeyPolicyWidevineConfiguration struct { + // WidevineTemplate - The Widevine template. + WidevineTemplate *string `json:"widevineTemplate,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeContentKeyPolicyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyClearKeyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyUnknownConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyPlayReadyConfiguration', 'OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyFairPlayConfiguration' + OdataType OdataTypeBasicContentKeyPolicyConfiguration `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyWidevineConfiguration. +func (ckpwc ContentKeyPolicyWidevineConfiguration) MarshalJSON() ([]byte, error) { + ckpwc.OdataType = OdataTypeBasicContentKeyPolicyConfigurationOdataTypeMicrosoftMediaContentKeyPolicyWidevineConfiguration + objectMap := make(map[string]interface{}) + if ckpwc.WidevineTemplate != nil { + objectMap["widevineTemplate"] = ckpwc.WidevineTemplate + } + if ckpwc.OdataType != "" { + objectMap["@odata.type"] = ckpwc.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicyClearKeyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyWidevineConfiguration. +func (ckpwc ContentKeyPolicyWidevineConfiguration) AsContentKeyPolicyClearKeyConfiguration() (*ContentKeyPolicyClearKeyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyUnknownConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyWidevineConfiguration. +func (ckpwc ContentKeyPolicyWidevineConfiguration) AsContentKeyPolicyUnknownConfiguration() (*ContentKeyPolicyUnknownConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyWidevineConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyWidevineConfiguration. +func (ckpwc ContentKeyPolicyWidevineConfiguration) AsContentKeyPolicyWidevineConfiguration() (*ContentKeyPolicyWidevineConfiguration, bool) { + return &ckpwc, true +} + +// AsContentKeyPolicyPlayReadyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyWidevineConfiguration. +func (ckpwc ContentKeyPolicyWidevineConfiguration) AsContentKeyPolicyPlayReadyConfiguration() (*ContentKeyPolicyPlayReadyConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyFairPlayConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyWidevineConfiguration. +func (ckpwc ContentKeyPolicyWidevineConfiguration) AsContentKeyPolicyFairPlayConfiguration() (*ContentKeyPolicyFairPlayConfiguration, bool) { + return nil, false +} + +// AsContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyWidevineConfiguration. +func (ckpwc ContentKeyPolicyWidevineConfiguration) AsContentKeyPolicyConfiguration() (*ContentKeyPolicyConfiguration, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyConfiguration is the BasicContentKeyPolicyConfiguration implementation for ContentKeyPolicyWidevineConfiguration. +func (ckpwc ContentKeyPolicyWidevineConfiguration) AsBasicContentKeyPolicyConfiguration() (BasicContentKeyPolicyConfiguration, bool) { + return &ckpwc, true +} + +// ContentKeyPolicyX509CertificateTokenKey specifies a certificate for token validation. +type ContentKeyPolicyX509CertificateTokenKey struct { + // RawBody - The raw data field of a certificate in PKCS 12 format (X509Certificate2 in .NET) + RawBody *[]byte `json:"rawBody,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeContentKeyPolicyRestrictionTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicySymmetricTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyRsaTokenKey', 'OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey' + OdataType OdataTypeBasicContentKeyPolicyRestrictionTokenKey `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContentKeyPolicyX509CertificateTokenKey. +func (ckpxctk ContentKeyPolicyX509CertificateTokenKey) MarshalJSON() ([]byte, error) { + ckpxctk.OdataType = OdataTypeBasicContentKeyPolicyRestrictionTokenKeyOdataTypeMicrosoftMediaContentKeyPolicyX509CertificateTokenKey + objectMap := make(map[string]interface{}) + if ckpxctk.RawBody != nil { + objectMap["rawBody"] = ckpxctk.RawBody + } + if ckpxctk.OdataType != "" { + objectMap["@odata.type"] = ckpxctk.OdataType + } + return json.Marshal(objectMap) +} + +// AsContentKeyPolicySymmetricTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyX509CertificateTokenKey. +func (ckpxctk ContentKeyPolicyX509CertificateTokenKey) AsContentKeyPolicySymmetricTokenKey() (*ContentKeyPolicySymmetricTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyRsaTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyX509CertificateTokenKey. +func (ckpxctk ContentKeyPolicyX509CertificateTokenKey) AsContentKeyPolicyRsaTokenKey() (*ContentKeyPolicyRsaTokenKey, bool) { + return nil, false +} + +// AsContentKeyPolicyX509CertificateTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyX509CertificateTokenKey. +func (ckpxctk ContentKeyPolicyX509CertificateTokenKey) AsContentKeyPolicyX509CertificateTokenKey() (*ContentKeyPolicyX509CertificateTokenKey, bool) { + return &ckpxctk, true +} + +// AsContentKeyPolicyRestrictionTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyX509CertificateTokenKey. +func (ckpxctk ContentKeyPolicyX509CertificateTokenKey) AsContentKeyPolicyRestrictionTokenKey() (*ContentKeyPolicyRestrictionTokenKey, bool) { + return nil, false +} + +// AsBasicContentKeyPolicyRestrictionTokenKey is the BasicContentKeyPolicyRestrictionTokenKey implementation for ContentKeyPolicyX509CertificateTokenKey. +func (ckpxctk ContentKeyPolicyX509CertificateTokenKey) AsBasicContentKeyPolicyRestrictionTokenKey() (BasicContentKeyPolicyRestrictionTokenKey, bool) { + return &ckpxctk, true +} + +// CopyAudio a codec flag, which tells the encoder to copy the input audio bitstream. +type CopyAudio struct { + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for CopyAudio. +func (ca CopyAudio) MarshalJSON() ([]byte, error) { + ca.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio + objectMap := make(map[string]interface{}) + if ca.Label != nil { + objectMap["label"] = ca.Label + } + if ca.OdataType != "" { + objectMap["@odata.type"] = ca.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsBasicVideo() (BasicVideo, bool) { + return nil, false +} + +// AsH265Video is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsBasicImage() (BasicImage, bool) { + return nil, false +} + +// AsCopyAudio is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsCopyAudio() (*CopyAudio, bool) { + return &ca, true +} + +// AsH264Video is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for CopyAudio. +func (ca CopyAudio) AsBasicCodec() (BasicCodec, bool) { + return &ca, true +} + +// CopyVideo a codec flag, which tells the encoder to copy the input video bitstream without re-encoding. +type CopyVideo struct { + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for CopyVideo. +func (cv CopyVideo) MarshalJSON() ([]byte, error) { + cv.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo + objectMap := make(map[string]interface{}) + if cv.Label != nil { + objectMap["label"] = cv.Label + } + if cv.OdataType != "" { + objectMap["@odata.type"] = cv.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsBasicVideo() (BasicVideo, bool) { + return nil, false +} + +// AsH265Video is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsCopyVideo() (*CopyVideo, bool) { + return &cv, true +} + +// AsImage is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsBasicImage() (BasicImage, bool) { + return nil, false +} + +// AsCopyAudio is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for CopyVideo. +func (cv CopyVideo) AsBasicCodec() (BasicCodec, bool) { + return &cv, true +} + +// CrossSiteAccessPolicies the client access policy. +type CrossSiteAccessPolicies struct { + // ClientAccessPolicy - The content of clientaccesspolicy.xml used by Silverlight. + ClientAccessPolicy *string `json:"clientAccessPolicy,omitempty"` + // CrossDomainPolicy - The content of crossdomain.xml used by Silverlight. + CrossDomainPolicy *string `json:"crossDomainPolicy,omitempty"` +} + +// DefaultKey class to specify properties of default content key for each encryption scheme +type DefaultKey struct { + // Label - Label can be used to specify Content Key when creating a Streaming Locator + Label *string `json:"label,omitempty"` + // PolicyName - Policy used by Default Key + PolicyName *string `json:"policyName,omitempty"` +} + +// Deinterlace describes the de-interlacing settings. +type Deinterlace struct { + // Parity - The field parity for de-interlacing, defaults to Auto. Possible values include: 'DeinterlaceParityAuto', 'DeinterlaceParityTopFieldFirst', 'DeinterlaceParityBottomFieldFirst' + Parity DeinterlaceParity `json:"parity,omitempty"` + // Mode - The deinterlacing mode. Defaults to AutoPixelAdaptive. Possible values include: 'DeinterlaceModeOff', 'DeinterlaceModeAutoPixelAdaptive' + Mode DeinterlaceMode `json:"mode,omitempty"` +} + +// EdgePolicies ... +type EdgePolicies struct { + autorest.Response `json:"-"` + UsageDataCollectionPolicy *EdgeUsageDataCollectionPolicy `json:"usageDataCollectionPolicy,omitempty"` +} + +// EdgeUsageDataCollectionPolicy ... +type EdgeUsageDataCollectionPolicy struct { + // DataCollectionFrequency - Usage data collection frequency in ISO 8601 duration format e.g. PT10M , PT5H. + DataCollectionFrequency *string `json:"dataCollectionFrequency,omitempty"` + // DataReportingFrequency - Usage data reporting frequency in ISO 8601 duration format e.g. PT10M , PT5H. + DataReportingFrequency *string `json:"dataReportingFrequency,omitempty"` + // MaxAllowedUnreportedUsageDuration - Maximum time for which the functionality of the device will not be hampered for not reporting the usage data. + MaxAllowedUnreportedUsageDuration *string `json:"maxAllowedUnreportedUsageDuration,omitempty"` + // EventHubDetails - Details of Event Hub where the usage will be reported. + EventHubDetails *EdgeUsageDataEventHub `json:"eventHubDetails,omitempty"` +} + +// EdgeUsageDataEventHub ... +type EdgeUsageDataEventHub struct { + // Name - Name of the Event Hub where usage will be reported. + Name *string `json:"name,omitempty"` + // Namespace - Namespace of the Event Hub where usage will be reported. + Namespace *string `json:"namespace,omitempty"` + // Token - SAS token needed to interact with Event Hub. + Token *string `json:"token,omitempty"` +} + +// EnabledProtocols class to specify which protocols are enabled +type EnabledProtocols struct { + // Download - Enable Download protocol or not + Download *bool `json:"download,omitempty"` + // Dash - Enable DASH protocol or not + Dash *bool `json:"dash,omitempty"` + // Hls - Enable HLS protocol or not + Hls *bool `json:"hls,omitempty"` + // SmoothStreaming - Enable SmoothStreaming protocol or not + SmoothStreaming *bool `json:"smoothStreaming,omitempty"` +} + +// EntityNameAvailabilityCheckOutput the response from the check name availability request. +type EntityNameAvailabilityCheckOutput struct { + autorest.Response `json:"-"` + // NameAvailable - Specifies if the name is available. + NameAvailable *bool `json:"nameAvailable,omitempty"` + // Reason - Specifies the reason if the name is not available. + Reason *string `json:"reason,omitempty"` + // Message - Specifies the detailed reason if the name is not available. + Message *string `json:"message,omitempty"` +} + +// EnvelopeEncryption class for EnvelopeEncryption encryption scheme +type EnvelopeEncryption struct { + // EnabledProtocols - Representing supported protocols + EnabledProtocols *EnabledProtocols `json:"enabledProtocols,omitempty"` + // ClearTracks - Representing which tracks should not be encrypted + ClearTracks *[]TrackSelection `json:"clearTracks,omitempty"` + // ContentKeys - Representing default content key for each encryption scheme and separate content keys for specific tracks + ContentKeys *StreamingPolicyContentKeys `json:"contentKeys,omitempty"` + // CustomKeyAcquisitionURLTemplate - Template for the URL of the custom service delivering keys to end user players. Not required when using Azure Media Services for issuing keys. The template supports replaceable tokens that the service will update at runtime with the value specific to the request. The currently supported token values are {AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId, and {ContentKeyId}, which is replaced with the value of identifier of the key being requested. + CustomKeyAcquisitionURLTemplate *string `json:"customKeyAcquisitionUrlTemplate,omitempty"` +} + +// ErrorAdditionalInfo the resource management error additional info. +type ErrorAdditionalInfo struct { + // Type - READ-ONLY; The additional info type. + Type *string `json:"type,omitempty"` + // Info - READ-ONLY; The additional info. + Info interface{} `json:"info,omitempty"` +} + +// MarshalJSON is the custom marshaler for ErrorAdditionalInfo. +func (eai ErrorAdditionalInfo) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ErrorDetail the error detail. +type ErrorDetail struct { + // Code - READ-ONLY; The error code. + Code *string `json:"code,omitempty"` + // Message - READ-ONLY; The error message. + Message *string `json:"message,omitempty"` + // Target - READ-ONLY; The error target. + Target *string `json:"target,omitempty"` + // Details - READ-ONLY; The error details. + Details *[]ErrorDetail `json:"details,omitempty"` + // AdditionalInfo - READ-ONLY; The error additional info. + AdditionalInfo *[]ErrorAdditionalInfo `json:"additionalInfo,omitempty"` +} + +// MarshalJSON is the custom marshaler for ErrorDetail. +func (ed ErrorDetail) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ErrorResponse common error response for all Azure Resource Manager APIs to return error details for +// failed operations. (This also follows the OData error response format.). +type ErrorResponse struct { + // Error - The error object. + Error *ErrorDetail `json:"error,omitempty"` +} + +// FaceDetectorPreset describes all the settings to be used when analyzing a video in order to detect (and +// optionally redact) all the faces present. +type FaceDetectorPreset struct { + // Resolution - Specifies the maximum resolution at which your video is analyzed. The default behavior is "SourceResolution," which will keep the input video at its original resolution when analyzed. Using "StandardDefinition" will resize input videos to standard definition while preserving the appropriate aspect ratio. It will only resize if the video is of higher resolution. For example, a 1920x1080 input would be scaled to 640x360 before processing. Switching to "StandardDefinition" will reduce the time it takes to process high resolution video. It may also reduce the cost of using this component (see https://azure.microsoft.com/en-us/pricing/details/media-services/#analytics for details). However, faces that end up being too small in the resized video may not be detected. Possible values include: 'AnalysisResolutionSourceResolution', 'AnalysisResolutionStandardDefinition' + Resolution AnalysisResolution `json:"resolution,omitempty"` + // Mode - This mode provides the ability to choose between the following settings: 1) Analyze - For detection only.This mode generates a metadata JSON file marking appearances of faces throughout the video.Where possible, appearances of the same person are assigned the same ID. 2) Combined - Additionally redacts(blurs) detected faces. 3) Redact - This enables a 2-pass process, allowing for selective redaction of a subset of detected faces.It takes in the metadata file from a prior analyze pass, along with the source video, and a user-selected subset of IDs that require redaction. Possible values include: 'FaceRedactorModeAnalyze', 'FaceRedactorModeRedact', 'FaceRedactorModeCombined' + Mode FaceRedactorMode `json:"mode,omitempty"` + // BlurType - Blur type. Possible values include: 'BlurTypeBox', 'BlurTypeLow', 'BlurTypeMed', 'BlurTypeHigh', 'BlurTypeBlack' + BlurType BlurType `json:"blurType,omitempty"` + // ExperimentalOptions - Dictionary containing key value pairs for parameters not exposed in the preset itself + ExperimentalOptions map[string]*string `json:"experimentalOptions"` + // OdataType - Possible values include: 'OdataTypeBasicPresetOdataTypePreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset' + OdataType OdataTypeBasicPreset `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for FaceDetectorPreset. +func (fdp FaceDetectorPreset) MarshalJSON() ([]byte, error) { + fdp.OdataType = OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset + objectMap := make(map[string]interface{}) + if fdp.Resolution != "" { + objectMap["resolution"] = fdp.Resolution + } + if fdp.Mode != "" { + objectMap["mode"] = fdp.Mode + } + if fdp.BlurType != "" { + objectMap["blurType"] = fdp.BlurType + } + if fdp.ExperimentalOptions != nil { + objectMap["experimentalOptions"] = fdp.ExperimentalOptions + } + if fdp.OdataType != "" { + objectMap["@odata.type"] = fdp.OdataType + } + return json.Marshal(objectMap) +} + +// AsFaceDetectorPreset is the BasicPreset implementation for FaceDetectorPreset. +func (fdp FaceDetectorPreset) AsFaceDetectorPreset() (*FaceDetectorPreset, bool) { + return &fdp, true +} + +// AsAudioAnalyzerPreset is the BasicPreset implementation for FaceDetectorPreset. +func (fdp FaceDetectorPreset) AsAudioAnalyzerPreset() (*AudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBasicAudioAnalyzerPreset is the BasicPreset implementation for FaceDetectorPreset. +func (fdp FaceDetectorPreset) AsBasicAudioAnalyzerPreset() (BasicAudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBuiltInStandardEncoderPreset is the BasicPreset implementation for FaceDetectorPreset. +func (fdp FaceDetectorPreset) AsBuiltInStandardEncoderPreset() (*BuiltInStandardEncoderPreset, bool) { + return nil, false +} + +// AsStandardEncoderPreset is the BasicPreset implementation for FaceDetectorPreset. +func (fdp FaceDetectorPreset) AsStandardEncoderPreset() (*StandardEncoderPreset, bool) { + return nil, false +} + +// AsVideoAnalyzerPreset is the BasicPreset implementation for FaceDetectorPreset. +func (fdp FaceDetectorPreset) AsVideoAnalyzerPreset() (*VideoAnalyzerPreset, bool) { + return nil, false +} + +// AsPreset is the BasicPreset implementation for FaceDetectorPreset. +func (fdp FaceDetectorPreset) AsPreset() (*Preset, bool) { + return nil, false +} + +// AsBasicPreset is the BasicPreset implementation for FaceDetectorPreset. +func (fdp FaceDetectorPreset) AsBasicPreset() (BasicPreset, bool) { + return &fdp, true +} + +// FilterProperties the Media Filter properties. +type FilterProperties struct { + // PresentationTimeRange - The presentation time range. + PresentationTimeRange *PresentationTimeRange `json:"presentationTimeRange,omitempty"` + // FirstQuality - The first quality. + FirstQuality *FirstQuality `json:"firstQuality,omitempty"` + // Tracks - The tracks selection conditions. + Tracks *[]FilterTrackSelection `json:"tracks,omitempty"` +} + +// Filters describes all the filtering operations, such as de-interlacing, rotation etc. that are to be +// applied to the input media before encoding. +type Filters struct { + // Deinterlace - The de-interlacing settings. + Deinterlace *Deinterlace `json:"deinterlace,omitempty"` + // Rotation - The rotation, if any, to be applied to the input video, before it is encoded. Default is Auto. Possible values include: 'RotationAuto', 'RotationNone', 'RotationRotate0', 'RotationRotate90', 'RotationRotate180', 'RotationRotate270' + Rotation Rotation `json:"rotation,omitempty"` + // Crop - The parameters for the rectangular window with which to crop the input video. + Crop *Rectangle `json:"crop,omitempty"` + // Overlays - The properties of overlays to be applied to the input video. These could be audio, image or video overlays. + Overlays *[]BasicOverlay `json:"overlays,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for Filters struct. +func (f *Filters) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "deinterlace": + if v != nil { + var deinterlace Deinterlace + err = json.Unmarshal(*v, &deinterlace) + if err != nil { + return err + } + f.Deinterlace = &deinterlace + } + case "rotation": + if v != nil { + var rotation Rotation + err = json.Unmarshal(*v, &rotation) + if err != nil { + return err + } + f.Rotation = rotation + } + case "crop": + if v != nil { + var crop Rectangle + err = json.Unmarshal(*v, &crop) + if err != nil { + return err + } + f.Crop = &crop + } + case "overlays": + if v != nil { + overlays, err := unmarshalBasicOverlayArray(*v) + if err != nil { + return err + } + f.Overlays = &overlays + } + } + } + + return nil +} + +// FilterTrackPropertyCondition the class to specify one track property condition. +type FilterTrackPropertyCondition struct { + // Property - The track property type. Possible values include: 'FilterTrackPropertyTypeUnknown', 'FilterTrackPropertyTypeType', 'FilterTrackPropertyTypeName', 'FilterTrackPropertyTypeLanguage', 'FilterTrackPropertyTypeFourCC', 'FilterTrackPropertyTypeBitrate' + Property FilterTrackPropertyType `json:"property,omitempty"` + // Value - The track property value. + Value *string `json:"value,omitempty"` + // Operation - The track property condition operation. Possible values include: 'FilterTrackPropertyCompareOperationEqual', 'FilterTrackPropertyCompareOperationNotEqual' + Operation FilterTrackPropertyCompareOperation `json:"operation,omitempty"` +} + +// FilterTrackSelection representing a list of FilterTrackPropertyConditions to select a track. The +// filters are combined using a logical AND operation. +type FilterTrackSelection struct { + // TrackSelections - The track selections. + TrackSelections *[]FilterTrackPropertyCondition `json:"trackSelections,omitempty"` +} + +// FirstQuality filter First Quality +type FirstQuality struct { + // Bitrate - The first quality bitrate. + Bitrate *int32 `json:"bitrate,omitempty"` +} + +// BasicFormat base class for output. +type BasicFormat interface { + AsImageFormat() (*ImageFormat, bool) + AsBasicImageFormat() (BasicImageFormat, bool) + AsJpgFormat() (*JpgFormat, bool) + AsPngFormat() (*PngFormat, bool) + AsMultiBitrateFormat() (*MultiBitrateFormat, bool) + AsBasicMultiBitrateFormat() (BasicMultiBitrateFormat, bool) + AsMp4Format() (*Mp4Format, bool) + AsTransportStreamFormat() (*TransportStreamFormat, bool) + AsFormat() (*Format, bool) +} + +// Format base class for output. +type Format struct { + // FilenamePattern - The pattern of the file names for the generated output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {Bitrate} - The audio/video bitrate. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename. + FilenamePattern *string `json:"filenamePattern,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicFormatOdataTypeFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat' + OdataType OdataTypeBasicFormat `json:"@odata.type,omitempty"` +} + +func unmarshalBasicFormat(body []byte) (BasicFormat, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat): + var ifVar ImageFormat + err := json.Unmarshal(body, &ifVar) + return ifVar, err + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat): + var jf JpgFormat + err := json.Unmarshal(body, &jf) + return jf, err + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat): + var pf PngFormat + err := json.Unmarshal(body, &pf) + return pf, err + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat): + var mbf MultiBitrateFormat + err := json.Unmarshal(body, &mbf) + return mbf, err + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format): + var m4f Mp4Format + err := json.Unmarshal(body, &m4f) + return m4f, err + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat): + var tsf TransportStreamFormat + err := json.Unmarshal(body, &tsf) + return tsf, err + default: + var f Format + err := json.Unmarshal(body, &f) + return f, err + } +} +func unmarshalBasicFormatArray(body []byte) ([]BasicFormat, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + fArray := make([]BasicFormat, len(rawMessages)) + + for index, rawMessage := range rawMessages { + f, err := unmarshalBasicFormat(*rawMessage) + if err != nil { + return nil, err + } + fArray[index] = f + } + return fArray, nil +} + +// MarshalJSON is the custom marshaler for Format. +func (f Format) MarshalJSON() ([]byte, error) { + f.OdataType = OdataTypeBasicFormatOdataTypeFormat + objectMap := make(map[string]interface{}) + if f.FilenamePattern != nil { + objectMap["filenamePattern"] = f.FilenamePattern + } + if f.OdataType != "" { + objectMap["@odata.type"] = f.OdataType + } + return json.Marshal(objectMap) +} + +// AsImageFormat is the BasicFormat implementation for Format. +func (f Format) AsImageFormat() (*ImageFormat, bool) { + return nil, false +} + +// AsBasicImageFormat is the BasicFormat implementation for Format. +func (f Format) AsBasicImageFormat() (BasicImageFormat, bool) { + return nil, false +} + +// AsJpgFormat is the BasicFormat implementation for Format. +func (f Format) AsJpgFormat() (*JpgFormat, bool) { + return nil, false +} + +// AsPngFormat is the BasicFormat implementation for Format. +func (f Format) AsPngFormat() (*PngFormat, bool) { + return nil, false +} + +// AsMultiBitrateFormat is the BasicFormat implementation for Format. +func (f Format) AsMultiBitrateFormat() (*MultiBitrateFormat, bool) { + return nil, false +} + +// AsBasicMultiBitrateFormat is the BasicFormat implementation for Format. +func (f Format) AsBasicMultiBitrateFormat() (BasicMultiBitrateFormat, bool) { + return nil, false +} + +// AsMp4Format is the BasicFormat implementation for Format. +func (f Format) AsMp4Format() (*Mp4Format, bool) { + return nil, false +} + +// AsTransportStreamFormat is the BasicFormat implementation for Format. +func (f Format) AsTransportStreamFormat() (*TransportStreamFormat, bool) { + return nil, false +} + +// AsFormat is the BasicFormat implementation for Format. +func (f Format) AsFormat() (*Format, bool) { + return &f, true +} + +// AsBasicFormat is the BasicFormat implementation for Format. +func (f Format) AsBasicFormat() (BasicFormat, bool) { + return &f, true +} + +// FromAllInputFile an InputDefinition that looks across all of the files provided to select tracks +// specified by the IncludedTracks property. Generally used with the AudioTrackByAttribute and +// VideoTrackByAttribute to allow selection of a single track across a set of input files. +type FromAllInputFile struct { + // IncludedTracks - The list of TrackDescriptors which define the metadata and selection of tracks in the input. + IncludedTracks *[]BasicTrackDescriptor `json:"includedTracks,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicInputDefinitionOdataTypeInputDefinition', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile' + OdataType OdataTypeBasicInputDefinition `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for FromAllInputFile. +func (faif FromAllInputFile) MarshalJSON() ([]byte, error) { + faif.OdataType = OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile + objectMap := make(map[string]interface{}) + if faif.IncludedTracks != nil { + objectMap["includedTracks"] = faif.IncludedTracks + } + if faif.OdataType != "" { + objectMap["@odata.type"] = faif.OdataType + } + return json.Marshal(objectMap) +} + +// AsFromAllInputFile is the BasicInputDefinition implementation for FromAllInputFile. +func (faif FromAllInputFile) AsFromAllInputFile() (*FromAllInputFile, bool) { + return &faif, true +} + +// AsFromEachInputFile is the BasicInputDefinition implementation for FromAllInputFile. +func (faif FromAllInputFile) AsFromEachInputFile() (*FromEachInputFile, bool) { + return nil, false +} + +// AsInputFile is the BasicInputDefinition implementation for FromAllInputFile. +func (faif FromAllInputFile) AsInputFile() (*InputFile, bool) { + return nil, false +} + +// AsInputDefinition is the BasicInputDefinition implementation for FromAllInputFile. +func (faif FromAllInputFile) AsInputDefinition() (*InputDefinition, bool) { + return nil, false +} + +// AsBasicInputDefinition is the BasicInputDefinition implementation for FromAllInputFile. +func (faif FromAllInputFile) AsBasicInputDefinition() (BasicInputDefinition, bool) { + return &faif, true +} + +// UnmarshalJSON is the custom unmarshaler for FromAllInputFile struct. +func (faif *FromAllInputFile) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "includedTracks": + if v != nil { + includedTracks, err := unmarshalBasicTrackDescriptorArray(*v) + if err != nil { + return err + } + faif.IncludedTracks = &includedTracks + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicInputDefinition + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + faif.OdataType = odataType + } + } + } + + return nil +} + +// FromEachInputFile an InputDefinition that looks at each input file provided to select tracks specified +// by the IncludedTracks property. Generally used with the AudioTrackByAttribute and VideoTrackByAttribute +// to select tracks from each file given. +type FromEachInputFile struct { + // IncludedTracks - The list of TrackDescriptors which define the metadata and selection of tracks in the input. + IncludedTracks *[]BasicTrackDescriptor `json:"includedTracks,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicInputDefinitionOdataTypeInputDefinition', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile' + OdataType OdataTypeBasicInputDefinition `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for FromEachInputFile. +func (feif FromEachInputFile) MarshalJSON() ([]byte, error) { + feif.OdataType = OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile + objectMap := make(map[string]interface{}) + if feif.IncludedTracks != nil { + objectMap["includedTracks"] = feif.IncludedTracks + } + if feif.OdataType != "" { + objectMap["@odata.type"] = feif.OdataType + } + return json.Marshal(objectMap) +} + +// AsFromAllInputFile is the BasicInputDefinition implementation for FromEachInputFile. +func (feif FromEachInputFile) AsFromAllInputFile() (*FromAllInputFile, bool) { + return nil, false +} + +// AsFromEachInputFile is the BasicInputDefinition implementation for FromEachInputFile. +func (feif FromEachInputFile) AsFromEachInputFile() (*FromEachInputFile, bool) { + return &feif, true +} + +// AsInputFile is the BasicInputDefinition implementation for FromEachInputFile. +func (feif FromEachInputFile) AsInputFile() (*InputFile, bool) { + return nil, false +} + +// AsInputDefinition is the BasicInputDefinition implementation for FromEachInputFile. +func (feif FromEachInputFile) AsInputDefinition() (*InputDefinition, bool) { + return nil, false +} + +// AsBasicInputDefinition is the BasicInputDefinition implementation for FromEachInputFile. +func (feif FromEachInputFile) AsBasicInputDefinition() (BasicInputDefinition, bool) { + return &feif, true +} + +// UnmarshalJSON is the custom unmarshaler for FromEachInputFile struct. +func (feif *FromEachInputFile) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "includedTracks": + if v != nil { + includedTracks, err := unmarshalBasicTrackDescriptorArray(*v) + if err != nil { + return err + } + feif.IncludedTracks = &includedTracks + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicInputDefinition + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + feif.OdataType = odataType + } + } + } + + return nil +} + +// H264Layer describes the settings to be used when encoding the input video into a desired output bitrate +// layer with the H.264 video codec. +type H264Layer struct { + // Profile - We currently support Baseline, Main, High, High422, High444. Default is Auto. Possible values include: 'H264VideoProfileAuto', 'H264VideoProfileBaseline', 'H264VideoProfileMain', 'H264VideoProfileHigh', 'H264VideoProfileHigh422', 'H264VideoProfileHigh444' + Profile H264VideoProfile `json:"profile,omitempty"` + // Level - We currently support Level up to 6.2. The value can be Auto, or a number that matches the H.264 profile. If not specified, the default is Auto, which lets the encoder choose the Level that is appropriate for this layer. + Level *string `json:"level,omitempty"` + // BufferWindow - The VBV buffer window length. The value should be in ISO 8601 format. The value should be in the range [0.1-100] seconds. The default is 5 seconds (for example, PT5S). + BufferWindow *string `json:"bufferWindow,omitempty"` + // ReferenceFrames - The number of reference frames to be used when encoding this layer. If not specified, the encoder determines an appropriate number based on the encoder complexity setting. + ReferenceFrames *int32 `json:"referenceFrames,omitempty"` + // EntropyMode - The entropy mode to be used for this layer. If not specified, the encoder chooses the mode that is appropriate for the profile and level. Possible values include: 'EntropyModeCabac', 'EntropyModeCavlc' + EntropyMode EntropyMode `json:"entropyMode,omitempty"` + // Bitrate - The average bitrate in bits per second at which to encode the input video when generating this layer. This is a required field. + Bitrate *int32 `json:"bitrate,omitempty"` + // MaxBitrate - The maximum bitrate (in bits per second), at which the VBV buffer should be assumed to refill. If not specified, defaults to the same value as bitrate. + MaxBitrate *int32 `json:"maxBitrate,omitempty"` + // BFrames - The number of B-frames to be used when encoding this layer. If not specified, the encoder chooses an appropriate number based on the video profile and level. + BFrames *int32 `json:"bFrames,omitempty"` + // FrameRate - The frame rate (in frames per second) at which to encode this layer. The value can be in the form of M/N where M and N are integers (For example, 30000/1001), or in the form of a number (For example, 30, or 29.97). The encoder enforces constraints on allowed frame rates based on the profile and level. If it is not specified, the encoder will use the same frame rate as the input video. + FrameRate *string `json:"frameRate,omitempty"` + // Slices - The number of slices to be used when encoding this layer. If not specified, default is zero, which means that encoder will use a single slice for each frame. + Slices *int32 `json:"slices,omitempty"` + // AdaptiveBFrame - Whether or not adaptive B-frames are to be used when encoding this layer. If not specified, the encoder will turn it on whenever the video profile permits its use. + AdaptiveBFrame *bool `json:"adaptiveBFrame,omitempty"` + // Width - The width of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in width as the input. + Width *string `json:"width,omitempty"` + // Height - The height of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in height as the input. + Height *string `json:"height,omitempty"` + // Label - The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicLayerOdataTypeLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer' + OdataType OdataTypeBasicLayer `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for H264Layer. +func (hl H264Layer) MarshalJSON() ([]byte, error) { + hl.OdataType = OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer + objectMap := make(map[string]interface{}) + if hl.Profile != "" { + objectMap["profile"] = hl.Profile + } + if hl.Level != nil { + objectMap["level"] = hl.Level + } + if hl.BufferWindow != nil { + objectMap["bufferWindow"] = hl.BufferWindow + } + if hl.ReferenceFrames != nil { + objectMap["referenceFrames"] = hl.ReferenceFrames + } + if hl.EntropyMode != "" { + objectMap["entropyMode"] = hl.EntropyMode + } + if hl.Bitrate != nil { + objectMap["bitrate"] = hl.Bitrate + } + if hl.MaxBitrate != nil { + objectMap["maxBitrate"] = hl.MaxBitrate + } + if hl.BFrames != nil { + objectMap["bFrames"] = hl.BFrames + } + if hl.FrameRate != nil { + objectMap["frameRate"] = hl.FrameRate + } + if hl.Slices != nil { + objectMap["slices"] = hl.Slices + } + if hl.AdaptiveBFrame != nil { + objectMap["adaptiveBFrame"] = hl.AdaptiveBFrame + } + if hl.Width != nil { + objectMap["width"] = hl.Width + } + if hl.Height != nil { + objectMap["height"] = hl.Height + } + if hl.Label != nil { + objectMap["label"] = hl.Label + } + if hl.OdataType != "" { + objectMap["@odata.type"] = hl.OdataType + } + return json.Marshal(objectMap) +} + +// AsH265VideoLayer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsH265VideoLayer() (*H265VideoLayer, bool) { + return nil, false +} + +// AsBasicH265VideoLayer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsBasicH265VideoLayer() (BasicH265VideoLayer, bool) { + return nil, false +} + +// AsH265Layer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsH265Layer() (*H265Layer, bool) { + return nil, false +} + +// AsVideoLayer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsVideoLayer() (*VideoLayer, bool) { + return nil, false +} + +// AsBasicVideoLayer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsBasicVideoLayer() (BasicVideoLayer, bool) { + return &hl, true +} + +// AsH264Layer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsH264Layer() (*H264Layer, bool) { + return &hl, true +} + +// AsJpgLayer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsJpgLayer() (*JpgLayer, bool) { + return nil, false +} + +// AsPngLayer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsPngLayer() (*PngLayer, bool) { + return nil, false +} + +// AsLayer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsLayer() (*Layer, bool) { + return nil, false +} + +// AsBasicLayer is the BasicLayer implementation for H264Layer. +func (hl H264Layer) AsBasicLayer() (BasicLayer, bool) { + return &hl, true +} + +// H264Video describes all the properties for encoding a video with the H.264 codec. +type H264Video struct { + // SceneChangeDetection - Whether or not the encoder should insert key frames at scene changes. If not specified, the default is false. This flag should be set to true only when the encoder is being configured to produce a single output video. + SceneChangeDetection *bool `json:"sceneChangeDetection,omitempty"` + // Complexity - Tells the encoder how to choose its encoding settings. The default value is Balanced. Possible values include: 'H264ComplexitySpeed', 'H264ComplexityBalanced', 'H264ComplexityQuality' + Complexity H264Complexity `json:"complexity,omitempty"` + // Layers - The collection of output H.264 layers to be produced by the encoder. + Layers *[]H264Layer `json:"layers,omitempty"` + // KeyFrameInterval - The distance between two key frames. The value should be non-zero in the range [0.5, 20] seconds, specified in ISO 8601 format. The default is 2 seconds(PT2S). Note that this setting is ignored if VideoSyncMode.Passthrough is set, where the KeyFrameInterval value will follow the input source setting. + KeyFrameInterval *string `json:"keyFrameInterval,omitempty"` + // StretchMode - The resizing mode - how the input video will be resized to fit the desired output resolution(s). Default is AutoSize. Possible values include: 'StretchModeNone', 'StretchModeAutoSize', 'StretchModeAutoFit' + StretchMode StretchMode `json:"stretchMode,omitempty"` + // SyncMode - The Video Sync Mode. Possible values include: 'VideoSyncModeAuto', 'VideoSyncModePassthrough', 'VideoSyncModeCfr', 'VideoSyncModeVfr' + SyncMode VideoSyncMode `json:"syncMode,omitempty"` + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for H264Video. +func (hv H264Video) MarshalJSON() ([]byte, error) { + hv.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video + objectMap := make(map[string]interface{}) + if hv.SceneChangeDetection != nil { + objectMap["sceneChangeDetection"] = hv.SceneChangeDetection + } + if hv.Complexity != "" { + objectMap["complexity"] = hv.Complexity + } + if hv.Layers != nil { + objectMap["layers"] = hv.Layers + } + if hv.KeyFrameInterval != nil { + objectMap["keyFrameInterval"] = hv.KeyFrameInterval + } + if hv.StretchMode != "" { + objectMap["stretchMode"] = hv.StretchMode + } + if hv.SyncMode != "" { + objectMap["syncMode"] = hv.SyncMode + } + if hv.Label != nil { + objectMap["label"] = hv.Label + } + if hv.OdataType != "" { + objectMap["@odata.type"] = hv.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for H264Video. +func (hv H264Video) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for H264Video. +func (hv H264Video) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for H264Video. +func (hv H264Video) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for H264Video. +func (hv H264Video) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for H264Video. +func (hv H264Video) AsBasicVideo() (BasicVideo, bool) { + return &hv, true +} + +// AsH265Video is the BasicCodec implementation for H264Video. +func (hv H264Video) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for H264Video. +func (hv H264Video) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for H264Video. +func (hv H264Video) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for H264Video. +func (hv H264Video) AsBasicImage() (BasicImage, bool) { + return nil, false +} + +// AsCopyAudio is the BasicCodec implementation for H264Video. +func (hv H264Video) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for H264Video. +func (hv H264Video) AsH264Video() (*H264Video, bool) { + return &hv, true +} + +// AsJpgImage is the BasicCodec implementation for H264Video. +func (hv H264Video) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for H264Video. +func (hv H264Video) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for H264Video. +func (hv H264Video) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for H264Video. +func (hv H264Video) AsBasicCodec() (BasicCodec, bool) { + return &hv, true +} + +// H265Layer describes the settings to be used when encoding the input video into a desired output bitrate +// layer with the H.265 video codec. +type H265Layer struct { + // Profile - We currently support Main. Default is Auto. Possible values include: 'H265VideoProfileAuto', 'H265VideoProfileMain' + Profile H265VideoProfile `json:"profile,omitempty"` + // Level - We currently support Level up to 6.2. The value can be Auto, or a number that matches the H.265 profile. If not specified, the default is Auto, which lets the encoder choose the Level that is appropriate for this layer. + Level *string `json:"level,omitempty"` + // BufferWindow - The VBV buffer window length. The value should be in ISO 8601 format. The value should be in the range [0.1-100] seconds. The default is 5 seconds (for example, PT5S). + BufferWindow *string `json:"bufferWindow,omitempty"` + // ReferenceFrames - The number of reference frames to be used when encoding this layer. If not specified, the encoder determines an appropriate number based on the encoder complexity setting. + ReferenceFrames *int32 `json:"referenceFrames,omitempty"` + // Bitrate - The average bitrate in bits per second at which to encode the input video when generating this layer. For example: a target bitrate of 3000Kbps or 3Mbps means this value should be 3000000 This is a required field. + Bitrate *int32 `json:"bitrate,omitempty"` + // MaxBitrate - The maximum bitrate (in bits per second), at which the VBV buffer should be assumed to refill. If not specified, defaults to the same value as bitrate. + MaxBitrate *int32 `json:"maxBitrate,omitempty"` + // BFrames - The number of B-frames to be used when encoding this layer. If not specified, the encoder chooses an appropriate number based on the video profile and level. + BFrames *int32 `json:"bFrames,omitempty"` + // FrameRate - The frame rate (in frames per second) at which to encode this layer. The value can be in the form of M/N where M and N are integers (For example, 30000/1001), or in the form of a number (For example, 30, or 29.97). The encoder enforces constraints on allowed frame rates based on the profile and level. If it is not specified, the encoder will use the same frame rate as the input video. + FrameRate *string `json:"frameRate,omitempty"` + // Slices - The number of slices to be used when encoding this layer. If not specified, default is zero, which means that encoder will use a single slice for each frame. + Slices *int32 `json:"slices,omitempty"` + // AdaptiveBFrame - Specifies whether or not adaptive B-frames are to be used when encoding this layer. If not specified, the encoder will turn it on whenever the video profile permits its use. + AdaptiveBFrame *bool `json:"adaptiveBFrame,omitempty"` + // Width - The width of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in width as the input. + Width *string `json:"width,omitempty"` + // Height - The height of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in height as the input. + Height *string `json:"height,omitempty"` + // Label - The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicLayerOdataTypeLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer' + OdataType OdataTypeBasicLayer `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for H265Layer. +func (hl H265Layer) MarshalJSON() ([]byte, error) { + hl.OdataType = OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer + objectMap := make(map[string]interface{}) + if hl.Profile != "" { + objectMap["profile"] = hl.Profile + } + if hl.Level != nil { + objectMap["level"] = hl.Level + } + if hl.BufferWindow != nil { + objectMap["bufferWindow"] = hl.BufferWindow + } + if hl.ReferenceFrames != nil { + objectMap["referenceFrames"] = hl.ReferenceFrames + } + if hl.Bitrate != nil { + objectMap["bitrate"] = hl.Bitrate + } + if hl.MaxBitrate != nil { + objectMap["maxBitrate"] = hl.MaxBitrate + } + if hl.BFrames != nil { + objectMap["bFrames"] = hl.BFrames + } + if hl.FrameRate != nil { + objectMap["frameRate"] = hl.FrameRate + } + if hl.Slices != nil { + objectMap["slices"] = hl.Slices + } + if hl.AdaptiveBFrame != nil { + objectMap["adaptiveBFrame"] = hl.AdaptiveBFrame + } + if hl.Width != nil { + objectMap["width"] = hl.Width + } + if hl.Height != nil { + objectMap["height"] = hl.Height + } + if hl.Label != nil { + objectMap["label"] = hl.Label + } + if hl.OdataType != "" { + objectMap["@odata.type"] = hl.OdataType + } + return json.Marshal(objectMap) +} + +// AsH265VideoLayer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsH265VideoLayer() (*H265VideoLayer, bool) { + return nil, false +} + +// AsBasicH265VideoLayer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsBasicH265VideoLayer() (BasicH265VideoLayer, bool) { + return &hl, true +} + +// AsH265Layer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsH265Layer() (*H265Layer, bool) { + return &hl, true +} + +// AsVideoLayer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsVideoLayer() (*VideoLayer, bool) { + return nil, false +} + +// AsBasicVideoLayer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsBasicVideoLayer() (BasicVideoLayer, bool) { + return nil, false +} + +// AsH264Layer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsH264Layer() (*H264Layer, bool) { + return nil, false +} + +// AsJpgLayer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsJpgLayer() (*JpgLayer, bool) { + return nil, false +} + +// AsPngLayer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsPngLayer() (*PngLayer, bool) { + return nil, false +} + +// AsLayer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsLayer() (*Layer, bool) { + return nil, false +} + +// AsBasicLayer is the BasicLayer implementation for H265Layer. +func (hl H265Layer) AsBasicLayer() (BasicLayer, bool) { + return &hl, true +} + +// H265Video describes all the properties for encoding a video with the H.265 codec. +type H265Video struct { + // SceneChangeDetection - Specifies whether or not the encoder should insert key frames at scene changes. If not specified, the default is false. This flag should be set to true only when the encoder is being configured to produce a single output video. + SceneChangeDetection *bool `json:"sceneChangeDetection,omitempty"` + // Complexity - Tells the encoder how to choose its encoding settings. Quality will provide for a higher compression ratio but at a higher cost and longer compute time. Speed will produce a relatively larger file but is faster and more economical. The default value is Balanced. Possible values include: 'H265ComplexitySpeed', 'H265ComplexityBalanced', 'H265ComplexityQuality' + Complexity H265Complexity `json:"complexity,omitempty"` + // Layers - The collection of output H.265 layers to be produced by the encoder. + Layers *[]H265Layer `json:"layers,omitempty"` + // KeyFrameInterval - The distance between two key frames. The value should be non-zero in the range [0.5, 20] seconds, specified in ISO 8601 format. The default is 2 seconds(PT2S). Note that this setting is ignored if VideoSyncMode.Passthrough is set, where the KeyFrameInterval value will follow the input source setting. + KeyFrameInterval *string `json:"keyFrameInterval,omitempty"` + // StretchMode - The resizing mode - how the input video will be resized to fit the desired output resolution(s). Default is AutoSize. Possible values include: 'StretchModeNone', 'StretchModeAutoSize', 'StretchModeAutoFit' + StretchMode StretchMode `json:"stretchMode,omitempty"` + // SyncMode - The Video Sync Mode. Possible values include: 'VideoSyncModeAuto', 'VideoSyncModePassthrough', 'VideoSyncModeCfr', 'VideoSyncModeVfr' + SyncMode VideoSyncMode `json:"syncMode,omitempty"` + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for H265Video. +func (hv H265Video) MarshalJSON() ([]byte, error) { + hv.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video + objectMap := make(map[string]interface{}) + if hv.SceneChangeDetection != nil { + objectMap["sceneChangeDetection"] = hv.SceneChangeDetection + } + if hv.Complexity != "" { + objectMap["complexity"] = hv.Complexity + } + if hv.Layers != nil { + objectMap["layers"] = hv.Layers + } + if hv.KeyFrameInterval != nil { + objectMap["keyFrameInterval"] = hv.KeyFrameInterval + } + if hv.StretchMode != "" { + objectMap["stretchMode"] = hv.StretchMode + } + if hv.SyncMode != "" { + objectMap["syncMode"] = hv.SyncMode + } + if hv.Label != nil { + objectMap["label"] = hv.Label + } + if hv.OdataType != "" { + objectMap["@odata.type"] = hv.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for H265Video. +func (hv H265Video) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for H265Video. +func (hv H265Video) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for H265Video. +func (hv H265Video) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for H265Video. +func (hv H265Video) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for H265Video. +func (hv H265Video) AsBasicVideo() (BasicVideo, bool) { + return &hv, true +} + +// AsH265Video is the BasicCodec implementation for H265Video. +func (hv H265Video) AsH265Video() (*H265Video, bool) { + return &hv, true +} + +// AsCopyVideo is the BasicCodec implementation for H265Video. +func (hv H265Video) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for H265Video. +func (hv H265Video) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for H265Video. +func (hv H265Video) AsBasicImage() (BasicImage, bool) { + return nil, false +} + +// AsCopyAudio is the BasicCodec implementation for H265Video. +func (hv H265Video) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for H265Video. +func (hv H265Video) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for H265Video. +func (hv H265Video) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for H265Video. +func (hv H265Video) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for H265Video. +func (hv H265Video) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for H265Video. +func (hv H265Video) AsBasicCodec() (BasicCodec, bool) { + return &hv, true +} + +// BasicH265VideoLayer describes the settings to be used when encoding the input video into a desired output bitrate +// layer. +type BasicH265VideoLayer interface { + AsH265Layer() (*H265Layer, bool) + AsH265VideoLayer() (*H265VideoLayer, bool) +} + +// H265VideoLayer describes the settings to be used when encoding the input video into a desired output bitrate +// layer. +type H265VideoLayer struct { + // Bitrate - The average bitrate in bits per second at which to encode the input video when generating this layer. For example: a target bitrate of 3000Kbps or 3Mbps means this value should be 3000000 This is a required field. + Bitrate *int32 `json:"bitrate,omitempty"` + // MaxBitrate - The maximum bitrate (in bits per second), at which the VBV buffer should be assumed to refill. If not specified, defaults to the same value as bitrate. + MaxBitrate *int32 `json:"maxBitrate,omitempty"` + // BFrames - The number of B-frames to be used when encoding this layer. If not specified, the encoder chooses an appropriate number based on the video profile and level. + BFrames *int32 `json:"bFrames,omitempty"` + // FrameRate - The frame rate (in frames per second) at which to encode this layer. The value can be in the form of M/N where M and N are integers (For example, 30000/1001), or in the form of a number (For example, 30, or 29.97). The encoder enforces constraints on allowed frame rates based on the profile and level. If it is not specified, the encoder will use the same frame rate as the input video. + FrameRate *string `json:"frameRate,omitempty"` + // Slices - The number of slices to be used when encoding this layer. If not specified, default is zero, which means that encoder will use a single slice for each frame. + Slices *int32 `json:"slices,omitempty"` + // AdaptiveBFrame - Specifies whether or not adaptive B-frames are to be used when encoding this layer. If not specified, the encoder will turn it on whenever the video profile permits its use. + AdaptiveBFrame *bool `json:"adaptiveBFrame,omitempty"` + // Width - The width of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in width as the input. + Width *string `json:"width,omitempty"` + // Height - The height of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in height as the input. + Height *string `json:"height,omitempty"` + // Label - The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicLayerOdataTypeLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer' + OdataType OdataTypeBasicLayer `json:"@odata.type,omitempty"` +} + +func unmarshalBasicH265VideoLayer(body []byte) (BasicH265VideoLayer, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer): + var hl H265Layer + err := json.Unmarshal(body, &hl) + return hl, err + default: + var hvl H265VideoLayer + err := json.Unmarshal(body, &hvl) + return hvl, err + } +} +func unmarshalBasicH265VideoLayerArray(body []byte) ([]BasicH265VideoLayer, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + hvlArray := make([]BasicH265VideoLayer, len(rawMessages)) + + for index, rawMessage := range rawMessages { + hvl, err := unmarshalBasicH265VideoLayer(*rawMessage) + if err != nil { + return nil, err + } + hvlArray[index] = hvl + } + return hvlArray, nil +} + +// MarshalJSON is the custom marshaler for H265VideoLayer. +func (hvl H265VideoLayer) MarshalJSON() ([]byte, error) { + hvl.OdataType = OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer + objectMap := make(map[string]interface{}) + if hvl.Bitrate != nil { + objectMap["bitrate"] = hvl.Bitrate + } + if hvl.MaxBitrate != nil { + objectMap["maxBitrate"] = hvl.MaxBitrate + } + if hvl.BFrames != nil { + objectMap["bFrames"] = hvl.BFrames + } + if hvl.FrameRate != nil { + objectMap["frameRate"] = hvl.FrameRate + } + if hvl.Slices != nil { + objectMap["slices"] = hvl.Slices + } + if hvl.AdaptiveBFrame != nil { + objectMap["adaptiveBFrame"] = hvl.AdaptiveBFrame + } + if hvl.Width != nil { + objectMap["width"] = hvl.Width + } + if hvl.Height != nil { + objectMap["height"] = hvl.Height + } + if hvl.Label != nil { + objectMap["label"] = hvl.Label + } + if hvl.OdataType != "" { + objectMap["@odata.type"] = hvl.OdataType + } + return json.Marshal(objectMap) +} + +// AsH265VideoLayer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsH265VideoLayer() (*H265VideoLayer, bool) { + return &hvl, true +} + +// AsBasicH265VideoLayer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsBasicH265VideoLayer() (BasicH265VideoLayer, bool) { + return &hvl, true +} + +// AsH265Layer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsH265Layer() (*H265Layer, bool) { + return nil, false +} + +// AsVideoLayer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsVideoLayer() (*VideoLayer, bool) { + return nil, false +} + +// AsBasicVideoLayer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsBasicVideoLayer() (BasicVideoLayer, bool) { + return nil, false +} + +// AsH264Layer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsH264Layer() (*H264Layer, bool) { + return nil, false +} + +// AsJpgLayer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsJpgLayer() (*JpgLayer, bool) { + return nil, false +} + +// AsPngLayer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsPngLayer() (*PngLayer, bool) { + return nil, false +} + +// AsLayer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsLayer() (*Layer, bool) { + return nil, false +} + +// AsBasicLayer is the BasicLayer implementation for H265VideoLayer. +func (hvl H265VideoLayer) AsBasicLayer() (BasicLayer, bool) { + return &hvl, true +} + +// Hls HTTP Live Streaming (HLS) packing setting for the live output. +type Hls struct { + // FragmentsPerTsSegment - The number of fragments in an HTTP Live Streaming (HLS) TS segment in the output of the live event. This value does not affect the packing ratio for HLS CMAF output. + FragmentsPerTsSegment *int32 `json:"fragmentsPerTsSegment,omitempty"` +} + +// BasicImage describes the basic properties for generating thumbnails from the input video +type BasicImage interface { + AsJpgImage() (*JpgImage, bool) + AsPngImage() (*PngImage, bool) + AsImage() (*Image, bool) +} + +// Image describes the basic properties for generating thumbnails from the input video +type Image struct { + // Start - The position in the input video from where to start generating thumbnails. The value can be in ISO 8601 format (For example, PT05S to start at 5 seconds), or a frame count (For example, 10 to start at the 10th frame), or a relative value to stream duration (For example, 10% to start at 10% of stream duration). Also supports a macro {Best}, which tells the encoder to select the best thumbnail from the first few seconds of the video and will only produce one thumbnail, no matter what other settings are for Step and Range. The default value is macro {Best}. + Start *string `json:"start,omitempty"` + // Step - The intervals at which thumbnails are generated. The value can be in ISO 8601 format (For example, PT05S for one image every 5 seconds), or a frame count (For example, 30 for one image every 30 frames), or a relative value to stream duration (For example, 10% for one image every 10% of stream duration). Note: Step value will affect the first generated thumbnail, which may not be exactly the one specified at transform preset start time. This is due to the encoder, which tries to select the best thumbnail between start time and Step position from start time as the first output. As the default value is 10%, it means if stream has long duration, the first generated thumbnail might be far away from the one specified at start time. Try to select reasonable value for Step if the first thumbnail is expected close to start time, or set Range value at 1 if only one thumbnail is needed at start time. + Step *string `json:"step,omitempty"` + // Range - The position relative to transform preset start time in the input video at which to stop generating thumbnails. The value can be in ISO 8601 format (For example, PT5M30S to stop at 5 minutes and 30 seconds from start time), or a frame count (For example, 300 to stop at the 300th frame from the frame at start time. If this value is 1, it means only producing one thumbnail at start time), or a relative value to the stream duration (For example, 50% to stop at half of stream duration from start time). The default value is 100%, which means to stop at the end of the stream. + Range *string `json:"range,omitempty"` + // KeyFrameInterval - The distance between two key frames. The value should be non-zero in the range [0.5, 20] seconds, specified in ISO 8601 format. The default is 2 seconds(PT2S). Note that this setting is ignored if VideoSyncMode.Passthrough is set, where the KeyFrameInterval value will follow the input source setting. + KeyFrameInterval *string `json:"keyFrameInterval,omitempty"` + // StretchMode - The resizing mode - how the input video will be resized to fit the desired output resolution(s). Default is AutoSize. Possible values include: 'StretchModeNone', 'StretchModeAutoSize', 'StretchModeAutoFit' + StretchMode StretchMode `json:"stretchMode,omitempty"` + // SyncMode - The Video Sync Mode. Possible values include: 'VideoSyncModeAuto', 'VideoSyncModePassthrough', 'VideoSyncModeCfr', 'VideoSyncModeVfr' + SyncMode VideoSyncMode `json:"syncMode,omitempty"` + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +func unmarshalBasicImage(body []byte) (BasicImage, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage): + var ji JpgImage + err := json.Unmarshal(body, &ji) + return ji, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage): + var pi PngImage + err := json.Unmarshal(body, &pi) + return pi, err + default: + var i Image + err := json.Unmarshal(body, &i) + return i, err + } +} +func unmarshalBasicImageArray(body []byte) ([]BasicImage, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + iArray := make([]BasicImage, len(rawMessages)) + + for index, rawMessage := range rawMessages { + i, err := unmarshalBasicImage(*rawMessage) + if err != nil { + return nil, err + } + iArray[index] = i + } + return iArray, nil +} + +// MarshalJSON is the custom marshaler for Image. +func (i Image) MarshalJSON() ([]byte, error) { + i.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaImage + objectMap := make(map[string]interface{}) + if i.Start != nil { + objectMap["start"] = i.Start + } + if i.Step != nil { + objectMap["step"] = i.Step + } + if i.Range != nil { + objectMap["range"] = i.Range + } + if i.KeyFrameInterval != nil { + objectMap["keyFrameInterval"] = i.KeyFrameInterval + } + if i.StretchMode != "" { + objectMap["stretchMode"] = i.StretchMode + } + if i.SyncMode != "" { + objectMap["syncMode"] = i.SyncMode + } + if i.Label != nil { + objectMap["label"] = i.Label + } + if i.OdataType != "" { + objectMap["@odata.type"] = i.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for Image. +func (i Image) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for Image. +func (i Image) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for Image. +func (i Image) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for Image. +func (i Image) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for Image. +func (i Image) AsBasicVideo() (BasicVideo, bool) { + return &i, true +} + +// AsH265Video is the BasicCodec implementation for Image. +func (i Image) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for Image. +func (i Image) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for Image. +func (i Image) AsImage() (*Image, bool) { + return &i, true +} + +// AsBasicImage is the BasicCodec implementation for Image. +func (i Image) AsBasicImage() (BasicImage, bool) { + return &i, true +} + +// AsCopyAudio is the BasicCodec implementation for Image. +func (i Image) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for Image. +func (i Image) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for Image. +func (i Image) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for Image. +func (i Image) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for Image. +func (i Image) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for Image. +func (i Image) AsBasicCodec() (BasicCodec, bool) { + return &i, true +} + +// BasicImageFormat describes the properties for an output image file. +type BasicImageFormat interface { + AsJpgFormat() (*JpgFormat, bool) + AsPngFormat() (*PngFormat, bool) + AsImageFormat() (*ImageFormat, bool) +} + +// ImageFormat describes the properties for an output image file. +type ImageFormat struct { + // FilenamePattern - The pattern of the file names for the generated output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {Bitrate} - The audio/video bitrate. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename. + FilenamePattern *string `json:"filenamePattern,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicFormatOdataTypeFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat' + OdataType OdataTypeBasicFormat `json:"@odata.type,omitempty"` +} + +func unmarshalBasicImageFormat(body []byte) (BasicImageFormat, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat): + var jf JpgFormat + err := json.Unmarshal(body, &jf) + return jf, err + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat): + var pf PngFormat + err := json.Unmarshal(body, &pf) + return pf, err + default: + var ifVar ImageFormat + err := json.Unmarshal(body, &ifVar) + return ifVar, err + } +} +func unmarshalBasicImageFormatArray(body []byte) ([]BasicImageFormat, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ifVarArray := make([]BasicImageFormat, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ifVar, err := unmarshalBasicImageFormat(*rawMessage) + if err != nil { + return nil, err + } + ifVarArray[index] = ifVar + } + return ifVarArray, nil +} + +// MarshalJSON is the custom marshaler for ImageFormat. +func (ifVar ImageFormat) MarshalJSON() ([]byte, error) { + ifVar.OdataType = OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat + objectMap := make(map[string]interface{}) + if ifVar.FilenamePattern != nil { + objectMap["filenamePattern"] = ifVar.FilenamePattern + } + if ifVar.OdataType != "" { + objectMap["@odata.type"] = ifVar.OdataType + } + return json.Marshal(objectMap) +} + +// AsImageFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsImageFormat() (*ImageFormat, bool) { + return &ifVar, true +} + +// AsBasicImageFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsBasicImageFormat() (BasicImageFormat, bool) { + return &ifVar, true +} + +// AsJpgFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsJpgFormat() (*JpgFormat, bool) { + return nil, false +} + +// AsPngFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsPngFormat() (*PngFormat, bool) { + return nil, false +} + +// AsMultiBitrateFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsMultiBitrateFormat() (*MultiBitrateFormat, bool) { + return nil, false +} + +// AsBasicMultiBitrateFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsBasicMultiBitrateFormat() (BasicMultiBitrateFormat, bool) { + return nil, false +} + +// AsMp4Format is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsMp4Format() (*Mp4Format, bool) { + return nil, false +} + +// AsTransportStreamFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsTransportStreamFormat() (*TransportStreamFormat, bool) { + return nil, false +} + +// AsFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsFormat() (*Format, bool) { + return nil, false +} + +// AsBasicFormat is the BasicFormat implementation for ImageFormat. +func (ifVar ImageFormat) AsBasicFormat() (BasicFormat, bool) { + return &ifVar, true +} + +// BasicInputDefinition base class for defining an input. Use sub classes of this class to specify tracks selections +// and related metadata. +type BasicInputDefinition interface { + AsFromAllInputFile() (*FromAllInputFile, bool) + AsFromEachInputFile() (*FromEachInputFile, bool) + AsInputFile() (*InputFile, bool) + AsInputDefinition() (*InputDefinition, bool) +} + +// InputDefinition base class for defining an input. Use sub classes of this class to specify tracks selections +// and related metadata. +type InputDefinition struct { + // IncludedTracks - The list of TrackDescriptors which define the metadata and selection of tracks in the input. + IncludedTracks *[]BasicTrackDescriptor `json:"includedTracks,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicInputDefinitionOdataTypeInputDefinition', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile' + OdataType OdataTypeBasicInputDefinition `json:"@odata.type,omitempty"` +} + +func unmarshalBasicInputDefinition(body []byte) (BasicInputDefinition, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile): + var faif FromAllInputFile + err := json.Unmarshal(body, &faif) + return faif, err + case string(OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile): + var feif FromEachInputFile + err := json.Unmarshal(body, &feif) + return feif, err + case string(OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile): + var ifVar InputFile + err := json.Unmarshal(body, &ifVar) + return ifVar, err + default: + var ID InputDefinition + err := json.Unmarshal(body, &ID) + return ID, err + } +} +func unmarshalBasicInputDefinitionArray(body []byte) ([]BasicInputDefinition, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + IDArray := make([]BasicInputDefinition, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ID, err := unmarshalBasicInputDefinition(*rawMessage) + if err != nil { + return nil, err + } + IDArray[index] = ID + } + return IDArray, nil +} + +// MarshalJSON is the custom marshaler for InputDefinition. +func (ID InputDefinition) MarshalJSON() ([]byte, error) { + ID.OdataType = OdataTypeBasicInputDefinitionOdataTypeInputDefinition + objectMap := make(map[string]interface{}) + if ID.IncludedTracks != nil { + objectMap["includedTracks"] = ID.IncludedTracks + } + if ID.OdataType != "" { + objectMap["@odata.type"] = ID.OdataType + } + return json.Marshal(objectMap) +} + +// AsFromAllInputFile is the BasicInputDefinition implementation for InputDefinition. +func (ID InputDefinition) AsFromAllInputFile() (*FromAllInputFile, bool) { + return nil, false +} + +// AsFromEachInputFile is the BasicInputDefinition implementation for InputDefinition. +func (ID InputDefinition) AsFromEachInputFile() (*FromEachInputFile, bool) { + return nil, false +} + +// AsInputFile is the BasicInputDefinition implementation for InputDefinition. +func (ID InputDefinition) AsInputFile() (*InputFile, bool) { + return nil, false +} + +// AsInputDefinition is the BasicInputDefinition implementation for InputDefinition. +func (ID InputDefinition) AsInputDefinition() (*InputDefinition, bool) { + return &ID, true +} + +// AsBasicInputDefinition is the BasicInputDefinition implementation for InputDefinition. +func (ID InputDefinition) AsBasicInputDefinition() (BasicInputDefinition, bool) { + return &ID, true +} + +// UnmarshalJSON is the custom unmarshaler for InputDefinition struct. +func (ID *InputDefinition) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "includedTracks": + if v != nil { + includedTracks, err := unmarshalBasicTrackDescriptorArray(*v) + if err != nil { + return err + } + ID.IncludedTracks = &includedTracks + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicInputDefinition + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + ID.OdataType = odataType + } + } + } + + return nil +} + +// InputFile an InputDefinition for a single file. TrackSelections are scoped to the file specified. +type InputFile struct { + // Filename - Name of the file that this input definition applies to. + Filename *string `json:"filename,omitempty"` + // IncludedTracks - The list of TrackDescriptors which define the metadata and selection of tracks in the input. + IncludedTracks *[]BasicTrackDescriptor `json:"includedTracks,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicInputDefinitionOdataTypeInputDefinition', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromAllInputFile', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaFromEachInputFile', 'OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile' + OdataType OdataTypeBasicInputDefinition `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for InputFile. +func (ifVar InputFile) MarshalJSON() ([]byte, error) { + ifVar.OdataType = OdataTypeBasicInputDefinitionOdataTypeMicrosoftMediaInputFile + objectMap := make(map[string]interface{}) + if ifVar.Filename != nil { + objectMap["filename"] = ifVar.Filename + } + if ifVar.IncludedTracks != nil { + objectMap["includedTracks"] = ifVar.IncludedTracks + } + if ifVar.OdataType != "" { + objectMap["@odata.type"] = ifVar.OdataType + } + return json.Marshal(objectMap) +} + +// AsFromAllInputFile is the BasicInputDefinition implementation for InputFile. +func (ifVar InputFile) AsFromAllInputFile() (*FromAllInputFile, bool) { + return nil, false +} + +// AsFromEachInputFile is the BasicInputDefinition implementation for InputFile. +func (ifVar InputFile) AsFromEachInputFile() (*FromEachInputFile, bool) { + return nil, false +} + +// AsInputFile is the BasicInputDefinition implementation for InputFile. +func (ifVar InputFile) AsInputFile() (*InputFile, bool) { + return &ifVar, true +} + +// AsInputDefinition is the BasicInputDefinition implementation for InputFile. +func (ifVar InputFile) AsInputDefinition() (*InputDefinition, bool) { + return nil, false +} + +// AsBasicInputDefinition is the BasicInputDefinition implementation for InputFile. +func (ifVar InputFile) AsBasicInputDefinition() (BasicInputDefinition, bool) { + return &ifVar, true +} + +// UnmarshalJSON is the custom unmarshaler for InputFile struct. +func (ifVar *InputFile) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "filename": + if v != nil { + var filename string + err = json.Unmarshal(*v, &filename) + if err != nil { + return err + } + ifVar.Filename = &filename + } + case "includedTracks": + if v != nil { + includedTracks, err := unmarshalBasicTrackDescriptorArray(*v) + if err != nil { + return err + } + ifVar.IncludedTracks = &includedTracks + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicInputDefinition + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + ifVar.OdataType = odataType + } + } + } + + return nil +} + +// IPAccessControl the IP access control. +type IPAccessControl struct { + // Allow - The IP allow list. + Allow *[]IPRange `json:"allow,omitempty"` +} + +// IPRange the IP address range in the CIDR scheme. +type IPRange struct { + // Name - The friendly name for the IP address range. + Name *string `json:"name,omitempty"` + // Address - The IP address. + Address *string `json:"address,omitempty"` + // SubnetPrefixLength - The subnet mask prefix length (see CIDR notation). + SubnetPrefixLength *int32 `json:"subnetPrefixLength,omitempty"` +} + +// Job a Job resource type. The progress and state can be obtained by polling a Job or subscribing to +// events using EventGrid. +type Job struct { + autorest.Response `json:"-"` + // JobProperties - The resource properties. + *JobProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Job. +func (j Job) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if j.JobProperties != nil { + objectMap["properties"] = j.JobProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Job struct. +func (j *Job) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var jobProperties JobProperties + err = json.Unmarshal(*v, &jobProperties) + if err != nil { + return err + } + j.JobProperties = &jobProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + j.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + j.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + j.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + j.Type = &typeVar + } + } + } + + return nil +} + +// JobCollection a collection of Job items. +type JobCollection struct { + autorest.Response `json:"-"` + // Value - A collection of Job items. + Value *[]Job `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// JobCollectionIterator provides access to a complete listing of Job values. +type JobCollectionIterator struct { + i int + page JobCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *JobCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *JobCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter JobCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter JobCollectionIterator) Response() JobCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter JobCollectionIterator) Value() Job { + if !iter.page.NotDone() { + return Job{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the JobCollectionIterator type. +func NewJobCollectionIterator(page JobCollectionPage) JobCollectionIterator { + return JobCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (jc JobCollection) IsEmpty() bool { + return jc.Value == nil || len(*jc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (jc JobCollection) hasNextLink() bool { + return jc.OdataNextLink != nil && len(*jc.OdataNextLink) != 0 +} + +// jobCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (jc JobCollection) jobCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !jc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(jc.OdataNextLink))) +} + +// JobCollectionPage contains a page of Job values. +type JobCollectionPage struct { + fn func(context.Context, JobCollection) (JobCollection, error) + jc JobCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *JobCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.jc) + if err != nil { + return err + } + page.jc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *JobCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page JobCollectionPage) NotDone() bool { + return !page.jc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page JobCollectionPage) Response() JobCollection { + return page.jc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page JobCollectionPage) Values() []Job { + if page.jc.IsEmpty() { + return nil + } + return *page.jc.Value +} + +// Creates a new instance of the JobCollectionPage type. +func NewJobCollectionPage(cur JobCollection, getNextPage func(context.Context, JobCollection) (JobCollection, error)) JobCollectionPage { + return JobCollectionPage{ + fn: getNextPage, + jc: cur, + } +} + +// JobError details of JobOutput errors. +type JobError struct { + // Code - READ-ONLY; Error code describing the error. Possible values include: 'JobErrorCodeServiceError', 'JobErrorCodeServiceTransientError', 'JobErrorCodeDownloadNotAccessible', 'JobErrorCodeDownloadTransientError', 'JobErrorCodeUploadNotAccessible', 'JobErrorCodeUploadTransientError', 'JobErrorCodeConfigurationUnsupported', 'JobErrorCodeContentMalformed', 'JobErrorCodeContentUnsupported' + Code JobErrorCode `json:"code,omitempty"` + // Message - READ-ONLY; A human-readable language-dependent representation of the error. + Message *string `json:"message,omitempty"` + // Category - READ-ONLY; Helps with categorization of errors. Possible values include: 'JobErrorCategoryService', 'JobErrorCategoryDownload', 'JobErrorCategoryUpload', 'JobErrorCategoryConfiguration', 'JobErrorCategoryContent' + Category JobErrorCategory `json:"category,omitempty"` + // Retry - READ-ONLY; Indicates that it may be possible to retry the Job. If retry is unsuccessful, please contact Azure support via Azure Portal. Possible values include: 'JobRetryDoNotRetry', 'JobRetryMayRetry' + Retry JobRetry `json:"retry,omitempty"` + // Details - READ-ONLY; An array of details about specific errors that led to this reported error. + Details *[]JobErrorDetail `json:"details,omitempty"` +} + +// MarshalJSON is the custom marshaler for JobError. +func (je JobError) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// JobErrorDetail details of JobOutput errors. +type JobErrorDetail struct { + // Code - READ-ONLY; Code describing the error detail. + Code *string `json:"code,omitempty"` + // Message - READ-ONLY; A human-readable representation of the error. + Message *string `json:"message,omitempty"` +} + +// MarshalJSON is the custom marshaler for JobErrorDetail. +func (jed JobErrorDetail) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// BasicJobInput base class for inputs to a Job. +type BasicJobInput interface { + AsJobInputClip() (*JobInputClip, bool) + AsBasicJobInputClip() (BasicJobInputClip, bool) + AsJobInputs() (*JobInputs, bool) + AsJobInputAsset() (*JobInputAsset, bool) + AsJobInputHTTP() (*JobInputHTTP, bool) + AsJobInputSequence() (*JobInputSequence, bool) + AsJobInput() (*JobInput, bool) +} + +// JobInput base class for inputs to a Job. +type JobInput struct { + // OdataType - Possible values include: 'OdataTypeBasicJobInputOdataTypeJobInput', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence' + OdataType OdataTypeBasicJobInput `json:"@odata.type,omitempty"` +} + +func unmarshalBasicJobInput(body []byte) (BasicJobInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip): + var jic JobInputClip + err := json.Unmarshal(body, &jic) + return jic, err + case string(OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs): + var ji JobInputs + err := json.Unmarshal(body, &ji) + return ji, err + case string(OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset): + var jia JobInputAsset + err := json.Unmarshal(body, &jia) + return jia, err + case string(OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP): + var jih JobInputHTTP + err := json.Unmarshal(body, &jih) + return jih, err + case string(OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence): + var jis JobInputSequence + err := json.Unmarshal(body, &jis) + return jis, err + default: + var ji JobInput + err := json.Unmarshal(body, &ji) + return ji, err + } +} +func unmarshalBasicJobInputArray(body []byte) ([]BasicJobInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + jiArray := make([]BasicJobInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ji, err := unmarshalBasicJobInput(*rawMessage) + if err != nil { + return nil, err + } + jiArray[index] = ji + } + return jiArray, nil +} + +// MarshalJSON is the custom marshaler for JobInput. +func (ji JobInput) MarshalJSON() ([]byte, error) { + ji.OdataType = OdataTypeBasicJobInputOdataTypeJobInput + objectMap := make(map[string]interface{}) + if ji.OdataType != "" { + objectMap["@odata.type"] = ji.OdataType + } + return json.Marshal(objectMap) +} + +// AsJobInputClip is the BasicJobInput implementation for JobInput. +func (ji JobInput) AsJobInputClip() (*JobInputClip, bool) { + return nil, false +} + +// AsBasicJobInputClip is the BasicJobInput implementation for JobInput. +func (ji JobInput) AsBasicJobInputClip() (BasicJobInputClip, bool) { + return nil, false +} + +// AsJobInputs is the BasicJobInput implementation for JobInput. +func (ji JobInput) AsJobInputs() (*JobInputs, bool) { + return nil, false +} + +// AsJobInputAsset is the BasicJobInput implementation for JobInput. +func (ji JobInput) AsJobInputAsset() (*JobInputAsset, bool) { + return nil, false +} + +// AsJobInputHTTP is the BasicJobInput implementation for JobInput. +func (ji JobInput) AsJobInputHTTP() (*JobInputHTTP, bool) { + return nil, false +} + +// AsJobInputSequence is the BasicJobInput implementation for JobInput. +func (ji JobInput) AsJobInputSequence() (*JobInputSequence, bool) { + return nil, false +} + +// AsJobInput is the BasicJobInput implementation for JobInput. +func (ji JobInput) AsJobInput() (*JobInput, bool) { + return &ji, true +} + +// AsBasicJobInput is the BasicJobInput implementation for JobInput. +func (ji JobInput) AsBasicJobInput() (BasicJobInput, bool) { + return &ji, true +} + +// JobInputAsset represents an Asset for input into a Job. +type JobInputAsset struct { + // AssetName - The name of the input Asset. + AssetName *string `json:"assetName,omitempty"` + // Files - List of files. Required for JobInputHttp. Maximum of 4000 characters each. Query strings will not be returned in service responses to prevent sensitive data exposure. + Files *[]string `json:"files,omitempty"` + // Start - Defines a point on the timeline of the input media at which processing will start. Defaults to the beginning of the input media. + Start BasicClipTime `json:"start,omitempty"` + // End - Defines a point on the timeline of the input media at which processing will end. Defaults to the end of the input media. + End BasicClipTime `json:"end,omitempty"` + // Label - A label that is assigned to a JobInputClip, that is used to satisfy a reference used in the Transform. For example, a Transform can be authored so as to take an image file with the label 'xyz' and apply it as an overlay onto the input video before it is encoded. When submitting a Job, exactly one of the JobInputs should be the image file, and it should have the label 'xyz'. + Label *string `json:"label,omitempty"` + // InputDefinitions - Defines a list of InputDefinitions. For each InputDefinition, it defines a list of track selections and related metadata. + InputDefinitions *[]BasicInputDefinition `json:"inputDefinitions,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicJobInputOdataTypeJobInput', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence' + OdataType OdataTypeBasicJobInput `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for JobInputAsset. +func (jia JobInputAsset) MarshalJSON() ([]byte, error) { + jia.OdataType = OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset + objectMap := make(map[string]interface{}) + if jia.AssetName != nil { + objectMap["assetName"] = jia.AssetName + } + if jia.Files != nil { + objectMap["files"] = jia.Files + } + objectMap["start"] = jia.Start + objectMap["end"] = jia.End + if jia.Label != nil { + objectMap["label"] = jia.Label + } + if jia.InputDefinitions != nil { + objectMap["inputDefinitions"] = jia.InputDefinitions + } + if jia.OdataType != "" { + objectMap["@odata.type"] = jia.OdataType + } + return json.Marshal(objectMap) +} + +// AsJobInputClip is the BasicJobInput implementation for JobInputAsset. +func (jia JobInputAsset) AsJobInputClip() (*JobInputClip, bool) { + return nil, false +} + +// AsBasicJobInputClip is the BasicJobInput implementation for JobInputAsset. +func (jia JobInputAsset) AsBasicJobInputClip() (BasicJobInputClip, bool) { + return &jia, true +} + +// AsJobInputs is the BasicJobInput implementation for JobInputAsset. +func (jia JobInputAsset) AsJobInputs() (*JobInputs, bool) { + return nil, false +} + +// AsJobInputAsset is the BasicJobInput implementation for JobInputAsset. +func (jia JobInputAsset) AsJobInputAsset() (*JobInputAsset, bool) { + return &jia, true +} + +// AsJobInputHTTP is the BasicJobInput implementation for JobInputAsset. +func (jia JobInputAsset) AsJobInputHTTP() (*JobInputHTTP, bool) { + return nil, false +} + +// AsJobInputSequence is the BasicJobInput implementation for JobInputAsset. +func (jia JobInputAsset) AsJobInputSequence() (*JobInputSequence, bool) { + return nil, false +} + +// AsJobInput is the BasicJobInput implementation for JobInputAsset. +func (jia JobInputAsset) AsJobInput() (*JobInput, bool) { + return nil, false +} + +// AsBasicJobInput is the BasicJobInput implementation for JobInputAsset. +func (jia JobInputAsset) AsBasicJobInput() (BasicJobInput, bool) { + return &jia, true +} + +// UnmarshalJSON is the custom unmarshaler for JobInputAsset struct. +func (jia *JobInputAsset) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "assetName": + if v != nil { + var assetName string + err = json.Unmarshal(*v, &assetName) + if err != nil { + return err + } + jia.AssetName = &assetName + } + case "files": + if v != nil { + var files []string + err = json.Unmarshal(*v, &files) + if err != nil { + return err + } + jia.Files = &files + } + case "start": + if v != nil { + start, err := unmarshalBasicClipTime(*v) + if err != nil { + return err + } + jia.Start = start + } + case "end": + if v != nil { + end, err := unmarshalBasicClipTime(*v) + if err != nil { + return err + } + jia.End = end + } + case "label": + if v != nil { + var label string + err = json.Unmarshal(*v, &label) + if err != nil { + return err + } + jia.Label = &label + } + case "inputDefinitions": + if v != nil { + inputDefinitions, err := unmarshalBasicInputDefinitionArray(*v) + if err != nil { + return err + } + jia.InputDefinitions = &inputDefinitions + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicJobInput + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + jia.OdataType = odataType + } + } + } + + return nil +} + +// BasicJobInputClip represents input files for a Job. +type BasicJobInputClip interface { + AsJobInputAsset() (*JobInputAsset, bool) + AsJobInputHTTP() (*JobInputHTTP, bool) + AsJobInputClip() (*JobInputClip, bool) +} + +// JobInputClip represents input files for a Job. +type JobInputClip struct { + // Files - List of files. Required for JobInputHttp. Maximum of 4000 characters each. Query strings will not be returned in service responses to prevent sensitive data exposure. + Files *[]string `json:"files,omitempty"` + // Start - Defines a point on the timeline of the input media at which processing will start. Defaults to the beginning of the input media. + Start BasicClipTime `json:"start,omitempty"` + // End - Defines a point on the timeline of the input media at which processing will end. Defaults to the end of the input media. + End BasicClipTime `json:"end,omitempty"` + // Label - A label that is assigned to a JobInputClip, that is used to satisfy a reference used in the Transform. For example, a Transform can be authored so as to take an image file with the label 'xyz' and apply it as an overlay onto the input video before it is encoded. When submitting a Job, exactly one of the JobInputs should be the image file, and it should have the label 'xyz'. + Label *string `json:"label,omitempty"` + // InputDefinitions - Defines a list of InputDefinitions. For each InputDefinition, it defines a list of track selections and related metadata. + InputDefinitions *[]BasicInputDefinition `json:"inputDefinitions,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicJobInputOdataTypeJobInput', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence' + OdataType OdataTypeBasicJobInput `json:"@odata.type,omitempty"` +} + +func unmarshalBasicJobInputClip(body []byte) (BasicJobInputClip, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset): + var jia JobInputAsset + err := json.Unmarshal(body, &jia) + return jia, err + case string(OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP): + var jih JobInputHTTP + err := json.Unmarshal(body, &jih) + return jih, err + default: + var jic JobInputClip + err := json.Unmarshal(body, &jic) + return jic, err + } +} +func unmarshalBasicJobInputClipArray(body []byte) ([]BasicJobInputClip, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + jicArray := make([]BasicJobInputClip, len(rawMessages)) + + for index, rawMessage := range rawMessages { + jic, err := unmarshalBasicJobInputClip(*rawMessage) + if err != nil { + return nil, err + } + jicArray[index] = jic + } + return jicArray, nil +} + +// MarshalJSON is the custom marshaler for JobInputClip. +func (jic JobInputClip) MarshalJSON() ([]byte, error) { + jic.OdataType = OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip + objectMap := make(map[string]interface{}) + if jic.Files != nil { + objectMap["files"] = jic.Files + } + objectMap["start"] = jic.Start + objectMap["end"] = jic.End + if jic.Label != nil { + objectMap["label"] = jic.Label + } + if jic.InputDefinitions != nil { + objectMap["inputDefinitions"] = jic.InputDefinitions + } + if jic.OdataType != "" { + objectMap["@odata.type"] = jic.OdataType + } + return json.Marshal(objectMap) +} + +// AsJobInputClip is the BasicJobInput implementation for JobInputClip. +func (jic JobInputClip) AsJobInputClip() (*JobInputClip, bool) { + return &jic, true +} + +// AsBasicJobInputClip is the BasicJobInput implementation for JobInputClip. +func (jic JobInputClip) AsBasicJobInputClip() (BasicJobInputClip, bool) { + return &jic, true +} + +// AsJobInputs is the BasicJobInput implementation for JobInputClip. +func (jic JobInputClip) AsJobInputs() (*JobInputs, bool) { + return nil, false +} + +// AsJobInputAsset is the BasicJobInput implementation for JobInputClip. +func (jic JobInputClip) AsJobInputAsset() (*JobInputAsset, bool) { + return nil, false +} + +// AsJobInputHTTP is the BasicJobInput implementation for JobInputClip. +func (jic JobInputClip) AsJobInputHTTP() (*JobInputHTTP, bool) { + return nil, false +} + +// AsJobInputSequence is the BasicJobInput implementation for JobInputClip. +func (jic JobInputClip) AsJobInputSequence() (*JobInputSequence, bool) { + return nil, false +} + +// AsJobInput is the BasicJobInput implementation for JobInputClip. +func (jic JobInputClip) AsJobInput() (*JobInput, bool) { + return nil, false +} + +// AsBasicJobInput is the BasicJobInput implementation for JobInputClip. +func (jic JobInputClip) AsBasicJobInput() (BasicJobInput, bool) { + return &jic, true +} + +// UnmarshalJSON is the custom unmarshaler for JobInputClip struct. +func (jic *JobInputClip) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "files": + if v != nil { + var files []string + err = json.Unmarshal(*v, &files) + if err != nil { + return err + } + jic.Files = &files + } + case "start": + if v != nil { + start, err := unmarshalBasicClipTime(*v) + if err != nil { + return err + } + jic.Start = start + } + case "end": + if v != nil { + end, err := unmarshalBasicClipTime(*v) + if err != nil { + return err + } + jic.End = end + } + case "label": + if v != nil { + var label string + err = json.Unmarshal(*v, &label) + if err != nil { + return err + } + jic.Label = &label + } + case "inputDefinitions": + if v != nil { + inputDefinitions, err := unmarshalBasicInputDefinitionArray(*v) + if err != nil { + return err + } + jic.InputDefinitions = &inputDefinitions + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicJobInput + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + jic.OdataType = odataType + } + } + } + + return nil +} + +// JobInputHTTP represents HTTPS job input. +type JobInputHTTP struct { + // BaseURI - Base URI for HTTPS job input. It will be concatenated with provided file names. If no base uri is given, then the provided file list is assumed to be fully qualified uris. Maximum length of 4000 characters. The query strings will not be returned in service responses to prevent sensitive data exposure. + BaseURI *string `json:"baseUri,omitempty"` + // Files - List of files. Required for JobInputHttp. Maximum of 4000 characters each. Query strings will not be returned in service responses to prevent sensitive data exposure. + Files *[]string `json:"files,omitempty"` + // Start - Defines a point on the timeline of the input media at which processing will start. Defaults to the beginning of the input media. + Start BasicClipTime `json:"start,omitempty"` + // End - Defines a point on the timeline of the input media at which processing will end. Defaults to the end of the input media. + End BasicClipTime `json:"end,omitempty"` + // Label - A label that is assigned to a JobInputClip, that is used to satisfy a reference used in the Transform. For example, a Transform can be authored so as to take an image file with the label 'xyz' and apply it as an overlay onto the input video before it is encoded. When submitting a Job, exactly one of the JobInputs should be the image file, and it should have the label 'xyz'. + Label *string `json:"label,omitempty"` + // InputDefinitions - Defines a list of InputDefinitions. For each InputDefinition, it defines a list of track selections and related metadata. + InputDefinitions *[]BasicInputDefinition `json:"inputDefinitions,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicJobInputOdataTypeJobInput', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence' + OdataType OdataTypeBasicJobInput `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for JobInputHTTP. +func (jih JobInputHTTP) MarshalJSON() ([]byte, error) { + jih.OdataType = OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP + objectMap := make(map[string]interface{}) + if jih.BaseURI != nil { + objectMap["baseUri"] = jih.BaseURI + } + if jih.Files != nil { + objectMap["files"] = jih.Files + } + objectMap["start"] = jih.Start + objectMap["end"] = jih.End + if jih.Label != nil { + objectMap["label"] = jih.Label + } + if jih.InputDefinitions != nil { + objectMap["inputDefinitions"] = jih.InputDefinitions + } + if jih.OdataType != "" { + objectMap["@odata.type"] = jih.OdataType + } + return json.Marshal(objectMap) +} + +// AsJobInputClip is the BasicJobInput implementation for JobInputHTTP. +func (jih JobInputHTTP) AsJobInputClip() (*JobInputClip, bool) { + return nil, false +} + +// AsBasicJobInputClip is the BasicJobInput implementation for JobInputHTTP. +func (jih JobInputHTTP) AsBasicJobInputClip() (BasicJobInputClip, bool) { + return &jih, true +} + +// AsJobInputs is the BasicJobInput implementation for JobInputHTTP. +func (jih JobInputHTTP) AsJobInputs() (*JobInputs, bool) { + return nil, false +} + +// AsJobInputAsset is the BasicJobInput implementation for JobInputHTTP. +func (jih JobInputHTTP) AsJobInputAsset() (*JobInputAsset, bool) { + return nil, false +} + +// AsJobInputHTTP is the BasicJobInput implementation for JobInputHTTP. +func (jih JobInputHTTP) AsJobInputHTTP() (*JobInputHTTP, bool) { + return &jih, true +} + +// AsJobInputSequence is the BasicJobInput implementation for JobInputHTTP. +func (jih JobInputHTTP) AsJobInputSequence() (*JobInputSequence, bool) { + return nil, false +} + +// AsJobInput is the BasicJobInput implementation for JobInputHTTP. +func (jih JobInputHTTP) AsJobInput() (*JobInput, bool) { + return nil, false +} + +// AsBasicJobInput is the BasicJobInput implementation for JobInputHTTP. +func (jih JobInputHTTP) AsBasicJobInput() (BasicJobInput, bool) { + return &jih, true +} + +// UnmarshalJSON is the custom unmarshaler for JobInputHTTP struct. +func (jih *JobInputHTTP) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "baseUri": + if v != nil { + var baseURI string + err = json.Unmarshal(*v, &baseURI) + if err != nil { + return err + } + jih.BaseURI = &baseURI + } + case "files": + if v != nil { + var files []string + err = json.Unmarshal(*v, &files) + if err != nil { + return err + } + jih.Files = &files + } + case "start": + if v != nil { + start, err := unmarshalBasicClipTime(*v) + if err != nil { + return err + } + jih.Start = start + } + case "end": + if v != nil { + end, err := unmarshalBasicClipTime(*v) + if err != nil { + return err + } + jih.End = end + } + case "label": + if v != nil { + var label string + err = json.Unmarshal(*v, &label) + if err != nil { + return err + } + jih.Label = &label + } + case "inputDefinitions": + if v != nil { + inputDefinitions, err := unmarshalBasicInputDefinitionArray(*v) + if err != nil { + return err + } + jih.InputDefinitions = &inputDefinitions + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicJobInput + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + jih.OdataType = odataType + } + } + } + + return nil +} + +// JobInputs describes a list of inputs to a Job. +type JobInputs struct { + // Inputs - List of inputs to a Job. + Inputs *[]BasicJobInput `json:"inputs,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicJobInputOdataTypeJobInput', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence' + OdataType OdataTypeBasicJobInput `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for JobInputs. +func (ji JobInputs) MarshalJSON() ([]byte, error) { + ji.OdataType = OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs + objectMap := make(map[string]interface{}) + if ji.Inputs != nil { + objectMap["inputs"] = ji.Inputs + } + if ji.OdataType != "" { + objectMap["@odata.type"] = ji.OdataType + } + return json.Marshal(objectMap) +} + +// AsJobInputClip is the BasicJobInput implementation for JobInputs. +func (ji JobInputs) AsJobInputClip() (*JobInputClip, bool) { + return nil, false +} + +// AsBasicJobInputClip is the BasicJobInput implementation for JobInputs. +func (ji JobInputs) AsBasicJobInputClip() (BasicJobInputClip, bool) { + return nil, false +} + +// AsJobInputs is the BasicJobInput implementation for JobInputs. +func (ji JobInputs) AsJobInputs() (*JobInputs, bool) { + return &ji, true +} + +// AsJobInputAsset is the BasicJobInput implementation for JobInputs. +func (ji JobInputs) AsJobInputAsset() (*JobInputAsset, bool) { + return nil, false +} + +// AsJobInputHTTP is the BasicJobInput implementation for JobInputs. +func (ji JobInputs) AsJobInputHTTP() (*JobInputHTTP, bool) { + return nil, false +} + +// AsJobInputSequence is the BasicJobInput implementation for JobInputs. +func (ji JobInputs) AsJobInputSequence() (*JobInputSequence, bool) { + return nil, false +} + +// AsJobInput is the BasicJobInput implementation for JobInputs. +func (ji JobInputs) AsJobInput() (*JobInput, bool) { + return nil, false +} + +// AsBasicJobInput is the BasicJobInput implementation for JobInputs. +func (ji JobInputs) AsBasicJobInput() (BasicJobInput, bool) { + return &ji, true +} + +// UnmarshalJSON is the custom unmarshaler for JobInputs struct. +func (ji *JobInputs) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "inputs": + if v != nil { + inputs, err := unmarshalBasicJobInputArray(*v) + if err != nil { + return err + } + ji.Inputs = &inputs + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicJobInput + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + ji.OdataType = odataType + } + } + } + + return nil +} + +// JobInputSequence a Sequence contains an ordered list of Clips where each clip is a JobInput. The +// Sequence will be treated as a single input. +type JobInputSequence struct { + // Inputs - JobInputs that make up the timeline. + Inputs *[]BasicJobInputClip `json:"inputs,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicJobInputOdataTypeJobInput', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputClip', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputs', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputAsset', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputHTTP', 'OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence' + OdataType OdataTypeBasicJobInput `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for JobInputSequence. +func (jis JobInputSequence) MarshalJSON() ([]byte, error) { + jis.OdataType = OdataTypeBasicJobInputOdataTypeMicrosoftMediaJobInputSequence + objectMap := make(map[string]interface{}) + if jis.Inputs != nil { + objectMap["inputs"] = jis.Inputs + } + if jis.OdataType != "" { + objectMap["@odata.type"] = jis.OdataType + } + return json.Marshal(objectMap) +} + +// AsJobInputClip is the BasicJobInput implementation for JobInputSequence. +func (jis JobInputSequence) AsJobInputClip() (*JobInputClip, bool) { + return nil, false +} + +// AsBasicJobInputClip is the BasicJobInput implementation for JobInputSequence. +func (jis JobInputSequence) AsBasicJobInputClip() (BasicJobInputClip, bool) { + return nil, false +} + +// AsJobInputs is the BasicJobInput implementation for JobInputSequence. +func (jis JobInputSequence) AsJobInputs() (*JobInputs, bool) { + return nil, false +} + +// AsJobInputAsset is the BasicJobInput implementation for JobInputSequence. +func (jis JobInputSequence) AsJobInputAsset() (*JobInputAsset, bool) { + return nil, false +} + +// AsJobInputHTTP is the BasicJobInput implementation for JobInputSequence. +func (jis JobInputSequence) AsJobInputHTTP() (*JobInputHTTP, bool) { + return nil, false +} + +// AsJobInputSequence is the BasicJobInput implementation for JobInputSequence. +func (jis JobInputSequence) AsJobInputSequence() (*JobInputSequence, bool) { + return &jis, true +} + +// AsJobInput is the BasicJobInput implementation for JobInputSequence. +func (jis JobInputSequence) AsJobInput() (*JobInput, bool) { + return nil, false +} + +// AsBasicJobInput is the BasicJobInput implementation for JobInputSequence. +func (jis JobInputSequence) AsBasicJobInput() (BasicJobInput, bool) { + return &jis, true +} + +// UnmarshalJSON is the custom unmarshaler for JobInputSequence struct. +func (jis *JobInputSequence) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "inputs": + if v != nil { + inputs, err := unmarshalBasicJobInputClipArray(*v) + if err != nil { + return err + } + jis.Inputs = &inputs + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicJobInput + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + jis.OdataType = odataType + } + } + } + + return nil +} + +// BasicJobOutput describes all the properties of a JobOutput. +type BasicJobOutput interface { + AsJobOutputAsset() (*JobOutputAsset, bool) + AsJobOutput() (*JobOutput, bool) +} + +// JobOutput describes all the properties of a JobOutput. +type JobOutput struct { + // Error - READ-ONLY; If the JobOutput is in the Error state, it contains the details of the error. + Error *JobError `json:"error,omitempty"` + // PresetOverride - A preset used to override the preset in the corresponding transform output. + PresetOverride BasicPreset `json:"presetOverride,omitempty"` + // State - READ-ONLY; Describes the state of the JobOutput. Possible values include: 'JobStateCanceled', 'JobStateCanceling', 'JobStateError', 'JobStateFinished', 'JobStateProcessing', 'JobStateQueued', 'JobStateScheduled' + State JobState `json:"state,omitempty"` + // Progress - READ-ONLY; If the JobOutput is in a Processing state, this contains the Job completion percentage. The value is an estimate and not intended to be used to predict Job completion times. To determine if the JobOutput is complete, use the State property. + Progress *int32 `json:"progress,omitempty"` + // Label - A label that is assigned to a JobOutput in order to help uniquely identify it. This is useful when your Transform has more than one TransformOutput, whereby your Job has more than one JobOutput. In such cases, when you submit the Job, you will add two or more JobOutputs, in the same order as TransformOutputs in the Transform. Subsequently, when you retrieve the Job, either through events or on a GET request, you can use the label to easily identify the JobOutput. If a label is not provided, a default value of '{presetName}_{outputIndex}' will be used, where the preset name is the name of the preset in the corresponding TransformOutput and the output index is the relative index of the this JobOutput within the Job. Note that this index is the same as the relative index of the corresponding TransformOutput within its Transform. + Label *string `json:"label,omitempty"` + // StartTime - READ-ONLY; The UTC date and time at which this Job Output began processing. + StartTime *date.Time `json:"startTime,omitempty"` + // EndTime - READ-ONLY; The UTC date and time at which this Job Output finished processing. + EndTime *date.Time `json:"endTime,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicJobOutputOdataTypeJobOutput', 'OdataTypeBasicJobOutputOdataTypeMicrosoftMediaJobOutputAsset' + OdataType OdataTypeBasicJobOutput `json:"@odata.type,omitempty"` +} + +func unmarshalBasicJobOutput(body []byte) (BasicJobOutput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicJobOutputOdataTypeMicrosoftMediaJobOutputAsset): + var joa JobOutputAsset + err := json.Unmarshal(body, &joa) + return joa, err + default: + var jo JobOutput + err := json.Unmarshal(body, &jo) + return jo, err + } +} +func unmarshalBasicJobOutputArray(body []byte) ([]BasicJobOutput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + joArray := make([]BasicJobOutput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + jo, err := unmarshalBasicJobOutput(*rawMessage) + if err != nil { + return nil, err + } + joArray[index] = jo + } + return joArray, nil +} + +// MarshalJSON is the custom marshaler for JobOutput. +func (jo JobOutput) MarshalJSON() ([]byte, error) { + jo.OdataType = OdataTypeBasicJobOutputOdataTypeJobOutput + objectMap := make(map[string]interface{}) + objectMap["presetOverride"] = jo.PresetOverride + if jo.Label != nil { + objectMap["label"] = jo.Label + } + if jo.OdataType != "" { + objectMap["@odata.type"] = jo.OdataType + } + return json.Marshal(objectMap) +} + +// AsJobOutputAsset is the BasicJobOutput implementation for JobOutput. +func (jo JobOutput) AsJobOutputAsset() (*JobOutputAsset, bool) { + return nil, false +} + +// AsJobOutput is the BasicJobOutput implementation for JobOutput. +func (jo JobOutput) AsJobOutput() (*JobOutput, bool) { + return &jo, true +} + +// AsBasicJobOutput is the BasicJobOutput implementation for JobOutput. +func (jo JobOutput) AsBasicJobOutput() (BasicJobOutput, bool) { + return &jo, true +} + +// UnmarshalJSON is the custom unmarshaler for JobOutput struct. +func (jo *JobOutput) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "error": + if v != nil { + var errorVar JobError + err = json.Unmarshal(*v, &errorVar) + if err != nil { + return err + } + jo.Error = &errorVar + } + case "presetOverride": + if v != nil { + presetOverride, err := unmarshalBasicPreset(*v) + if err != nil { + return err + } + jo.PresetOverride = presetOverride + } + case "state": + if v != nil { + var state JobState + err = json.Unmarshal(*v, &state) + if err != nil { + return err + } + jo.State = state + } + case "progress": + if v != nil { + var progress int32 + err = json.Unmarshal(*v, &progress) + if err != nil { + return err + } + jo.Progress = &progress + } + case "label": + if v != nil { + var label string + err = json.Unmarshal(*v, &label) + if err != nil { + return err + } + jo.Label = &label + } + case "startTime": + if v != nil { + var startTime date.Time + err = json.Unmarshal(*v, &startTime) + if err != nil { + return err + } + jo.StartTime = &startTime + } + case "endTime": + if v != nil { + var endTime date.Time + err = json.Unmarshal(*v, &endTime) + if err != nil { + return err + } + jo.EndTime = &endTime + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicJobOutput + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + jo.OdataType = odataType + } + } + } + + return nil +} + +// JobOutputAsset represents an Asset used as a JobOutput. +type JobOutputAsset struct { + // AssetName - The name of the output Asset. + AssetName *string `json:"assetName,omitempty"` + // Error - READ-ONLY; If the JobOutput is in the Error state, it contains the details of the error. + Error *JobError `json:"error,omitempty"` + // PresetOverride - A preset used to override the preset in the corresponding transform output. + PresetOverride BasicPreset `json:"presetOverride,omitempty"` + // State - READ-ONLY; Describes the state of the JobOutput. Possible values include: 'JobStateCanceled', 'JobStateCanceling', 'JobStateError', 'JobStateFinished', 'JobStateProcessing', 'JobStateQueued', 'JobStateScheduled' + State JobState `json:"state,omitempty"` + // Progress - READ-ONLY; If the JobOutput is in a Processing state, this contains the Job completion percentage. The value is an estimate and not intended to be used to predict Job completion times. To determine if the JobOutput is complete, use the State property. + Progress *int32 `json:"progress,omitempty"` + // Label - A label that is assigned to a JobOutput in order to help uniquely identify it. This is useful when your Transform has more than one TransformOutput, whereby your Job has more than one JobOutput. In such cases, when you submit the Job, you will add two or more JobOutputs, in the same order as TransformOutputs in the Transform. Subsequently, when you retrieve the Job, either through events or on a GET request, you can use the label to easily identify the JobOutput. If a label is not provided, a default value of '{presetName}_{outputIndex}' will be used, where the preset name is the name of the preset in the corresponding TransformOutput and the output index is the relative index of the this JobOutput within the Job. Note that this index is the same as the relative index of the corresponding TransformOutput within its Transform. + Label *string `json:"label,omitempty"` + // StartTime - READ-ONLY; The UTC date and time at which this Job Output began processing. + StartTime *date.Time `json:"startTime,omitempty"` + // EndTime - READ-ONLY; The UTC date and time at which this Job Output finished processing. + EndTime *date.Time `json:"endTime,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicJobOutputOdataTypeJobOutput', 'OdataTypeBasicJobOutputOdataTypeMicrosoftMediaJobOutputAsset' + OdataType OdataTypeBasicJobOutput `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for JobOutputAsset. +func (joa JobOutputAsset) MarshalJSON() ([]byte, error) { + joa.OdataType = OdataTypeBasicJobOutputOdataTypeMicrosoftMediaJobOutputAsset + objectMap := make(map[string]interface{}) + if joa.AssetName != nil { + objectMap["assetName"] = joa.AssetName + } + objectMap["presetOverride"] = joa.PresetOverride + if joa.Label != nil { + objectMap["label"] = joa.Label + } + if joa.OdataType != "" { + objectMap["@odata.type"] = joa.OdataType + } + return json.Marshal(objectMap) +} + +// AsJobOutputAsset is the BasicJobOutput implementation for JobOutputAsset. +func (joa JobOutputAsset) AsJobOutputAsset() (*JobOutputAsset, bool) { + return &joa, true +} + +// AsJobOutput is the BasicJobOutput implementation for JobOutputAsset. +func (joa JobOutputAsset) AsJobOutput() (*JobOutput, bool) { + return nil, false +} + +// AsBasicJobOutput is the BasicJobOutput implementation for JobOutputAsset. +func (joa JobOutputAsset) AsBasicJobOutput() (BasicJobOutput, bool) { + return &joa, true +} + +// UnmarshalJSON is the custom unmarshaler for JobOutputAsset struct. +func (joa *JobOutputAsset) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "assetName": + if v != nil { + var assetName string + err = json.Unmarshal(*v, &assetName) + if err != nil { + return err + } + joa.AssetName = &assetName + } + case "error": + if v != nil { + var errorVar JobError + err = json.Unmarshal(*v, &errorVar) + if err != nil { + return err + } + joa.Error = &errorVar + } + case "presetOverride": + if v != nil { + presetOverride, err := unmarshalBasicPreset(*v) + if err != nil { + return err + } + joa.PresetOverride = presetOverride + } + case "state": + if v != nil { + var state JobState + err = json.Unmarshal(*v, &state) + if err != nil { + return err + } + joa.State = state + } + case "progress": + if v != nil { + var progress int32 + err = json.Unmarshal(*v, &progress) + if err != nil { + return err + } + joa.Progress = &progress + } + case "label": + if v != nil { + var label string + err = json.Unmarshal(*v, &label) + if err != nil { + return err + } + joa.Label = &label + } + case "startTime": + if v != nil { + var startTime date.Time + err = json.Unmarshal(*v, &startTime) + if err != nil { + return err + } + joa.StartTime = &startTime + } + case "endTime": + if v != nil { + var endTime date.Time + err = json.Unmarshal(*v, &endTime) + if err != nil { + return err + } + joa.EndTime = &endTime + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicJobOutput + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + joa.OdataType = odataType + } + } + } + + return nil +} + +// JobProperties properties of the Job. +type JobProperties struct { + // Created - READ-ONLY; The UTC date and time when the customer has created the Job, in 'YYYY-MM-DDThh:mm:ssZ' format. + Created *date.Time `json:"created,omitempty"` + // State - READ-ONLY; The current state of the job. Possible values include: 'JobStateCanceled', 'JobStateCanceling', 'JobStateError', 'JobStateFinished', 'JobStateProcessing', 'JobStateQueued', 'JobStateScheduled' + State JobState `json:"state,omitempty"` + // Description - Optional customer supplied description of the Job. + Description *string `json:"description,omitempty"` + // Input - The inputs for the Job. + Input BasicJobInput `json:"input,omitempty"` + // LastModified - READ-ONLY; The UTC date and time when the customer has last updated the Job, in 'YYYY-MM-DDThh:mm:ssZ' format. + LastModified *date.Time `json:"lastModified,omitempty"` + // Outputs - The outputs for the Job. + Outputs *[]BasicJobOutput `json:"outputs,omitempty"` + // Priority - Priority with which the job should be processed. Higher priority jobs are processed before lower priority jobs. If not set, the default is normal. Possible values include: 'PriorityLow', 'PriorityNormal', 'PriorityHigh' + Priority Priority `json:"priority,omitempty"` + // CorrelationData - Customer provided key, value pairs that will be returned in Job and JobOutput state events. + CorrelationData map[string]*string `json:"correlationData"` + // StartTime - READ-ONLY; The UTC date and time at which this Job began processing. + StartTime *date.Time `json:"startTime,omitempty"` + // EndTime - READ-ONLY; The UTC date and time at which this Job finished processing. + EndTime *date.Time `json:"endTime,omitempty"` +} + +// MarshalJSON is the custom marshaler for JobProperties. +func (jp JobProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if jp.Description != nil { + objectMap["description"] = jp.Description + } + objectMap["input"] = jp.Input + if jp.Outputs != nil { + objectMap["outputs"] = jp.Outputs + } + if jp.Priority != "" { + objectMap["priority"] = jp.Priority + } + if jp.CorrelationData != nil { + objectMap["correlationData"] = jp.CorrelationData + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for JobProperties struct. +func (jp *JobProperties) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "created": + if v != nil { + var created date.Time + err = json.Unmarshal(*v, &created) + if err != nil { + return err + } + jp.Created = &created + } + case "state": + if v != nil { + var state JobState + err = json.Unmarshal(*v, &state) + if err != nil { + return err + } + jp.State = state + } + case "description": + if v != nil { + var description string + err = json.Unmarshal(*v, &description) + if err != nil { + return err + } + jp.Description = &description + } + case "input": + if v != nil { + input, err := unmarshalBasicJobInput(*v) + if err != nil { + return err + } + jp.Input = input + } + case "lastModified": + if v != nil { + var lastModified date.Time + err = json.Unmarshal(*v, &lastModified) + if err != nil { + return err + } + jp.LastModified = &lastModified + } + case "outputs": + if v != nil { + outputs, err := unmarshalBasicJobOutputArray(*v) + if err != nil { + return err + } + jp.Outputs = &outputs + } + case "priority": + if v != nil { + var priority Priority + err = json.Unmarshal(*v, &priority) + if err != nil { + return err + } + jp.Priority = priority + } + case "correlationData": + if v != nil { + var correlationData map[string]*string + err = json.Unmarshal(*v, &correlationData) + if err != nil { + return err + } + jp.CorrelationData = correlationData + } + case "startTime": + if v != nil { + var startTime date.Time + err = json.Unmarshal(*v, &startTime) + if err != nil { + return err + } + jp.StartTime = &startTime + } + case "endTime": + if v != nil { + var endTime date.Time + err = json.Unmarshal(*v, &endTime) + if err != nil { + return err + } + jp.EndTime = &endTime + } + } + } + + return nil +} + +// JpgFormat describes the settings for producing JPEG thumbnails. +type JpgFormat struct { + // FilenamePattern - The pattern of the file names for the generated output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {Bitrate} - The audio/video bitrate. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename. + FilenamePattern *string `json:"filenamePattern,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicFormatOdataTypeFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat' + OdataType OdataTypeBasicFormat `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for JpgFormat. +func (jf JpgFormat) MarshalJSON() ([]byte, error) { + jf.OdataType = OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat + objectMap := make(map[string]interface{}) + if jf.FilenamePattern != nil { + objectMap["filenamePattern"] = jf.FilenamePattern + } + if jf.OdataType != "" { + objectMap["@odata.type"] = jf.OdataType + } + return json.Marshal(objectMap) +} + +// AsImageFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsImageFormat() (*ImageFormat, bool) { + return nil, false +} + +// AsBasicImageFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsBasicImageFormat() (BasicImageFormat, bool) { + return &jf, true +} + +// AsJpgFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsJpgFormat() (*JpgFormat, bool) { + return &jf, true +} + +// AsPngFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsPngFormat() (*PngFormat, bool) { + return nil, false +} + +// AsMultiBitrateFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsMultiBitrateFormat() (*MultiBitrateFormat, bool) { + return nil, false +} + +// AsBasicMultiBitrateFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsBasicMultiBitrateFormat() (BasicMultiBitrateFormat, bool) { + return nil, false +} + +// AsMp4Format is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsMp4Format() (*Mp4Format, bool) { + return nil, false +} + +// AsTransportStreamFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsTransportStreamFormat() (*TransportStreamFormat, bool) { + return nil, false +} + +// AsFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsFormat() (*Format, bool) { + return nil, false +} + +// AsBasicFormat is the BasicFormat implementation for JpgFormat. +func (jf JpgFormat) AsBasicFormat() (BasicFormat, bool) { + return &jf, true +} + +// JpgImage describes the properties for producing a series of JPEG images from the input video. +type JpgImage struct { + // Layers - A collection of output JPEG image layers to be produced by the encoder. + Layers *[]JpgLayer `json:"layers,omitempty"` + // SpriteColumn - Sets the number of columns used in thumbnail sprite image. The number of rows are automatically calculated and a VTT file is generated with the coordinate mappings for each thumbnail in the sprite. Note: this value should be a positive integer and a proper value is recommended so that the output image resolution will not go beyond JPEG maximum pixel resolution limit 65535x65535. + SpriteColumn *int32 `json:"spriteColumn,omitempty"` + // Start - The position in the input video from where to start generating thumbnails. The value can be in ISO 8601 format (For example, PT05S to start at 5 seconds), or a frame count (For example, 10 to start at the 10th frame), or a relative value to stream duration (For example, 10% to start at 10% of stream duration). Also supports a macro {Best}, which tells the encoder to select the best thumbnail from the first few seconds of the video and will only produce one thumbnail, no matter what other settings are for Step and Range. The default value is macro {Best}. + Start *string `json:"start,omitempty"` + // Step - The intervals at which thumbnails are generated. The value can be in ISO 8601 format (For example, PT05S for one image every 5 seconds), or a frame count (For example, 30 for one image every 30 frames), or a relative value to stream duration (For example, 10% for one image every 10% of stream duration). Note: Step value will affect the first generated thumbnail, which may not be exactly the one specified at transform preset start time. This is due to the encoder, which tries to select the best thumbnail between start time and Step position from start time as the first output. As the default value is 10%, it means if stream has long duration, the first generated thumbnail might be far away from the one specified at start time. Try to select reasonable value for Step if the first thumbnail is expected close to start time, or set Range value at 1 if only one thumbnail is needed at start time. + Step *string `json:"step,omitempty"` + // Range - The position relative to transform preset start time in the input video at which to stop generating thumbnails. The value can be in ISO 8601 format (For example, PT5M30S to stop at 5 minutes and 30 seconds from start time), or a frame count (For example, 300 to stop at the 300th frame from the frame at start time. If this value is 1, it means only producing one thumbnail at start time), or a relative value to the stream duration (For example, 50% to stop at half of stream duration from start time). The default value is 100%, which means to stop at the end of the stream. + Range *string `json:"range,omitempty"` + // KeyFrameInterval - The distance between two key frames. The value should be non-zero in the range [0.5, 20] seconds, specified in ISO 8601 format. The default is 2 seconds(PT2S). Note that this setting is ignored if VideoSyncMode.Passthrough is set, where the KeyFrameInterval value will follow the input source setting. + KeyFrameInterval *string `json:"keyFrameInterval,omitempty"` + // StretchMode - The resizing mode - how the input video will be resized to fit the desired output resolution(s). Default is AutoSize. Possible values include: 'StretchModeNone', 'StretchModeAutoSize', 'StretchModeAutoFit' + StretchMode StretchMode `json:"stretchMode,omitempty"` + // SyncMode - The Video Sync Mode. Possible values include: 'VideoSyncModeAuto', 'VideoSyncModePassthrough', 'VideoSyncModeCfr', 'VideoSyncModeVfr' + SyncMode VideoSyncMode `json:"syncMode,omitempty"` + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for JpgImage. +func (ji JpgImage) MarshalJSON() ([]byte, error) { + ji.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage + objectMap := make(map[string]interface{}) + if ji.Layers != nil { + objectMap["layers"] = ji.Layers + } + if ji.SpriteColumn != nil { + objectMap["spriteColumn"] = ji.SpriteColumn + } + if ji.Start != nil { + objectMap["start"] = ji.Start + } + if ji.Step != nil { + objectMap["step"] = ji.Step + } + if ji.Range != nil { + objectMap["range"] = ji.Range + } + if ji.KeyFrameInterval != nil { + objectMap["keyFrameInterval"] = ji.KeyFrameInterval + } + if ji.StretchMode != "" { + objectMap["stretchMode"] = ji.StretchMode + } + if ji.SyncMode != "" { + objectMap["syncMode"] = ji.SyncMode + } + if ji.Label != nil { + objectMap["label"] = ji.Label + } + if ji.OdataType != "" { + objectMap["@odata.type"] = ji.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsBasicVideo() (BasicVideo, bool) { + return &ji, true +} + +// AsH265Video is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsBasicImage() (BasicImage, bool) { + return &ji, true +} + +// AsCopyAudio is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsJpgImage() (*JpgImage, bool) { + return &ji, true +} + +// AsPngImage is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for JpgImage. +func (ji JpgImage) AsBasicCodec() (BasicCodec, bool) { + return &ji, true +} + +// JpgLayer describes the settings to produce a JPEG image from the input video. +type JpgLayer struct { + // Quality - The compression quality of the JPEG output. Range is from 0-100 and the default is 70. + Quality *int32 `json:"quality,omitempty"` + // Width - The width of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in width as the input. + Width *string `json:"width,omitempty"` + // Height - The height of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in height as the input. + Height *string `json:"height,omitempty"` + // Label - The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicLayerOdataTypeLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer' + OdataType OdataTypeBasicLayer `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for JpgLayer. +func (jl JpgLayer) MarshalJSON() ([]byte, error) { + jl.OdataType = OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer + objectMap := make(map[string]interface{}) + if jl.Quality != nil { + objectMap["quality"] = jl.Quality + } + if jl.Width != nil { + objectMap["width"] = jl.Width + } + if jl.Height != nil { + objectMap["height"] = jl.Height + } + if jl.Label != nil { + objectMap["label"] = jl.Label + } + if jl.OdataType != "" { + objectMap["@odata.type"] = jl.OdataType + } + return json.Marshal(objectMap) +} + +// AsH265VideoLayer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsH265VideoLayer() (*H265VideoLayer, bool) { + return nil, false +} + +// AsBasicH265VideoLayer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsBasicH265VideoLayer() (BasicH265VideoLayer, bool) { + return nil, false +} + +// AsH265Layer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsH265Layer() (*H265Layer, bool) { + return nil, false +} + +// AsVideoLayer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsVideoLayer() (*VideoLayer, bool) { + return nil, false +} + +// AsBasicVideoLayer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsBasicVideoLayer() (BasicVideoLayer, bool) { + return nil, false +} + +// AsH264Layer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsH264Layer() (*H264Layer, bool) { + return nil, false +} + +// AsJpgLayer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsJpgLayer() (*JpgLayer, bool) { + return &jl, true +} + +// AsPngLayer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsPngLayer() (*PngLayer, bool) { + return nil, false +} + +// AsLayer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsLayer() (*Layer, bool) { + return nil, false +} + +// AsBasicLayer is the BasicLayer implementation for JpgLayer. +func (jl JpgLayer) AsBasicLayer() (BasicLayer, bool) { + return &jl, true +} + +// KeyDelivery ... +type KeyDelivery struct { + // AccessControl - The access control properties for Key Delivery. + AccessControl *AccessControl `json:"accessControl,omitempty"` +} + +// KeyVaultProperties ... +type KeyVaultProperties struct { + // KeyIdentifier - The URL of the Key Vault key used to encrypt the account. The key may either be versioned (for example https://vault/keys/mykey/version1) or reference a key without a version (for example https://vault/keys/mykey). + KeyIdentifier *string `json:"keyIdentifier,omitempty"` + // CurrentKeyIdentifier - READ-ONLY; The current key used to encrypt the Media Services account, including the key version. + CurrentKeyIdentifier *string `json:"currentKeyIdentifier,omitempty"` +} + +// MarshalJSON is the custom marshaler for KeyVaultProperties. +func (kvp KeyVaultProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if kvp.KeyIdentifier != nil { + objectMap["keyIdentifier"] = kvp.KeyIdentifier + } + return json.Marshal(objectMap) +} + +// BasicLayer the encoder can be configured to produce video and/or images (thumbnails) at different resolutions, by +// specifying a layer for each desired resolution. A layer represents the properties for the video or image at a +// resolution. +type BasicLayer interface { + AsH265VideoLayer() (*H265VideoLayer, bool) + AsBasicH265VideoLayer() (BasicH265VideoLayer, bool) + AsH265Layer() (*H265Layer, bool) + AsVideoLayer() (*VideoLayer, bool) + AsBasicVideoLayer() (BasicVideoLayer, bool) + AsH264Layer() (*H264Layer, bool) + AsJpgLayer() (*JpgLayer, bool) + AsPngLayer() (*PngLayer, bool) + AsLayer() (*Layer, bool) +} + +// Layer the encoder can be configured to produce video and/or images (thumbnails) at different resolutions, by +// specifying a layer for each desired resolution. A layer represents the properties for the video or image at +// a resolution. +type Layer struct { + // Width - The width of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in width as the input. + Width *string `json:"width,omitempty"` + // Height - The height of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in height as the input. + Height *string `json:"height,omitempty"` + // Label - The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicLayerOdataTypeLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer' + OdataType OdataTypeBasicLayer `json:"@odata.type,omitempty"` +} + +func unmarshalBasicLayer(body []byte) (BasicLayer, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer): + var hvl H265VideoLayer + err := json.Unmarshal(body, &hvl) + return hvl, err + case string(OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer): + var hl H265Layer + err := json.Unmarshal(body, &hl) + return hl, err + case string(OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer): + var vl VideoLayer + err := json.Unmarshal(body, &vl) + return vl, err + case string(OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer): + var hl H264Layer + err := json.Unmarshal(body, &hl) + return hl, err + case string(OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer): + var jl JpgLayer + err := json.Unmarshal(body, &jl) + return jl, err + case string(OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer): + var pl PngLayer + err := json.Unmarshal(body, &pl) + return pl, err + default: + var l Layer + err := json.Unmarshal(body, &l) + return l, err + } +} +func unmarshalBasicLayerArray(body []byte) ([]BasicLayer, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + lArray := make([]BasicLayer, len(rawMessages)) + + for index, rawMessage := range rawMessages { + l, err := unmarshalBasicLayer(*rawMessage) + if err != nil { + return nil, err + } + lArray[index] = l + } + return lArray, nil +} + +// MarshalJSON is the custom marshaler for Layer. +func (l Layer) MarshalJSON() ([]byte, error) { + l.OdataType = OdataTypeBasicLayerOdataTypeLayer + objectMap := make(map[string]interface{}) + if l.Width != nil { + objectMap["width"] = l.Width + } + if l.Height != nil { + objectMap["height"] = l.Height + } + if l.Label != nil { + objectMap["label"] = l.Label + } + if l.OdataType != "" { + objectMap["@odata.type"] = l.OdataType + } + return json.Marshal(objectMap) +} + +// AsH265VideoLayer is the BasicLayer implementation for Layer. +func (l Layer) AsH265VideoLayer() (*H265VideoLayer, bool) { + return nil, false +} + +// AsBasicH265VideoLayer is the BasicLayer implementation for Layer. +func (l Layer) AsBasicH265VideoLayer() (BasicH265VideoLayer, bool) { + return nil, false +} + +// AsH265Layer is the BasicLayer implementation for Layer. +func (l Layer) AsH265Layer() (*H265Layer, bool) { + return nil, false +} + +// AsVideoLayer is the BasicLayer implementation for Layer. +func (l Layer) AsVideoLayer() (*VideoLayer, bool) { + return nil, false +} + +// AsBasicVideoLayer is the BasicLayer implementation for Layer. +func (l Layer) AsBasicVideoLayer() (BasicVideoLayer, bool) { + return nil, false +} + +// AsH264Layer is the BasicLayer implementation for Layer. +func (l Layer) AsH264Layer() (*H264Layer, bool) { + return nil, false +} + +// AsJpgLayer is the BasicLayer implementation for Layer. +func (l Layer) AsJpgLayer() (*JpgLayer, bool) { + return nil, false +} + +// AsPngLayer is the BasicLayer implementation for Layer. +func (l Layer) AsPngLayer() (*PngLayer, bool) { + return nil, false +} + +// AsLayer is the BasicLayer implementation for Layer. +func (l Layer) AsLayer() (*Layer, bool) { + return &l, true +} + +// AsBasicLayer is the BasicLayer implementation for Layer. +func (l Layer) AsBasicLayer() (BasicLayer, bool) { + return &l, true +} + +// ListContainerSasInput the parameters to the list SAS request. +type ListContainerSasInput struct { + // Permissions - The permissions to set on the SAS URL. Possible values include: 'AssetContainerPermissionRead', 'AssetContainerPermissionReadWrite', 'AssetContainerPermissionReadWriteDelete' + Permissions AssetContainerPermission `json:"permissions,omitempty"` + // ExpiryTime - The SAS URL expiration time. This must be less than 24 hours from the current time. + ExpiryTime *date.Time `json:"expiryTime,omitempty"` +} + +// ListContentKeysResponse class of response for listContentKeys action +type ListContentKeysResponse struct { + autorest.Response `json:"-"` + // ContentKeys - ContentKeys used by current Streaming Locator + ContentKeys *[]StreamingLocatorContentKey `json:"contentKeys,omitempty"` +} + +// ListEdgePoliciesInput ... +type ListEdgePoliciesInput struct { + // DeviceID - Unique identifier of the edge device. + DeviceID *string `json:"deviceId,omitempty"` +} + +// ListPathsResponse class of response for listPaths action +type ListPathsResponse struct { + autorest.Response `json:"-"` + // StreamingPaths - Streaming Paths supported by current Streaming Locator + StreamingPaths *[]StreamingPath `json:"streamingPaths,omitempty"` + // DownloadPaths - Download Paths supported by current Streaming Locator + DownloadPaths *[]string `json:"downloadPaths,omitempty"` +} + +// ListStreamingLocatorsResponse the Streaming Locators associated with this Asset. +type ListStreamingLocatorsResponse struct { + autorest.Response `json:"-"` + // StreamingLocators - READ-ONLY; The list of Streaming Locators. + StreamingLocators *[]AssetStreamingLocator `json:"streamingLocators,omitempty"` +} + +// MarshalJSON is the custom marshaler for ListStreamingLocatorsResponse. +func (lslr ListStreamingLocatorsResponse) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// LiveEvent the live event. +type LiveEvent struct { + autorest.Response `json:"-"` + // LiveEventProperties - The live event properties. + *LiveEventProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // Tags - Resource tags. + Tags map[string]*string `json:"tags"` + // Location - The geo-location where the resource lives + Location *string `json:"location,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for LiveEvent. +func (le LiveEvent) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if le.LiveEventProperties != nil { + objectMap["properties"] = le.LiveEventProperties + } + if le.Tags != nil { + objectMap["tags"] = le.Tags + } + if le.Location != nil { + objectMap["location"] = le.Location + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for LiveEvent struct. +func (le *LiveEvent) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var liveEventProperties LiveEventProperties + err = json.Unmarshal(*v, &liveEventProperties) + if err != nil { + return err + } + le.LiveEventProperties = &liveEventProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + le.SystemData = &systemData + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + le.Tags = tags + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + le.Location = &location + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + le.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + le.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + le.Type = &typeVar + } + } + } + + return nil +} + +// LiveEventActionInput the LiveEvent action input parameter definition. +type LiveEventActionInput struct { + // RemoveOutputsOnStop - The flag indicates whether live outputs are automatically deleted when live event is being stopped. Deleting live outputs do not delete the underlying assets. + RemoveOutputsOnStop *bool `json:"removeOutputsOnStop,omitempty"` +} + +// LiveEventEncoding specifies the live event type and optional encoding settings for encoding live events. +type LiveEventEncoding struct { + // EncodingType - Live event type. When encodingType is set to None, the service simply passes through the incoming video and audio layer(s) to the output. When encodingType is set to Standard or Premium1080p, a live encoder transcodes the incoming stream into multiple bitrates or layers. See https://go.microsoft.com/fwlink/?linkid=2095101 for more information. This property cannot be modified after the live event is created. Possible values include: 'LiveEventEncodingTypeNone', 'LiveEventEncodingTypeStandard', 'LiveEventEncodingTypePremium1080p', 'LiveEventEncodingTypePassthroughBasic', 'LiveEventEncodingTypePassthroughStandard' + EncodingType LiveEventEncodingType `json:"encodingType,omitempty"` + // PresetName - The optional encoding preset name, used when encodingType is not None. This value is specified at creation time and cannot be updated. If the encodingType is set to Standard, then the default preset name is ‘Default720p’. Else if the encodingType is set to Premium1080p, the default preset is ‘Default1080p’. + PresetName *string `json:"presetName,omitempty"` + // StretchMode - Specifies how the input video will be resized to fit the desired output resolution(s). Default is None. Possible values include: 'StretchModeNone', 'StretchModeAutoSize', 'StretchModeAutoFit' + StretchMode StretchMode `json:"stretchMode,omitempty"` + // KeyFrameInterval - Use an ISO 8601 time value between 0.5 to 20 seconds to specify the output fragment length for the video and audio tracks of an encoding live event. For example, use PT2S to indicate 2 seconds. For the video track it also defines the key frame interval, or the length of a GoP (group of pictures). If this value is not set for an encoding live event, the fragment duration defaults to 2 seconds. The value cannot be set for pass-through live events. + KeyFrameInterval *string `json:"keyFrameInterval,omitempty"` +} + +// LiveEventEndpoint the live event endpoint. +type LiveEventEndpoint struct { + // Protocol - The endpoint protocol. + Protocol *string `json:"protocol,omitempty"` + // URL - The endpoint URL. + URL *string `json:"url,omitempty"` +} + +// LiveEventInput the live event input. +type LiveEventInput struct { + // StreamingProtocol - The input protocol for the live event. This is specified at creation time and cannot be updated. Possible values include: 'LiveEventInputProtocolFragmentedMP4', 'LiveEventInputProtocolRTMP' + StreamingProtocol LiveEventInputProtocol `json:"streamingProtocol,omitempty"` + // AccessControl - Access control for live event input. + AccessControl *LiveEventInputAccessControl `json:"accessControl,omitempty"` + // KeyFrameIntervalDuration - ISO 8601 time duration of the key frame interval duration of the input. This value sets the EXT-X-TARGETDURATION property in the HLS output. For example, use PT2S to indicate 2 seconds. Leave the value empty for encoding live events. + KeyFrameIntervalDuration *string `json:"keyFrameIntervalDuration,omitempty"` + // AccessToken - A UUID in string form to uniquely identify the stream. This can be specified at creation time but cannot be updated. If omitted, the service will generate a unique value. + AccessToken *string `json:"accessToken,omitempty"` + // Endpoints - The input endpoints for the live event. + Endpoints *[]LiveEventEndpoint `json:"endpoints,omitempty"` +} + +// LiveEventInputAccessControl the IP access control for live event input. +type LiveEventInputAccessControl struct { + // IP - The IP access control properties. + IP *IPAccessControl `json:"ip,omitempty"` +} + +// LiveEventInputTrackSelection a track selection condition. This property is reserved for future use, any +// value set on this property will be ignored. +type LiveEventInputTrackSelection struct { + // Property - Property name to select. This property is reserved for future use, any value set on this property will be ignored. + Property *string `json:"property,omitempty"` + // Operation - Comparing operation. This property is reserved for future use, any value set on this property will be ignored. + Operation *string `json:"operation,omitempty"` + // Value - Property value to select. This property is reserved for future use, any value set on this property will be ignored. + Value *string `json:"value,omitempty"` +} + +// LiveEventListResult the LiveEvent list result. +type LiveEventListResult struct { + autorest.Response `json:"-"` + // Value - The result of the List Live Event operation. + Value *[]LiveEvent `json:"value,omitempty"` + // OdataCount - The number of result. + OdataCount *int32 `json:"@odata.count,omitempty"` + // OdataNextLink - The link to the next set of results. Not empty if value contains incomplete list of live outputs. + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// LiveEventListResultIterator provides access to a complete listing of LiveEvent values. +type LiveEventListResultIterator struct { + i int + page LiveEventListResultPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *LiveEventListResultIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventListResultIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *LiveEventListResultIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter LiveEventListResultIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter LiveEventListResultIterator) Response() LiveEventListResult { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter LiveEventListResultIterator) Value() LiveEvent { + if !iter.page.NotDone() { + return LiveEvent{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the LiveEventListResultIterator type. +func NewLiveEventListResultIterator(page LiveEventListResultPage) LiveEventListResultIterator { + return LiveEventListResultIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (lelr LiveEventListResult) IsEmpty() bool { + return lelr.Value == nil || len(*lelr.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (lelr LiveEventListResult) hasNextLink() bool { + return lelr.OdataNextLink != nil && len(*lelr.OdataNextLink) != 0 +} + +// liveEventListResultPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (lelr LiveEventListResult) liveEventListResultPreparer(ctx context.Context) (*http.Request, error) { + if !lelr.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(lelr.OdataNextLink))) +} + +// LiveEventListResultPage contains a page of LiveEvent values. +type LiveEventListResultPage struct { + fn func(context.Context, LiveEventListResult) (LiveEventListResult, error) + lelr LiveEventListResult +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *LiveEventListResultPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveEventListResultPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.lelr) + if err != nil { + return err + } + page.lelr = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *LiveEventListResultPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page LiveEventListResultPage) NotDone() bool { + return !page.lelr.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page LiveEventListResultPage) Response() LiveEventListResult { + return page.lelr +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page LiveEventListResultPage) Values() []LiveEvent { + if page.lelr.IsEmpty() { + return nil + } + return *page.lelr.Value +} + +// Creates a new instance of the LiveEventListResultPage type. +func NewLiveEventListResultPage(cur LiveEventListResult, getNextPage func(context.Context, LiveEventListResult) (LiveEventListResult, error)) LiveEventListResultPage { + return LiveEventListResultPage{ + fn: getNextPage, + lelr: cur, + } +} + +// LiveEventOutputTranscriptionTrack describes a transcription track in the output of a live event, +// generated using speech-to-text transcription. This property is reserved for future use, any value set on +// this property will be ignored. +type LiveEventOutputTranscriptionTrack struct { + // TrackName - The output track name. This property is reserved for future use, any value set on this property will be ignored. + TrackName *string `json:"trackName,omitempty"` +} + +// LiveEventPreview live event preview settings. +type LiveEventPreview struct { + // Endpoints - The endpoints for preview. Do not share the preview URL with the live event audience. + Endpoints *[]LiveEventEndpoint `json:"endpoints,omitempty"` + // AccessControl - The access control for live event preview. + AccessControl *LiveEventPreviewAccessControl `json:"accessControl,omitempty"` + // PreviewLocator - The identifier of the preview locator in Guid format. Specifying this at creation time allows the caller to know the preview locator url before the event is created. If omitted, the service will generate a random identifier. This value cannot be updated once the live event is created. + PreviewLocator *string `json:"previewLocator,omitempty"` + // StreamingPolicyName - The name of streaming policy used for the live event preview. This value is specified at creation time and cannot be updated. + StreamingPolicyName *string `json:"streamingPolicyName,omitempty"` + // AlternativeMediaID - An alternative media identifier associated with the streaming locator created for the preview. This value is specified at creation time and cannot be updated. The identifier can be used in the CustomLicenseAcquisitionUrlTemplate or the CustomKeyAcquisitionUrlTemplate of the StreamingPolicy specified in the StreamingPolicyName field. + AlternativeMediaID *string `json:"alternativeMediaId,omitempty"` +} + +// LiveEventPreviewAccessControl the IP access control for the live event preview endpoint. +type LiveEventPreviewAccessControl struct { + // IP - The IP access control properties. + IP *IPAccessControl `json:"ip,omitempty"` +} + +// LiveEventProperties the live event properties. +type LiveEventProperties struct { + // Description - A description for the live event. + Description *string `json:"description,omitempty"` + // Input - Live event input settings. It defines how the live event receives input from a contribution encoder. + Input *LiveEventInput `json:"input,omitempty"` + // Preview - Live event preview settings. Preview allows live event producers to preview the live streaming content without creating any live output. + Preview *LiveEventPreview `json:"preview,omitempty"` + // Encoding - Encoding settings for the live event. It configures whether a live encoder is used for the live event and settings for the live encoder if it is used. + Encoding *LiveEventEncoding `json:"encoding,omitempty"` + // Transcriptions - Live transcription settings for the live event. See https://go.microsoft.com/fwlink/?linkid=2133742 for more information about the live transcription feature. + Transcriptions *[]LiveEventTranscription `json:"transcriptions,omitempty"` + // ProvisioningState - READ-ONLY; The provisioning state of the live event. + ProvisioningState *string `json:"provisioningState,omitempty"` + // ResourceState - READ-ONLY; The resource state of the live event. See https://go.microsoft.com/fwlink/?linkid=2139012 for more information. Possible values include: 'LiveEventResourceStateStopped', 'LiveEventResourceStateAllocating', 'LiveEventResourceStateStandBy', 'LiveEventResourceStateStarting', 'LiveEventResourceStateRunning', 'LiveEventResourceStateStopping', 'LiveEventResourceStateDeleting' + ResourceState LiveEventResourceState `json:"resourceState,omitempty"` + // CrossSiteAccessPolicies - Live event cross site access policies. + CrossSiteAccessPolicies *CrossSiteAccessPolicies `json:"crossSiteAccessPolicies,omitempty"` + // UseStaticHostname - Specifies whether a static hostname would be assigned to the live event preview and ingest endpoints. This value can only be updated if the live event is in Standby state + UseStaticHostname *bool `json:"useStaticHostname,omitempty"` + // HostnamePrefix - When useStaticHostname is set to true, the hostnamePrefix specifies the first part of the hostname assigned to the live event preview and ingest endpoints. The final hostname would be a combination of this prefix, the media service account name and a short code for the Azure Media Services data center. + HostnamePrefix *string `json:"hostnamePrefix,omitempty"` + // StreamOptions - The options to use for the LiveEvent. This value is specified at creation time and cannot be updated. The valid values for the array entry values are 'Default' and 'LowLatency'. + StreamOptions *[]StreamOptionsFlag `json:"streamOptions,omitempty"` + // Created - READ-ONLY; The creation time for the live event + Created *date.Time `json:"created,omitempty"` + // LastModified - READ-ONLY; The last modified time of the live event. + LastModified *date.Time `json:"lastModified,omitempty"` +} + +// MarshalJSON is the custom marshaler for LiveEventProperties. +func (lep LiveEventProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if lep.Description != nil { + objectMap["description"] = lep.Description + } + if lep.Input != nil { + objectMap["input"] = lep.Input + } + if lep.Preview != nil { + objectMap["preview"] = lep.Preview + } + if lep.Encoding != nil { + objectMap["encoding"] = lep.Encoding + } + if lep.Transcriptions != nil { + objectMap["transcriptions"] = lep.Transcriptions + } + if lep.CrossSiteAccessPolicies != nil { + objectMap["crossSiteAccessPolicies"] = lep.CrossSiteAccessPolicies + } + if lep.UseStaticHostname != nil { + objectMap["useStaticHostname"] = lep.UseStaticHostname + } + if lep.HostnamePrefix != nil { + objectMap["hostnamePrefix"] = lep.HostnamePrefix + } + if lep.StreamOptions != nil { + objectMap["streamOptions"] = lep.StreamOptions + } + return json.Marshal(objectMap) +} + +// LiveEventsAllocateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveEventsAllocateFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveEventsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveEventsAllocateFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveEventsAllocateFuture.Result. +func (future *LiveEventsAllocateFuture) result(client LiveEventsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsAllocateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveEventsAllocateFuture") + return + } + ar.Response = future.Response() + return +} + +// LiveEventsCreateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveEventsCreateFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveEventsClient) (LiveEvent, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveEventsCreateFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveEventsCreateFuture.Result. +func (future *LiveEventsCreateFuture) result(client LiveEventsClient) (le LiveEvent, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + le.Response.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveEventsCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if le.Response.Response, err = future.GetResult(sender); err == nil && le.Response.Response.StatusCode != http.StatusNoContent { + le, err = client.CreateResponder(le.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsCreateFuture", "Result", le.Response.Response, "Failure responding to request") + } + } + return +} + +// LiveEventsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveEventsDeleteFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveEventsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveEventsDeleteFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveEventsDeleteFuture.Result. +func (future *LiveEventsDeleteFuture) result(client LiveEventsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveEventsDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// LiveEventsResetFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveEventsResetFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveEventsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveEventsResetFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveEventsResetFuture.Result. +func (future *LiveEventsResetFuture) result(client LiveEventsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsResetFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveEventsResetFuture") + return + } + ar.Response = future.Response() + return +} + +// LiveEventsStartFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveEventsStartFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveEventsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveEventsStartFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveEventsStartFuture.Result. +func (future *LiveEventsStartFuture) result(client LiveEventsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsStartFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveEventsStartFuture") + return + } + ar.Response = future.Response() + return +} + +// LiveEventsStopFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveEventsStopFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveEventsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveEventsStopFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveEventsStopFuture.Result. +func (future *LiveEventsStopFuture) result(client LiveEventsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsStopFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveEventsStopFuture") + return + } + ar.Response = future.Response() + return +} + +// LiveEventsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveEventsUpdateFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveEventsClient) (LiveEvent, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveEventsUpdateFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveEventsUpdateFuture.Result. +func (future *LiveEventsUpdateFuture) result(client LiveEventsClient) (le LiveEvent, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + le.Response.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveEventsUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if le.Response.Response, err = future.GetResult(sender); err == nil && le.Response.Response.StatusCode != http.StatusNoContent { + le, err = client.UpdateResponder(le.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveEventsUpdateFuture", "Result", le.Response.Response, "Failure responding to request") + } + } + return +} + +// LiveEventTranscription describes the transcription tracks in the output of a live event, generated using +// speech-to-text transcription. This property is reserved for future use, any value set on this property +// will be ignored. +type LiveEventTranscription struct { + // Language - Specifies the language (locale) to be used for speech-to-text transcription – it should match the spoken language in the audio track. The value should be in BCP-47 format (e.g: 'en-US'). See https://go.microsoft.com/fwlink/?linkid=2133742 for more information about the live transcription feature and the list of supported languages. + Language *string `json:"language,omitempty"` + // InputTrackSelection - Provides a mechanism to select the audio track in the input live feed, to which speech-to-text transcription is applied. This property is reserved for future use, any value set on this property will be ignored. + InputTrackSelection *[]LiveEventInputTrackSelection `json:"inputTrackSelection,omitempty"` + // OutputTranscriptionTrack - Describes a transcription track in the output of a live event, generated using speech-to-text transcription. This property is reserved for future use, any value set on this property will be ignored. + OutputTranscriptionTrack *LiveEventOutputTranscriptionTrack `json:"outputTranscriptionTrack,omitempty"` +} + +// LiveOutput the Live Output. +type LiveOutput struct { + autorest.Response `json:"-"` + // LiveOutputProperties - Live output properties. + *LiveOutputProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for LiveOutput. +func (lo LiveOutput) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if lo.LiveOutputProperties != nil { + objectMap["properties"] = lo.LiveOutputProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for LiveOutput struct. +func (lo *LiveOutput) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var liveOutputProperties LiveOutputProperties + err = json.Unmarshal(*v, &liveOutputProperties) + if err != nil { + return err + } + lo.LiveOutputProperties = &liveOutputProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + lo.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + lo.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + lo.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + lo.Type = &typeVar + } + } + } + + return nil +} + +// LiveOutputListResult the LiveOutput list result. +type LiveOutputListResult struct { + autorest.Response `json:"-"` + // Value - The result of the List LiveOutput operation. + Value *[]LiveOutput `json:"value,omitempty"` + // OdataCount - The number of result. + OdataCount *int32 `json:"@odata.count,omitempty"` + // OdataNextLink - The link to the next set of results. Not empty if value contains incomplete list of live outputs. + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// LiveOutputListResultIterator provides access to a complete listing of LiveOutput values. +type LiveOutputListResultIterator struct { + i int + page LiveOutputListResultPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *LiveOutputListResultIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveOutputListResultIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *LiveOutputListResultIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter LiveOutputListResultIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter LiveOutputListResultIterator) Response() LiveOutputListResult { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter LiveOutputListResultIterator) Value() LiveOutput { + if !iter.page.NotDone() { + return LiveOutput{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the LiveOutputListResultIterator type. +func NewLiveOutputListResultIterator(page LiveOutputListResultPage) LiveOutputListResultIterator { + return LiveOutputListResultIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (lolr LiveOutputListResult) IsEmpty() bool { + return lolr.Value == nil || len(*lolr.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (lolr LiveOutputListResult) hasNextLink() bool { + return lolr.OdataNextLink != nil && len(*lolr.OdataNextLink) != 0 +} + +// liveOutputListResultPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (lolr LiveOutputListResult) liveOutputListResultPreparer(ctx context.Context) (*http.Request, error) { + if !lolr.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(lolr.OdataNextLink))) +} + +// LiveOutputListResultPage contains a page of LiveOutput values. +type LiveOutputListResultPage struct { + fn func(context.Context, LiveOutputListResult) (LiveOutputListResult, error) + lolr LiveOutputListResult +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *LiveOutputListResultPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/LiveOutputListResultPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.lolr) + if err != nil { + return err + } + page.lolr = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *LiveOutputListResultPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page LiveOutputListResultPage) NotDone() bool { + return !page.lolr.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page LiveOutputListResultPage) Response() LiveOutputListResult { + return page.lolr +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page LiveOutputListResultPage) Values() []LiveOutput { + if page.lolr.IsEmpty() { + return nil + } + return *page.lolr.Value +} + +// Creates a new instance of the LiveOutputListResultPage type. +func NewLiveOutputListResultPage(cur LiveOutputListResult, getNextPage func(context.Context, LiveOutputListResult) (LiveOutputListResult, error)) LiveOutputListResultPage { + return LiveOutputListResultPage{ + fn: getNextPage, + lolr: cur, + } +} + +// LiveOutputProperties the JSON object that contains the properties required to create a live output. +type LiveOutputProperties struct { + // Description - The description of the live output. + Description *string `json:"description,omitempty"` + // AssetName - The asset that the live output will write to. + AssetName *string `json:"assetName,omitempty"` + // ArchiveWindowLength - ISO 8601 time between 1 minute to 25 hours to indicate the maximum content length that can be archived in the asset for this live output. This also sets the maximum content length for the rewind window. For example, use PT1H30M to indicate 1 hour and 30 minutes of archive window. + ArchiveWindowLength *string `json:"archiveWindowLength,omitempty"` + // ManifestName - The manifest file name. If not provided, the service will generate one automatically. + ManifestName *string `json:"manifestName,omitempty"` + // Hls - HTTP Live Streaming (HLS) packing setting for the live output. + Hls *Hls `json:"hls,omitempty"` + // OutputSnapTime - The initial timestamp that the live output will start at, any content before this value will not be archived. + OutputSnapTime *int64 `json:"outputSnapTime,omitempty"` + // Created - READ-ONLY; The creation time the live output. + Created *date.Time `json:"created,omitempty"` + // LastModified - READ-ONLY; The time the live output was last modified. + LastModified *date.Time `json:"lastModified,omitempty"` + // ProvisioningState - READ-ONLY; The provisioning state of the live output. + ProvisioningState *string `json:"provisioningState,omitempty"` + // ResourceState - READ-ONLY; The resource state of the live output. Possible values include: 'LiveOutputResourceStateCreating', 'LiveOutputResourceStateRunning', 'LiveOutputResourceStateDeleting' + ResourceState LiveOutputResourceState `json:"resourceState,omitempty"` +} + +// MarshalJSON is the custom marshaler for LiveOutputProperties. +func (lop LiveOutputProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if lop.Description != nil { + objectMap["description"] = lop.Description + } + if lop.AssetName != nil { + objectMap["assetName"] = lop.AssetName + } + if lop.ArchiveWindowLength != nil { + objectMap["archiveWindowLength"] = lop.ArchiveWindowLength + } + if lop.ManifestName != nil { + objectMap["manifestName"] = lop.ManifestName + } + if lop.Hls != nil { + objectMap["hls"] = lop.Hls + } + if lop.OutputSnapTime != nil { + objectMap["outputSnapTime"] = lop.OutputSnapTime + } + return json.Marshal(objectMap) +} + +// LiveOutputsCreateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveOutputsCreateFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveOutputsClient) (LiveOutput, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveOutputsCreateFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveOutputsCreateFuture.Result. +func (future *LiveOutputsCreateFuture) result(client LiveOutputsClient) (lo LiveOutput, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + lo.Response.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveOutputsCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if lo.Response.Response, err = future.GetResult(sender); err == nil && lo.Response.Response.StatusCode != http.StatusNoContent { + lo, err = client.CreateResponder(lo.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsCreateFuture", "Result", lo.Response.Response, "Failure responding to request") + } + } + return +} + +// LiveOutputsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type LiveOutputsDeleteFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(LiveOutputsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *LiveOutputsDeleteFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for LiveOutputsDeleteFuture.Result. +func (future *LiveOutputsDeleteFuture) result(client LiveOutputsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.LiveOutputsDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.LiveOutputsDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// LogSpecification a diagnostic log emitted by service. +type LogSpecification struct { + // Name - READ-ONLY; The diagnostic log category name. + Name *string `json:"name,omitempty"` + // DisplayName - READ-ONLY; The diagnostic log category display name. + DisplayName *string `json:"displayName,omitempty"` + // BlobDuration - READ-ONLY; The time range for requests in each blob. + BlobDuration *string `json:"blobDuration,omitempty"` +} + +// MarshalJSON is the custom marshaler for LogSpecification. +func (ls LogSpecification) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// MetricDimension a metric dimension. +type MetricDimension struct { + // Name - READ-ONLY; The metric dimension name. + Name *string `json:"name,omitempty"` + // DisplayName - READ-ONLY; The display name for the dimension. + DisplayName *string `json:"displayName,omitempty"` + // ToBeExportedForShoebox - READ-ONLY; Whether to export metric to shoebox. + ToBeExportedForShoebox *bool `json:"toBeExportedForShoebox,omitempty"` +} + +// MarshalJSON is the custom marshaler for MetricDimension. +func (md MetricDimension) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// MetricSpecification a metric emitted by service. +type MetricSpecification struct { + // Name - READ-ONLY; The metric name. + Name *string `json:"name,omitempty"` + // DisplayName - READ-ONLY; The metric display name. + DisplayName *string `json:"displayName,omitempty"` + // DisplayDescription - READ-ONLY; The metric display description. + DisplayDescription *string `json:"displayDescription,omitempty"` + // Unit - READ-ONLY; The metric unit. Possible values include: 'MetricUnitBytes', 'MetricUnitCount', 'MetricUnitMilliseconds' + Unit MetricUnit `json:"unit,omitempty"` + // AggregationType - READ-ONLY; The metric aggregation type. Possible values include: 'MetricAggregationTypeAverage', 'MetricAggregationTypeCount', 'MetricAggregationTypeTotal' + AggregationType MetricAggregationType `json:"aggregationType,omitempty"` + // LockAggregationType - READ-ONLY; The metric lock aggregation type. Possible values include: 'MetricAggregationTypeAverage', 'MetricAggregationTypeCount', 'MetricAggregationTypeTotal' + LockAggregationType MetricAggregationType `json:"lockAggregationType,omitempty"` + // SupportedAggregationTypes - Supported aggregation types. + SupportedAggregationTypes *[]string `json:"supportedAggregationTypes,omitempty"` + // Dimensions - READ-ONLY; The metric dimensions. + Dimensions *[]MetricDimension `json:"dimensions,omitempty"` + // EnableRegionalMdmAccount - READ-ONLY; Indicates whether regional MDM account is enabled. + EnableRegionalMdmAccount *bool `json:"enableRegionalMdmAccount,omitempty"` + // SourceMdmAccount - READ-ONLY; The source MDM account. + SourceMdmAccount *string `json:"sourceMdmAccount,omitempty"` + // SourceMdmNamespace - READ-ONLY; The source MDM namespace. + SourceMdmNamespace *string `json:"sourceMdmNamespace,omitempty"` + // SupportedTimeGrainTypes - READ-ONLY; The supported time grain types. + SupportedTimeGrainTypes *[]string `json:"supportedTimeGrainTypes,omitempty"` +} + +// MarshalJSON is the custom marshaler for MetricSpecification. +func (ms MetricSpecification) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ms.SupportedAggregationTypes != nil { + objectMap["supportedAggregationTypes"] = ms.SupportedAggregationTypes + } + return json.Marshal(objectMap) +} + +// Mp4Format describes the properties for an output ISO MP4 file. +type Mp4Format struct { + // OutputFiles - The list of output files to produce. Each entry in the list is a set of audio and video layer labels to be muxed together . + OutputFiles *[]OutputFile `json:"outputFiles,omitempty"` + // FilenamePattern - The pattern of the file names for the generated output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {Bitrate} - The audio/video bitrate. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename. + FilenamePattern *string `json:"filenamePattern,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicFormatOdataTypeFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat' + OdataType OdataTypeBasicFormat `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Mp4Format. +func (m4f Mp4Format) MarshalJSON() ([]byte, error) { + m4f.OdataType = OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format + objectMap := make(map[string]interface{}) + if m4f.OutputFiles != nil { + objectMap["outputFiles"] = m4f.OutputFiles + } + if m4f.FilenamePattern != nil { + objectMap["filenamePattern"] = m4f.FilenamePattern + } + if m4f.OdataType != "" { + objectMap["@odata.type"] = m4f.OdataType + } + return json.Marshal(objectMap) +} + +// AsImageFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsImageFormat() (*ImageFormat, bool) { + return nil, false +} + +// AsBasicImageFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsBasicImageFormat() (BasicImageFormat, bool) { + return nil, false +} + +// AsJpgFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsJpgFormat() (*JpgFormat, bool) { + return nil, false +} + +// AsPngFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsPngFormat() (*PngFormat, bool) { + return nil, false +} + +// AsMultiBitrateFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsMultiBitrateFormat() (*MultiBitrateFormat, bool) { + return nil, false +} + +// AsBasicMultiBitrateFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsBasicMultiBitrateFormat() (BasicMultiBitrateFormat, bool) { + return &m4f, true +} + +// AsMp4Format is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsMp4Format() (*Mp4Format, bool) { + return &m4f, true +} + +// AsTransportStreamFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsTransportStreamFormat() (*TransportStreamFormat, bool) { + return nil, false +} + +// AsFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsFormat() (*Format, bool) { + return nil, false +} + +// AsBasicFormat is the BasicFormat implementation for Mp4Format. +func (m4f Mp4Format) AsBasicFormat() (BasicFormat, bool) { + return &m4f, true +} + +// BasicMultiBitrateFormat describes the properties for producing a collection of GOP aligned multi-bitrate files. The +// default behavior is to produce one output file for each video layer which is muxed together with all the audios. The +// exact output files produced can be controlled by specifying the outputFiles collection. +type BasicMultiBitrateFormat interface { + AsMp4Format() (*Mp4Format, bool) + AsTransportStreamFormat() (*TransportStreamFormat, bool) + AsMultiBitrateFormat() (*MultiBitrateFormat, bool) +} + +// MultiBitrateFormat describes the properties for producing a collection of GOP aligned multi-bitrate files. +// The default behavior is to produce one output file for each video layer which is muxed together with all the +// audios. The exact output files produced can be controlled by specifying the outputFiles collection. +type MultiBitrateFormat struct { + // OutputFiles - The list of output files to produce. Each entry in the list is a set of audio and video layer labels to be muxed together . + OutputFiles *[]OutputFile `json:"outputFiles,omitempty"` + // FilenamePattern - The pattern of the file names for the generated output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {Bitrate} - The audio/video bitrate. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename. + FilenamePattern *string `json:"filenamePattern,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicFormatOdataTypeFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat' + OdataType OdataTypeBasicFormat `json:"@odata.type,omitempty"` +} + +func unmarshalBasicMultiBitrateFormat(body []byte) (BasicMultiBitrateFormat, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format): + var m4f Mp4Format + err := json.Unmarshal(body, &m4f) + return m4f, err + case string(OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat): + var tsf TransportStreamFormat + err := json.Unmarshal(body, &tsf) + return tsf, err + default: + var mbf MultiBitrateFormat + err := json.Unmarshal(body, &mbf) + return mbf, err + } +} +func unmarshalBasicMultiBitrateFormatArray(body []byte) ([]BasicMultiBitrateFormat, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + mbfArray := make([]BasicMultiBitrateFormat, len(rawMessages)) + + for index, rawMessage := range rawMessages { + mbf, err := unmarshalBasicMultiBitrateFormat(*rawMessage) + if err != nil { + return nil, err + } + mbfArray[index] = mbf + } + return mbfArray, nil +} + +// MarshalJSON is the custom marshaler for MultiBitrateFormat. +func (mbf MultiBitrateFormat) MarshalJSON() ([]byte, error) { + mbf.OdataType = OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat + objectMap := make(map[string]interface{}) + if mbf.OutputFiles != nil { + objectMap["outputFiles"] = mbf.OutputFiles + } + if mbf.FilenamePattern != nil { + objectMap["filenamePattern"] = mbf.FilenamePattern + } + if mbf.OdataType != "" { + objectMap["@odata.type"] = mbf.OdataType + } + return json.Marshal(objectMap) +} + +// AsImageFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsImageFormat() (*ImageFormat, bool) { + return nil, false +} + +// AsBasicImageFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsBasicImageFormat() (BasicImageFormat, bool) { + return nil, false +} + +// AsJpgFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsJpgFormat() (*JpgFormat, bool) { + return nil, false +} + +// AsPngFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsPngFormat() (*PngFormat, bool) { + return nil, false +} + +// AsMultiBitrateFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsMultiBitrateFormat() (*MultiBitrateFormat, bool) { + return &mbf, true +} + +// AsBasicMultiBitrateFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsBasicMultiBitrateFormat() (BasicMultiBitrateFormat, bool) { + return &mbf, true +} + +// AsMp4Format is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsMp4Format() (*Mp4Format, bool) { + return nil, false +} + +// AsTransportStreamFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsTransportStreamFormat() (*TransportStreamFormat, bool) { + return nil, false +} + +// AsFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsFormat() (*Format, bool) { + return nil, false +} + +// AsBasicFormat is the BasicFormat implementation for MultiBitrateFormat. +func (mbf MultiBitrateFormat) AsBasicFormat() (BasicFormat, bool) { + return &mbf, true +} + +// NoEncryption class for NoEncryption scheme +type NoEncryption struct { + // EnabledProtocols - Representing supported protocols + EnabledProtocols *EnabledProtocols `json:"enabledProtocols,omitempty"` +} + +// Operation an operation. +type Operation struct { + // Name - The operation name. + Name *string `json:"name,omitempty"` + // Display - The operation display name. + Display *OperationDisplay `json:"display,omitempty"` + // Origin - Origin of the operation. + Origin *string `json:"origin,omitempty"` + // Properties - Operation properties format. + Properties *Properties `json:"properties,omitempty"` + // IsDataAction - Whether the operation applies to data-plane. + IsDataAction *bool `json:"isDataAction,omitempty"` + // ActionType - Indicates the action type. Possible values include: 'ActionTypeInternal' + ActionType ActionType `json:"actionType,omitempty"` +} + +// OperationCollection a collection of Operation items. +type OperationCollection struct { + autorest.Response `json:"-"` + // Value - A collection of Operation items. + Value *[]Operation `json:"value,omitempty"` +} + +// OperationDisplay operation details. +type OperationDisplay struct { + // Provider - The service provider. + Provider *string `json:"provider,omitempty"` + // Resource - Resource on which the operation is performed. + Resource *string `json:"resource,omitempty"` + // Operation - The operation type. + Operation *string `json:"operation,omitempty"` + // Description - The operation description. + Description *string `json:"description,omitempty"` +} + +// OutputFile represents an output file produced. +type OutputFile struct { + // Labels - The list of labels that describe how the encoder should multiplex video and audio into an output file. For example, if the encoder is producing two video layers with labels v1 and v2, and one audio layer with label a1, then an array like '[v1, a1]' tells the encoder to produce an output file with the video track represented by v1 and the audio track represented by a1. + Labels *[]string `json:"labels,omitempty"` +} + +// BasicOverlay base type for all overlays - image, audio or video. +type BasicOverlay interface { + AsAudioOverlay() (*AudioOverlay, bool) + AsVideoOverlay() (*VideoOverlay, bool) + AsOverlay() (*Overlay, bool) +} + +// Overlay base type for all overlays - image, audio or video. +type Overlay struct { + // InputLabel - The label of the job input which is to be used as an overlay. The Input must specify exactly one file. You can specify an image file in JPG, PNG, GIF or BMP format, or an audio file (such as a WAV, MP3, WMA or M4A file), or a video file. See https://aka.ms/mesformats for the complete list of supported audio and video file formats. + InputLabel *string `json:"inputLabel,omitempty"` + // Start - The start position, with reference to the input video, at which the overlay starts. The value should be in ISO 8601 format. For example, PT05S to start the overlay at 5 seconds into the input video. If not specified the overlay starts from the beginning of the input video. + Start *string `json:"start,omitempty"` + // End - The end position, with reference to the input video, at which the overlay ends. The value should be in ISO 8601 format. For example, PT30S to end the overlay at 30 seconds into the input video. If not specified or the value is greater than the input video duration, the overlay will be applied until the end of the input video if the overlay media duration is greater than the input video duration, else the overlay will last as long as the overlay media duration. + End *string `json:"end,omitempty"` + // FadeInDuration - The duration over which the overlay fades in onto the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade in (same as PT0S). + FadeInDuration *string `json:"fadeInDuration,omitempty"` + // FadeOutDuration - The duration over which the overlay fades out of the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade out (same as PT0S). + FadeOutDuration *string `json:"fadeOutDuration,omitempty"` + // AudioGainLevel - The gain level of audio in the overlay. The value should be in the range [0, 1.0]. The default is 1.0. + AudioGainLevel *float64 `json:"audioGainLevel,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicOverlayOdataTypeOverlay', 'OdataTypeBasicOverlayOdataTypeMicrosoftMediaAudioOverlay', 'OdataTypeBasicOverlayOdataTypeMicrosoftMediaVideoOverlay' + OdataType OdataTypeBasicOverlay `json:"@odata.type,omitempty"` +} + +func unmarshalBasicOverlay(body []byte) (BasicOverlay, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicOverlayOdataTypeMicrosoftMediaAudioOverlay): + var ao AudioOverlay + err := json.Unmarshal(body, &ao) + return ao, err + case string(OdataTypeBasicOverlayOdataTypeMicrosoftMediaVideoOverlay): + var vo VideoOverlay + err := json.Unmarshal(body, &vo) + return vo, err + default: + var o Overlay + err := json.Unmarshal(body, &o) + return o, err + } +} +func unmarshalBasicOverlayArray(body []byte) ([]BasicOverlay, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + oArray := make([]BasicOverlay, len(rawMessages)) + + for index, rawMessage := range rawMessages { + o, err := unmarshalBasicOverlay(*rawMessage) + if err != nil { + return nil, err + } + oArray[index] = o + } + return oArray, nil +} + +// MarshalJSON is the custom marshaler for Overlay. +func (o Overlay) MarshalJSON() ([]byte, error) { + o.OdataType = OdataTypeBasicOverlayOdataTypeOverlay + objectMap := make(map[string]interface{}) + if o.InputLabel != nil { + objectMap["inputLabel"] = o.InputLabel + } + if o.Start != nil { + objectMap["start"] = o.Start + } + if o.End != nil { + objectMap["end"] = o.End + } + if o.FadeInDuration != nil { + objectMap["fadeInDuration"] = o.FadeInDuration + } + if o.FadeOutDuration != nil { + objectMap["fadeOutDuration"] = o.FadeOutDuration + } + if o.AudioGainLevel != nil { + objectMap["audioGainLevel"] = o.AudioGainLevel + } + if o.OdataType != "" { + objectMap["@odata.type"] = o.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioOverlay is the BasicOverlay implementation for Overlay. +func (o Overlay) AsAudioOverlay() (*AudioOverlay, bool) { + return nil, false +} + +// AsVideoOverlay is the BasicOverlay implementation for Overlay. +func (o Overlay) AsVideoOverlay() (*VideoOverlay, bool) { + return nil, false +} + +// AsOverlay is the BasicOverlay implementation for Overlay. +func (o Overlay) AsOverlay() (*Overlay, bool) { + return &o, true +} + +// AsBasicOverlay is the BasicOverlay implementation for Overlay. +func (o Overlay) AsBasicOverlay() (BasicOverlay, bool) { + return &o, true +} + +// PngFormat describes the settings for producing PNG thumbnails. +type PngFormat struct { + // FilenamePattern - The pattern of the file names for the generated output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {Bitrate} - The audio/video bitrate. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename. + FilenamePattern *string `json:"filenamePattern,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicFormatOdataTypeFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat' + OdataType OdataTypeBasicFormat `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for PngFormat. +func (pf PngFormat) MarshalJSON() ([]byte, error) { + pf.OdataType = OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat + objectMap := make(map[string]interface{}) + if pf.FilenamePattern != nil { + objectMap["filenamePattern"] = pf.FilenamePattern + } + if pf.OdataType != "" { + objectMap["@odata.type"] = pf.OdataType + } + return json.Marshal(objectMap) +} + +// AsImageFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsImageFormat() (*ImageFormat, bool) { + return nil, false +} + +// AsBasicImageFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsBasicImageFormat() (BasicImageFormat, bool) { + return &pf, true +} + +// AsJpgFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsJpgFormat() (*JpgFormat, bool) { + return nil, false +} + +// AsPngFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsPngFormat() (*PngFormat, bool) { + return &pf, true +} + +// AsMultiBitrateFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsMultiBitrateFormat() (*MultiBitrateFormat, bool) { + return nil, false +} + +// AsBasicMultiBitrateFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsBasicMultiBitrateFormat() (BasicMultiBitrateFormat, bool) { + return nil, false +} + +// AsMp4Format is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsMp4Format() (*Mp4Format, bool) { + return nil, false +} + +// AsTransportStreamFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsTransportStreamFormat() (*TransportStreamFormat, bool) { + return nil, false +} + +// AsFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsFormat() (*Format, bool) { + return nil, false +} + +// AsBasicFormat is the BasicFormat implementation for PngFormat. +func (pf PngFormat) AsBasicFormat() (BasicFormat, bool) { + return &pf, true +} + +// PngImage describes the properties for producing a series of PNG images from the input video. +type PngImage struct { + // Layers - A collection of output PNG image layers to be produced by the encoder. + Layers *[]PngLayer `json:"layers,omitempty"` + // Start - The position in the input video from where to start generating thumbnails. The value can be in ISO 8601 format (For example, PT05S to start at 5 seconds), or a frame count (For example, 10 to start at the 10th frame), or a relative value to stream duration (For example, 10% to start at 10% of stream duration). Also supports a macro {Best}, which tells the encoder to select the best thumbnail from the first few seconds of the video and will only produce one thumbnail, no matter what other settings are for Step and Range. The default value is macro {Best}. + Start *string `json:"start,omitempty"` + // Step - The intervals at which thumbnails are generated. The value can be in ISO 8601 format (For example, PT05S for one image every 5 seconds), or a frame count (For example, 30 for one image every 30 frames), or a relative value to stream duration (For example, 10% for one image every 10% of stream duration). Note: Step value will affect the first generated thumbnail, which may not be exactly the one specified at transform preset start time. This is due to the encoder, which tries to select the best thumbnail between start time and Step position from start time as the first output. As the default value is 10%, it means if stream has long duration, the first generated thumbnail might be far away from the one specified at start time. Try to select reasonable value for Step if the first thumbnail is expected close to start time, or set Range value at 1 if only one thumbnail is needed at start time. + Step *string `json:"step,omitempty"` + // Range - The position relative to transform preset start time in the input video at which to stop generating thumbnails. The value can be in ISO 8601 format (For example, PT5M30S to stop at 5 minutes and 30 seconds from start time), or a frame count (For example, 300 to stop at the 300th frame from the frame at start time. If this value is 1, it means only producing one thumbnail at start time), or a relative value to the stream duration (For example, 50% to stop at half of stream duration from start time). The default value is 100%, which means to stop at the end of the stream. + Range *string `json:"range,omitempty"` + // KeyFrameInterval - The distance between two key frames. The value should be non-zero in the range [0.5, 20] seconds, specified in ISO 8601 format. The default is 2 seconds(PT2S). Note that this setting is ignored if VideoSyncMode.Passthrough is set, where the KeyFrameInterval value will follow the input source setting. + KeyFrameInterval *string `json:"keyFrameInterval,omitempty"` + // StretchMode - The resizing mode - how the input video will be resized to fit the desired output resolution(s). Default is AutoSize. Possible values include: 'StretchModeNone', 'StretchModeAutoSize', 'StretchModeAutoFit' + StretchMode StretchMode `json:"stretchMode,omitempty"` + // SyncMode - The Video Sync Mode. Possible values include: 'VideoSyncModeAuto', 'VideoSyncModePassthrough', 'VideoSyncModeCfr', 'VideoSyncModeVfr' + SyncMode VideoSyncMode `json:"syncMode,omitempty"` + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for PngImage. +func (pi PngImage) MarshalJSON() ([]byte, error) { + pi.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage + objectMap := make(map[string]interface{}) + if pi.Layers != nil { + objectMap["layers"] = pi.Layers + } + if pi.Start != nil { + objectMap["start"] = pi.Start + } + if pi.Step != nil { + objectMap["step"] = pi.Step + } + if pi.Range != nil { + objectMap["range"] = pi.Range + } + if pi.KeyFrameInterval != nil { + objectMap["keyFrameInterval"] = pi.KeyFrameInterval + } + if pi.StretchMode != "" { + objectMap["stretchMode"] = pi.StretchMode + } + if pi.SyncMode != "" { + objectMap["syncMode"] = pi.SyncMode + } + if pi.Label != nil { + objectMap["label"] = pi.Label + } + if pi.OdataType != "" { + objectMap["@odata.type"] = pi.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for PngImage. +func (pi PngImage) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for PngImage. +func (pi PngImage) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for PngImage. +func (pi PngImage) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for PngImage. +func (pi PngImage) AsVideo() (*Video, bool) { + return nil, false +} + +// AsBasicVideo is the BasicCodec implementation for PngImage. +func (pi PngImage) AsBasicVideo() (BasicVideo, bool) { + return &pi, true +} + +// AsH265Video is the BasicCodec implementation for PngImage. +func (pi PngImage) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for PngImage. +func (pi PngImage) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for PngImage. +func (pi PngImage) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for PngImage. +func (pi PngImage) AsBasicImage() (BasicImage, bool) { + return &pi, true +} + +// AsCopyAudio is the BasicCodec implementation for PngImage. +func (pi PngImage) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for PngImage. +func (pi PngImage) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for PngImage. +func (pi PngImage) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for PngImage. +func (pi PngImage) AsPngImage() (*PngImage, bool) { + return &pi, true +} + +// AsCodec is the BasicCodec implementation for PngImage. +func (pi PngImage) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for PngImage. +func (pi PngImage) AsBasicCodec() (BasicCodec, bool) { + return &pi, true +} + +// PngLayer describes the settings to produce a PNG image from the input video. +type PngLayer struct { + // Width - The width of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in width as the input. + Width *string `json:"width,omitempty"` + // Height - The height of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in height as the input. + Height *string `json:"height,omitempty"` + // Label - The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicLayerOdataTypeLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer' + OdataType OdataTypeBasicLayer `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for PngLayer. +func (pl PngLayer) MarshalJSON() ([]byte, error) { + pl.OdataType = OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer + objectMap := make(map[string]interface{}) + if pl.Width != nil { + objectMap["width"] = pl.Width + } + if pl.Height != nil { + objectMap["height"] = pl.Height + } + if pl.Label != nil { + objectMap["label"] = pl.Label + } + if pl.OdataType != "" { + objectMap["@odata.type"] = pl.OdataType + } + return json.Marshal(objectMap) +} + +// AsH265VideoLayer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsH265VideoLayer() (*H265VideoLayer, bool) { + return nil, false +} + +// AsBasicH265VideoLayer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsBasicH265VideoLayer() (BasicH265VideoLayer, bool) { + return nil, false +} + +// AsH265Layer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsH265Layer() (*H265Layer, bool) { + return nil, false +} + +// AsVideoLayer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsVideoLayer() (*VideoLayer, bool) { + return nil, false +} + +// AsBasicVideoLayer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsBasicVideoLayer() (BasicVideoLayer, bool) { + return nil, false +} + +// AsH264Layer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsH264Layer() (*H264Layer, bool) { + return nil, false +} + +// AsJpgLayer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsJpgLayer() (*JpgLayer, bool) { + return nil, false +} + +// AsPngLayer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsPngLayer() (*PngLayer, bool) { + return &pl, true +} + +// AsLayer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsLayer() (*Layer, bool) { + return nil, false +} + +// AsBasicLayer is the BasicLayer implementation for PngLayer. +func (pl PngLayer) AsBasicLayer() (BasicLayer, bool) { + return &pl, true +} + +// PresentationTimeRange the presentation time range, this is asset related and not recommended for Account +// Filter. +type PresentationTimeRange struct { + // StartTimestamp - The absolute start time boundary. + StartTimestamp *int64 `json:"startTimestamp,omitempty"` + // EndTimestamp - The absolute end time boundary. + EndTimestamp *int64 `json:"endTimestamp,omitempty"` + // PresentationWindowDuration - The relative to end sliding window. + PresentationWindowDuration *int64 `json:"presentationWindowDuration,omitempty"` + // LiveBackoffDuration - The relative to end right edge. + LiveBackoffDuration *int64 `json:"liveBackoffDuration,omitempty"` + // Timescale - The time scale of time stamps. + Timescale *int64 `json:"timescale,omitempty"` + // ForceEndTimestamp - The indicator of forcing existing of end time stamp. + ForceEndTimestamp *bool `json:"forceEndTimestamp,omitempty"` +} + +// BasicPreset base type for all Presets, which define the recipe or instructions on how the input media files should +// be processed. +type BasicPreset interface { + AsFaceDetectorPreset() (*FaceDetectorPreset, bool) + AsAudioAnalyzerPreset() (*AudioAnalyzerPreset, bool) + AsBasicAudioAnalyzerPreset() (BasicAudioAnalyzerPreset, bool) + AsBuiltInStandardEncoderPreset() (*BuiltInStandardEncoderPreset, bool) + AsStandardEncoderPreset() (*StandardEncoderPreset, bool) + AsVideoAnalyzerPreset() (*VideoAnalyzerPreset, bool) + AsPreset() (*Preset, bool) +} + +// Preset base type for all Presets, which define the recipe or instructions on how the input media files +// should be processed. +type Preset struct { + // OdataType - Possible values include: 'OdataTypeBasicPresetOdataTypePreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset' + OdataType OdataTypeBasicPreset `json:"@odata.type,omitempty"` +} + +func unmarshalBasicPreset(body []byte) (BasicPreset, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset): + var fdp FaceDetectorPreset + err := json.Unmarshal(body, &fdp) + return fdp, err + case string(OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset): + var aap AudioAnalyzerPreset + err := json.Unmarshal(body, &aap) + return aap, err + case string(OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset): + var bisep BuiltInStandardEncoderPreset + err := json.Unmarshal(body, &bisep) + return bisep, err + case string(OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset): + var sep StandardEncoderPreset + err := json.Unmarshal(body, &sep) + return sep, err + case string(OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset): + var vap VideoAnalyzerPreset + err := json.Unmarshal(body, &vap) + return vap, err + default: + var p Preset + err := json.Unmarshal(body, &p) + return p, err + } +} +func unmarshalBasicPresetArray(body []byte) ([]BasicPreset, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pArray := make([]BasicPreset, len(rawMessages)) + + for index, rawMessage := range rawMessages { + p, err := unmarshalBasicPreset(*rawMessage) + if err != nil { + return nil, err + } + pArray[index] = p + } + return pArray, nil +} + +// MarshalJSON is the custom marshaler for Preset. +func (p Preset) MarshalJSON() ([]byte, error) { + p.OdataType = OdataTypeBasicPresetOdataTypePreset + objectMap := make(map[string]interface{}) + if p.OdataType != "" { + objectMap["@odata.type"] = p.OdataType + } + return json.Marshal(objectMap) +} + +// AsFaceDetectorPreset is the BasicPreset implementation for Preset. +func (p Preset) AsFaceDetectorPreset() (*FaceDetectorPreset, bool) { + return nil, false +} + +// AsAudioAnalyzerPreset is the BasicPreset implementation for Preset. +func (p Preset) AsAudioAnalyzerPreset() (*AudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBasicAudioAnalyzerPreset is the BasicPreset implementation for Preset. +func (p Preset) AsBasicAudioAnalyzerPreset() (BasicAudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBuiltInStandardEncoderPreset is the BasicPreset implementation for Preset. +func (p Preset) AsBuiltInStandardEncoderPreset() (*BuiltInStandardEncoderPreset, bool) { + return nil, false +} + +// AsStandardEncoderPreset is the BasicPreset implementation for Preset. +func (p Preset) AsStandardEncoderPreset() (*StandardEncoderPreset, bool) { + return nil, false +} + +// AsVideoAnalyzerPreset is the BasicPreset implementation for Preset. +func (p Preset) AsVideoAnalyzerPreset() (*VideoAnalyzerPreset, bool) { + return nil, false +} + +// AsPreset is the BasicPreset implementation for Preset. +func (p Preset) AsPreset() (*Preset, bool) { + return &p, true +} + +// AsBasicPreset is the BasicPreset implementation for Preset. +func (p Preset) AsBasicPreset() (BasicPreset, bool) { + return &p, true +} + +// PresetConfigurations an object of optional configuration settings for encoder. +type PresetConfigurations struct { + // Complexity - Allows you to configure the encoder settings to control the balance between speed and quality. Example: set Complexity as Speed for faster encoding but less compression efficiency. Possible values include: 'ComplexitySpeed', 'ComplexityBalanced', 'ComplexityQuality' + Complexity Complexity `json:"complexity,omitempty"` + // InterleaveOutput - Sets the interleave mode of the output to control how audio and video are stored in the container format. Example: set InterleavedOutput as NonInterleavedOutput to produce audio-only and video-only outputs in separate MP4 files. Possible values include: 'InterleaveOutputNonInterleavedOutput', 'InterleaveOutputInterleavedOutput' + InterleaveOutput InterleaveOutput `json:"interleaveOutput,omitempty"` + // KeyFrameIntervalInSeconds - The key frame interval in seconds. Example: set KeyFrameIntervalInSeconds as 2 to reduce the playback buffering for some players. + KeyFrameIntervalInSeconds *float64 `json:"keyFrameIntervalInSeconds,omitempty"` + // MaxBitrateBps - The maximum bitrate in bits per second (threshold for the top video layer). Example: set MaxBitrateBps as 6000000 to avoid producing very high bitrate outputs for contents with high complexity. + MaxBitrateBps *int32 `json:"maxBitrateBps,omitempty"` + // MaxHeight - The maximum height of output video layers. Example: set MaxHeight as 720 to produce output layers up to 720P even if the input is 4K. + MaxHeight *int32 `json:"maxHeight,omitempty"` + // MaxLayers - The maximum number of output video layers. Example: set MaxLayers as 4 to make sure at most 4 output layers are produced to control the overall cost of the encoding job. + MaxLayers *int32 `json:"maxLayers,omitempty"` + // MinBitrateBps - The minimum bitrate in bits per second (threshold for the bottom video layer). Example: set MinBitrateBps as 200000 to have a bottom layer that covers users with low network bandwidth. + MinBitrateBps *int32 `json:"minBitrateBps,omitempty"` + // MinHeight - The minimum height of output video layers. Example: set MinHeight as 360 to avoid output layers of smaller resolutions like 180P. + MinHeight *int32 `json:"minHeight,omitempty"` +} + +// PrivateEndpoint the Private Endpoint resource. +type PrivateEndpoint struct { + // ID - READ-ONLY; The ARM identifier for Private Endpoint + ID *string `json:"id,omitempty"` +} + +// MarshalJSON is the custom marshaler for PrivateEndpoint. +func (peVar PrivateEndpoint) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// PrivateEndpointConnection the Private Endpoint Connection resource. +type PrivateEndpointConnection struct { + autorest.Response `json:"-"` + // PrivateEndpointConnectionProperties - Resource properties. + *PrivateEndpointConnectionProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for PrivateEndpointConnection. +func (pec PrivateEndpointConnection) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if pec.PrivateEndpointConnectionProperties != nil { + objectMap["properties"] = pec.PrivateEndpointConnectionProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for PrivateEndpointConnection struct. +func (pec *PrivateEndpointConnection) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var privateEndpointConnectionProperties PrivateEndpointConnectionProperties + err = json.Unmarshal(*v, &privateEndpointConnectionProperties) + if err != nil { + return err + } + pec.PrivateEndpointConnectionProperties = &privateEndpointConnectionProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + pec.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + pec.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + pec.Type = &typeVar + } + } + } + + return nil +} + +// PrivateEndpointConnectionListResult list of private endpoint connection associated with the specified +// storage account +type PrivateEndpointConnectionListResult struct { + autorest.Response `json:"-"` + // Value - Array of private endpoint connections + Value *[]PrivateEndpointConnection `json:"value,omitempty"` +} + +// PrivateEndpointConnectionProperties properties of the PrivateEndpointConnectProperties. +type PrivateEndpointConnectionProperties struct { + // PrivateEndpoint - The resource of private end point. + PrivateEndpoint *PrivateEndpoint `json:"privateEndpoint,omitempty"` + // PrivateLinkServiceConnectionState - A collection of information about the state of the connection between service consumer and provider. + PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"` + // ProvisioningState - The provisioning state of the private endpoint connection resource. Possible values include: 'PrivateEndpointConnectionProvisioningStateSucceeded', 'PrivateEndpointConnectionProvisioningStateCreating', 'PrivateEndpointConnectionProvisioningStateDeleting', 'PrivateEndpointConnectionProvisioningStateFailed' + ProvisioningState PrivateEndpointConnectionProvisioningState `json:"provisioningState,omitempty"` +} + +// PrivateLinkResource a private link resource +type PrivateLinkResource struct { + autorest.Response `json:"-"` + // PrivateLinkResourceProperties - Resource properties. + *PrivateLinkResourceProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for PrivateLinkResource. +func (plr PrivateLinkResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if plr.PrivateLinkResourceProperties != nil { + objectMap["properties"] = plr.PrivateLinkResourceProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for PrivateLinkResource struct. +func (plr *PrivateLinkResource) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var privateLinkResourceProperties PrivateLinkResourceProperties + err = json.Unmarshal(*v, &privateLinkResourceProperties) + if err != nil { + return err + } + plr.PrivateLinkResourceProperties = &privateLinkResourceProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + plr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + plr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + plr.Type = &typeVar + } + } + } + + return nil +} + +// PrivateLinkResourceListResult a list of private link resources +type PrivateLinkResourceListResult struct { + autorest.Response `json:"-"` + // Value - Array of private link resources + Value *[]PrivateLinkResource `json:"value,omitempty"` +} + +// PrivateLinkResourceProperties properties of a private link resource. +type PrivateLinkResourceProperties struct { + // GroupID - READ-ONLY; The private link resource group id. + GroupID *string `json:"groupId,omitempty"` + // RequiredMembers - READ-ONLY; The private link resource required member names. + RequiredMembers *[]string `json:"requiredMembers,omitempty"` + // RequiredZoneNames - The private link resource Private link DNS zone name. + RequiredZoneNames *[]string `json:"requiredZoneNames,omitempty"` +} + +// MarshalJSON is the custom marshaler for PrivateLinkResourceProperties. +func (plrp PrivateLinkResourceProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if plrp.RequiredZoneNames != nil { + objectMap["requiredZoneNames"] = plrp.RequiredZoneNames + } + return json.Marshal(objectMap) +} + +// PrivateLinkServiceConnectionState a collection of information about the state of the connection between +// service consumer and provider. +type PrivateLinkServiceConnectionState struct { + // Status - Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. Possible values include: 'PrivateEndpointServiceConnectionStatusPending', 'PrivateEndpointServiceConnectionStatusApproved', 'PrivateEndpointServiceConnectionStatusRejected' + Status PrivateEndpointServiceConnectionStatus `json:"status,omitempty"` + // Description - The reason for approval/rejection of the connection. + Description *string `json:"description,omitempty"` + // ActionsRequired - A message indicating if changes on the service provider require any updates on the consumer. + ActionsRequired *string `json:"actionsRequired,omitempty"` +} + +// Properties the service specification property. +type Properties struct { + // ServiceSpecification - READ-ONLY; The service specifications. + ServiceSpecification *ServiceSpecification `json:"serviceSpecification,omitempty"` +} + +// MarshalJSON is the custom marshaler for Properties. +func (p Properties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ProxyResource the resource model definition for a Azure Resource Manager proxy resource. It will not +// have tags and a location +type ProxyResource struct { + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ProxyResource. +func (pr ProxyResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// Rectangle describes the properties of a rectangular window applied to the input media before processing +// it. +type Rectangle struct { + // Left - The number of pixels from the left-margin. This can be absolute pixel value (e.g 100), or relative to the size of the video (For example, 50%). + Left *string `json:"left,omitempty"` + // Top - The number of pixels from the top-margin. This can be absolute pixel value (e.g 100), or relative to the size of the video (For example, 50%). + Top *string `json:"top,omitempty"` + // Width - The width of the rectangular region in pixels. This can be absolute pixel value (e.g 100), or relative to the size of the video (For example, 50%). + Width *string `json:"width,omitempty"` + // Height - The height of the rectangular region in pixels. This can be absolute pixel value (e.g 100), or relative to the size of the video (For example, 50%). + Height *string `json:"height,omitempty"` +} + +// Resource common fields that are returned in the response for all Azure Resource Manager resources +type Resource struct { + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Resource. +func (r Resource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ResourceIdentity ... +type ResourceIdentity struct { + // UserAssignedIdentity - The user assigned managed identity's ARM ID to use when accessing a resource. + UserAssignedIdentity *string `json:"userAssignedIdentity,omitempty"` + // UseSystemAssignedIdentity - Indicates whether to use System Assigned Managed Identity. Mutual exclusive with User Assigned Managed Identity. + UseSystemAssignedIdentity *bool `json:"useSystemAssignedIdentity,omitempty"` +} + +// SelectAudioTrackByAttribute select audio tracks from the input by specifying an attribute and an +// attribute filter. +type SelectAudioTrackByAttribute struct { + // Attribute - The TrackAttribute to filter the tracks by. Possible values include: 'TrackAttributeBitrate', 'TrackAttributeLanguage' + Attribute TrackAttribute `json:"attribute,omitempty"` + // Filter - The type of AttributeFilter to apply to the TrackAttribute in order to select the tracks. Possible values include: 'AttributeFilterAll', 'AttributeFilterTop', 'AttributeFilterBottom', 'AttributeFilterValueEquals' + Filter AttributeFilter `json:"filter,omitempty"` + // FilterValue - The value to filter the tracks by. Only used when AttributeFilter.ValueEquals is specified for the Filter property. + FilterValue *string `json:"filterValue,omitempty"` + // ChannelMapping - Optional designation for single channel audio tracks. Can be used to combine the tracks into stereo or multi-channel audio tracks. Possible values include: 'ChannelMappingFrontLeft', 'ChannelMappingFrontRight', 'ChannelMappingCenter', 'ChannelMappingLowFrequencyEffects', 'ChannelMappingBackLeft', 'ChannelMappingBackRight', 'ChannelMappingStereoLeft', 'ChannelMappingStereoRight' + ChannelMapping ChannelMapping `json:"channelMapping,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID' + OdataType OdataTypeBasicTrackDescriptor `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) MarshalJSON() ([]byte, error) { + satba.OdataType = OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute + objectMap := make(map[string]interface{}) + if satba.Attribute != "" { + objectMap["attribute"] = satba.Attribute + } + if satba.Filter != "" { + objectMap["filter"] = satba.Filter + } + if satba.FilterValue != nil { + objectMap["filterValue"] = satba.FilterValue + } + if satba.ChannelMapping != "" { + objectMap["channelMapping"] = satba.ChannelMapping + } + if satba.OdataType != "" { + objectMap["@odata.type"] = satba.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) { + return nil, false +} + +// AsBasicAudioTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsBasicAudioTrackDescriptor() (BasicAudioTrackDescriptor, bool) { + return &satba, true +} + +// AsSelectAudioTrackByAttribute is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) { + return &satba, true +} + +// AsSelectAudioTrackByID is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) { + return nil, false +} + +// AsVideoTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) { + return nil, false +} + +// AsBasicVideoTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsBasicVideoTrackDescriptor() (BasicVideoTrackDescriptor, bool) { + return nil, false +} + +// AsSelectVideoTrackByAttribute is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) { + return nil, false +} + +// AsSelectVideoTrackByID is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) { + return nil, false +} + +// AsTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsTrackDescriptor() (*TrackDescriptor, bool) { + return nil, false +} + +// AsBasicTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByAttribute. +func (satba SelectAudioTrackByAttribute) AsBasicTrackDescriptor() (BasicTrackDescriptor, bool) { + return &satba, true +} + +// SelectAudioTrackByID select audio tracks from the input by specifying a track identifier. +type SelectAudioTrackByID struct { + // TrackID - Track identifier to select + TrackID *int64 `json:"trackId,omitempty"` + // ChannelMapping - Optional designation for single channel audio tracks. Can be used to combine the tracks into stereo or multi-channel audio tracks. Possible values include: 'ChannelMappingFrontLeft', 'ChannelMappingFrontRight', 'ChannelMappingCenter', 'ChannelMappingLowFrequencyEffects', 'ChannelMappingBackLeft', 'ChannelMappingBackRight', 'ChannelMappingStereoLeft', 'ChannelMappingStereoRight' + ChannelMapping ChannelMapping `json:"channelMapping,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID' + OdataType OdataTypeBasicTrackDescriptor `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) MarshalJSON() ([]byte, error) { + satbi.OdataType = OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID + objectMap := make(map[string]interface{}) + if satbi.TrackID != nil { + objectMap["trackId"] = satbi.TrackID + } + if satbi.ChannelMapping != "" { + objectMap["channelMapping"] = satbi.ChannelMapping + } + if satbi.OdataType != "" { + objectMap["@odata.type"] = satbi.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) { + return nil, false +} + +// AsBasicAudioTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsBasicAudioTrackDescriptor() (BasicAudioTrackDescriptor, bool) { + return &satbi, true +} + +// AsSelectAudioTrackByAttribute is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) { + return nil, false +} + +// AsSelectAudioTrackByID is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) { + return &satbi, true +} + +// AsVideoTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) { + return nil, false +} + +// AsBasicVideoTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsBasicVideoTrackDescriptor() (BasicVideoTrackDescriptor, bool) { + return nil, false +} + +// AsSelectVideoTrackByAttribute is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) { + return nil, false +} + +// AsSelectVideoTrackByID is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) { + return nil, false +} + +// AsTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsTrackDescriptor() (*TrackDescriptor, bool) { + return nil, false +} + +// AsBasicTrackDescriptor is the BasicTrackDescriptor implementation for SelectAudioTrackByID. +func (satbi SelectAudioTrackByID) AsBasicTrackDescriptor() (BasicTrackDescriptor, bool) { + return &satbi, true +} + +// SelectVideoTrackByAttribute select video tracks from the input by specifying an attribute and an +// attribute filter. +type SelectVideoTrackByAttribute struct { + // Attribute - The TrackAttribute to filter the tracks by. Possible values include: 'TrackAttributeBitrate', 'TrackAttributeLanguage' + Attribute TrackAttribute `json:"attribute,omitempty"` + // Filter - The type of AttributeFilter to apply to the TrackAttribute in order to select the tracks. Possible values include: 'AttributeFilterAll', 'AttributeFilterTop', 'AttributeFilterBottom', 'AttributeFilterValueEquals' + Filter AttributeFilter `json:"filter,omitempty"` + // FilterValue - The value to filter the tracks by. Only used when AttributeFilter.ValueEquals is specified for the Filter property. For TrackAttribute.Bitrate, this should be an integer value in bits per second (e.g: '1500000'). The TrackAttribute.Language is not supported for video tracks. + FilterValue *string `json:"filterValue,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID' + OdataType OdataTypeBasicTrackDescriptor `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) MarshalJSON() ([]byte, error) { + svtba.OdataType = OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute + objectMap := make(map[string]interface{}) + if svtba.Attribute != "" { + objectMap["attribute"] = svtba.Attribute + } + if svtba.Filter != "" { + objectMap["filter"] = svtba.Filter + } + if svtba.FilterValue != nil { + objectMap["filterValue"] = svtba.FilterValue + } + if svtba.OdataType != "" { + objectMap["@odata.type"] = svtba.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) { + return nil, false +} + +// AsBasicAudioTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsBasicAudioTrackDescriptor() (BasicAudioTrackDescriptor, bool) { + return nil, false +} + +// AsSelectAudioTrackByAttribute is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) { + return nil, false +} + +// AsSelectAudioTrackByID is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) { + return nil, false +} + +// AsVideoTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) { + return nil, false +} + +// AsBasicVideoTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsBasicVideoTrackDescriptor() (BasicVideoTrackDescriptor, bool) { + return &svtba, true +} + +// AsSelectVideoTrackByAttribute is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) { + return &svtba, true +} + +// AsSelectVideoTrackByID is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) { + return nil, false +} + +// AsTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsTrackDescriptor() (*TrackDescriptor, bool) { + return nil, false +} + +// AsBasicTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByAttribute. +func (svtba SelectVideoTrackByAttribute) AsBasicTrackDescriptor() (BasicTrackDescriptor, bool) { + return &svtba, true +} + +// SelectVideoTrackByID select video tracks from the input by specifying a track identifier. +type SelectVideoTrackByID struct { + // TrackID - Track identifier to select + TrackID *int64 `json:"trackId,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID' + OdataType OdataTypeBasicTrackDescriptor `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) MarshalJSON() ([]byte, error) { + svtbi.OdataType = OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID + objectMap := make(map[string]interface{}) + if svtbi.TrackID != nil { + objectMap["trackId"] = svtbi.TrackID + } + if svtbi.OdataType != "" { + objectMap["@odata.type"] = svtbi.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) { + return nil, false +} + +// AsBasicAudioTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsBasicAudioTrackDescriptor() (BasicAudioTrackDescriptor, bool) { + return nil, false +} + +// AsSelectAudioTrackByAttribute is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) { + return nil, false +} + +// AsSelectAudioTrackByID is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) { + return nil, false +} + +// AsVideoTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) { + return nil, false +} + +// AsBasicVideoTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsBasicVideoTrackDescriptor() (BasicVideoTrackDescriptor, bool) { + return &svtbi, true +} + +// AsSelectVideoTrackByAttribute is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) { + return nil, false +} + +// AsSelectVideoTrackByID is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) { + return &svtbi, true +} + +// AsTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsTrackDescriptor() (*TrackDescriptor, bool) { + return nil, false +} + +// AsBasicTrackDescriptor is the BasicTrackDescriptor implementation for SelectVideoTrackByID. +func (svtbi SelectVideoTrackByID) AsBasicTrackDescriptor() (BasicTrackDescriptor, bool) { + return &svtbi, true +} + +// Service a Media Services account. +type Service struct { + autorest.Response `json:"-"` + // ServiceProperties - The resource properties. + *ServiceProperties `json:"properties,omitempty"` + // Identity - The Managed Identity for the Media Services account. + Identity *ServiceIdentity `json:"identity,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // Tags - Resource tags. + Tags map[string]*string `json:"tags"` + // Location - The geo-location where the resource lives + Location *string `json:"location,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Service. +func (s Service) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if s.ServiceProperties != nil { + objectMap["properties"] = s.ServiceProperties + } + if s.Identity != nil { + objectMap["identity"] = s.Identity + } + if s.Tags != nil { + objectMap["tags"] = s.Tags + } + if s.Location != nil { + objectMap["location"] = s.Location + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Service struct. +func (s *Service) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var serviceProperties ServiceProperties + err = json.Unmarshal(*v, &serviceProperties) + if err != nil { + return err + } + s.ServiceProperties = &serviceProperties + } + case "identity": + if v != nil { + var identity ServiceIdentity + err = json.Unmarshal(*v, &identity) + if err != nil { + return err + } + s.Identity = &identity + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + s.SystemData = &systemData + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + s.Tags = tags + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + s.Location = &location + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + s.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + s.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + s.Type = &typeVar + } + } + } + + return nil +} + +// ServiceCollection a collection of MediaService items. +type ServiceCollection struct { + autorest.Response `json:"-"` + // Value - A collection of MediaService items. + Value *[]Service `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// ServiceCollectionIterator provides access to a complete listing of Service values. +type ServiceCollectionIterator struct { + i int + page ServiceCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *ServiceCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServiceCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *ServiceCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter ServiceCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter ServiceCollectionIterator) Response() ServiceCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter ServiceCollectionIterator) Value() Service { + if !iter.page.NotDone() { + return Service{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the ServiceCollectionIterator type. +func NewServiceCollectionIterator(page ServiceCollectionPage) ServiceCollectionIterator { + return ServiceCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (sc ServiceCollection) IsEmpty() bool { + return sc.Value == nil || len(*sc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (sc ServiceCollection) hasNextLink() bool { + return sc.OdataNextLink != nil && len(*sc.OdataNextLink) != 0 +} + +// serviceCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (sc ServiceCollection) serviceCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !sc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(sc.OdataNextLink))) +} + +// ServiceCollectionPage contains a page of Service values. +type ServiceCollectionPage struct { + fn func(context.Context, ServiceCollection) (ServiceCollection, error) + sc ServiceCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *ServiceCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServiceCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.sc) + if err != nil { + return err + } + page.sc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *ServiceCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page ServiceCollectionPage) NotDone() bool { + return !page.sc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page ServiceCollectionPage) Response() ServiceCollection { + return page.sc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page ServiceCollectionPage) Values() []Service { + if page.sc.IsEmpty() { + return nil + } + return *page.sc.Value +} + +// Creates a new instance of the ServiceCollectionPage type. +func NewServiceCollectionPage(cur ServiceCollection, getNextPage func(context.Context, ServiceCollection) (ServiceCollection, error)) ServiceCollectionPage { + return ServiceCollectionPage{ + fn: getNextPage, + sc: cur, + } +} + +// ServiceIdentity ... +type ServiceIdentity struct { + // Type - The identity type. + Type *string `json:"type,omitempty"` + // PrincipalID - READ-ONLY; The Principal ID of the identity. + PrincipalID *uuid.UUID `json:"principalId,omitempty"` + // TenantID - READ-ONLY; The Tenant ID of the identity. + TenantID *uuid.UUID `json:"tenantId,omitempty"` + // UserAssignedIdentities - The user assigned managed identities. + UserAssignedIdentities map[string]*UserAssignedManagedIdentity `json:"userAssignedIdentities"` +} + +// MarshalJSON is the custom marshaler for ServiceIdentity. +func (si ServiceIdentity) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if si.Type != nil { + objectMap["type"] = si.Type + } + if si.UserAssignedIdentities != nil { + objectMap["userAssignedIdentities"] = si.UserAssignedIdentities + } + return json.Marshal(objectMap) +} + +// ServiceProperties properties of the Media Services account. +type ServiceProperties struct { + // MediaServiceID - READ-ONLY; The Media Services account ID. + MediaServiceID *uuid.UUID `json:"mediaServiceId,omitempty"` + // StorageAccounts - The storage accounts for this resource. + StorageAccounts *[]StorageAccount `json:"storageAccounts,omitempty"` + // StorageAuthentication - Possible values include: 'StorageAuthenticationSystem', 'StorageAuthenticationManagedIdentity' + StorageAuthentication StorageAuthentication `json:"storageAuthentication,omitempty"` + // Encryption - The account encryption properties. + Encryption *AccountEncryption `json:"encryption,omitempty"` + // KeyDelivery - The Key Delivery properties for Media Services account. + KeyDelivery *KeyDelivery `json:"keyDelivery,omitempty"` + // PublicNetworkAccess - Whether or not public network access is allowed for resources under the Media Services account. Possible values include: 'PublicNetworkAccessEnabled', 'PublicNetworkAccessDisabled' + PublicNetworkAccess PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceProperties. +func (sp ServiceProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sp.StorageAccounts != nil { + objectMap["storageAccounts"] = sp.StorageAccounts + } + if sp.StorageAuthentication != "" { + objectMap["storageAuthentication"] = sp.StorageAuthentication + } + if sp.Encryption != nil { + objectMap["encryption"] = sp.Encryption + } + if sp.KeyDelivery != nil { + objectMap["keyDelivery"] = sp.KeyDelivery + } + if sp.PublicNetworkAccess != "" { + objectMap["publicNetworkAccess"] = sp.PublicNetworkAccess + } + return json.Marshal(objectMap) +} + +// ServiceSpecification the service metric specifications. +type ServiceSpecification struct { + // LogSpecifications - READ-ONLY; List of log specifications. + LogSpecifications *[]LogSpecification `json:"logSpecifications,omitempty"` + // MetricSpecifications - READ-ONLY; List of metric specifications. + MetricSpecifications *[]MetricSpecification `json:"metricSpecifications,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceSpecification. +func (ss ServiceSpecification) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ServiceUpdate a Media Services account update. +type ServiceUpdate struct { + // Tags - Resource tags. + Tags map[string]*string `json:"tags"` + // ServiceProperties - The resource properties. + *ServiceProperties `json:"properties,omitempty"` + // Identity - The Managed Identity for the Media Services account. + Identity *ServiceIdentity `json:"identity,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceUpdate. +func (su ServiceUpdate) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if su.Tags != nil { + objectMap["tags"] = su.Tags + } + if su.ServiceProperties != nil { + objectMap["properties"] = su.ServiceProperties + } + if su.Identity != nil { + objectMap["identity"] = su.Identity + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ServiceUpdate struct. +func (su *ServiceUpdate) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + su.Tags = tags + } + case "properties": + if v != nil { + var serviceProperties ServiceProperties + err = json.Unmarshal(*v, &serviceProperties) + if err != nil { + return err + } + su.ServiceProperties = &serviceProperties + } + case "identity": + if v != nil { + var identity ServiceIdentity + err = json.Unmarshal(*v, &identity) + if err != nil { + return err + } + su.Identity = &identity + } + } + } + + return nil +} + +// StandardEncoderPreset describes all the settings to be used when encoding the input video with the +// Standard Encoder. +type StandardEncoderPreset struct { + // Filters - One or more filtering operations that are applied to the input media before encoding. + Filters *Filters `json:"filters,omitempty"` + // Codecs - The list of codecs to be used when encoding the input video. + Codecs *[]BasicCodec `json:"codecs,omitempty"` + // Formats - The list of outputs to be produced by the encoder. + Formats *[]BasicFormat `json:"formats,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicPresetOdataTypePreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset' + OdataType OdataTypeBasicPreset `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for StandardEncoderPreset. +func (sep StandardEncoderPreset) MarshalJSON() ([]byte, error) { + sep.OdataType = OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset + objectMap := make(map[string]interface{}) + if sep.Filters != nil { + objectMap["filters"] = sep.Filters + } + if sep.Codecs != nil { + objectMap["codecs"] = sep.Codecs + } + if sep.Formats != nil { + objectMap["formats"] = sep.Formats + } + if sep.OdataType != "" { + objectMap["@odata.type"] = sep.OdataType + } + return json.Marshal(objectMap) +} + +// AsFaceDetectorPreset is the BasicPreset implementation for StandardEncoderPreset. +func (sep StandardEncoderPreset) AsFaceDetectorPreset() (*FaceDetectorPreset, bool) { + return nil, false +} + +// AsAudioAnalyzerPreset is the BasicPreset implementation for StandardEncoderPreset. +func (sep StandardEncoderPreset) AsAudioAnalyzerPreset() (*AudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBasicAudioAnalyzerPreset is the BasicPreset implementation for StandardEncoderPreset. +func (sep StandardEncoderPreset) AsBasicAudioAnalyzerPreset() (BasicAudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBuiltInStandardEncoderPreset is the BasicPreset implementation for StandardEncoderPreset. +func (sep StandardEncoderPreset) AsBuiltInStandardEncoderPreset() (*BuiltInStandardEncoderPreset, bool) { + return nil, false +} + +// AsStandardEncoderPreset is the BasicPreset implementation for StandardEncoderPreset. +func (sep StandardEncoderPreset) AsStandardEncoderPreset() (*StandardEncoderPreset, bool) { + return &sep, true +} + +// AsVideoAnalyzerPreset is the BasicPreset implementation for StandardEncoderPreset. +func (sep StandardEncoderPreset) AsVideoAnalyzerPreset() (*VideoAnalyzerPreset, bool) { + return nil, false +} + +// AsPreset is the BasicPreset implementation for StandardEncoderPreset. +func (sep StandardEncoderPreset) AsPreset() (*Preset, bool) { + return nil, false +} + +// AsBasicPreset is the BasicPreset implementation for StandardEncoderPreset. +func (sep StandardEncoderPreset) AsBasicPreset() (BasicPreset, bool) { + return &sep, true +} + +// UnmarshalJSON is the custom unmarshaler for StandardEncoderPreset struct. +func (sep *StandardEncoderPreset) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "filters": + if v != nil { + var filters Filters + err = json.Unmarshal(*v, &filters) + if err != nil { + return err + } + sep.Filters = &filters + } + case "codecs": + if v != nil { + codecs, err := unmarshalBasicCodecArray(*v) + if err != nil { + return err + } + sep.Codecs = &codecs + } + case "formats": + if v != nil { + formats, err := unmarshalBasicFormatArray(*v) + if err != nil { + return err + } + sep.Formats = &formats + } + case "@odata.type": + if v != nil { + var odataType OdataTypeBasicPreset + err = json.Unmarshal(*v, &odataType) + if err != nil { + return err + } + sep.OdataType = odataType + } + } + } + + return nil +} + +// StorageAccount the storage account details. +type StorageAccount struct { + // ID - The ID of the storage account resource. Media Services relies on tables and queues as well as blobs, so the primary storage account must be a Standard Storage account (either Microsoft.ClassicStorage or Microsoft.Storage). Blob only storage accounts can be added as secondary storage accounts. + ID *string `json:"id,omitempty"` + // Type - The type of the storage account. Possible values include: 'StorageAccountTypePrimary', 'StorageAccountTypeSecondary' + Type StorageAccountType `json:"type,omitempty"` + // Identity - The storage account identity. + Identity *ResourceIdentity `json:"identity,omitempty"` + // Status - READ-ONLY; The current status of the storage account mapping. + Status *string `json:"status,omitempty"` +} + +// MarshalJSON is the custom marshaler for StorageAccount. +func (sa StorageAccount) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sa.ID != nil { + objectMap["id"] = sa.ID + } + if sa.Type != "" { + objectMap["type"] = sa.Type + } + if sa.Identity != nil { + objectMap["identity"] = sa.Identity + } + return json.Marshal(objectMap) +} + +// StorageEncryptedAssetDecryptionData data needed to decrypt asset files encrypted with legacy storage +// encryption. +type StorageEncryptedAssetDecryptionData struct { + autorest.Response `json:"-"` + // Key - The Asset File storage encryption key. + Key *[]byte `json:"key,omitempty"` + // AssetFileEncryptionMetadata - Asset File encryption metadata. + AssetFileEncryptionMetadata *[]AssetFileEncryptionMetadata `json:"assetFileEncryptionMetadata,omitempty"` +} + +// StreamingEndpoint the streaming endpoint. +type StreamingEndpoint struct { + autorest.Response `json:"-"` + // StreamingEndpointProperties - The streaming endpoint properties. + *StreamingEndpointProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // Tags - Resource tags. + Tags map[string]*string `json:"tags"` + // Location - The geo-location where the resource lives + Location *string `json:"location,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for StreamingEndpoint. +func (se StreamingEndpoint) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if se.StreamingEndpointProperties != nil { + objectMap["properties"] = se.StreamingEndpointProperties + } + if se.Tags != nil { + objectMap["tags"] = se.Tags + } + if se.Location != nil { + objectMap["location"] = se.Location + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for StreamingEndpoint struct. +func (se *StreamingEndpoint) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var streamingEndpointProperties StreamingEndpointProperties + err = json.Unmarshal(*v, &streamingEndpointProperties) + if err != nil { + return err + } + se.StreamingEndpointProperties = &streamingEndpointProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + se.SystemData = &systemData + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + se.Tags = tags + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + se.Location = &location + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + se.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + se.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + se.Type = &typeVar + } + } + } + + return nil +} + +// StreamingEndpointAccessControl streaming endpoint access control definition. +type StreamingEndpointAccessControl struct { + // Akamai - The access control of Akamai + Akamai *AkamaiAccessControl `json:"akamai,omitempty"` + // IP - The IP access control of the streaming endpoint. + IP *IPAccessControl `json:"ip,omitempty"` +} + +// StreamingEndpointListResult the streaming endpoint list result. +type StreamingEndpointListResult struct { + autorest.Response `json:"-"` + // Value - The result of the List StreamingEndpoint operation. + Value *[]StreamingEndpoint `json:"value,omitempty"` + // OdataCount - The number of result. + OdataCount *int32 `json:"@odata.count,omitempty"` + // OdataNextLink - The link to the next set of results. Not empty if value contains incomplete list of streaming endpoints. + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// StreamingEndpointListResultIterator provides access to a complete listing of StreamingEndpoint values. +type StreamingEndpointListResultIterator struct { + i int + page StreamingEndpointListResultPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *StreamingEndpointListResultIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointListResultIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *StreamingEndpointListResultIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter StreamingEndpointListResultIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter StreamingEndpointListResultIterator) Response() StreamingEndpointListResult { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter StreamingEndpointListResultIterator) Value() StreamingEndpoint { + if !iter.page.NotDone() { + return StreamingEndpoint{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the StreamingEndpointListResultIterator type. +func NewStreamingEndpointListResultIterator(page StreamingEndpointListResultPage) StreamingEndpointListResultIterator { + return StreamingEndpointListResultIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (selr StreamingEndpointListResult) IsEmpty() bool { + return selr.Value == nil || len(*selr.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (selr StreamingEndpointListResult) hasNextLink() bool { + return selr.OdataNextLink != nil && len(*selr.OdataNextLink) != 0 +} + +// streamingEndpointListResultPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (selr StreamingEndpointListResult) streamingEndpointListResultPreparer(ctx context.Context) (*http.Request, error) { + if !selr.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(selr.OdataNextLink))) +} + +// StreamingEndpointListResultPage contains a page of StreamingEndpoint values. +type StreamingEndpointListResultPage struct { + fn func(context.Context, StreamingEndpointListResult) (StreamingEndpointListResult, error) + selr StreamingEndpointListResult +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *StreamingEndpointListResultPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointListResultPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.selr) + if err != nil { + return err + } + page.selr = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *StreamingEndpointListResultPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page StreamingEndpointListResultPage) NotDone() bool { + return !page.selr.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page StreamingEndpointListResultPage) Response() StreamingEndpointListResult { + return page.selr +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page StreamingEndpointListResultPage) Values() []StreamingEndpoint { + if page.selr.IsEmpty() { + return nil + } + return *page.selr.Value +} + +// Creates a new instance of the StreamingEndpointListResultPage type. +func NewStreamingEndpointListResultPage(cur StreamingEndpointListResult, getNextPage func(context.Context, StreamingEndpointListResult) (StreamingEndpointListResult, error)) StreamingEndpointListResultPage { + return StreamingEndpointListResultPage{ + fn: getNextPage, + selr: cur, + } +} + +// StreamingEndpointProperties the streaming endpoint properties. +type StreamingEndpointProperties struct { + // Description - The streaming endpoint description. + Description *string `json:"description,omitempty"` + // ScaleUnits - The number of scale units. Use the Scale operation to adjust this value. + ScaleUnits *int32 `json:"scaleUnits,omitempty"` + // AvailabilitySetName - This feature is deprecated, do not set a value for this property. + AvailabilitySetName *string `json:"availabilitySetName,omitempty"` + // AccessControl - The access control definition of the streaming endpoint. + AccessControl *StreamingEndpointAccessControl `json:"accessControl,omitempty"` + // MaxCacheAge - Max cache age + MaxCacheAge *int64 `json:"maxCacheAge,omitempty"` + // CustomHostNames - The custom host names of the streaming endpoint + CustomHostNames *[]string `json:"customHostNames,omitempty"` + // HostName - READ-ONLY; The streaming endpoint host name. + HostName *string `json:"hostName,omitempty"` + // CdnEnabled - The CDN enabled flag. + CdnEnabled *bool `json:"cdnEnabled,omitempty"` + // CdnProvider - The CDN provider name. + CdnProvider *string `json:"cdnProvider,omitempty"` + // CdnProfile - The CDN profile name. + CdnProfile *string `json:"cdnProfile,omitempty"` + // ProvisioningState - READ-ONLY; The provisioning state of the streaming endpoint. + ProvisioningState *string `json:"provisioningState,omitempty"` + // ResourceState - READ-ONLY; The resource state of the streaming endpoint. Possible values include: 'StreamingEndpointResourceStateStopped', 'StreamingEndpointResourceStateStarting', 'StreamingEndpointResourceStateRunning', 'StreamingEndpointResourceStateStopping', 'StreamingEndpointResourceStateDeleting', 'StreamingEndpointResourceStateScaling' + ResourceState StreamingEndpointResourceState `json:"resourceState,omitempty"` + // CrossSiteAccessPolicies - The streaming endpoint access policies. + CrossSiteAccessPolicies *CrossSiteAccessPolicies `json:"crossSiteAccessPolicies,omitempty"` + // FreeTrialEndTime - READ-ONLY; The free trial expiration time. + FreeTrialEndTime *date.Time `json:"freeTrialEndTime,omitempty"` + // Created - READ-ONLY; The exact time the streaming endpoint was created. + Created *date.Time `json:"created,omitempty"` + // LastModified - READ-ONLY; The exact time the streaming endpoint was last modified. + LastModified *date.Time `json:"lastModified,omitempty"` +} + +// MarshalJSON is the custom marshaler for StreamingEndpointProperties. +func (sep StreamingEndpointProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sep.Description != nil { + objectMap["description"] = sep.Description + } + if sep.ScaleUnits != nil { + objectMap["scaleUnits"] = sep.ScaleUnits + } + if sep.AvailabilitySetName != nil { + objectMap["availabilitySetName"] = sep.AvailabilitySetName + } + if sep.AccessControl != nil { + objectMap["accessControl"] = sep.AccessControl + } + if sep.MaxCacheAge != nil { + objectMap["maxCacheAge"] = sep.MaxCacheAge + } + if sep.CustomHostNames != nil { + objectMap["customHostNames"] = sep.CustomHostNames + } + if sep.CdnEnabled != nil { + objectMap["cdnEnabled"] = sep.CdnEnabled + } + if sep.CdnProvider != nil { + objectMap["cdnProvider"] = sep.CdnProvider + } + if sep.CdnProfile != nil { + objectMap["cdnProfile"] = sep.CdnProfile + } + if sep.CrossSiteAccessPolicies != nil { + objectMap["crossSiteAccessPolicies"] = sep.CrossSiteAccessPolicies + } + return json.Marshal(objectMap) +} + +// StreamingEndpointsCreateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type StreamingEndpointsCreateFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(StreamingEndpointsClient) (StreamingEndpoint, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *StreamingEndpointsCreateFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for StreamingEndpointsCreateFuture.Result. +func (future *StreamingEndpointsCreateFuture) result(client StreamingEndpointsClient) (se StreamingEndpoint, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + se.Response.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.StreamingEndpointsCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if se.Response.Response, err = future.GetResult(sender); err == nil && se.Response.Response.StatusCode != http.StatusNoContent { + se, err = client.CreateResponder(se.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsCreateFuture", "Result", se.Response.Response, "Failure responding to request") + } + } + return +} + +// StreamingEndpointsDeleteFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type StreamingEndpointsDeleteFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(StreamingEndpointsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *StreamingEndpointsDeleteFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for StreamingEndpointsDeleteFuture.Result. +func (future *StreamingEndpointsDeleteFuture) result(client StreamingEndpointsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.StreamingEndpointsDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// StreamingEndpointsScaleFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type StreamingEndpointsScaleFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(StreamingEndpointsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *StreamingEndpointsScaleFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for StreamingEndpointsScaleFuture.Result. +func (future *StreamingEndpointsScaleFuture) result(client StreamingEndpointsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsScaleFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.StreamingEndpointsScaleFuture") + return + } + ar.Response = future.Response() + return +} + +// StreamingEndpointsStartFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type StreamingEndpointsStartFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(StreamingEndpointsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *StreamingEndpointsStartFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for StreamingEndpointsStartFuture.Result. +func (future *StreamingEndpointsStartFuture) result(client StreamingEndpointsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsStartFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.StreamingEndpointsStartFuture") + return + } + ar.Response = future.Response() + return +} + +// StreamingEndpointsStopFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type StreamingEndpointsStopFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(StreamingEndpointsClient) (autorest.Response, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *StreamingEndpointsStopFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for StreamingEndpointsStopFuture.Result. +func (future *StreamingEndpointsStopFuture) result(client StreamingEndpointsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsStopFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + ar.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.StreamingEndpointsStopFuture") + return + } + ar.Response = future.Response() + return +} + +// StreamingEndpointsUpdateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type StreamingEndpointsUpdateFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(StreamingEndpointsClient) (StreamingEndpoint, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *StreamingEndpointsUpdateFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for StreamingEndpointsUpdateFuture.Result. +func (future *StreamingEndpointsUpdateFuture) result(client StreamingEndpointsClient) (se StreamingEndpoint, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + se.Response.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("media.StreamingEndpointsUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if se.Response.Response, err = future.GetResult(sender); err == nil && se.Response.Response.StatusCode != http.StatusNoContent { + se, err = client.UpdateResponder(se.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsUpdateFuture", "Result", se.Response.Response, "Failure responding to request") + } + } + return +} + +// StreamingEntityScaleUnit scale units definition +type StreamingEntityScaleUnit struct { + // ScaleUnit - The scale unit number of the streaming endpoint. + ScaleUnit *int32 `json:"scaleUnit,omitempty"` +} + +// StreamingLocator a Streaming Locator resource +type StreamingLocator struct { + autorest.Response `json:"-"` + *StreamingLocatorProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for StreamingLocator. +func (sl StreamingLocator) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sl.StreamingLocatorProperties != nil { + objectMap["properties"] = sl.StreamingLocatorProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for StreamingLocator struct. +func (sl *StreamingLocator) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var streamingLocatorProperties StreamingLocatorProperties + err = json.Unmarshal(*v, &streamingLocatorProperties) + if err != nil { + return err + } + sl.StreamingLocatorProperties = &streamingLocatorProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + sl.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + sl.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + sl.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + sl.Type = &typeVar + } + } + } + + return nil +} + +// StreamingLocatorCollection a collection of StreamingLocator items. +type StreamingLocatorCollection struct { + autorest.Response `json:"-"` + // Value - A collection of StreamingLocator items. + Value *[]StreamingLocator `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// StreamingLocatorCollectionIterator provides access to a complete listing of StreamingLocator values. +type StreamingLocatorCollectionIterator struct { + i int + page StreamingLocatorCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *StreamingLocatorCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *StreamingLocatorCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter StreamingLocatorCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter StreamingLocatorCollectionIterator) Response() StreamingLocatorCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter StreamingLocatorCollectionIterator) Value() StreamingLocator { + if !iter.page.NotDone() { + return StreamingLocator{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the StreamingLocatorCollectionIterator type. +func NewStreamingLocatorCollectionIterator(page StreamingLocatorCollectionPage) StreamingLocatorCollectionIterator { + return StreamingLocatorCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (slc StreamingLocatorCollection) IsEmpty() bool { + return slc.Value == nil || len(*slc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (slc StreamingLocatorCollection) hasNextLink() bool { + return slc.OdataNextLink != nil && len(*slc.OdataNextLink) != 0 +} + +// streamingLocatorCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (slc StreamingLocatorCollection) streamingLocatorCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !slc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(slc.OdataNextLink))) +} + +// StreamingLocatorCollectionPage contains a page of StreamingLocator values. +type StreamingLocatorCollectionPage struct { + fn func(context.Context, StreamingLocatorCollection) (StreamingLocatorCollection, error) + slc StreamingLocatorCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *StreamingLocatorCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.slc) + if err != nil { + return err + } + page.slc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *StreamingLocatorCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page StreamingLocatorCollectionPage) NotDone() bool { + return !page.slc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page StreamingLocatorCollectionPage) Response() StreamingLocatorCollection { + return page.slc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page StreamingLocatorCollectionPage) Values() []StreamingLocator { + if page.slc.IsEmpty() { + return nil + } + return *page.slc.Value +} + +// Creates a new instance of the StreamingLocatorCollectionPage type. +func NewStreamingLocatorCollectionPage(cur StreamingLocatorCollection, getNextPage func(context.Context, StreamingLocatorCollection) (StreamingLocatorCollection, error)) StreamingLocatorCollectionPage { + return StreamingLocatorCollectionPage{ + fn: getNextPage, + slc: cur, + } +} + +// StreamingLocatorContentKey class for content key in Streaming Locator +type StreamingLocatorContentKey struct { + // ID - ID of Content Key + ID *uuid.UUID `json:"id,omitempty"` + // Type - READ-ONLY; Encryption type of Content Key. Possible values include: 'StreamingLocatorContentKeyTypeCommonEncryptionCenc', 'StreamingLocatorContentKeyTypeCommonEncryptionCbcs', 'StreamingLocatorContentKeyTypeEnvelopeEncryption' + Type StreamingLocatorContentKeyType `json:"type,omitempty"` + // LabelReferenceInStreamingPolicy - Label of Content Key as specified in the Streaming Policy + LabelReferenceInStreamingPolicy *string `json:"labelReferenceInStreamingPolicy,omitempty"` + // Value - Value of Content Key + Value *string `json:"value,omitempty"` + // PolicyName - READ-ONLY; ContentKeyPolicy used by Content Key + PolicyName *string `json:"policyName,omitempty"` + // Tracks - READ-ONLY; Tracks which use this Content Key + Tracks *[]TrackSelection `json:"tracks,omitempty"` +} + +// MarshalJSON is the custom marshaler for StreamingLocatorContentKey. +func (slck StreamingLocatorContentKey) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if slck.ID != nil { + objectMap["id"] = slck.ID + } + if slck.LabelReferenceInStreamingPolicy != nil { + objectMap["labelReferenceInStreamingPolicy"] = slck.LabelReferenceInStreamingPolicy + } + if slck.Value != nil { + objectMap["value"] = slck.Value + } + return json.Marshal(objectMap) +} + +// StreamingLocatorProperties properties of the Streaming Locator. +type StreamingLocatorProperties struct { + // AssetName - Asset Name + AssetName *string `json:"assetName,omitempty"` + // Created - READ-ONLY; The creation time of the Streaming Locator. + Created *date.Time `json:"created,omitempty"` + // StartTime - The start time of the Streaming Locator. + StartTime *date.Time `json:"startTime,omitempty"` + // EndTime - The end time of the Streaming Locator. + EndTime *date.Time `json:"endTime,omitempty"` + // StreamingLocatorID - The StreamingLocatorId of the Streaming Locator. + StreamingLocatorID *uuid.UUID `json:"streamingLocatorId,omitempty"` + // StreamingPolicyName - Name of the Streaming Policy used by this Streaming Locator. Either specify the name of Streaming Policy you created or use one of the predefined Streaming Policies. The predefined Streaming Policies available are: 'Predefined_DownloadOnly', 'Predefined_ClearStreamingOnly', 'Predefined_DownloadAndClearStreaming', 'Predefined_ClearKey', 'Predefined_MultiDrmCencStreaming' and 'Predefined_MultiDrmStreaming' + StreamingPolicyName *string `json:"streamingPolicyName,omitempty"` + // DefaultContentKeyPolicyName - Name of the default ContentKeyPolicy used by this Streaming Locator. + DefaultContentKeyPolicyName *string `json:"defaultContentKeyPolicyName,omitempty"` + // ContentKeys - The ContentKeys used by this Streaming Locator. + ContentKeys *[]StreamingLocatorContentKey `json:"contentKeys,omitempty"` + // AlternativeMediaID - Alternative Media ID of this Streaming Locator + AlternativeMediaID *string `json:"alternativeMediaId,omitempty"` + // Filters - A list of asset or account filters which apply to this streaming locator + Filters *[]string `json:"filters,omitempty"` +} + +// MarshalJSON is the custom marshaler for StreamingLocatorProperties. +func (slp StreamingLocatorProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if slp.AssetName != nil { + objectMap["assetName"] = slp.AssetName + } + if slp.StartTime != nil { + objectMap["startTime"] = slp.StartTime + } + if slp.EndTime != nil { + objectMap["endTime"] = slp.EndTime + } + if slp.StreamingLocatorID != nil { + objectMap["streamingLocatorId"] = slp.StreamingLocatorID + } + if slp.StreamingPolicyName != nil { + objectMap["streamingPolicyName"] = slp.StreamingPolicyName + } + if slp.DefaultContentKeyPolicyName != nil { + objectMap["defaultContentKeyPolicyName"] = slp.DefaultContentKeyPolicyName + } + if slp.ContentKeys != nil { + objectMap["contentKeys"] = slp.ContentKeys + } + if slp.AlternativeMediaID != nil { + objectMap["alternativeMediaId"] = slp.AlternativeMediaID + } + if slp.Filters != nil { + objectMap["filters"] = slp.Filters + } + return json.Marshal(objectMap) +} + +// StreamingPath class of paths for streaming +type StreamingPath struct { + // StreamingProtocol - Streaming protocol. Possible values include: 'StreamingPolicyStreamingProtocolHls', 'StreamingPolicyStreamingProtocolDash', 'StreamingPolicyStreamingProtocolSmoothStreaming', 'StreamingPolicyStreamingProtocolDownload' + StreamingProtocol StreamingPolicyStreamingProtocol `json:"streamingProtocol,omitempty"` + // EncryptionScheme - Encryption scheme. Possible values include: 'EncryptionSchemeNoEncryption', 'EncryptionSchemeEnvelopeEncryption', 'EncryptionSchemeCommonEncryptionCenc', 'EncryptionSchemeCommonEncryptionCbcs' + EncryptionScheme EncryptionScheme `json:"encryptionScheme,omitempty"` + // Paths - Streaming paths for each protocol and encryptionScheme pair + Paths *[]string `json:"paths,omitempty"` +} + +// StreamingPolicy a Streaming Policy resource +type StreamingPolicy struct { + autorest.Response `json:"-"` + *StreamingPolicyProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for StreamingPolicy. +func (sp StreamingPolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sp.StreamingPolicyProperties != nil { + objectMap["properties"] = sp.StreamingPolicyProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for StreamingPolicy struct. +func (sp *StreamingPolicy) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var streamingPolicyProperties StreamingPolicyProperties + err = json.Unmarshal(*v, &streamingPolicyProperties) + if err != nil { + return err + } + sp.StreamingPolicyProperties = &streamingPolicyProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + sp.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + sp.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + sp.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + sp.Type = &typeVar + } + } + } + + return nil +} + +// StreamingPolicyCollection a collection of StreamingPolicy items. +type StreamingPolicyCollection struct { + autorest.Response `json:"-"` + // Value - A collection of StreamingPolicy items. + Value *[]StreamingPolicy `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// StreamingPolicyCollectionIterator provides access to a complete listing of StreamingPolicy values. +type StreamingPolicyCollectionIterator struct { + i int + page StreamingPolicyCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *StreamingPolicyCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingPolicyCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *StreamingPolicyCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter StreamingPolicyCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter StreamingPolicyCollectionIterator) Response() StreamingPolicyCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter StreamingPolicyCollectionIterator) Value() StreamingPolicy { + if !iter.page.NotDone() { + return StreamingPolicy{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the StreamingPolicyCollectionIterator type. +func NewStreamingPolicyCollectionIterator(page StreamingPolicyCollectionPage) StreamingPolicyCollectionIterator { + return StreamingPolicyCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (spc StreamingPolicyCollection) IsEmpty() bool { + return spc.Value == nil || len(*spc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (spc StreamingPolicyCollection) hasNextLink() bool { + return spc.OdataNextLink != nil && len(*spc.OdataNextLink) != 0 +} + +// streamingPolicyCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (spc StreamingPolicyCollection) streamingPolicyCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !spc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(spc.OdataNextLink))) +} + +// StreamingPolicyCollectionPage contains a page of StreamingPolicy values. +type StreamingPolicyCollectionPage struct { + fn func(context.Context, StreamingPolicyCollection) (StreamingPolicyCollection, error) + spc StreamingPolicyCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *StreamingPolicyCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingPolicyCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.spc) + if err != nil { + return err + } + page.spc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *StreamingPolicyCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page StreamingPolicyCollectionPage) NotDone() bool { + return !page.spc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page StreamingPolicyCollectionPage) Response() StreamingPolicyCollection { + return page.spc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page StreamingPolicyCollectionPage) Values() []StreamingPolicy { + if page.spc.IsEmpty() { + return nil + } + return *page.spc.Value +} + +// Creates a new instance of the StreamingPolicyCollectionPage type. +func NewStreamingPolicyCollectionPage(cur StreamingPolicyCollection, getNextPage func(context.Context, StreamingPolicyCollection) (StreamingPolicyCollection, error)) StreamingPolicyCollectionPage { + return StreamingPolicyCollectionPage{ + fn: getNextPage, + spc: cur, + } +} + +// StreamingPolicyContentKey class to specify properties of content key +type StreamingPolicyContentKey struct { + // Label - Label can be used to specify Content Key when creating a Streaming Locator + Label *string `json:"label,omitempty"` + // PolicyName - Policy used by Content Key + PolicyName *string `json:"policyName,omitempty"` + // Tracks - Tracks which use this content key + Tracks *[]TrackSelection `json:"tracks,omitempty"` +} + +// StreamingPolicyContentKeys class to specify properties of all content keys in Streaming Policy +type StreamingPolicyContentKeys struct { + // DefaultKey - Default content key for an encryption scheme + DefaultKey *DefaultKey `json:"defaultKey,omitempty"` + // KeyToTrackMappings - Representing tracks needs separate content key + KeyToTrackMappings *[]StreamingPolicyContentKey `json:"keyToTrackMappings,omitempty"` +} + +// StreamingPolicyFairPlayConfiguration class to specify configurations of FairPlay in Streaming Policy +type StreamingPolicyFairPlayConfiguration struct { + // CustomLicenseAcquisitionURLTemplate - Template for the URL of the custom service delivering licenses to end user players. Not required when using Azure Media Services for issuing licenses. The template supports replaceable tokens that the service will update at runtime with the value specific to the request. The currently supported token values are {AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId, and {ContentKeyId}, which is replaced with the value of identifier of the key being requested. + CustomLicenseAcquisitionURLTemplate *string `json:"customLicenseAcquisitionUrlTemplate,omitempty"` + // AllowPersistentLicense - All license to be persistent or not + AllowPersistentLicense *bool `json:"allowPersistentLicense,omitempty"` +} + +// StreamingPolicyPlayReadyConfiguration class to specify configurations of PlayReady in Streaming Policy +type StreamingPolicyPlayReadyConfiguration struct { + // CustomLicenseAcquisitionURLTemplate - Template for the URL of the custom service delivering licenses to end user players. Not required when using Azure Media Services for issuing licenses. The template supports replaceable tokens that the service will update at runtime with the value specific to the request. The currently supported token values are {AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId, and {ContentKeyId}, which is replaced with the value of identifier of the key being requested. + CustomLicenseAcquisitionURLTemplate *string `json:"customLicenseAcquisitionUrlTemplate,omitempty"` + // PlayReadyCustomAttributes - Custom attributes for PlayReady + PlayReadyCustomAttributes *string `json:"playReadyCustomAttributes,omitempty"` +} + +// StreamingPolicyProperties class to specify properties of Streaming Policy +type StreamingPolicyProperties struct { + // Created - READ-ONLY; Creation time of Streaming Policy + Created *date.Time `json:"created,omitempty"` + // DefaultContentKeyPolicyName - Default ContentKey used by current Streaming Policy + DefaultContentKeyPolicyName *string `json:"defaultContentKeyPolicyName,omitempty"` + // EnvelopeEncryption - Configuration of EnvelopeEncryption + EnvelopeEncryption *EnvelopeEncryption `json:"envelopeEncryption,omitempty"` + // CommonEncryptionCenc - Configuration of CommonEncryptionCenc + CommonEncryptionCenc *CommonEncryptionCenc `json:"commonEncryptionCenc,omitempty"` + // CommonEncryptionCbcs - Configuration of CommonEncryptionCbcs + CommonEncryptionCbcs *CommonEncryptionCbcs `json:"commonEncryptionCbcs,omitempty"` + // NoEncryption - Configurations of NoEncryption + NoEncryption *NoEncryption `json:"noEncryption,omitempty"` +} + +// MarshalJSON is the custom marshaler for StreamingPolicyProperties. +func (spp StreamingPolicyProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if spp.DefaultContentKeyPolicyName != nil { + objectMap["defaultContentKeyPolicyName"] = spp.DefaultContentKeyPolicyName + } + if spp.EnvelopeEncryption != nil { + objectMap["envelopeEncryption"] = spp.EnvelopeEncryption + } + if spp.CommonEncryptionCenc != nil { + objectMap["commonEncryptionCenc"] = spp.CommonEncryptionCenc + } + if spp.CommonEncryptionCbcs != nil { + objectMap["commonEncryptionCbcs"] = spp.CommonEncryptionCbcs + } + if spp.NoEncryption != nil { + objectMap["noEncryption"] = spp.NoEncryption + } + return json.Marshal(objectMap) +} + +// StreamingPolicyWidevineConfiguration class to specify configurations of Widevine in Streaming Policy +type StreamingPolicyWidevineConfiguration struct { + // CustomLicenseAcquisitionURLTemplate - Template for the URL of the custom service delivering licenses to end user players. Not required when using Azure Media Services for issuing licenses. The template supports replaceable tokens that the service will update at runtime with the value specific to the request. The currently supported token values are {AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId, and {ContentKeyId}, which is replaced with the value of identifier of the key being requested. + CustomLicenseAcquisitionURLTemplate *string `json:"customLicenseAcquisitionUrlTemplate,omitempty"` +} + +// SyncStorageKeysInput the input to the sync storage keys request. +type SyncStorageKeysInput struct { + // ID - The ID of the storage account resource. + ID *string `json:"id,omitempty"` +} + +// SystemData metadata pertaining to creation and last modification of the resource. +type SystemData struct { + // CreatedBy - The identity that created the resource. + CreatedBy *string `json:"createdBy,omitempty"` + // CreatedByType - The type of identity that created the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' + CreatedByType CreatedByType `json:"createdByType,omitempty"` + // CreatedAt - The timestamp of resource creation (UTC). + CreatedAt *date.Time `json:"createdAt,omitempty"` + // LastModifiedBy - The identity that last modified the resource. + LastModifiedBy *string `json:"lastModifiedBy,omitempty"` + // LastModifiedByType - The type of identity that last modified the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' + LastModifiedByType CreatedByType `json:"lastModifiedByType,omitempty"` + // LastModifiedAt - The timestamp of resource last modification (UTC) + LastModifiedAt *date.Time `json:"lastModifiedAt,omitempty"` +} + +// BasicTrackDescriptor base type for all TrackDescriptor types, which define the metadata and selection for tracks +// that should be processed by a Job +type BasicTrackDescriptor interface { + AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) + AsBasicAudioTrackDescriptor() (BasicAudioTrackDescriptor, bool) + AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) + AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) + AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) + AsBasicVideoTrackDescriptor() (BasicVideoTrackDescriptor, bool) + AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) + AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) + AsTrackDescriptor() (*TrackDescriptor, bool) +} + +// TrackDescriptor base type for all TrackDescriptor types, which define the metadata and selection for tracks +// that should be processed by a Job +type TrackDescriptor struct { + // OdataType - Possible values include: 'OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID' + OdataType OdataTypeBasicTrackDescriptor `json:"@odata.type,omitempty"` +} + +func unmarshalBasicTrackDescriptor(body []byte) (BasicTrackDescriptor, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor): + var atd AudioTrackDescriptor + err := json.Unmarshal(body, &atd) + return atd, err + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute): + var satba SelectAudioTrackByAttribute + err := json.Unmarshal(body, &satba) + return satba, err + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID): + var satbi SelectAudioTrackByID + err := json.Unmarshal(body, &satbi) + return satbi, err + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor): + var vtd VideoTrackDescriptor + err := json.Unmarshal(body, &vtd) + return vtd, err + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute): + var svtba SelectVideoTrackByAttribute + err := json.Unmarshal(body, &svtba) + return svtba, err + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID): + var svtbi SelectVideoTrackByID + err := json.Unmarshal(body, &svtbi) + return svtbi, err + default: + var td TrackDescriptor + err := json.Unmarshal(body, &td) + return td, err + } +} +func unmarshalBasicTrackDescriptorArray(body []byte) ([]BasicTrackDescriptor, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + tdArray := make([]BasicTrackDescriptor, len(rawMessages)) + + for index, rawMessage := range rawMessages { + td, err := unmarshalBasicTrackDescriptor(*rawMessage) + if err != nil { + return nil, err + } + tdArray[index] = td + } + return tdArray, nil +} + +// MarshalJSON is the custom marshaler for TrackDescriptor. +func (td TrackDescriptor) MarshalJSON() ([]byte, error) { + td.OdataType = OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor + objectMap := make(map[string]interface{}) + if td.OdataType != "" { + objectMap["@odata.type"] = td.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioTrackDescriptor is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) { + return nil, false +} + +// AsBasicAudioTrackDescriptor is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsBasicAudioTrackDescriptor() (BasicAudioTrackDescriptor, bool) { + return nil, false +} + +// AsSelectAudioTrackByAttribute is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) { + return nil, false +} + +// AsSelectAudioTrackByID is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) { + return nil, false +} + +// AsVideoTrackDescriptor is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) { + return nil, false +} + +// AsBasicVideoTrackDescriptor is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsBasicVideoTrackDescriptor() (BasicVideoTrackDescriptor, bool) { + return nil, false +} + +// AsSelectVideoTrackByAttribute is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) { + return nil, false +} + +// AsSelectVideoTrackByID is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) { + return nil, false +} + +// AsTrackDescriptor is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsTrackDescriptor() (*TrackDescriptor, bool) { + return &td, true +} + +// AsBasicTrackDescriptor is the BasicTrackDescriptor implementation for TrackDescriptor. +func (td TrackDescriptor) AsBasicTrackDescriptor() (BasicTrackDescriptor, bool) { + return &td, true +} + +// TrackedResource the resource model definition for an Azure Resource Manager tracked top level resource +// which has 'tags' and a 'location' +type TrackedResource struct { + // Tags - Resource tags. + Tags map[string]*string `json:"tags"` + // Location - The geo-location where the resource lives + Location *string `json:"location,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for TrackedResource. +func (tr TrackedResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if tr.Tags != nil { + objectMap["tags"] = tr.Tags + } + if tr.Location != nil { + objectMap["location"] = tr.Location + } + return json.Marshal(objectMap) +} + +// TrackPropertyCondition class to specify one track property condition +type TrackPropertyCondition struct { + // Property - Track property type. Possible values include: 'TrackPropertyTypeUnknown', 'TrackPropertyTypeFourCC' + Property TrackPropertyType `json:"property,omitempty"` + // Operation - Track property condition operation. Possible values include: 'TrackPropertyCompareOperationUnknown', 'TrackPropertyCompareOperationEqual' + Operation TrackPropertyCompareOperation `json:"operation,omitempty"` + // Value - Track property value + Value *string `json:"value,omitempty"` +} + +// TrackSelection class to select a track +type TrackSelection struct { + // TrackSelections - TrackSelections is a track property condition list which can specify track(s) + TrackSelections *[]TrackPropertyCondition `json:"trackSelections,omitempty"` +} + +// Transform a Transform encapsulates the rules or instructions for generating desired outputs from input +// media, such as by transcoding or by extracting insights. After the Transform is created, it can be +// applied to input media by creating Jobs. +type Transform struct { + autorest.Response `json:"-"` + // TransformProperties - The resource properties. + *TransformProperties `json:"properties,omitempty"` + // SystemData - READ-ONLY; The system metadata relating to this resource. + SystemData *SystemData `json:"systemData,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Transform. +func (t Transform) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if t.TransformProperties != nil { + objectMap["properties"] = t.TransformProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Transform struct. +func (t *Transform) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var transformProperties TransformProperties + err = json.Unmarshal(*v, &transformProperties) + if err != nil { + return err + } + t.TransformProperties = &transformProperties + } + case "systemData": + if v != nil { + var systemData SystemData + err = json.Unmarshal(*v, &systemData) + if err != nil { + return err + } + t.SystemData = &systemData + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + t.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + t.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + t.Type = &typeVar + } + } + } + + return nil +} + +// TransformCollection a collection of Transform items. +type TransformCollection struct { + autorest.Response `json:"-"` + // Value - A collection of Transform items. + Value *[]Transform `json:"value,omitempty"` + // OdataNextLink - A link to the next page of the collection (when the collection contains too many results to return in one response). + OdataNextLink *string `json:"@odata.nextLink,omitempty"` +} + +// TransformCollectionIterator provides access to a complete listing of Transform values. +type TransformCollectionIterator struct { + i int + page TransformCollectionPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *TransformCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TransformCollectionIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *TransformCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter TransformCollectionIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter TransformCollectionIterator) Response() TransformCollection { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter TransformCollectionIterator) Value() Transform { + if !iter.page.NotDone() { + return Transform{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the TransformCollectionIterator type. +func NewTransformCollectionIterator(page TransformCollectionPage) TransformCollectionIterator { + return TransformCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (tc TransformCollection) IsEmpty() bool { + return tc.Value == nil || len(*tc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (tc TransformCollection) hasNextLink() bool { + return tc.OdataNextLink != nil && len(*tc.OdataNextLink) != 0 +} + +// transformCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (tc TransformCollection) transformCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !tc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(tc.OdataNextLink))) +} + +// TransformCollectionPage contains a page of Transform values. +type TransformCollectionPage struct { + fn func(context.Context, TransformCollection) (TransformCollection, error) + tc TransformCollection +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *TransformCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TransformCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.tc) + if err != nil { + return err + } + page.tc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *TransformCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page TransformCollectionPage) NotDone() bool { + return !page.tc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page TransformCollectionPage) Response() TransformCollection { + return page.tc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page TransformCollectionPage) Values() []Transform { + if page.tc.IsEmpty() { + return nil + } + return *page.tc.Value +} + +// Creates a new instance of the TransformCollectionPage type. +func NewTransformCollectionPage(cur TransformCollection, getNextPage func(context.Context, TransformCollection) (TransformCollection, error)) TransformCollectionPage { + return TransformCollectionPage{ + fn: getNextPage, + tc: cur, + } +} + +// TransformOutput describes the properties of a TransformOutput, which are the rules to be applied while +// generating the desired output. +type TransformOutput struct { + // OnError - A Transform can define more than one outputs. This property defines what the service should do when one output fails - either continue to produce other outputs, or, stop the other outputs. The overall Job state will not reflect failures of outputs that are specified with 'ContinueJob'. The default is 'StopProcessingJob'. Possible values include: 'OnErrorTypeStopProcessingJob', 'OnErrorTypeContinueJob' + OnError OnErrorType `json:"onError,omitempty"` + // RelativePriority - Sets the relative priority of the TransformOutputs within a Transform. This sets the priority that the service uses for processing TransformOutputs. The default priority is Normal. Possible values include: 'PriorityLow', 'PriorityNormal', 'PriorityHigh' + RelativePriority Priority `json:"relativePriority,omitempty"` + // Preset - Preset that describes the operations that will be used to modify, transcode, or extract insights from the source file to generate the output. + Preset BasicPreset `json:"preset,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for TransformOutput struct. +func (toVar *TransformOutput) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "onError": + if v != nil { + var onError OnErrorType + err = json.Unmarshal(*v, &onError) + if err != nil { + return err + } + toVar.OnError = onError + } + case "relativePriority": + if v != nil { + var relativePriority Priority + err = json.Unmarshal(*v, &relativePriority) + if err != nil { + return err + } + toVar.RelativePriority = relativePriority + } + case "preset": + if v != nil { + preset, err := unmarshalBasicPreset(*v) + if err != nil { + return err + } + toVar.Preset = preset + } + } + } + + return nil +} + +// TransformProperties a Transform. +type TransformProperties struct { + // Created - READ-ONLY; The UTC date and time when the Transform was created, in 'YYYY-MM-DDThh:mm:ssZ' format. + Created *date.Time `json:"created,omitempty"` + // Description - An optional verbose description of the Transform. + Description *string `json:"description,omitempty"` + // LastModified - READ-ONLY; The UTC date and time when the Transform was last updated, in 'YYYY-MM-DDThh:mm:ssZ' format. + LastModified *date.Time `json:"lastModified,omitempty"` + // Outputs - An array of one or more TransformOutputs that the Transform should generate. + Outputs *[]TransformOutput `json:"outputs,omitempty"` +} + +// MarshalJSON is the custom marshaler for TransformProperties. +func (tp TransformProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if tp.Description != nil { + objectMap["description"] = tp.Description + } + if tp.Outputs != nil { + objectMap["outputs"] = tp.Outputs + } + return json.Marshal(objectMap) +} + +// TransportStreamFormat describes the properties for generating an MPEG-2 Transport Stream (ISO/IEC +// 13818-1) output video file(s). +type TransportStreamFormat struct { + // OutputFiles - The list of output files to produce. Each entry in the list is a set of audio and video layer labels to be muxed together . + OutputFiles *[]OutputFile `json:"outputFiles,omitempty"` + // FilenamePattern - The pattern of the file names for the generated output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {Bitrate} - The audio/video bitrate. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename. + FilenamePattern *string `json:"filenamePattern,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicFormatOdataTypeFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaImageFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaJpgFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaPngFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMultiBitrateFormat', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaMp4Format', 'OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat' + OdataType OdataTypeBasicFormat `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for TransportStreamFormat. +func (tsf TransportStreamFormat) MarshalJSON() ([]byte, error) { + tsf.OdataType = OdataTypeBasicFormatOdataTypeMicrosoftMediaTransportStreamFormat + objectMap := make(map[string]interface{}) + if tsf.OutputFiles != nil { + objectMap["outputFiles"] = tsf.OutputFiles + } + if tsf.FilenamePattern != nil { + objectMap["filenamePattern"] = tsf.FilenamePattern + } + if tsf.OdataType != "" { + objectMap["@odata.type"] = tsf.OdataType + } + return json.Marshal(objectMap) +} + +// AsImageFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsImageFormat() (*ImageFormat, bool) { + return nil, false +} + +// AsBasicImageFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsBasicImageFormat() (BasicImageFormat, bool) { + return nil, false +} + +// AsJpgFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsJpgFormat() (*JpgFormat, bool) { + return nil, false +} + +// AsPngFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsPngFormat() (*PngFormat, bool) { + return nil, false +} + +// AsMultiBitrateFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsMultiBitrateFormat() (*MultiBitrateFormat, bool) { + return nil, false +} + +// AsBasicMultiBitrateFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsBasicMultiBitrateFormat() (BasicMultiBitrateFormat, bool) { + return &tsf, true +} + +// AsMp4Format is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsMp4Format() (*Mp4Format, bool) { + return nil, false +} + +// AsTransportStreamFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsTransportStreamFormat() (*TransportStreamFormat, bool) { + return &tsf, true +} + +// AsFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsFormat() (*Format, bool) { + return nil, false +} + +// AsBasicFormat is the BasicFormat implementation for TransportStreamFormat. +func (tsf TransportStreamFormat) AsBasicFormat() (BasicFormat, bool) { + return &tsf, true +} + +// UserAssignedManagedIdentity ... +type UserAssignedManagedIdentity struct { + // ClientID - READ-ONLY; The client ID. + ClientID *uuid.UUID `json:"clientId,omitempty"` + // PrincipalID - READ-ONLY; The principal ID. + PrincipalID *uuid.UUID `json:"principalId,omitempty"` +} + +// MarshalJSON is the custom marshaler for UserAssignedManagedIdentity. +func (uami UserAssignedManagedIdentity) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// UtcClipTime specifies the clip time as a Utc time position in the media file. The Utc time can point to +// a different position depending on whether the media file starts from a timestamp of zero or not. +type UtcClipTime struct { + // Time - The time position on the timeline of the input media based on Utc time. + Time *date.Time `json:"time,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicClipTimeOdataTypeClipTime', 'OdataTypeBasicClipTimeOdataTypeMicrosoftMediaAbsoluteClipTime', 'OdataTypeBasicClipTimeOdataTypeMicrosoftMediaUtcClipTime' + OdataType OdataTypeBasicClipTime `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for UtcClipTime. +func (uct UtcClipTime) MarshalJSON() ([]byte, error) { + uct.OdataType = OdataTypeBasicClipTimeOdataTypeMicrosoftMediaUtcClipTime + objectMap := make(map[string]interface{}) + if uct.Time != nil { + objectMap["time"] = uct.Time + } + if uct.OdataType != "" { + objectMap["@odata.type"] = uct.OdataType + } + return json.Marshal(objectMap) +} + +// AsAbsoluteClipTime is the BasicClipTime implementation for UtcClipTime. +func (uct UtcClipTime) AsAbsoluteClipTime() (*AbsoluteClipTime, bool) { + return nil, false +} + +// AsUtcClipTime is the BasicClipTime implementation for UtcClipTime. +func (uct UtcClipTime) AsUtcClipTime() (*UtcClipTime, bool) { + return &uct, true +} + +// AsClipTime is the BasicClipTime implementation for UtcClipTime. +func (uct UtcClipTime) AsClipTime() (*ClipTime, bool) { + return nil, false +} + +// AsBasicClipTime is the BasicClipTime implementation for UtcClipTime. +func (uct UtcClipTime) AsBasicClipTime() (BasicClipTime, bool) { + return &uct, true +} + +// BasicVideo describes the basic properties for encoding the input video. +type BasicVideo interface { + AsH265Video() (*H265Video, bool) + AsImage() (*Image, bool) + AsBasicImage() (BasicImage, bool) + AsH264Video() (*H264Video, bool) + AsJpgImage() (*JpgImage, bool) + AsPngImage() (*PngImage, bool) + AsVideo() (*Video, bool) +} + +// Video describes the basic properties for encoding the input video. +type Video struct { + // KeyFrameInterval - The distance between two key frames. The value should be non-zero in the range [0.5, 20] seconds, specified in ISO 8601 format. The default is 2 seconds(PT2S). Note that this setting is ignored if VideoSyncMode.Passthrough is set, where the KeyFrameInterval value will follow the input source setting. + KeyFrameInterval *string `json:"keyFrameInterval,omitempty"` + // StretchMode - The resizing mode - how the input video will be resized to fit the desired output resolution(s). Default is AutoSize. Possible values include: 'StretchModeNone', 'StretchModeAutoSize', 'StretchModeAutoFit' + StretchMode StretchMode `json:"stretchMode,omitempty"` + // SyncMode - The Video Sync Mode. Possible values include: 'VideoSyncModeAuto', 'VideoSyncModePassthrough', 'VideoSyncModeCfr', 'VideoSyncModeVfr' + SyncMode VideoSyncMode `json:"syncMode,omitempty"` + // Label - An optional label for the codec. The label can be used to control muxing behavior. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicCodecOdataTypeCodec', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaAacAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyVideo', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaCopyAudio', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage', 'OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage' + OdataType OdataTypeBasicCodec `json:"@odata.type,omitempty"` +} + +func unmarshalBasicVideo(body []byte) (BasicVideo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaH265Video): + var hv H265Video + err := json.Unmarshal(body, &hv) + return hv, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaImage): + var i Image + err := json.Unmarshal(body, &i) + return i, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaH264Video): + var hv H264Video + err := json.Unmarshal(body, &hv) + return hv, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaJpgImage): + var ji JpgImage + err := json.Unmarshal(body, &ji) + return ji, err + case string(OdataTypeBasicCodecOdataTypeMicrosoftMediaPngImage): + var pi PngImage + err := json.Unmarshal(body, &pi) + return pi, err + default: + var vVar Video + err := json.Unmarshal(body, &vVar) + return vVar, err + } +} +func unmarshalBasicVideoArray(body []byte) ([]BasicVideo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + vVarArray := make([]BasicVideo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + vVar, err := unmarshalBasicVideo(*rawMessage) + if err != nil { + return nil, err + } + vVarArray[index] = vVar + } + return vVarArray, nil +} + +// MarshalJSON is the custom marshaler for Video. +func (vVar Video) MarshalJSON() ([]byte, error) { + vVar.OdataType = OdataTypeBasicCodecOdataTypeMicrosoftMediaVideo + objectMap := make(map[string]interface{}) + if vVar.KeyFrameInterval != nil { + objectMap["keyFrameInterval"] = vVar.KeyFrameInterval + } + if vVar.StretchMode != "" { + objectMap["stretchMode"] = vVar.StretchMode + } + if vVar.SyncMode != "" { + objectMap["syncMode"] = vVar.SyncMode + } + if vVar.Label != nil { + objectMap["label"] = vVar.Label + } + if vVar.OdataType != "" { + objectMap["@odata.type"] = vVar.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudio is the BasicCodec implementation for Video. +func (vVar Video) AsAudio() (*Audio, bool) { + return nil, false +} + +// AsBasicAudio is the BasicCodec implementation for Video. +func (vVar Video) AsBasicAudio() (BasicAudio, bool) { + return nil, false +} + +// AsAacAudio is the BasicCodec implementation for Video. +func (vVar Video) AsAacAudio() (*AacAudio, bool) { + return nil, false +} + +// AsVideo is the BasicCodec implementation for Video. +func (vVar Video) AsVideo() (*Video, bool) { + return &vVar, true +} + +// AsBasicVideo is the BasicCodec implementation for Video. +func (vVar Video) AsBasicVideo() (BasicVideo, bool) { + return &vVar, true +} + +// AsH265Video is the BasicCodec implementation for Video. +func (vVar Video) AsH265Video() (*H265Video, bool) { + return nil, false +} + +// AsCopyVideo is the BasicCodec implementation for Video. +func (vVar Video) AsCopyVideo() (*CopyVideo, bool) { + return nil, false +} + +// AsImage is the BasicCodec implementation for Video. +func (vVar Video) AsImage() (*Image, bool) { + return nil, false +} + +// AsBasicImage is the BasicCodec implementation for Video. +func (vVar Video) AsBasicImage() (BasicImage, bool) { + return nil, false +} + +// AsCopyAudio is the BasicCodec implementation for Video. +func (vVar Video) AsCopyAudio() (*CopyAudio, bool) { + return nil, false +} + +// AsH264Video is the BasicCodec implementation for Video. +func (vVar Video) AsH264Video() (*H264Video, bool) { + return nil, false +} + +// AsJpgImage is the BasicCodec implementation for Video. +func (vVar Video) AsJpgImage() (*JpgImage, bool) { + return nil, false +} + +// AsPngImage is the BasicCodec implementation for Video. +func (vVar Video) AsPngImage() (*PngImage, bool) { + return nil, false +} + +// AsCodec is the BasicCodec implementation for Video. +func (vVar Video) AsCodec() (*Codec, bool) { + return nil, false +} + +// AsBasicCodec is the BasicCodec implementation for Video. +func (vVar Video) AsBasicCodec() (BasicCodec, bool) { + return &vVar, true +} + +// VideoAnalyzerPreset a video analyzer preset that extracts insights (rich metadata) from both audio and +// video, and outputs a JSON format file. +type VideoAnalyzerPreset struct { + // InsightsToExtract - Defines the type of insights that you want the service to generate. The allowed values are 'AudioInsightsOnly', 'VideoInsightsOnly', and 'AllInsights'. The default is AllInsights. If you set this to AllInsights and the input is audio only, then only audio insights are generated. Similarly if the input is video only, then only video insights are generated. It is recommended that you not use AudioInsightsOnly if you expect some of your inputs to be video only; or use VideoInsightsOnly if you expect some of your inputs to be audio only. Your Jobs in such conditions would error out. Possible values include: 'InsightsTypeAudioInsightsOnly', 'InsightsTypeVideoInsightsOnly', 'InsightsTypeAllInsights' + InsightsToExtract InsightsType `json:"insightsToExtract,omitempty"` + // AudioLanguage - The language for the audio payload in the input using the BCP-47 format of 'language tag-region' (e.g: 'en-US'). If you know the language of your content, it is recommended that you specify it. The language must be specified explicitly for AudioAnalysisMode::Basic, since automatic language detection is not included in basic mode. If the language isn't specified or set to null, automatic language detection will choose the first language detected and process with the selected language for the duration of the file. It does not currently support dynamically switching between languages after the first language is detected. The automatic detection works best with audio recordings with clearly discernable speech. If automatic detection fails to find the language, transcription would fallback to 'en-US'." The list of supported languages is available here: https://go.microsoft.com/fwlink/?linkid=2109463 + AudioLanguage *string `json:"audioLanguage,omitempty"` + // Mode - Determines the set of audio analysis operations to be performed. If unspecified, the Standard AudioAnalysisMode would be chosen. Possible values include: 'AudioAnalysisModeStandard', 'AudioAnalysisModeBasic' + Mode AudioAnalysisMode `json:"mode,omitempty"` + // ExperimentalOptions - Dictionary containing key value pairs for parameters not exposed in the preset itself + ExperimentalOptions map[string]*string `json:"experimentalOptions"` + // OdataType - Possible values include: 'OdataTypeBasicPresetOdataTypePreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaFaceDetectorPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaAudioAnalyzerPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaBuiltInStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaStandardEncoderPreset', 'OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset' + OdataType OdataTypeBasicPreset `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) MarshalJSON() ([]byte, error) { + vap.OdataType = OdataTypeBasicPresetOdataTypeMicrosoftMediaVideoAnalyzerPreset + objectMap := make(map[string]interface{}) + if vap.InsightsToExtract != "" { + objectMap["insightsToExtract"] = vap.InsightsToExtract + } + if vap.AudioLanguage != nil { + objectMap["audioLanguage"] = vap.AudioLanguage + } + if vap.Mode != "" { + objectMap["mode"] = vap.Mode + } + if vap.ExperimentalOptions != nil { + objectMap["experimentalOptions"] = vap.ExperimentalOptions + } + if vap.OdataType != "" { + objectMap["@odata.type"] = vap.OdataType + } + return json.Marshal(objectMap) +} + +// AsFaceDetectorPreset is the BasicPreset implementation for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) AsFaceDetectorPreset() (*FaceDetectorPreset, bool) { + return nil, false +} + +// AsAudioAnalyzerPreset is the BasicPreset implementation for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) AsAudioAnalyzerPreset() (*AudioAnalyzerPreset, bool) { + return nil, false +} + +// AsBasicAudioAnalyzerPreset is the BasicPreset implementation for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) AsBasicAudioAnalyzerPreset() (BasicAudioAnalyzerPreset, bool) { + return &vap, true +} + +// AsBuiltInStandardEncoderPreset is the BasicPreset implementation for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) AsBuiltInStandardEncoderPreset() (*BuiltInStandardEncoderPreset, bool) { + return nil, false +} + +// AsStandardEncoderPreset is the BasicPreset implementation for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) AsStandardEncoderPreset() (*StandardEncoderPreset, bool) { + return nil, false +} + +// AsVideoAnalyzerPreset is the BasicPreset implementation for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) AsVideoAnalyzerPreset() (*VideoAnalyzerPreset, bool) { + return &vap, true +} + +// AsPreset is the BasicPreset implementation for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) AsPreset() (*Preset, bool) { + return nil, false +} + +// AsBasicPreset is the BasicPreset implementation for VideoAnalyzerPreset. +func (vap VideoAnalyzerPreset) AsBasicPreset() (BasicPreset, bool) { + return &vap, true +} + +// BasicVideoLayer describes the settings to be used when encoding the input video into a desired output bitrate layer. +type BasicVideoLayer interface { + AsH264Layer() (*H264Layer, bool) + AsVideoLayer() (*VideoLayer, bool) +} + +// VideoLayer describes the settings to be used when encoding the input video into a desired output bitrate +// layer. +type VideoLayer struct { + // Bitrate - The average bitrate in bits per second at which to encode the input video when generating this layer. This is a required field. + Bitrate *int32 `json:"bitrate,omitempty"` + // MaxBitrate - The maximum bitrate (in bits per second), at which the VBV buffer should be assumed to refill. If not specified, defaults to the same value as bitrate. + MaxBitrate *int32 `json:"maxBitrate,omitempty"` + // BFrames - The number of B-frames to be used when encoding this layer. If not specified, the encoder chooses an appropriate number based on the video profile and level. + BFrames *int32 `json:"bFrames,omitempty"` + // FrameRate - The frame rate (in frames per second) at which to encode this layer. The value can be in the form of M/N where M and N are integers (For example, 30000/1001), or in the form of a number (For example, 30, or 29.97). The encoder enforces constraints on allowed frame rates based on the profile and level. If it is not specified, the encoder will use the same frame rate as the input video. + FrameRate *string `json:"frameRate,omitempty"` + // Slices - The number of slices to be used when encoding this layer. If not specified, default is zero, which means that encoder will use a single slice for each frame. + Slices *int32 `json:"slices,omitempty"` + // AdaptiveBFrame - Whether or not adaptive B-frames are to be used when encoding this layer. If not specified, the encoder will turn it on whenever the video profile permits its use. + AdaptiveBFrame *bool `json:"adaptiveBFrame,omitempty"` + // Width - The width of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in width as the input. + Width *string `json:"width,omitempty"` + // Height - The height of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in height as the input. + Height *string `json:"height,omitempty"` + // Label - The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file. + Label *string `json:"label,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicLayerOdataTypeLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265VideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH265Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaJpgLayer', 'OdataTypeBasicLayerOdataTypeMicrosoftMediaPngLayer' + OdataType OdataTypeBasicLayer `json:"@odata.type,omitempty"` +} + +func unmarshalBasicVideoLayer(body []byte) (BasicVideoLayer, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicLayerOdataTypeMicrosoftMediaH264Layer): + var hl H264Layer + err := json.Unmarshal(body, &hl) + return hl, err + default: + var vl VideoLayer + err := json.Unmarshal(body, &vl) + return vl, err + } +} +func unmarshalBasicVideoLayerArray(body []byte) ([]BasicVideoLayer, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + vlArray := make([]BasicVideoLayer, len(rawMessages)) + + for index, rawMessage := range rawMessages { + vl, err := unmarshalBasicVideoLayer(*rawMessage) + if err != nil { + return nil, err + } + vlArray[index] = vl + } + return vlArray, nil +} + +// MarshalJSON is the custom marshaler for VideoLayer. +func (vl VideoLayer) MarshalJSON() ([]byte, error) { + vl.OdataType = OdataTypeBasicLayerOdataTypeMicrosoftMediaVideoLayer + objectMap := make(map[string]interface{}) + if vl.Bitrate != nil { + objectMap["bitrate"] = vl.Bitrate + } + if vl.MaxBitrate != nil { + objectMap["maxBitrate"] = vl.MaxBitrate + } + if vl.BFrames != nil { + objectMap["bFrames"] = vl.BFrames + } + if vl.FrameRate != nil { + objectMap["frameRate"] = vl.FrameRate + } + if vl.Slices != nil { + objectMap["slices"] = vl.Slices + } + if vl.AdaptiveBFrame != nil { + objectMap["adaptiveBFrame"] = vl.AdaptiveBFrame + } + if vl.Width != nil { + objectMap["width"] = vl.Width + } + if vl.Height != nil { + objectMap["height"] = vl.Height + } + if vl.Label != nil { + objectMap["label"] = vl.Label + } + if vl.OdataType != "" { + objectMap["@odata.type"] = vl.OdataType + } + return json.Marshal(objectMap) +} + +// AsH265VideoLayer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsH265VideoLayer() (*H265VideoLayer, bool) { + return nil, false +} + +// AsBasicH265VideoLayer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsBasicH265VideoLayer() (BasicH265VideoLayer, bool) { + return nil, false +} + +// AsH265Layer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsH265Layer() (*H265Layer, bool) { + return nil, false +} + +// AsVideoLayer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsVideoLayer() (*VideoLayer, bool) { + return &vl, true +} + +// AsBasicVideoLayer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsBasicVideoLayer() (BasicVideoLayer, bool) { + return &vl, true +} + +// AsH264Layer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsH264Layer() (*H264Layer, bool) { + return nil, false +} + +// AsJpgLayer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsJpgLayer() (*JpgLayer, bool) { + return nil, false +} + +// AsPngLayer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsPngLayer() (*PngLayer, bool) { + return nil, false +} + +// AsLayer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsLayer() (*Layer, bool) { + return nil, false +} + +// AsBasicLayer is the BasicLayer implementation for VideoLayer. +func (vl VideoLayer) AsBasicLayer() (BasicLayer, bool) { + return &vl, true +} + +// VideoOverlay describes the properties of a video overlay. +type VideoOverlay struct { + // Position - The location in the input video where the overlay is applied. + Position *Rectangle `json:"position,omitempty"` + // Opacity - The opacity of the overlay. This is a value in the range [0 - 1.0]. Default is 1.0 which mean the overlay is opaque. + Opacity *float64 `json:"opacity,omitempty"` + // CropRectangle - An optional rectangular window used to crop the overlay image or video. + CropRectangle *Rectangle `json:"cropRectangle,omitempty"` + // InputLabel - The label of the job input which is to be used as an overlay. The Input must specify exactly one file. You can specify an image file in JPG, PNG, GIF or BMP format, or an audio file (such as a WAV, MP3, WMA or M4A file), or a video file. See https://aka.ms/mesformats for the complete list of supported audio and video file formats. + InputLabel *string `json:"inputLabel,omitempty"` + // Start - The start position, with reference to the input video, at which the overlay starts. The value should be in ISO 8601 format. For example, PT05S to start the overlay at 5 seconds into the input video. If not specified the overlay starts from the beginning of the input video. + Start *string `json:"start,omitempty"` + // End - The end position, with reference to the input video, at which the overlay ends. The value should be in ISO 8601 format. For example, PT30S to end the overlay at 30 seconds into the input video. If not specified or the value is greater than the input video duration, the overlay will be applied until the end of the input video if the overlay media duration is greater than the input video duration, else the overlay will last as long as the overlay media duration. + End *string `json:"end,omitempty"` + // FadeInDuration - The duration over which the overlay fades in onto the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade in (same as PT0S). + FadeInDuration *string `json:"fadeInDuration,omitempty"` + // FadeOutDuration - The duration over which the overlay fades out of the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade out (same as PT0S). + FadeOutDuration *string `json:"fadeOutDuration,omitempty"` + // AudioGainLevel - The gain level of audio in the overlay. The value should be in the range [0, 1.0]. The default is 1.0. + AudioGainLevel *float64 `json:"audioGainLevel,omitempty"` + // OdataType - Possible values include: 'OdataTypeBasicOverlayOdataTypeOverlay', 'OdataTypeBasicOverlayOdataTypeMicrosoftMediaAudioOverlay', 'OdataTypeBasicOverlayOdataTypeMicrosoftMediaVideoOverlay' + OdataType OdataTypeBasicOverlay `json:"@odata.type,omitempty"` +} + +// MarshalJSON is the custom marshaler for VideoOverlay. +func (vo VideoOverlay) MarshalJSON() ([]byte, error) { + vo.OdataType = OdataTypeBasicOverlayOdataTypeMicrosoftMediaVideoOverlay + objectMap := make(map[string]interface{}) + if vo.Position != nil { + objectMap["position"] = vo.Position + } + if vo.Opacity != nil { + objectMap["opacity"] = vo.Opacity + } + if vo.CropRectangle != nil { + objectMap["cropRectangle"] = vo.CropRectangle + } + if vo.InputLabel != nil { + objectMap["inputLabel"] = vo.InputLabel + } + if vo.Start != nil { + objectMap["start"] = vo.Start + } + if vo.End != nil { + objectMap["end"] = vo.End + } + if vo.FadeInDuration != nil { + objectMap["fadeInDuration"] = vo.FadeInDuration + } + if vo.FadeOutDuration != nil { + objectMap["fadeOutDuration"] = vo.FadeOutDuration + } + if vo.AudioGainLevel != nil { + objectMap["audioGainLevel"] = vo.AudioGainLevel + } + if vo.OdataType != "" { + objectMap["@odata.type"] = vo.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioOverlay is the BasicOverlay implementation for VideoOverlay. +func (vo VideoOverlay) AsAudioOverlay() (*AudioOverlay, bool) { + return nil, false +} + +// AsVideoOverlay is the BasicOverlay implementation for VideoOverlay. +func (vo VideoOverlay) AsVideoOverlay() (*VideoOverlay, bool) { + return &vo, true +} + +// AsOverlay is the BasicOverlay implementation for VideoOverlay. +func (vo VideoOverlay) AsOverlay() (*Overlay, bool) { + return nil, false +} + +// AsBasicOverlay is the BasicOverlay implementation for VideoOverlay. +func (vo VideoOverlay) AsBasicOverlay() (BasicOverlay, bool) { + return &vo, true +} + +// BasicVideoTrackDescriptor a TrackSelection to select video tracks. +type BasicVideoTrackDescriptor interface { + AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) + AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) + AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) +} + +// VideoTrackDescriptor a TrackSelection to select video tracks. +type VideoTrackDescriptor struct { + // OdataType - Possible values include: 'OdataTypeBasicTrackDescriptorOdataTypeTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaAudioTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectAudioTrackByID', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute', 'OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID' + OdataType OdataTypeBasicTrackDescriptor `json:"@odata.type,omitempty"` +} + +func unmarshalBasicVideoTrackDescriptor(body []byte) (BasicVideoTrackDescriptor, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["@odata.type"] { + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByAttribute): + var svtba SelectVideoTrackByAttribute + err := json.Unmarshal(body, &svtba) + return svtba, err + case string(OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaSelectVideoTrackByID): + var svtbi SelectVideoTrackByID + err := json.Unmarshal(body, &svtbi) + return svtbi, err + default: + var vtd VideoTrackDescriptor + err := json.Unmarshal(body, &vtd) + return vtd, err + } +} +func unmarshalBasicVideoTrackDescriptorArray(body []byte) ([]BasicVideoTrackDescriptor, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + vtdArray := make([]BasicVideoTrackDescriptor, len(rawMessages)) + + for index, rawMessage := range rawMessages { + vtd, err := unmarshalBasicVideoTrackDescriptor(*rawMessage) + if err != nil { + return nil, err + } + vtdArray[index] = vtd + } + return vtdArray, nil +} + +// MarshalJSON is the custom marshaler for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) MarshalJSON() ([]byte, error) { + vtd.OdataType = OdataTypeBasicTrackDescriptorOdataTypeMicrosoftMediaVideoTrackDescriptor + objectMap := make(map[string]interface{}) + if vtd.OdataType != "" { + objectMap["@odata.type"] = vtd.OdataType + } + return json.Marshal(objectMap) +} + +// AsAudioTrackDescriptor is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsAudioTrackDescriptor() (*AudioTrackDescriptor, bool) { + return nil, false +} + +// AsBasicAudioTrackDescriptor is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsBasicAudioTrackDescriptor() (BasicAudioTrackDescriptor, bool) { + return nil, false +} + +// AsSelectAudioTrackByAttribute is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsSelectAudioTrackByAttribute() (*SelectAudioTrackByAttribute, bool) { + return nil, false +} + +// AsSelectAudioTrackByID is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsSelectAudioTrackByID() (*SelectAudioTrackByID, bool) { + return nil, false +} + +// AsVideoTrackDescriptor is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsVideoTrackDescriptor() (*VideoTrackDescriptor, bool) { + return &vtd, true +} + +// AsBasicVideoTrackDescriptor is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsBasicVideoTrackDescriptor() (BasicVideoTrackDescriptor, bool) { + return &vtd, true +} + +// AsSelectVideoTrackByAttribute is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsSelectVideoTrackByAttribute() (*SelectVideoTrackByAttribute, bool) { + return nil, false +} + +// AsSelectVideoTrackByID is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsSelectVideoTrackByID() (*SelectVideoTrackByID, bool) { + return nil, false +} + +// AsTrackDescriptor is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsTrackDescriptor() (*TrackDescriptor, bool) { + return nil, false +} + +// AsBasicTrackDescriptor is the BasicTrackDescriptor implementation for VideoTrackDescriptor. +func (vtd VideoTrackDescriptor) AsBasicTrackDescriptor() (BasicTrackDescriptor, bool) { + return &vtd, true +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/operations.go b/services/mediaservices/mgmt/2021-06-01/media/operations.go new file mode 100644 index 000000000000..067a73582284 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/operations.go @@ -0,0 +1,98 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// OperationsClient is the client for the Operations methods of the Media service. +type OperationsClient struct { + BaseClient +} + +// NewOperationsClient creates an instance of the OperationsClient client. +func NewOperationsClient(subscriptionID string) OperationsClient { + return NewOperationsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewOperationsClientWithBaseURI creates an instance of the OperationsClient client using a custom endpoint. Use this +// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewOperationsClientWithBaseURI(baseURI string, subscriptionID string) OperationsClient { + return OperationsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// List lists all the Media Services operations. +func (client OperationsClient) List(ctx context.Context) (result OperationCollection, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "media.OperationsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.OperationsClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.OperationsClient", "List", resp, "Failure responding to request") + return + } + + return +} + +// ListPreparer prepares the List request. +func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/providers/Microsoft.Media/operations"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client OperationsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client OperationsClient) ListResponder(resp *http.Response) (result OperationCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/privateendpointconnections.go b/services/mediaservices/mgmt/2021-06-01/media/privateendpointconnections.go new file mode 100644 index 000000000000..24ac060d2364 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/privateendpointconnections.go @@ -0,0 +1,349 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// PrivateEndpointConnectionsClient is the client for the PrivateEndpointConnections methods of the Media service. +type PrivateEndpointConnectionsClient struct { + BaseClient +} + +// NewPrivateEndpointConnectionsClient creates an instance of the PrivateEndpointConnectionsClient client. +func NewPrivateEndpointConnectionsClient(subscriptionID string) PrivateEndpointConnectionsClient { + return NewPrivateEndpointConnectionsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewPrivateEndpointConnectionsClientWithBaseURI creates an instance of the PrivateEndpointConnectionsClient client +// using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign +// clouds, Azure stack). +func NewPrivateEndpointConnectionsClientWithBaseURI(baseURI string, subscriptionID string) PrivateEndpointConnectionsClient { + return PrivateEndpointConnectionsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate update private endpoint connection. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// parameters - the request parameters +func (client PrivateEndpointConnectionsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, name string, parameters PrivateEndpointConnection) (result PrivateEndpointConnection, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/PrivateEndpointConnectionsClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.PrivateEndpointConnectionProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.PrivateEndpointConnectionProperties.PrivateLinkServiceConnectionState", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("media.PrivateEndpointConnectionsClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, accountName, name, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "CreateOrUpdate", resp, "Failure responding to request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client PrivateEndpointConnectionsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, name string, parameters PrivateEndpointConnection) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/privateEndpointConnections/{name}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client PrivateEndpointConnectionsClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client PrivateEndpointConnectionsClient) CreateOrUpdateResponder(resp *http.Response) (result PrivateEndpointConnection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete delete private endpoint connection. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client PrivateEndpointConnectionsClient) Delete(ctx context.Context, resourceGroupName string, accountName string, name string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/PrivateEndpointConnectionsClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, name) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client PrivateEndpointConnectionsClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, name string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/privateEndpointConnections/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client PrivateEndpointConnectionsClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client PrivateEndpointConnectionsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get private endpoint connection. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client PrivateEndpointConnectionsClient) Get(ctx context.Context, resourceGroupName string, accountName string, name string) (result PrivateEndpointConnection, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/PrivateEndpointConnectionsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, name) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client PrivateEndpointConnectionsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, name string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/privateEndpointConnections/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client PrivateEndpointConnectionsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client PrivateEndpointConnectionsClient) GetResponder(resp *http.Response) (result PrivateEndpointConnection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List get all private endpoint connections. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client PrivateEndpointConnectionsClient) List(ctx context.Context, resourceGroupName string, accountName string) (result PrivateEndpointConnectionListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/PrivateEndpointConnectionsClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, resourceGroupName, accountName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateEndpointConnectionsClient", "List", resp, "Failure responding to request") + return + } + + return +} + +// ListPreparer prepares the List request. +func (client PrivateEndpointConnectionsClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/privateEndpointConnections", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client PrivateEndpointConnectionsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client PrivateEndpointConnectionsClient) ListResponder(resp *http.Response) (result PrivateEndpointConnectionListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/privatelinkresources.go b/services/mediaservices/mgmt/2021-06-01/media/privatelinkresources.go new file mode 100644 index 000000000000..4c2b57fc5a7a --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/privatelinkresources.go @@ -0,0 +1,185 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// PrivateLinkResourcesClient is the client for the PrivateLinkResources methods of the Media service. +type PrivateLinkResourcesClient struct { + BaseClient +} + +// NewPrivateLinkResourcesClient creates an instance of the PrivateLinkResourcesClient client. +func NewPrivateLinkResourcesClient(subscriptionID string) PrivateLinkResourcesClient { + return NewPrivateLinkResourcesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewPrivateLinkResourcesClientWithBaseURI creates an instance of the PrivateLinkResourcesClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewPrivateLinkResourcesClientWithBaseURI(baseURI string, subscriptionID string) PrivateLinkResourcesClient { + return PrivateLinkResourcesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get get group ID. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client PrivateLinkResourcesClient) Get(ctx context.Context, resourceGroupName string, accountName string, name string) (result PrivateLinkResource, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/PrivateLinkResourcesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, name) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateLinkResourcesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.PrivateLinkResourcesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateLinkResourcesClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client PrivateLinkResourcesClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, name string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/privateLinkResources/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client PrivateLinkResourcesClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client PrivateLinkResourcesClient) GetResponder(resp *http.Response) (result PrivateLinkResource, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List get list of group IDs. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client PrivateLinkResourcesClient) List(ctx context.Context, resourceGroupName string, accountName string) (result PrivateLinkResourceListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/PrivateLinkResourcesClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, resourceGroupName, accountName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateLinkResourcesClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.PrivateLinkResourcesClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.PrivateLinkResourcesClient", "List", resp, "Failure responding to request") + return + } + + return +} + +// ListPreparer prepares the List request. +func (client PrivateLinkResourcesClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/privateLinkResources", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client PrivateLinkResourcesClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client PrivateLinkResourcesClient) ListResponder(resp *http.Response) (result PrivateLinkResourceListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/streamingendpoints.go b/services/mediaservices/mgmt/2021-06-01/media/streamingendpoints.go new file mode 100644 index 000000000000..0c30dfe31c95 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/streamingendpoints.go @@ -0,0 +1,779 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// StreamingEndpointsClient is the client for the StreamingEndpoints methods of the Media service. +type StreamingEndpointsClient struct { + BaseClient +} + +// NewStreamingEndpointsClient creates an instance of the StreamingEndpointsClient client. +func NewStreamingEndpointsClient(subscriptionID string) StreamingEndpointsClient { + return NewStreamingEndpointsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewStreamingEndpointsClientWithBaseURI creates an instance of the StreamingEndpointsClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewStreamingEndpointsClientWithBaseURI(baseURI string, subscriptionID string) StreamingEndpointsClient { + return StreamingEndpointsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create creates a streaming endpoint. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingEndpointName - the name of the streaming endpoint, maximum length is 24. +// parameters - streaming endpoint properties needed for creation. +// autoStart - the flag indicates if the resource should be automatically started on creation. +func (client StreamingEndpointsClient) Create(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters StreamingEndpoint, autoStart *bool) (result StreamingEndpointsCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.Create") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: streamingEndpointName, + Constraints: []validation.Constraint{{Target: "streamingEndpointName", Name: validation.MaxLength, Rule: 24, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}, + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.StreamingEndpointProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingEndpointProperties.ScaleUnits", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("media.StreamingEndpointsClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, resourceGroupName, accountName, streamingEndpointName, parameters, autoStart) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Create", nil, "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client StreamingEndpointsClient) CreatePreparer(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters StreamingEndpoint, autoStart *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingEndpointName": autorest.Encode("path", streamingEndpointName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if autoStart != nil { + queryParameters["autoStart"] = autorest.Encode("query", *autoStart) + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints/{streamingEndpointName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingEndpointsClient) CreateSender(req *http.Request) (future StreamingEndpointsCreateFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client StreamingEndpointsClient) CreateResponder(resp *http.Response) (result StreamingEndpoint, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a streaming endpoint. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingEndpointName - the name of the streaming endpoint, maximum length is 24. +func (client StreamingEndpointsClient) Delete(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (result StreamingEndpointsDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.Delete") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: streamingEndpointName, + Constraints: []validation.Constraint{{Target: "streamingEndpointName", Name: validation.MaxLength, Rule: 24, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.StreamingEndpointsClient", "Delete", err.Error()) + } + + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, streamingEndpointName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Delete", nil, "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client StreamingEndpointsClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingEndpointName": autorest.Encode("path", streamingEndpointName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints/{streamingEndpointName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingEndpointsClient) DeleteSender(req *http.Request) (future StreamingEndpointsDeleteFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client StreamingEndpointsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets a streaming endpoint. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingEndpointName - the name of the streaming endpoint, maximum length is 24. +func (client StreamingEndpointsClient) Get(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (result StreamingEndpoint, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: streamingEndpointName, + Constraints: []validation.Constraint{{Target: "streamingEndpointName", Name: validation.MaxLength, Rule: 24, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.StreamingEndpointsClient", "Get", err.Error()) + } + + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, streamingEndpointName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client StreamingEndpointsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingEndpointName": autorest.Encode("path", streamingEndpointName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints/{streamingEndpointName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingEndpointsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client StreamingEndpointsClient) GetResponder(resp *http.Response) (result StreamingEndpoint, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List lists the streaming endpoints in the account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +func (client StreamingEndpointsClient) List(ctx context.Context, resourceGroupName string, accountName string) (result StreamingEndpointListResultPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.List") + defer func() { + sc := -1 + if result.selr.Response.Response != nil { + sc = result.selr.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.selr.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "List", resp, "Failure sending request") + return + } + + result.selr, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "List", resp, "Failure responding to request") + return + } + if result.selr.hasNextLink() && result.selr.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client StreamingEndpointsClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingEndpointsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client StreamingEndpointsClient) ListResponder(resp *http.Response) (result StreamingEndpointListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client StreamingEndpointsClient) listNextResults(ctx context.Context, lastResults StreamingEndpointListResult) (result StreamingEndpointListResult, err error) { + req, err := lastResults.streamingEndpointListResultPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client StreamingEndpointsClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string) (result StreamingEndpointListResultIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName) + return +} + +// Scale scales an existing streaming endpoint. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingEndpointName - the name of the streaming endpoint, maximum length is 24. +// parameters - streaming endpoint scale parameters +func (client StreamingEndpointsClient) Scale(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters StreamingEntityScaleUnit) (result StreamingEndpointsScaleFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.Scale") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: streamingEndpointName, + Constraints: []validation.Constraint{{Target: "streamingEndpointName", Name: validation.MaxLength, Rule: 24, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.StreamingEndpointsClient", "Scale", err.Error()) + } + + req, err := client.ScalePreparer(ctx, resourceGroupName, accountName, streamingEndpointName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Scale", nil, "Failure preparing request") + return + } + + result, err = client.ScaleSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Scale", nil, "Failure sending request") + return + } + + return +} + +// ScalePreparer prepares the Scale request. +func (client StreamingEndpointsClient) ScalePreparer(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters StreamingEntityScaleUnit) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingEndpointName": autorest.Encode("path", streamingEndpointName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints/{streamingEndpointName}/scale", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ScaleSender sends the Scale request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingEndpointsClient) ScaleSender(req *http.Request) (future StreamingEndpointsScaleFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// ScaleResponder handles the response to the Scale request. The method always +// closes the http.Response Body. +func (client StreamingEndpointsClient) ScaleResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Start starts an existing streaming endpoint. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingEndpointName - the name of the streaming endpoint, maximum length is 24. +func (client StreamingEndpointsClient) Start(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (result StreamingEndpointsStartFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.Start") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: streamingEndpointName, + Constraints: []validation.Constraint{{Target: "streamingEndpointName", Name: validation.MaxLength, Rule: 24, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.StreamingEndpointsClient", "Start", err.Error()) + } + + req, err := client.StartPreparer(ctx, resourceGroupName, accountName, streamingEndpointName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Start", nil, "Failure preparing request") + return + } + + result, err = client.StartSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Start", nil, "Failure sending request") + return + } + + return +} + +// StartPreparer prepares the Start request. +func (client StreamingEndpointsClient) StartPreparer(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingEndpointName": autorest.Encode("path", streamingEndpointName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints/{streamingEndpointName}/start", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartSender sends the Start request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingEndpointsClient) StartSender(req *http.Request) (future StreamingEndpointsStartFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// StartResponder handles the response to the Start request. The method always +// closes the http.Response Body. +func (client StreamingEndpointsClient) StartResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Stop stops an existing streaming endpoint. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingEndpointName - the name of the streaming endpoint, maximum length is 24. +func (client StreamingEndpointsClient) Stop(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (result StreamingEndpointsStopFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.Stop") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: streamingEndpointName, + Constraints: []validation.Constraint{{Target: "streamingEndpointName", Name: validation.MaxLength, Rule: 24, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.StreamingEndpointsClient", "Stop", err.Error()) + } + + req, err := client.StopPreparer(ctx, resourceGroupName, accountName, streamingEndpointName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Stop", nil, "Failure preparing request") + return + } + + result, err = client.StopSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Stop", nil, "Failure sending request") + return + } + + return +} + +// StopPreparer prepares the Stop request. +func (client StreamingEndpointsClient) StopPreparer(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingEndpointName": autorest.Encode("path", streamingEndpointName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints/{streamingEndpointName}/stop", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StopSender sends the Stop request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingEndpointsClient) StopSender(req *http.Request) (future StreamingEndpointsStopFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// StopResponder handles the response to the Stop request. The method always +// closes the http.Response Body. +func (client StreamingEndpointsClient) StopResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Update updates a existing streaming endpoint. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingEndpointName - the name of the streaming endpoint, maximum length is 24. +// parameters - streaming endpoint properties needed for creation. +func (client StreamingEndpointsClient) Update(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters StreamingEndpoint) (result StreamingEndpointsUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingEndpointsClient.Update") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: streamingEndpointName, + Constraints: []validation.Constraint{{Target: "streamingEndpointName", Name: validation.MaxLength, Rule: 24, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "streamingEndpointName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("media.StreamingEndpointsClient", "Update", err.Error()) + } + + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, streamingEndpointName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Update", nil, "Failure preparing request") + return + } + + result, err = client.UpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingEndpointsClient", "Update", nil, "Failure sending request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client StreamingEndpointsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, streamingEndpointName string, parameters StreamingEndpoint) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingEndpointName": autorest.Encode("path", streamingEndpointName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints/{streamingEndpointName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingEndpointsClient) UpdateSender(req *http.Request) (future StreamingEndpointsUpdateFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client StreamingEndpointsClient) UpdateResponder(resp *http.Response) (result StreamingEndpoint, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/streaminglocators.go b/services/mediaservices/mgmt/2021-06-01/media/streaminglocators.go new file mode 100644 index 000000000000..f9a7c75ebacd --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/streaminglocators.go @@ -0,0 +1,566 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// StreamingLocatorsClient is the client for the StreamingLocators methods of the Media service. +type StreamingLocatorsClient struct { + BaseClient +} + +// NewStreamingLocatorsClient creates an instance of the StreamingLocatorsClient client. +func NewStreamingLocatorsClient(subscriptionID string) StreamingLocatorsClient { + return NewStreamingLocatorsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewStreamingLocatorsClientWithBaseURI creates an instance of the StreamingLocatorsClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewStreamingLocatorsClientWithBaseURI(baseURI string, subscriptionID string) StreamingLocatorsClient { + return StreamingLocatorsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create create a Streaming Locator in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingLocatorName - the Streaming Locator name. +// parameters - the request parameters +func (client StreamingLocatorsClient) Create(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string, parameters StreamingLocator) (result StreamingLocator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorsClient.Create") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.StreamingLocatorProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingLocatorProperties.AssetName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingLocatorProperties.StreamingPolicyName", Name: validation.Null, Rule: true, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("media.StreamingLocatorsClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, resourceGroupName, accountName, streamingLocatorName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Create", nil, "Failure preparing request") + return + } + + resp, err := client.CreateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Create", resp, "Failure sending request") + return + } + + result, err = client.CreateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Create", resp, "Failure responding to request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client StreamingLocatorsClient) CreatePreparer(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string, parameters StreamingLocator) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingLocatorName": autorest.Encode("path", streamingLocatorName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingLocators/{streamingLocatorName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingLocatorsClient) CreateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client StreamingLocatorsClient) CreateResponder(resp *http.Response) (result StreamingLocator, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a Streaming Locator in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingLocatorName - the Streaming Locator name. +func (client StreamingLocatorsClient) Delete(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorsClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, streamingLocatorName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client StreamingLocatorsClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingLocatorName": autorest.Encode("path", streamingLocatorName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingLocators/{streamingLocatorName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingLocatorsClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client StreamingLocatorsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get the details of a Streaming Locator in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingLocatorName - the Streaming Locator name. +func (client StreamingLocatorsClient) Get(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (result StreamingLocator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, streamingLocatorName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client StreamingLocatorsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingLocatorName": autorest.Encode("path", streamingLocatorName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingLocators/{streamingLocatorName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingLocatorsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client StreamingLocatorsClient) GetResponder(resp *http.Response) (result StreamingLocator, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List lists the Streaming Locators in the account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filter - restricts the set of items returned. +// top - specifies a non-negative integer n that limits the number of items returned from a collection. The +// service returns the number of available items up to but not greater than the specified value n. +// orderby - specifies the key by which the result collection should be ordered. +func (client StreamingLocatorsClient) List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result StreamingLocatorCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorsClient.List") + defer func() { + sc := -1 + if result.slc.Response.Response != nil { + sc = result.slc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName, filter, top, orderby) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.slc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "List", resp, "Failure sending request") + return + } + + result.slc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "List", resp, "Failure responding to request") + return + } + if result.slc.hasNextLink() && result.slc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client StreamingLocatorsClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(filter) > 0 { + queryParameters["$filter"] = autorest.Encode("query", filter) + } + if top != nil { + queryParameters["$top"] = autorest.Encode("query", *top) + } + if len(orderby) > 0 { + queryParameters["$orderby"] = autorest.Encode("query", orderby) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingLocators", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingLocatorsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client StreamingLocatorsClient) ListResponder(resp *http.Response) (result StreamingLocatorCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client StreamingLocatorsClient) listNextResults(ctx context.Context, lastResults StreamingLocatorCollection) (result StreamingLocatorCollection, err error) { + req, err := lastResults.streamingLocatorCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client StreamingLocatorsClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result StreamingLocatorCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName, filter, top, orderby) + return +} + +// ListContentKeys list Content Keys used by this Streaming Locator +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingLocatorName - the Streaming Locator name. +func (client StreamingLocatorsClient) ListContentKeys(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (result ListContentKeysResponse, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorsClient.ListContentKeys") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListContentKeysPreparer(ctx, resourceGroupName, accountName, streamingLocatorName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "ListContentKeys", nil, "Failure preparing request") + return + } + + resp, err := client.ListContentKeysSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "ListContentKeys", resp, "Failure sending request") + return + } + + result, err = client.ListContentKeysResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "ListContentKeys", resp, "Failure responding to request") + return + } + + return +} + +// ListContentKeysPreparer prepares the ListContentKeys request. +func (client StreamingLocatorsClient) ListContentKeysPreparer(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingLocatorName": autorest.Encode("path", streamingLocatorName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingLocators/{streamingLocatorName}/listContentKeys", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListContentKeysSender sends the ListContentKeys request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingLocatorsClient) ListContentKeysSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListContentKeysResponder handles the response to the ListContentKeys request. The method always +// closes the http.Response Body. +func (client StreamingLocatorsClient) ListContentKeysResponder(resp *http.Response) (result ListContentKeysResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListPaths list Paths supported by this Streaming Locator +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingLocatorName - the Streaming Locator name. +func (client StreamingLocatorsClient) ListPaths(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (result ListPathsResponse, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingLocatorsClient.ListPaths") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPathsPreparer(ctx, resourceGroupName, accountName, streamingLocatorName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "ListPaths", nil, "Failure preparing request") + return + } + + resp, err := client.ListPathsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "ListPaths", resp, "Failure sending request") + return + } + + result, err = client.ListPathsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingLocatorsClient", "ListPaths", resp, "Failure responding to request") + return + } + + return +} + +// ListPathsPreparer prepares the ListPaths request. +func (client StreamingLocatorsClient) ListPathsPreparer(ctx context.Context, resourceGroupName string, accountName string, streamingLocatorName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingLocatorName": autorest.Encode("path", streamingLocatorName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingLocators/{streamingLocatorName}/listPaths", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListPathsSender sends the ListPaths request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingLocatorsClient) ListPathsSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListPathsResponder handles the response to the ListPaths request. The method always +// closes the http.Response Body. +func (client StreamingLocatorsClient) ListPathsResponder(resp *http.Response) (result ListPathsResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/streamingpolicies.go b/services/mediaservices/mgmt/2021-06-01/media/streamingpolicies.go new file mode 100644 index 000000000000..676704132c78 --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/streamingpolicies.go @@ -0,0 +1,444 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// StreamingPoliciesClient is the client for the StreamingPolicies methods of the Media service. +type StreamingPoliciesClient struct { + BaseClient +} + +// NewStreamingPoliciesClient creates an instance of the StreamingPoliciesClient client. +func NewStreamingPoliciesClient(subscriptionID string) StreamingPoliciesClient { + return NewStreamingPoliciesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewStreamingPoliciesClientWithBaseURI creates an instance of the StreamingPoliciesClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewStreamingPoliciesClientWithBaseURI(baseURI string, subscriptionID string) StreamingPoliciesClient { + return StreamingPoliciesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create create a Streaming Policy in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingPolicyName - the Streaming Policy name. +// parameters - the request parameters +func (client StreamingPoliciesClient) Create(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string, parameters StreamingPolicy) (result StreamingPolicy, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingPoliciesClient.Create") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.EnvelopeEncryption", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.EnvelopeEncryption.EnabledProtocols", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.EnvelopeEncryption.EnabledProtocols.Download", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.EnvelopeEncryption.EnabledProtocols.Dash", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.EnvelopeEncryption.EnabledProtocols.Hls", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.EnvelopeEncryption.EnabledProtocols.SmoothStreaming", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCenc", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.CommonEncryptionCenc.EnabledProtocols", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.CommonEncryptionCenc.EnabledProtocols.Download", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCenc.EnabledProtocols.Dash", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCenc.EnabledProtocols.Hls", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCenc.EnabledProtocols.SmoothStreaming", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs.EnabledProtocols", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs.EnabledProtocols.Download", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs.EnabledProtocols.Dash", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs.EnabledProtocols.Hls", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs.EnabledProtocols.SmoothStreaming", Name: validation.Null, Rule: true, Chain: nil}, + }}, + {Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs.Drm", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs.Drm.FairPlay", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.CommonEncryptionCbcs.Drm.FairPlay.AllowPersistentLicense", Name: validation.Null, Rule: true, Chain: nil}}}, + }}, + }}, + {Target: "parameters.StreamingPolicyProperties.NoEncryption", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.NoEncryption.EnabledProtocols", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.StreamingPolicyProperties.NoEncryption.EnabledProtocols.Download", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.NoEncryption.EnabledProtocols.Dash", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.NoEncryption.EnabledProtocols.Hls", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.StreamingPolicyProperties.NoEncryption.EnabledProtocols.SmoothStreaming", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}, + }}}}}); err != nil { + return result, validation.NewError("media.StreamingPoliciesClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, resourceGroupName, accountName, streamingPolicyName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Create", nil, "Failure preparing request") + return + } + + resp, err := client.CreateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Create", resp, "Failure sending request") + return + } + + result, err = client.CreateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Create", resp, "Failure responding to request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client StreamingPoliciesClient) CreatePreparer(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string, parameters StreamingPolicy) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingPolicyName": autorest.Encode("path", streamingPolicyName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingPolicies/{streamingPolicyName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingPoliciesClient) CreateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client StreamingPoliciesClient) CreateResponder(resp *http.Response) (result StreamingPolicy, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a Streaming Policy in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingPolicyName - the Streaming Policy name. +func (client StreamingPoliciesClient) Delete(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingPoliciesClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, streamingPolicyName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client StreamingPoliciesClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingPolicyName": autorest.Encode("path", streamingPolicyName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingPolicies/{streamingPolicyName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingPoliciesClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client StreamingPoliciesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get the details of a Streaming Policy in the Media Services account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// streamingPolicyName - the Streaming Policy name. +func (client StreamingPoliciesClient) Get(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string) (result StreamingPolicy, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingPoliciesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, streamingPolicyName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client StreamingPoliciesClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, streamingPolicyName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "streamingPolicyName": autorest.Encode("path", streamingPolicyName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingPolicies/{streamingPolicyName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingPoliciesClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client StreamingPoliciesClient) GetResponder(resp *http.Response) (result StreamingPolicy, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List lists the Streaming Policies in the account +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filter - restricts the set of items returned. +// top - specifies a non-negative integer n that limits the number of items returned from a collection. The +// service returns the number of available items up to but not greater than the specified value n. +// orderby - specifies the key by which the result collection should be ordered. +func (client StreamingPoliciesClient) List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result StreamingPolicyCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingPoliciesClient.List") + defer func() { + sc := -1 + if result.spc.Response.Response != nil { + sc = result.spc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName, filter, top, orderby) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.spc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "List", resp, "Failure sending request") + return + } + + result.spc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "List", resp, "Failure responding to request") + return + } + if result.spc.hasNextLink() && result.spc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client StreamingPoliciesClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(filter) > 0 { + queryParameters["$filter"] = autorest.Encode("query", filter) + } + if top != nil { + queryParameters["$top"] = autorest.Encode("query", *top) + } + if len(orderby) > 0 { + queryParameters["$orderby"] = autorest.Encode("query", orderby) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingPolicies", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client StreamingPoliciesClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client StreamingPoliciesClient) ListResponder(resp *http.Response) (result StreamingPolicyCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client StreamingPoliciesClient) listNextResults(ctx context.Context, lastResults StreamingPolicyCollection) (result StreamingPolicyCollection, err error) { + req, err := lastResults.streamingPolicyCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.StreamingPoliciesClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client StreamingPoliciesClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32, orderby string) (result StreamingPolicyCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StreamingPoliciesClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName, filter, top, orderby) + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/transforms.go b/services/mediaservices/mgmt/2021-06-01/media/transforms.go new file mode 100644 index 000000000000..32d03abfcead --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/transforms.go @@ -0,0 +1,484 @@ +package media + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// TransformsClient is the client for the Transforms methods of the Media service. +type TransformsClient struct { + BaseClient +} + +// NewTransformsClient creates an instance of the TransformsClient client. +func NewTransformsClient(subscriptionID string) TransformsClient { + return NewTransformsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewTransformsClientWithBaseURI creates an instance of the TransformsClient client using a custom endpoint. Use this +// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). +func NewTransformsClientWithBaseURI(baseURI string, subscriptionID string) TransformsClient { + return TransformsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates a new Transform. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +// parameters - the request parameters +func (client TransformsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, transformName string, parameters Transform) (result Transform, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TransformsClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.TransformProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.TransformProperties.Outputs", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("media.TransformsClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, accountName, transformName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.TransformsClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "CreateOrUpdate", resp, "Failure responding to request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client TransformsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string, parameters Transform) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client TransformsClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client TransformsClient) CreateOrUpdateResponder(resp *http.Response) (result Transform, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes a Transform. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +func (client TransformsClient) Delete(ctx context.Context, resourceGroupName string, accountName string, transformName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TransformsClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, accountName, transformName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Delete", resp, "Failure responding to request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client TransformsClient) DeletePreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client TransformsClient) DeleteSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client TransformsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets a Transform. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +func (client TransformsClient) Get(ctx context.Context, resourceGroupName string, accountName string, transformName string) (result Transform, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TransformsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, accountName, transformName) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client TransformsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client TransformsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client TransformsClient) GetResponder(resp *http.Response) (result Transform, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List lists the Transforms in the account. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// filter - restricts the set of items returned. +// orderby - specifies the key by which the result collection should be ordered. +func (client TransformsClient) List(ctx context.Context, resourceGroupName string, accountName string, filter string, orderby string) (result TransformCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TransformsClient.List") + defer func() { + sc := -1 + if result.tc.Response.Response != nil { + sc = result.tc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, resourceGroupName, accountName, filter, orderby) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.tc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.TransformsClient", "List", resp, "Failure sending request") + return + } + + result.tc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "List", resp, "Failure responding to request") + return + } + if result.tc.hasNextLink() && result.tc.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListPreparer prepares the List request. +func (client TransformsClient) ListPreparer(ctx context.Context, resourceGroupName string, accountName string, filter string, orderby string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(filter) > 0 { + queryParameters["$filter"] = autorest.Encode("query", filter) + } + if len(orderby) > 0 { + queryParameters["$orderby"] = autorest.Encode("query", orderby) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client TransformsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client TransformsClient) ListResponder(resp *http.Response) (result TransformCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client TransformsClient) listNextResults(ctx context.Context, lastResults TransformCollection) (result TransformCollection, err error) { + req, err := lastResults.transformCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "media.TransformsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "media.TransformsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client TransformsClient) ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, orderby string) (result TransformCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TransformsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx, resourceGroupName, accountName, filter, orderby) + return +} + +// Update updates a Transform. +// Parameters: +// resourceGroupName - the name of the resource group within the Azure subscription. +// accountName - the Media Services account name. +// transformName - the Transform name. +// parameters - the request parameters +func (client TransformsClient) Update(ctx context.Context, resourceGroupName string, accountName string, transformName string, parameters Transform) (result Transform, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TransformsClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, accountName, transformName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "media.TransformsClient", "Update", resp, "Failure responding to request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client TransformsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, accountName string, transformName string, parameters Transform) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "accountName": autorest.Encode("path", accountName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "transformName": autorest.Encode("path", transformName), + } + + const APIVersion = "2021-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + parameters.SystemData = nil + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client TransformsClient) UpdateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client TransformsClient) UpdateResponder(resp *http.Response) (result Transform, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mediaservices/mgmt/2021-06-01/media/version.go b/services/mediaservices/mgmt/2021-06-01/media/version.go new file mode 100644 index 000000000000..24408619b75e --- /dev/null +++ b/services/mediaservices/mgmt/2021-06-01/media/version.go @@ -0,0 +1,19 @@ +package media + +import "github.com/Azure/azure-sdk-for-go/version" + +// 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. + +// UserAgent returns the UserAgent string to use when sending http.Requests. +func UserAgent() string { + return "Azure-SDK-For-Go/" + Version() + " media/2021-06-01" +} + +// Version returns the semantic version (see http://semver.org) of the client. +func Version() string { + return version.Number +} From 69fd5e369baa130690b84de241f3a0c88e198c11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=AE=AD=E9=A3=9E?= Date: Thu, 15 Jul 2021 14:50:58 +0800 Subject: [PATCH 2/5] Generated from specification/security/resource-manager/readme.md tag package-composite-v3 (commit hash: e3980786418c280ecd7ed2e141407ed0f63cd493) --- .../security/mgmt/v3.0/security/CHANGELOG.md | 56 ------------------- .../security/mgmt/v3.0/security/_meta.json | 2 +- 2 files changed, 1 insertion(+), 57 deletions(-) diff --git a/services/preview/security/mgmt/v3.0/security/CHANGELOG.md b/services/preview/security/mgmt/v3.0/security/CHANGELOG.md index 3cdf6e8ad004..52911e4cc5e4 100644 --- a/services/preview/security/mgmt/v3.0/security/CHANGELOG.md +++ b/services/preview/security/mgmt/v3.0/security/CHANGELOG.md @@ -1,58 +1,2 @@ # Change History -## Breaking Changes - -### Signature Changes - -#### Const Types - -1. KindAAD changed type from KindEnum1 to KindEnum -1. KindATA changed type from KindEnum1 to KindEnum -1. KindAlertSimulatorRequestProperties changed type from KindEnum2 to KindEnum1 -1. KindBundles changed type from KindEnum2 to KindEnum1 -1. KindCEF changed type from KindEnum1 to KindEnum -1. KindDataExportSettings changed type from KindEnum to KindEnum2 -1. KindExternalSecuritySolution changed type from KindEnum1 to KindEnum -1. KindSetting changed type from KindEnum to KindEnum2 - -#### Struct Fields - -1. AadExternalSecuritySolution.Kind changed type from KindEnum1 to KindEnum -1. AlertSimulatorBundlesRequestProperties.Kind changed type from KindEnum2 to KindEnum1 -1. AlertSimulatorRequestProperties.Kind changed type from KindEnum2 to KindEnum1 -1. AtaExternalSecuritySolution.Kind changed type from KindEnum1 to KindEnum -1. CefExternalSecuritySolution.Kind changed type from KindEnum1 to KindEnum -1. DataExportSettings.Kind changed type from KindEnum to KindEnum2 -1. ExternalSecuritySolution.Kind changed type from KindEnum1 to KindEnum -1. Setting.Kind changed type from KindEnum to KindEnum2 - -## Additive Changes - -### New Constants - -1. KindEnum2.KindAlertSyncSettings -1. OnboardingKind.Evaluation -1. OnboardingKind.Purchased - -### New Funcs - -1. *AlertSyncSettings.UnmarshalJSON([]byte) error -1. AlertSyncSettings.AsAlertSyncSettings() (*AlertSyncSettings, bool) -1. AlertSyncSettings.AsBasicSetting() (BasicSetting, bool) -1. AlertSyncSettings.AsDataExportSettings() (*DataExportSettings, bool) -1. AlertSyncSettings.AsSetting() (*Setting, bool) -1. AlertSyncSettings.MarshalJSON() ([]byte, error) -1. DataExportSettings.AsAlertSyncSettings() (*AlertSyncSettings, bool) -1. IotDefenderSettingsProperties.MarshalJSON() ([]byte, error) -1. Setting.AsAlertSyncSettings() (*AlertSyncSettings, bool) - -### Struct Changes - -#### New Structs - -1. AlertSyncSettingProperties -1. AlertSyncSettings - -#### New Struct Fields - -1. IotDefenderSettingsProperties.EvaluationEndTime diff --git a/services/preview/security/mgmt/v3.0/security/_meta.json b/services/preview/security/mgmt/v3.0/security/_meta.json index 179357b4e3a7..6e306caeaa27 100644 --- a/services/preview/security/mgmt/v3.0/security/_meta.json +++ b/services/preview/security/mgmt/v3.0/security/_meta.json @@ -1,5 +1,5 @@ { - "commit": "f9883569df850be792a37df17a1a28a5bdcdfc39", + "commit": "e3980786418c280ecd7ed2e141407ed0f63cd493", "readme": "/_/azure-rest-api-specs/specification/security/resource-manager/readme.md", "tag": "package-composite-v3", "use": "@microsoft.azure/autorest.go@2.1.183", From 5242fb8c1e859959fb68da42774e54f9a1a99321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=AE=AD=E9=A3=9E?= Date: Thu, 15 Jul 2021 14:52:38 +0800 Subject: [PATCH 3/5] Generated from specification/mysql/resource-manager/readme.md tag package-2020-01-01 (commit hash: e3980786418c280ecd7ed2e141407ed0f63cd493) --- profiles/latest/mysql/mgmt/mysql/models.go | 44 +++ .../mysql/mgmt/mysql/mysqlapi/models.go | 3 + profiles/preview/mysql/mgmt/mysql/models.go | 44 +++ .../mysql/mgmt/mysql/mysqlapi/models.go | 3 + .../mysql/mgmt/2020-01-01/mysql/CHANGELOG.md | 93 ++++- .../mysql/mgmt/2020-01-01/mysql/_meta.json | 2 +- .../mysql/mgmt/2020-01-01/mysql/advisors.go | 6 +- .../2020-01-01/mysql/checknameavailability.go | 2 +- .../mysql/mgmt/2020-01-01/mysql/client.go | 88 ++++- .../mgmt/2020-01-01/mysql/configurations.go | 15 +- .../mysql/mgmt/2020-01-01/mysql/databases.go | 20 +- services/mysql/mgmt/2020-01-01/mysql/enums.go | 16 + .../mgmt/2020-01-01/mysql/firewallrules.go | 20 +- .../mysql/locationbasedperformancetier.go | 2 +- .../mysql/mgmt/2020-01-01/mysql/logfiles.go | 5 +- .../mysql/mgmt/2020-01-01/mysql/models.go | 325 ++++++++++++++++++ .../2020-01-01/mysql/mysqlapi/interfaces.go | 24 ++ .../mysql/mgmt/2020-01-01/mysql/operations.go | 2 +- .../mysql/privateendpointconnections.go | 15 +- .../2020-01-01/mysql/privatelinkresources.go | 6 +- .../mysql/mgmt/2020-01-01/mysql/querytexts.go | 6 +- .../2020-01-01/mysql/recommendedactions.go | 6 +- .../2020-01-01/mysql/recoverableservers.go | 120 +++++++ .../mysql/mgmt/2020-01-01/mysql/replicas.go | 5 +- .../2020-01-01/mysql/serveradministrators.go | 20 +- .../mysql/serverbasedperformancetier.go | 120 +++++++ .../mysql/mgmt/2020-01-01/mysql/serverkeys.go | 12 +- .../mgmt/2020-01-01/mysql/serverparameters.go | 125 +++++++ .../mysql/mgmt/2020-01-01/mysql/servers.go | 41 +-- .../mysql/serversecurityalertpolicies.go | 133 ++++++- .../2020-01-01/mysql/topquerystatistics.go | 6 +- .../2020-01-01/mysql/virtualnetworkrules.go | 20 +- .../mgmt/2020-01-01/mysql/waitstatistics.go | 6 +- 33 files changed, 1197 insertions(+), 158 deletions(-) create mode 100644 services/mysql/mgmt/2020-01-01/mysql/recoverableservers.go create mode 100644 services/mysql/mgmt/2020-01-01/mysql/serverbasedperformancetier.go create mode 100644 services/mysql/mgmt/2020-01-01/mysql/serverparameters.go diff --git a/profiles/latest/mysql/mgmt/mysql/models.go b/profiles/latest/mysql/mgmt/mysql/models.go index 507146afd133..86de3e772faa 100644 --- a/profiles/latest/mysql/mgmt/mysql/models.go +++ b/profiles/latest/mysql/mgmt/mysql/models.go @@ -97,6 +97,13 @@ const ( PublicNetworkAccessEnumEnabled PublicNetworkAccessEnum = original.PublicNetworkAccessEnumEnabled ) +type QueryPerformanceInsightResetDataResultState = original.QueryPerformanceInsightResetDataResultState + +const ( + QueryPerformanceInsightResetDataResultStateFailed QueryPerformanceInsightResetDataResultState = original.QueryPerformanceInsightResetDataResultStateFailed + QueryPerformanceInsightResetDataResultStateSucceeded QueryPerformanceInsightResetDataResultState = original.QueryPerformanceInsightResetDataResultStateSucceeded +) + type ServerSecurityAlertPolicyState = original.ServerSecurityAlertPolicyState const ( @@ -217,6 +224,7 @@ type PrivateLinkResourceProperties = original.PrivateLinkResourceProperties type PrivateLinkResourcesClient = original.PrivateLinkResourcesClient type PrivateLinkServiceConnectionStateProperty = original.PrivateLinkServiceConnectionStateProperty type ProxyResource = original.ProxyResource +type QueryPerformanceInsightResetDataResult = original.QueryPerformanceInsightResetDataResult type QueryStatistic = original.QueryStatistic type QueryStatisticProperties = original.QueryStatisticProperties type QueryText = original.QueryText @@ -232,6 +240,9 @@ type RecommendationActionsResultListIterator = original.RecommendationActionsRes type RecommendationActionsResultListPage = original.RecommendationActionsResultListPage type RecommendedActionSessionsOperationStatus = original.RecommendedActionSessionsOperationStatus type RecommendedActionsClient = original.RecommendedActionsClient +type RecoverableServerProperties = original.RecoverableServerProperties +type RecoverableServerResource = original.RecoverableServerResource +type RecoverableServersClient = original.RecoverableServersClient type ReplicasClient = original.ReplicasClient type Resource = original.Resource type ResourceIdentity = original.ResourceIdentity @@ -243,6 +254,7 @@ type ServerAdministratorResourceListResult = original.ServerAdministratorResourc type ServerAdministratorsClient = original.ServerAdministratorsClient type ServerAdministratorsCreateOrUpdateFuture = original.ServerAdministratorsCreateOrUpdateFuture type ServerAdministratorsDeleteFuture = original.ServerAdministratorsDeleteFuture +type ServerBasedPerformanceTierClient = original.ServerBasedPerformanceTierClient type ServerForCreate = original.ServerForCreate type ServerKey = original.ServerKey type ServerKeyListResult = original.ServerKeyListResult @@ -253,6 +265,8 @@ type ServerKeysClient = original.ServerKeysClient type ServerKeysCreateOrUpdateFuture = original.ServerKeysCreateOrUpdateFuture type ServerKeysDeleteFuture = original.ServerKeysDeleteFuture type ServerListResult = original.ServerListResult +type ServerParametersClient = original.ServerParametersClient +type ServerParametersListUpdateConfigurationsFuture = original.ServerParametersListUpdateConfigurationsFuture type ServerPrivateEndpointConnection = original.ServerPrivateEndpointConnection type ServerPrivateEndpointConnectionProperties = original.ServerPrivateEndpointConnectionProperties type ServerPrivateLinkServiceConnectionStateProperty = original.ServerPrivateLinkServiceConnectionStateProperty @@ -265,6 +279,9 @@ type ServerPropertiesForRestore = original.ServerPropertiesForRestore type ServerSecurityAlertPoliciesClient = original.ServerSecurityAlertPoliciesClient type ServerSecurityAlertPoliciesCreateOrUpdateFuture = original.ServerSecurityAlertPoliciesCreateOrUpdateFuture type ServerSecurityAlertPolicy = original.ServerSecurityAlertPolicy +type ServerSecurityAlertPolicyListResult = original.ServerSecurityAlertPolicyListResult +type ServerSecurityAlertPolicyListResultIterator = original.ServerSecurityAlertPolicyListResultIterator +type ServerSecurityAlertPolicyListResultPage = original.ServerSecurityAlertPolicyListResultPage type ServerUpdateParameters = original.ServerUpdateParameters type ServerUpdateParametersProperties = original.ServerUpdateParametersProperties type ServerUpgradeParameters = original.ServerUpgradeParameters @@ -421,6 +438,12 @@ func NewRecommendedActionsClient(subscriptionID string) RecommendedActionsClient func NewRecommendedActionsClientWithBaseURI(baseURI string, subscriptionID string) RecommendedActionsClient { return original.NewRecommendedActionsClientWithBaseURI(baseURI, subscriptionID) } +func NewRecoverableServersClient(subscriptionID string) RecoverableServersClient { + return original.NewRecoverableServersClient(subscriptionID) +} +func NewRecoverableServersClientWithBaseURI(baseURI string, subscriptionID string) RecoverableServersClient { + return original.NewRecoverableServersClientWithBaseURI(baseURI, subscriptionID) +} func NewReplicasClient(subscriptionID string) ReplicasClient { return original.NewReplicasClient(subscriptionID) } @@ -433,6 +456,12 @@ func NewServerAdministratorsClient(subscriptionID string) ServerAdministratorsCl func NewServerAdministratorsClientWithBaseURI(baseURI string, subscriptionID string) ServerAdministratorsClient { return original.NewServerAdministratorsClientWithBaseURI(baseURI, subscriptionID) } +func NewServerBasedPerformanceTierClient(subscriptionID string) ServerBasedPerformanceTierClient { + return original.NewServerBasedPerformanceTierClient(subscriptionID) +} +func NewServerBasedPerformanceTierClientWithBaseURI(baseURI string, subscriptionID string) ServerBasedPerformanceTierClient { + return original.NewServerBasedPerformanceTierClientWithBaseURI(baseURI, subscriptionID) +} func NewServerKeyListResultIterator(page ServerKeyListResultPage) ServerKeyListResultIterator { return original.NewServerKeyListResultIterator(page) } @@ -445,12 +474,24 @@ func NewServerKeysClient(subscriptionID string) ServerKeysClient { func NewServerKeysClientWithBaseURI(baseURI string, subscriptionID string) ServerKeysClient { return original.NewServerKeysClientWithBaseURI(baseURI, subscriptionID) } +func NewServerParametersClient(subscriptionID string) ServerParametersClient { + return original.NewServerParametersClient(subscriptionID) +} +func NewServerParametersClientWithBaseURI(baseURI string, subscriptionID string) ServerParametersClient { + return original.NewServerParametersClientWithBaseURI(baseURI, subscriptionID) +} func NewServerSecurityAlertPoliciesClient(subscriptionID string) ServerSecurityAlertPoliciesClient { return original.NewServerSecurityAlertPoliciesClient(subscriptionID) } func NewServerSecurityAlertPoliciesClientWithBaseURI(baseURI string, subscriptionID string) ServerSecurityAlertPoliciesClient { return original.NewServerSecurityAlertPoliciesClientWithBaseURI(baseURI, subscriptionID) } +func NewServerSecurityAlertPolicyListResultIterator(page ServerSecurityAlertPolicyListResultPage) ServerSecurityAlertPolicyListResultIterator { + return original.NewServerSecurityAlertPolicyListResultIterator(page) +} +func NewServerSecurityAlertPolicyListResultPage(cur ServerSecurityAlertPolicyListResult, getNextPage func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error)) ServerSecurityAlertPolicyListResultPage { + return original.NewServerSecurityAlertPolicyListResultPage(cur, getNextPage) +} func NewServersClient(subscriptionID string) ServersClient { return original.NewServersClient(subscriptionID) } @@ -526,6 +567,9 @@ func PossiblePrivateLinkServiceConnectionStateStatusValues() []PrivateLinkServic func PossiblePublicNetworkAccessEnumValues() []PublicNetworkAccessEnum { return original.PossiblePublicNetworkAccessEnumValues() } +func PossibleQueryPerformanceInsightResetDataResultStateValues() []QueryPerformanceInsightResetDataResultState { + return original.PossibleQueryPerformanceInsightResetDataResultStateValues() +} func PossibleServerSecurityAlertPolicyStateValues() []ServerSecurityAlertPolicyState { return original.PossibleServerSecurityAlertPolicyStateValues() } diff --git a/profiles/latest/mysql/mgmt/mysql/mysqlapi/models.go b/profiles/latest/mysql/mgmt/mysql/mysqlapi/models.go index 30359d0b1994..2da76e20cabd 100644 --- a/profiles/latest/mysql/mgmt/mysql/mysqlapi/models.go +++ b/profiles/latest/mysql/mgmt/mysql/mysqlapi/models.go @@ -25,9 +25,12 @@ type PrivateEndpointConnectionsClientAPI = original.PrivateEndpointConnectionsCl type PrivateLinkResourcesClientAPI = original.PrivateLinkResourcesClientAPI type QueryTextsClientAPI = original.QueryTextsClientAPI type RecommendedActionsClientAPI = original.RecommendedActionsClientAPI +type RecoverableServersClientAPI = original.RecoverableServersClientAPI type ReplicasClientAPI = original.ReplicasClientAPI type ServerAdministratorsClientAPI = original.ServerAdministratorsClientAPI +type ServerBasedPerformanceTierClientAPI = original.ServerBasedPerformanceTierClientAPI type ServerKeysClientAPI = original.ServerKeysClientAPI +type ServerParametersClientAPI = original.ServerParametersClientAPI type ServerSecurityAlertPoliciesClientAPI = original.ServerSecurityAlertPoliciesClientAPI type ServersClientAPI = original.ServersClientAPI type TopQueryStatisticsClientAPI = original.TopQueryStatisticsClientAPI diff --git a/profiles/preview/mysql/mgmt/mysql/models.go b/profiles/preview/mysql/mgmt/mysql/models.go index 946fe4296978..ddaf89a2bb99 100644 --- a/profiles/preview/mysql/mgmt/mysql/models.go +++ b/profiles/preview/mysql/mgmt/mysql/models.go @@ -97,6 +97,13 @@ const ( PublicNetworkAccessEnumEnabled PublicNetworkAccessEnum = original.PublicNetworkAccessEnumEnabled ) +type QueryPerformanceInsightResetDataResultState = original.QueryPerformanceInsightResetDataResultState + +const ( + QueryPerformanceInsightResetDataResultStateFailed QueryPerformanceInsightResetDataResultState = original.QueryPerformanceInsightResetDataResultStateFailed + QueryPerformanceInsightResetDataResultStateSucceeded QueryPerformanceInsightResetDataResultState = original.QueryPerformanceInsightResetDataResultStateSucceeded +) + type ServerSecurityAlertPolicyState = original.ServerSecurityAlertPolicyState const ( @@ -217,6 +224,7 @@ type PrivateLinkResourceProperties = original.PrivateLinkResourceProperties type PrivateLinkResourcesClient = original.PrivateLinkResourcesClient type PrivateLinkServiceConnectionStateProperty = original.PrivateLinkServiceConnectionStateProperty type ProxyResource = original.ProxyResource +type QueryPerformanceInsightResetDataResult = original.QueryPerformanceInsightResetDataResult type QueryStatistic = original.QueryStatistic type QueryStatisticProperties = original.QueryStatisticProperties type QueryText = original.QueryText @@ -232,6 +240,9 @@ type RecommendationActionsResultListIterator = original.RecommendationActionsRes type RecommendationActionsResultListPage = original.RecommendationActionsResultListPage type RecommendedActionSessionsOperationStatus = original.RecommendedActionSessionsOperationStatus type RecommendedActionsClient = original.RecommendedActionsClient +type RecoverableServerProperties = original.RecoverableServerProperties +type RecoverableServerResource = original.RecoverableServerResource +type RecoverableServersClient = original.RecoverableServersClient type ReplicasClient = original.ReplicasClient type Resource = original.Resource type ResourceIdentity = original.ResourceIdentity @@ -243,6 +254,7 @@ type ServerAdministratorResourceListResult = original.ServerAdministratorResourc type ServerAdministratorsClient = original.ServerAdministratorsClient type ServerAdministratorsCreateOrUpdateFuture = original.ServerAdministratorsCreateOrUpdateFuture type ServerAdministratorsDeleteFuture = original.ServerAdministratorsDeleteFuture +type ServerBasedPerformanceTierClient = original.ServerBasedPerformanceTierClient type ServerForCreate = original.ServerForCreate type ServerKey = original.ServerKey type ServerKeyListResult = original.ServerKeyListResult @@ -253,6 +265,8 @@ type ServerKeysClient = original.ServerKeysClient type ServerKeysCreateOrUpdateFuture = original.ServerKeysCreateOrUpdateFuture type ServerKeysDeleteFuture = original.ServerKeysDeleteFuture type ServerListResult = original.ServerListResult +type ServerParametersClient = original.ServerParametersClient +type ServerParametersListUpdateConfigurationsFuture = original.ServerParametersListUpdateConfigurationsFuture type ServerPrivateEndpointConnection = original.ServerPrivateEndpointConnection type ServerPrivateEndpointConnectionProperties = original.ServerPrivateEndpointConnectionProperties type ServerPrivateLinkServiceConnectionStateProperty = original.ServerPrivateLinkServiceConnectionStateProperty @@ -265,6 +279,9 @@ type ServerPropertiesForRestore = original.ServerPropertiesForRestore type ServerSecurityAlertPoliciesClient = original.ServerSecurityAlertPoliciesClient type ServerSecurityAlertPoliciesCreateOrUpdateFuture = original.ServerSecurityAlertPoliciesCreateOrUpdateFuture type ServerSecurityAlertPolicy = original.ServerSecurityAlertPolicy +type ServerSecurityAlertPolicyListResult = original.ServerSecurityAlertPolicyListResult +type ServerSecurityAlertPolicyListResultIterator = original.ServerSecurityAlertPolicyListResultIterator +type ServerSecurityAlertPolicyListResultPage = original.ServerSecurityAlertPolicyListResultPage type ServerUpdateParameters = original.ServerUpdateParameters type ServerUpdateParametersProperties = original.ServerUpdateParametersProperties type ServerUpgradeParameters = original.ServerUpgradeParameters @@ -421,6 +438,12 @@ func NewRecommendedActionsClient(subscriptionID string) RecommendedActionsClient func NewRecommendedActionsClientWithBaseURI(baseURI string, subscriptionID string) RecommendedActionsClient { return original.NewRecommendedActionsClientWithBaseURI(baseURI, subscriptionID) } +func NewRecoverableServersClient(subscriptionID string) RecoverableServersClient { + return original.NewRecoverableServersClient(subscriptionID) +} +func NewRecoverableServersClientWithBaseURI(baseURI string, subscriptionID string) RecoverableServersClient { + return original.NewRecoverableServersClientWithBaseURI(baseURI, subscriptionID) +} func NewReplicasClient(subscriptionID string) ReplicasClient { return original.NewReplicasClient(subscriptionID) } @@ -433,6 +456,12 @@ func NewServerAdministratorsClient(subscriptionID string) ServerAdministratorsCl func NewServerAdministratorsClientWithBaseURI(baseURI string, subscriptionID string) ServerAdministratorsClient { return original.NewServerAdministratorsClientWithBaseURI(baseURI, subscriptionID) } +func NewServerBasedPerformanceTierClient(subscriptionID string) ServerBasedPerformanceTierClient { + return original.NewServerBasedPerformanceTierClient(subscriptionID) +} +func NewServerBasedPerformanceTierClientWithBaseURI(baseURI string, subscriptionID string) ServerBasedPerformanceTierClient { + return original.NewServerBasedPerformanceTierClientWithBaseURI(baseURI, subscriptionID) +} func NewServerKeyListResultIterator(page ServerKeyListResultPage) ServerKeyListResultIterator { return original.NewServerKeyListResultIterator(page) } @@ -445,12 +474,24 @@ func NewServerKeysClient(subscriptionID string) ServerKeysClient { func NewServerKeysClientWithBaseURI(baseURI string, subscriptionID string) ServerKeysClient { return original.NewServerKeysClientWithBaseURI(baseURI, subscriptionID) } +func NewServerParametersClient(subscriptionID string) ServerParametersClient { + return original.NewServerParametersClient(subscriptionID) +} +func NewServerParametersClientWithBaseURI(baseURI string, subscriptionID string) ServerParametersClient { + return original.NewServerParametersClientWithBaseURI(baseURI, subscriptionID) +} func NewServerSecurityAlertPoliciesClient(subscriptionID string) ServerSecurityAlertPoliciesClient { return original.NewServerSecurityAlertPoliciesClient(subscriptionID) } func NewServerSecurityAlertPoliciesClientWithBaseURI(baseURI string, subscriptionID string) ServerSecurityAlertPoliciesClient { return original.NewServerSecurityAlertPoliciesClientWithBaseURI(baseURI, subscriptionID) } +func NewServerSecurityAlertPolicyListResultIterator(page ServerSecurityAlertPolicyListResultPage) ServerSecurityAlertPolicyListResultIterator { + return original.NewServerSecurityAlertPolicyListResultIterator(page) +} +func NewServerSecurityAlertPolicyListResultPage(cur ServerSecurityAlertPolicyListResult, getNextPage func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error)) ServerSecurityAlertPolicyListResultPage { + return original.NewServerSecurityAlertPolicyListResultPage(cur, getNextPage) +} func NewServersClient(subscriptionID string) ServersClient { return original.NewServersClient(subscriptionID) } @@ -526,6 +567,9 @@ func PossiblePrivateLinkServiceConnectionStateStatusValues() []PrivateLinkServic func PossiblePublicNetworkAccessEnumValues() []PublicNetworkAccessEnum { return original.PossiblePublicNetworkAccessEnumValues() } +func PossibleQueryPerformanceInsightResetDataResultStateValues() []QueryPerformanceInsightResetDataResultState { + return original.PossibleQueryPerformanceInsightResetDataResultStateValues() +} func PossibleServerSecurityAlertPolicyStateValues() []ServerSecurityAlertPolicyState { return original.PossibleServerSecurityAlertPolicyStateValues() } diff --git a/profiles/preview/mysql/mgmt/mysql/mysqlapi/models.go b/profiles/preview/mysql/mgmt/mysql/mysqlapi/models.go index 30359d0b1994..2da76e20cabd 100644 --- a/profiles/preview/mysql/mgmt/mysql/mysqlapi/models.go +++ b/profiles/preview/mysql/mgmt/mysql/mysqlapi/models.go @@ -25,9 +25,12 @@ type PrivateEndpointConnectionsClientAPI = original.PrivateEndpointConnectionsCl type PrivateLinkResourcesClientAPI = original.PrivateLinkResourcesClientAPI type QueryTextsClientAPI = original.QueryTextsClientAPI type RecommendedActionsClientAPI = original.RecommendedActionsClientAPI +type RecoverableServersClientAPI = original.RecoverableServersClientAPI type ReplicasClientAPI = original.ReplicasClientAPI type ServerAdministratorsClientAPI = original.ServerAdministratorsClientAPI +type ServerBasedPerformanceTierClientAPI = original.ServerBasedPerformanceTierClientAPI type ServerKeysClientAPI = original.ServerKeysClientAPI +type ServerParametersClientAPI = original.ServerParametersClientAPI type ServerSecurityAlertPoliciesClientAPI = original.ServerSecurityAlertPoliciesClientAPI type ServersClientAPI = original.ServersClientAPI type TopQueryStatisticsClientAPI = original.TopQueryStatisticsClientAPI diff --git a/services/mysql/mgmt/2020-01-01/mysql/CHANGELOG.md b/services/mysql/mgmt/2020-01-01/mysql/CHANGELOG.md index c7809bd39811..15727bfe1396 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/CHANGELOG.md +++ b/services/mysql/mgmt/2020-01-01/mysql/CHANGELOG.md @@ -2,23 +2,80 @@ ## Additive Changes +### New Constants + +1. QueryPerformanceInsightResetDataResultState.QueryPerformanceInsightResetDataResultStateFailed +1. QueryPerformanceInsightResetDataResultState.QueryPerformanceInsightResetDataResultStateSucceeded + ### New Funcs -1. AdvisorsResultList.MarshalJSON() ([]byte, error) -1. AzureEntityResource.MarshalJSON() ([]byte, error) -1. ErrorAdditionalInfo.MarshalJSON() ([]byte, error) -1. ErrorResponse.MarshalJSON() ([]byte, error) -1. OperationDisplay.MarshalJSON() ([]byte, error) -1. PrivateEndpointConnectionListResult.MarshalJSON() ([]byte, error) -1. PrivateLinkResource.MarshalJSON() ([]byte, error) -1. PrivateLinkResourceListResult.MarshalJSON() ([]byte, error) -1. PrivateLinkResourceProperties.MarshalJSON() ([]byte, error) -1. ProxyResource.MarshalJSON() ([]byte, error) -1. QueryTextsResultList.MarshalJSON() ([]byte, error) -1. RecommendationActionsResultList.MarshalJSON() ([]byte, error) -1. Resource.MarshalJSON() ([]byte, error) -1. ServerKeyListResult.MarshalJSON() ([]byte, error) -1. ServerPrivateEndpointConnection.MarshalJSON() ([]byte, error) -1. TopQueryStatisticsResultList.MarshalJSON() ([]byte, error) -1. VirtualNetworkRuleListResult.MarshalJSON() ([]byte, error) -1. WaitStatisticsResultList.MarshalJSON() ([]byte, error) +1. *RecoverableServerResource.UnmarshalJSON([]byte) error +1. *ServerParametersListUpdateConfigurationsFuture.UnmarshalJSON([]byte) error +1. *ServerSecurityAlertPolicyListResultIterator.Next() error +1. *ServerSecurityAlertPolicyListResultIterator.NextWithContext(context.Context) error +1. *ServerSecurityAlertPolicyListResultPage.Next() error +1. *ServerSecurityAlertPolicyListResultPage.NextWithContext(context.Context) error +1. BaseClient.ResetQueryPerformanceInsightData(context.Context, string, string) (QueryPerformanceInsightResetDataResult, error) +1. BaseClient.ResetQueryPerformanceInsightDataPreparer(context.Context, string, string) (*http.Request, error) +1. BaseClient.ResetQueryPerformanceInsightDataResponder(*http.Response) (QueryPerformanceInsightResetDataResult, error) +1. BaseClient.ResetQueryPerformanceInsightDataSender(*http.Request) (*http.Response, error) +1. NewRecoverableServersClient(string) RecoverableServersClient +1. NewRecoverableServersClientWithBaseURI(string, string) RecoverableServersClient +1. NewServerBasedPerformanceTierClient(string) ServerBasedPerformanceTierClient +1. NewServerBasedPerformanceTierClientWithBaseURI(string, string) ServerBasedPerformanceTierClient +1. NewServerParametersClient(string) ServerParametersClient +1. NewServerParametersClientWithBaseURI(string, string) ServerParametersClient +1. NewServerSecurityAlertPolicyListResultIterator(ServerSecurityAlertPolicyListResultPage) ServerSecurityAlertPolicyListResultIterator +1. NewServerSecurityAlertPolicyListResultPage(ServerSecurityAlertPolicyListResult, func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error)) ServerSecurityAlertPolicyListResultPage +1. PossibleQueryPerformanceInsightResetDataResultStateValues() []QueryPerformanceInsightResetDataResultState +1. RecoverableServerProperties.MarshalJSON() ([]byte, error) +1. RecoverableServerResource.MarshalJSON() ([]byte, error) +1. RecoverableServersClient.Get(context.Context, string, string) (RecoverableServerResource, error) +1. RecoverableServersClient.GetPreparer(context.Context, string, string) (*http.Request, error) +1. RecoverableServersClient.GetResponder(*http.Response) (RecoverableServerResource, error) +1. RecoverableServersClient.GetSender(*http.Request) (*http.Response, error) +1. ServerBasedPerformanceTierClient.List(context.Context, string, string) (PerformanceTierListResult, error) +1. ServerBasedPerformanceTierClient.ListPreparer(context.Context, string, string) (*http.Request, error) +1. ServerBasedPerformanceTierClient.ListResponder(*http.Response) (PerformanceTierListResult, error) +1. ServerBasedPerformanceTierClient.ListSender(*http.Request) (*http.Response, error) +1. ServerParametersClient.ListUpdateConfigurations(context.Context, string, string, ConfigurationListResult) (ServerParametersListUpdateConfigurationsFuture, error) +1. ServerParametersClient.ListUpdateConfigurationsPreparer(context.Context, string, string, ConfigurationListResult) (*http.Request, error) +1. ServerParametersClient.ListUpdateConfigurationsResponder(*http.Response) (ConfigurationListResult, error) +1. ServerParametersClient.ListUpdateConfigurationsSender(*http.Request) (ServerParametersListUpdateConfigurationsFuture, error) +1. ServerSecurityAlertPoliciesClient.ListByServer(context.Context, string, string) (ServerSecurityAlertPolicyListResultPage, error) +1. ServerSecurityAlertPoliciesClient.ListByServerComplete(context.Context, string, string) (ServerSecurityAlertPolicyListResultIterator, error) +1. ServerSecurityAlertPoliciesClient.ListByServerPreparer(context.Context, string, string) (*http.Request, error) +1. ServerSecurityAlertPoliciesClient.ListByServerResponder(*http.Response) (ServerSecurityAlertPolicyListResult, error) +1. ServerSecurityAlertPoliciesClient.ListByServerSender(*http.Request) (*http.Response, error) +1. ServerSecurityAlertPolicyListResult.IsEmpty() bool +1. ServerSecurityAlertPolicyListResult.MarshalJSON() ([]byte, error) +1. ServerSecurityAlertPolicyListResultIterator.NotDone() bool +1. ServerSecurityAlertPolicyListResultIterator.Response() ServerSecurityAlertPolicyListResult +1. ServerSecurityAlertPolicyListResultIterator.Value() ServerSecurityAlertPolicy +1. ServerSecurityAlertPolicyListResultPage.NotDone() bool +1. ServerSecurityAlertPolicyListResultPage.Response() ServerSecurityAlertPolicyListResult +1. ServerSecurityAlertPolicyListResultPage.Values() []ServerSecurityAlertPolicy + +### Struct Changes + +#### New Structs + +1. QueryPerformanceInsightResetDataResult +1. RecoverableServerProperties +1. RecoverableServerResource +1. RecoverableServersClient +1. ServerBasedPerformanceTierClient +1. ServerParametersClient +1. ServerParametersListUpdateConfigurationsFuture +1. ServerSecurityAlertPolicyListResult +1. ServerSecurityAlertPolicyListResultIterator +1. ServerSecurityAlertPolicyListResultPage + +#### New Struct Fields + +1. PerformanceTierProperties.MaxBackupRetentionDays +1. PerformanceTierProperties.MaxLargeStorageMB +1. PerformanceTierProperties.MaxStorageMB +1. PerformanceTierProperties.MinBackupRetentionDays +1. PerformanceTierProperties.MinLargeStorageMB +1. PerformanceTierProperties.MinStorageMB diff --git a/services/mysql/mgmt/2020-01-01/mysql/_meta.json b/services/mysql/mgmt/2020-01-01/mysql/_meta.json index eb6144234ab1..01a6afa5ddeb 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/_meta.json +++ b/services/mysql/mgmt/2020-01-01/mysql/_meta.json @@ -1,5 +1,5 @@ { - "commit": "3c764635e7d442b3e74caf593029fcd440b3ef82", + "commit": "e3980786418c280ecd7ed2e141407ed0f63cd493", "readme": "/_/azure-rest-api-specs/specification/mysql/resource-manager/readme.md", "tag": "package-2020-01-01", "use": "@microsoft.azure/autorest.go@2.1.183", diff --git a/services/mysql/mgmt/2020-01-01/mysql/advisors.go b/services/mysql/mgmt/2020-01-01/mysql/advisors.go index 6cc3689c44af..2224ad21bf32 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/advisors.go +++ b/services/mysql/mgmt/2020-01-01/mysql/advisors.go @@ -54,8 +54,7 @@ func (client AdvisorsClient) Get(ctx context.Context, resourceGroupName string, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.AdvisorsClient", "Get", err.Error()) } @@ -141,8 +140,7 @@ func (client AdvisorsClient) ListByServer(ctx context.Context, resourceGroupName Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.AdvisorsClient", "ListByServer", err.Error()) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/checknameavailability.go b/services/mysql/mgmt/2020-01-01/mysql/checknameavailability.go index 9e18b9551072..9b702ea68833 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/checknameavailability.go +++ b/services/mysql/mgmt/2020-01-01/mysql/checknameavailability.go @@ -93,7 +93,7 @@ func (client CheckNameAvailabilityClient) ExecutePreparer(ctx context.Context, n autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPost(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBForMySQL/checkNameAvailability", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBforMySQL/checkNameAvailability", pathParameters), autorest.WithJSON(nameAvailabilityRequest), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) diff --git a/services/mysql/mgmt/2020-01-01/mysql/client.go b/services/mysql/mgmt/2020-01-01/mysql/client.go index 887477b51e61..8c6b810be69b 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/client.go +++ b/services/mysql/mgmt/2020-01-01/mysql/client.go @@ -68,8 +68,7 @@ func (client BaseClient) CreateRecommendedActionSession(ctx context.Context, res Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.BaseClient", "CreateRecommendedActionSession", err.Error()) } @@ -136,3 +135,88 @@ func (client BaseClient) CreateRecommendedActionSessionResponder(resp *http.Resp result.Response = resp return } + +// ResetQueryPerformanceInsightData reset data for Query Performance Insight. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +func (client BaseClient) ResetQueryPerformanceInsightData(ctx context.Context, resourceGroupName string, serverName string) (result QueryPerformanceInsightResetDataResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResetQueryPerformanceInsightData") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("mysql.BaseClient", "ResetQueryPerformanceInsightData", err.Error()) + } + + req, err := client.ResetQueryPerformanceInsightDataPreparer(ctx, resourceGroupName, serverName) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.BaseClient", "ResetQueryPerformanceInsightData", nil, "Failure preparing request") + return + } + + resp, err := client.ResetQueryPerformanceInsightDataSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "mysql.BaseClient", "ResetQueryPerformanceInsightData", resp, "Failure sending request") + return + } + + result, err = client.ResetQueryPerformanceInsightDataResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.BaseClient", "ResetQueryPerformanceInsightData", resp, "Failure responding to request") + return + } + + return +} + +// ResetQueryPerformanceInsightDataPreparer prepares the ResetQueryPerformanceInsightData request. +func (client BaseClient) ResetQueryPerformanceInsightDataPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/resetQueryPerformanceInsightData", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResetQueryPerformanceInsightDataSender sends the ResetQueryPerformanceInsightData request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResetQueryPerformanceInsightDataSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ResetQueryPerformanceInsightDataResponder handles the response to the ResetQueryPerformanceInsightData request. The method always +// closes the http.Response Body. +func (client BaseClient) ResetQueryPerformanceInsightDataResponder(resp *http.Response) (result QueryPerformanceInsightResetDataResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mysql/mgmt/2020-01-01/mysql/configurations.go b/services/mysql/mgmt/2020-01-01/mysql/configurations.go index 18622e2583ca..b9e78f11452f 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/configurations.go +++ b/services/mysql/mgmt/2020-01-01/mysql/configurations.go @@ -55,8 +55,7 @@ func (client ConfigurationsClient) CreateOrUpdate(ctx context.Context, resourceG Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ConfigurationsClient", "CreateOrUpdate", err.Error()) } @@ -93,7 +92,7 @@ func (client ConfigurationsClient) CreateOrUpdatePreparer(ctx context.Context, r autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/configurations/{configurationName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/configurations/{configurationName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -147,8 +146,7 @@ func (client ConfigurationsClient) Get(ctx context.Context, resourceGroupName st Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ConfigurationsClient", "Get", err.Error()) } @@ -191,7 +189,7 @@ func (client ConfigurationsClient) GetPreparer(ctx context.Context, resourceGrou preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/configurations/{configurationName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/configurations/{configurationName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -234,8 +232,7 @@ func (client ConfigurationsClient) ListByServer(ctx context.Context, resourceGro Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ConfigurationsClient", "ListByServer", err.Error()) } @@ -277,7 +274,7 @@ func (client ConfigurationsClient) ListByServerPreparer(ctx context.Context, res preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/configurations", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/configurations", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/databases.go b/services/mysql/mgmt/2020-01-01/mysql/databases.go index c1b3be2fb251..84b93ec6da81 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/databases.go +++ b/services/mysql/mgmt/2020-01-01/mysql/databases.go @@ -55,8 +55,7 @@ func (client DatabasesClient) CreateOrUpdate(ctx context.Context, resourceGroupN Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.DatabasesClient", "CreateOrUpdate", err.Error()) } @@ -93,7 +92,7 @@ func (client DatabasesClient) CreateOrUpdatePreparer(ctx context.Context, resour autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/databases/{databaseName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/databases/{databaseName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -147,8 +146,7 @@ func (client DatabasesClient) Delete(ctx context.Context, resourceGroupName stri Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.DatabasesClient", "Delete", err.Error()) } @@ -184,7 +182,7 @@ func (client DatabasesClient) DeletePreparer(ctx context.Context, resourceGroupN preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/databases/{databaseName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/databases/{databaseName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -236,8 +234,7 @@ func (client DatabasesClient) Get(ctx context.Context, resourceGroupName string, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.DatabasesClient", "Get", err.Error()) } @@ -280,7 +277,7 @@ func (client DatabasesClient) GetPreparer(ctx context.Context, resourceGroupName preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/databases/{databaseName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/databases/{databaseName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -323,8 +320,7 @@ func (client DatabasesClient) ListByServer(ctx context.Context, resourceGroupNam Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.DatabasesClient", "ListByServer", err.Error()) } @@ -366,7 +362,7 @@ func (client DatabasesClient) ListByServerPreparer(ctx context.Context, resource preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/databases", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/databases", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/enums.go b/services/mysql/mgmt/2020-01-01/mysql/enums.go index aab41b7d59ca..47e745965f26 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/enums.go +++ b/services/mysql/mgmt/2020-01-01/mysql/enums.go @@ -176,6 +176,22 @@ func PossiblePublicNetworkAccessEnumValues() []PublicNetworkAccessEnum { return []PublicNetworkAccessEnum{PublicNetworkAccessEnumDisabled, PublicNetworkAccessEnumEnabled} } +// QueryPerformanceInsightResetDataResultState enumerates the values for query performance insight reset data +// result state. +type QueryPerformanceInsightResetDataResultState string + +const ( + // QueryPerformanceInsightResetDataResultStateFailed ... + QueryPerformanceInsightResetDataResultStateFailed QueryPerformanceInsightResetDataResultState = "Failed" + // QueryPerformanceInsightResetDataResultStateSucceeded ... + QueryPerformanceInsightResetDataResultStateSucceeded QueryPerformanceInsightResetDataResultState = "Succeeded" +) + +// PossibleQueryPerformanceInsightResetDataResultStateValues returns an array of possible values for the QueryPerformanceInsightResetDataResultState const type. +func PossibleQueryPerformanceInsightResetDataResultStateValues() []QueryPerformanceInsightResetDataResultState { + return []QueryPerformanceInsightResetDataResultState{QueryPerformanceInsightResetDataResultStateFailed, QueryPerformanceInsightResetDataResultStateSucceeded} +} + // ServerSecurityAlertPolicyState enumerates the values for server security alert policy state. type ServerSecurityAlertPolicyState string diff --git a/services/mysql/mgmt/2020-01-01/mysql/firewallrules.go b/services/mysql/mgmt/2020-01-01/mysql/firewallrules.go index 12bcb25d0d41..b6f6a7592a75 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/firewallrules.go +++ b/services/mysql/mgmt/2020-01-01/mysql/firewallrules.go @@ -55,8 +55,7 @@ func (client FirewallRulesClient) CreateOrUpdate(ctx context.Context, resourceGr Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.FirewallRuleProperties", Name: validation.Null, Rule: true, Chain: []validation.Constraint{{Target: "parameters.FirewallRuleProperties.StartIPAddress", Name: validation.Null, Rule: true, @@ -100,7 +99,7 @@ func (client FirewallRulesClient) CreateOrUpdatePreparer(ctx context.Context, re autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -154,8 +153,7 @@ func (client FirewallRulesClient) Delete(ctx context.Context, resourceGroupName Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.FirewallRulesClient", "Delete", err.Error()) } @@ -191,7 +189,7 @@ func (client FirewallRulesClient) DeletePreparer(ctx context.Context, resourceGr preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -243,8 +241,7 @@ func (client FirewallRulesClient) Get(ctx context.Context, resourceGroupName str Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.FirewallRulesClient", "Get", err.Error()) } @@ -287,7 +284,7 @@ func (client FirewallRulesClient) GetPreparer(ctx context.Context, resourceGroup preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -330,8 +327,7 @@ func (client FirewallRulesClient) ListByServer(ctx context.Context, resourceGrou Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.FirewallRulesClient", "ListByServer", err.Error()) } @@ -373,7 +369,7 @@ func (client FirewallRulesClient) ListByServerPreparer(ctx context.Context, reso preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/firewallRules", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/firewallRules", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/locationbasedperformancetier.go b/services/mysql/mgmt/2020-01-01/mysql/locationbasedperformancetier.go index 8e68e5cbacbf..825f9c6f7867 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/locationbasedperformancetier.go +++ b/services/mysql/mgmt/2020-01-01/mysql/locationbasedperformancetier.go @@ -91,7 +91,7 @@ func (client LocationBasedPerformanceTierClient) ListPreparer(ctx context.Contex preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBForMySQL/locations/{locationName}/performanceTiers", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBforMySQL/locations/{locationName}/performanceTiers", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/logfiles.go b/services/mysql/mgmt/2020-01-01/mysql/logfiles.go index 55d6b23555eb..7a0f58a1674d 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/logfiles.go +++ b/services/mysql/mgmt/2020-01-01/mysql/logfiles.go @@ -53,8 +53,7 @@ func (client LogFilesClient) ListByServer(ctx context.Context, resourceGroupName Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.LogFilesClient", "ListByServer", err.Error()) } @@ -96,7 +95,7 @@ func (client LogFilesClient) ListByServerPreparer(ctx context.Context, resourceG preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/logFiles", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/logFiles", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/models.go b/services/mysql/mgmt/2020-01-01/mysql/models.go index 2eb5fb3e5c17..a19d124d3e26 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/models.go +++ b/services/mysql/mgmt/2020-01-01/mysql/models.go @@ -972,6 +972,18 @@ type PerformanceTierListResult struct { type PerformanceTierProperties struct { // ID - ID of the performance tier. ID *string `json:"id,omitempty"` + // MaxBackupRetentionDays - Maximum Backup retention in days for the performance tier edition + MaxBackupRetentionDays *int32 `json:"maxBackupRetentionDays,omitempty"` + // MinBackupRetentionDays - Minimum Backup retention in days for the performance tier edition + MinBackupRetentionDays *int32 `json:"minBackupRetentionDays,omitempty"` + // MaxStorageMB - Max storage allowed for a server. + MaxStorageMB *int32 `json:"maxStorageMB,omitempty"` + // MinLargeStorageMB - Max storage allowed for a server. + MinLargeStorageMB *int32 `json:"minLargeStorageMB,omitempty"` + // MaxLargeStorageMB - Max storage allowed for a server. + MaxLargeStorageMB *int32 `json:"maxLargeStorageMB,omitempty"` + // MinStorageMB - Max storage allowed for a server. + MinStorageMB *int32 `json:"minStorageMB,omitempty"` // ServiceLevelObjectives - Service level objectives associated with the performance tier ServiceLevelObjectives *[]PerformanceTierServiceLevelObjectives `json:"serviceLevelObjectives,omitempty"` } @@ -1624,6 +1636,15 @@ func (pr ProxyResource) MarshalJSON() ([]byte, error) { return json.Marshal(objectMap) } +// QueryPerformanceInsightResetDataResult result of Query Performance Insight data reset. +type QueryPerformanceInsightResetDataResult struct { + autorest.Response `json:"-"` + // Status - Indicates result of the operation. Possible values include: 'QueryPerformanceInsightResetDataResultStateSucceeded', 'QueryPerformanceInsightResetDataResultStateFailed' + Status QueryPerformanceInsightResetDataResultState `json:"status,omitempty"` + // Message - operation message. + Message *string `json:"message,omitempty"` +} + // QueryStatistic represents a Query Statistic. type QueryStatistic struct { autorest.Response `json:"-"` @@ -2267,6 +2288,101 @@ type RecommendedActionSessionsOperationStatus struct { Status *string `json:"status,omitempty"` } +// RecoverableServerProperties the recoverable server's properties. +type RecoverableServerProperties struct { + // LastAvailableBackupDateTime - READ-ONLY; The last available backup date time. + LastAvailableBackupDateTime *string `json:"lastAvailableBackupDateTime,omitempty"` + // ServiceLevelObjective - READ-ONLY; The service level objective + ServiceLevelObjective *string `json:"serviceLevelObjective,omitempty"` + // Edition - READ-ONLY; Edition of the performance tier. + Edition *string `json:"edition,omitempty"` + // VCore - READ-ONLY; vCore associated with the service level objective + VCore *int32 `json:"vCore,omitempty"` + // HardwareGeneration - READ-ONLY; Hardware generation associated with the service level objective + HardwareGeneration *string `json:"hardwareGeneration,omitempty"` + // Version - READ-ONLY; The MySQL version + Version *string `json:"version,omitempty"` +} + +// MarshalJSON is the custom marshaler for RecoverableServerProperties. +func (rsp RecoverableServerProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// RecoverableServerResource a recoverable server resource. +type RecoverableServerResource struct { + autorest.Response `json:"-"` + // RecoverableServerProperties - Resource properties. + *RecoverableServerProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for RecoverableServerResource. +func (rsr RecoverableServerResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if rsr.RecoverableServerProperties != nil { + objectMap["properties"] = rsr.RecoverableServerProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for RecoverableServerResource struct. +func (rsr *RecoverableServerResource) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var recoverableServerProperties RecoverableServerProperties + err = json.Unmarshal(*v, &recoverableServerProperties) + if err != nil { + return err + } + rsr.RecoverableServerProperties = &recoverableServerProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + rsr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + rsr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + rsr.Type = &typeVar + } + } + } + + return nil +} + // Resource common fields that are returned in the response for all Azure Resource Manager resources type Resource struct { // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} @@ -3071,6 +3187,49 @@ type ServerListResult struct { Value *[]Server `json:"value,omitempty"` } +// ServerParametersListUpdateConfigurationsFuture an abstraction for monitoring and retrieving the results +// of a long-running operation. +type ServerParametersListUpdateConfigurationsFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(ServerParametersClient) (ConfigurationListResult, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *ServerParametersListUpdateConfigurationsFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for ServerParametersListUpdateConfigurationsFuture.Result. +func (future *ServerParametersListUpdateConfigurationsFuture) result(client ServerParametersClient) (clr ConfigurationListResult, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerParametersListUpdateConfigurationsFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + clr.Response.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("mysql.ServerParametersListUpdateConfigurationsFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if clr.Response.Response, err = future.GetResult(sender); err == nil && clr.Response.Response.StatusCode != http.StatusNoContent { + clr, err = client.ListUpdateConfigurationsResponder(clr.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerParametersListUpdateConfigurationsFuture", "Result", clr.Response.Response, "Failure responding to request") + } + } + return +} + // ServerPrivateEndpointConnection a private endpoint connection under a server type ServerPrivateEndpointConnection struct { // ID - READ-ONLY; Resource Id of the private endpoint connection. @@ -3873,6 +4032,172 @@ func (ssap *ServerSecurityAlertPolicy) UnmarshalJSON(body []byte) error { return nil } +// ServerSecurityAlertPolicyListResult a list of the server's security alert policies. +type ServerSecurityAlertPolicyListResult struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; Array of results. + Value *[]ServerSecurityAlertPolicy `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to retrieve next page of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServerSecurityAlertPolicyListResult. +func (ssaplr ServerSecurityAlertPolicyListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ServerSecurityAlertPolicyListResultIterator provides access to a complete listing of +// ServerSecurityAlertPolicy values. +type ServerSecurityAlertPolicyListResultIterator struct { + i int + page ServerSecurityAlertPolicyListResultPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *ServerSecurityAlertPolicyListResultIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerSecurityAlertPolicyListResultIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *ServerSecurityAlertPolicyListResultIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter ServerSecurityAlertPolicyListResultIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter ServerSecurityAlertPolicyListResultIterator) Response() ServerSecurityAlertPolicyListResult { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter ServerSecurityAlertPolicyListResultIterator) Value() ServerSecurityAlertPolicy { + if !iter.page.NotDone() { + return ServerSecurityAlertPolicy{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the ServerSecurityAlertPolicyListResultIterator type. +func NewServerSecurityAlertPolicyListResultIterator(page ServerSecurityAlertPolicyListResultPage) ServerSecurityAlertPolicyListResultIterator { + return ServerSecurityAlertPolicyListResultIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ssaplr ServerSecurityAlertPolicyListResult) IsEmpty() bool { + return ssaplr.Value == nil || len(*ssaplr.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (ssaplr ServerSecurityAlertPolicyListResult) hasNextLink() bool { + return ssaplr.NextLink != nil && len(*ssaplr.NextLink) != 0 +} + +// serverSecurityAlertPolicyListResultPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ssaplr ServerSecurityAlertPolicyListResult) serverSecurityAlertPolicyListResultPreparer(ctx context.Context) (*http.Request, error) { + if !ssaplr.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ssaplr.NextLink))) +} + +// ServerSecurityAlertPolicyListResultPage contains a page of ServerSecurityAlertPolicy values. +type ServerSecurityAlertPolicyListResultPage struct { + fn func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error) + ssaplr ServerSecurityAlertPolicyListResult +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *ServerSecurityAlertPolicyListResultPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerSecurityAlertPolicyListResultPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.ssaplr) + if err != nil { + return err + } + page.ssaplr = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *ServerSecurityAlertPolicyListResultPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page ServerSecurityAlertPolicyListResultPage) NotDone() bool { + return !page.ssaplr.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page ServerSecurityAlertPolicyListResultPage) Response() ServerSecurityAlertPolicyListResult { + return page.ssaplr +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page ServerSecurityAlertPolicyListResultPage) Values() []ServerSecurityAlertPolicy { + if page.ssaplr.IsEmpty() { + return nil + } + return *page.ssaplr.Value +} + +// Creates a new instance of the ServerSecurityAlertPolicyListResultPage type. +func NewServerSecurityAlertPolicyListResultPage(cur ServerSecurityAlertPolicyListResult, getNextPage func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error)) ServerSecurityAlertPolicyListResultPage { + return ServerSecurityAlertPolicyListResultPage{ + fn: getNextPage, + ssaplr: cur, + } +} + // ServersRestartFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type ServersRestartFuture struct { diff --git a/services/mysql/mgmt/2020-01-01/mysql/mysqlapi/interfaces.go b/services/mysql/mgmt/2020-01-01/mysql/mysqlapi/interfaces.go index aef51e301ebf..8552c95486ac 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/mysqlapi/interfaces.go +++ b/services/mysql/mgmt/2020-01-01/mysql/mysqlapi/interfaces.go @@ -14,6 +14,7 @@ import ( // BaseClientAPI contains the set of methods on the BaseClient type. type BaseClientAPI interface { CreateRecommendedActionSession(ctx context.Context, resourceGroupName string, serverName string, advisorName string, databaseName string) (result mysql.CreateRecommendedActionSessionFuture, err error) + ResetQueryPerformanceInsightData(ctx context.Context, resourceGroupName string, serverName string) (result mysql.QueryPerformanceInsightResetDataResult, err error) } var _ BaseClientAPI = (*mysql.BaseClient)(nil) @@ -81,6 +82,13 @@ type ConfigurationsClientAPI interface { var _ ConfigurationsClientAPI = (*mysql.ConfigurationsClient)(nil) +// ServerParametersClientAPI contains the set of methods on the ServerParametersClient type. +type ServerParametersClientAPI interface { + ListUpdateConfigurations(ctx context.Context, resourceGroupName string, serverName string, value mysql.ConfigurationListResult) (result mysql.ServerParametersListUpdateConfigurationsFuture, err error) +} + +var _ ServerParametersClientAPI = (*mysql.ServerParametersClient)(nil) + // LogFilesClientAPI contains the set of methods on the LogFilesClient type. type LogFilesClientAPI interface { ListByServer(ctx context.Context, resourceGroupName string, serverName string) (result mysql.LogFileListResult, err error) @@ -98,6 +106,20 @@ type ServerAdministratorsClientAPI interface { var _ ServerAdministratorsClientAPI = (*mysql.ServerAdministratorsClient)(nil) +// RecoverableServersClientAPI contains the set of methods on the RecoverableServersClient type. +type RecoverableServersClientAPI interface { + Get(ctx context.Context, resourceGroupName string, serverName string) (result mysql.RecoverableServerResource, err error) +} + +var _ RecoverableServersClientAPI = (*mysql.RecoverableServersClient)(nil) + +// ServerBasedPerformanceTierClientAPI contains the set of methods on the ServerBasedPerformanceTierClient type. +type ServerBasedPerformanceTierClientAPI interface { + List(ctx context.Context, resourceGroupName string, serverName string) (result mysql.PerformanceTierListResult, err error) +} + +var _ ServerBasedPerformanceTierClientAPI = (*mysql.ServerBasedPerformanceTierClient)(nil) + // LocationBasedPerformanceTierClientAPI contains the set of methods on the LocationBasedPerformanceTierClient type. type LocationBasedPerformanceTierClientAPI interface { List(ctx context.Context, locationName string) (result mysql.PerformanceTierListResult, err error) @@ -123,6 +145,8 @@ var _ OperationsClientAPI = (*mysql.OperationsClient)(nil) type ServerSecurityAlertPoliciesClientAPI interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, serverName string, parameters mysql.ServerSecurityAlertPolicy) (result mysql.ServerSecurityAlertPoliciesCreateOrUpdateFuture, err error) Get(ctx context.Context, resourceGroupName string, serverName string) (result mysql.ServerSecurityAlertPolicy, err error) + ListByServer(ctx context.Context, resourceGroupName string, serverName string) (result mysql.ServerSecurityAlertPolicyListResultPage, err error) + ListByServerComplete(ctx context.Context, resourceGroupName string, serverName string) (result mysql.ServerSecurityAlertPolicyListResultIterator, err error) } var _ ServerSecurityAlertPoliciesClientAPI = (*mysql.ServerSecurityAlertPoliciesClient)(nil) diff --git a/services/mysql/mgmt/2020-01-01/mysql/operations.go b/services/mysql/mgmt/2020-01-01/mysql/operations.go index 071895e3bab0..60e864ef1d71 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/operations.go +++ b/services/mysql/mgmt/2020-01-01/mysql/operations.go @@ -76,7 +76,7 @@ func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPath("/providers/Microsoft.DBForMySQL/operations"), + autorest.WithPath("/providers/Microsoft.DBforMySQL/operations"), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/privateendpointconnections.go b/services/mysql/mgmt/2020-01-01/mysql/privateendpointconnections.go index e4baf655a9db..9ca2a09ea073 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/privateendpointconnections.go +++ b/services/mysql/mgmt/2020-01-01/mysql/privateendpointconnections.go @@ -52,8 +52,7 @@ func (client PrivateEndpointConnectionsClient) CreateOrUpdate(ctx context.Contex if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.PrivateEndpointConnectionProperties", Name: validation.Null, Rule: false, Chain: []validation.Constraint{{Target: "parameters.PrivateEndpointConnectionProperties.PrivateLinkServiceConnectionState", Name: validation.Null, Rule: false, @@ -150,8 +149,7 @@ func (client PrivateEndpointConnectionsClient) Delete(ctx context.Context, resou if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.PrivateEndpointConnectionsClient", "Delete", err.Error()) @@ -239,8 +237,7 @@ func (client PrivateEndpointConnectionsClient) Get(ctx context.Context, resource if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.PrivateEndpointConnectionsClient", "Get", err.Error()) @@ -326,8 +323,7 @@ func (client PrivateEndpointConnectionsClient) ListByServer(ctx context.Context, if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.PrivateEndpointConnectionsClient", "ListByServer", err.Error()) @@ -457,8 +453,7 @@ func (client PrivateEndpointConnectionsClient) UpdateTags(ctx context.Context, r Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.PrivateEndpointConnectionsClient", "UpdateTags", err.Error()) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/privatelinkresources.go b/services/mysql/mgmt/2020-01-01/mysql/privatelinkresources.go index 41ba9141eebb..a69eea528014 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/privatelinkresources.go +++ b/services/mysql/mgmt/2020-01-01/mysql/privatelinkresources.go @@ -53,8 +53,7 @@ func (client PrivateLinkResourcesClient) Get(ctx context.Context, resourceGroupN if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.PrivateLinkResourcesClient", "Get", err.Error()) @@ -140,8 +139,7 @@ func (client PrivateLinkResourcesClient) ListByServer(ctx context.Context, resou if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.PrivateLinkResourcesClient", "ListByServer", err.Error()) diff --git a/services/mysql/mgmt/2020-01-01/mysql/querytexts.go b/services/mysql/mgmt/2020-01-01/mysql/querytexts.go index 7f78e0c5e9a6..2f7093967e24 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/querytexts.go +++ b/services/mysql/mgmt/2020-01-01/mysql/querytexts.go @@ -54,8 +54,7 @@ func (client QueryTextsClient) Get(ctx context.Context, resourceGroupName string Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.QueryTextsClient", "Get", err.Error()) } @@ -142,8 +141,7 @@ func (client QueryTextsClient) ListByServer(ctx context.Context, resourceGroupNa Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: queryIds, Constraints: []validation.Constraint{{Target: "queryIds", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.QueryTextsClient", "ListByServer", err.Error()) diff --git a/services/mysql/mgmt/2020-01-01/mysql/recommendedactions.go b/services/mysql/mgmt/2020-01-01/mysql/recommendedactions.go index 75a8cf1b12ab..a7e91744758c 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/recommendedactions.go +++ b/services/mysql/mgmt/2020-01-01/mysql/recommendedactions.go @@ -56,8 +56,7 @@ func (client RecommendedActionsClient) Get(ctx context.Context, resourceGroupNam Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.RecommendedActionsClient", "Get", err.Error()) } @@ -146,8 +145,7 @@ func (client RecommendedActionsClient) ListByServer(ctx context.Context, resourc Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.RecommendedActionsClient", "ListByServer", err.Error()) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/recoverableservers.go b/services/mysql/mgmt/2020-01-01/mysql/recoverableservers.go new file mode 100644 index 000000000000..d4fc92054935 --- /dev/null +++ b/services/mysql/mgmt/2020-01-01/mysql/recoverableservers.go @@ -0,0 +1,120 @@ +package mysql + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// RecoverableServersClient is the the Microsoft Azure management API provides create, read, update, and delete +// functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and +// configurations with new business model. +type RecoverableServersClient struct { + BaseClient +} + +// NewRecoverableServersClient creates an instance of the RecoverableServersClient client. +func NewRecoverableServersClient(subscriptionID string) RecoverableServersClient { + return NewRecoverableServersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewRecoverableServersClientWithBaseURI creates an instance of the RecoverableServersClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewRecoverableServersClientWithBaseURI(baseURI string, subscriptionID string) RecoverableServersClient { + return RecoverableServersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get gets a recoverable MySQL Server. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +func (client RecoverableServersClient) Get(ctx context.Context, resourceGroupName string, serverName string) (result RecoverableServerResource, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RecoverableServersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("mysql.RecoverableServersClient", "Get", err.Error()) + } + + req, err := client.GetPreparer(ctx, resourceGroupName, serverName) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.RecoverableServersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "mysql.RecoverableServersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.RecoverableServersClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client RecoverableServersClient) GetPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-12-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/recoverableServers", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client RecoverableServersClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client RecoverableServersClient) GetResponder(resp *http.Response) (result RecoverableServerResource, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mysql/mgmt/2020-01-01/mysql/replicas.go b/services/mysql/mgmt/2020-01-01/mysql/replicas.go index a689a6540a7e..4ee45727f179 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/replicas.go +++ b/services/mysql/mgmt/2020-01-01/mysql/replicas.go @@ -53,8 +53,7 @@ func (client ReplicasClient) ListByServer(ctx context.Context, resourceGroupName Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ReplicasClient", "ListByServer", err.Error()) } @@ -96,7 +95,7 @@ func (client ReplicasClient) ListByServerPreparer(ctx context.Context, resourceG preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/replicas", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/replicas", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/serveradministrators.go b/services/mysql/mgmt/2020-01-01/mysql/serveradministrators.go index 82dd68e993f9..6d7d77a3b9a6 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/serveradministrators.go +++ b/services/mysql/mgmt/2020-01-01/mysql/serveradministrators.go @@ -56,8 +56,7 @@ func (client ServerAdministratorsClient) CreateOrUpdate(ctx context.Context, res Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: properties, Constraints: []validation.Constraint{{Target: "properties.ServerAdministratorProperties", Name: validation.Null, Rule: false, Chain: []validation.Constraint{{Target: "properties.ServerAdministratorProperties.AdministratorType", Name: validation.Null, Rule: true, Chain: nil}, @@ -100,7 +99,7 @@ func (client ServerAdministratorsClient) CreateOrUpdatePreparer(ctx context.Cont autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/Administrators/activeDirectory", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/administrators/activeDirectory", pathParameters), autorest.WithJSON(properties), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -153,8 +152,7 @@ func (client ServerAdministratorsClient) Delete(ctx context.Context, resourceGro Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerAdministratorsClient", "Delete", err.Error()) } @@ -189,7 +187,7 @@ func (client ServerAdministratorsClient) DeletePreparer(ctx context.Context, res preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/Administrators/activeDirectory", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/administrators/activeDirectory", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -240,8 +238,7 @@ func (client ServerAdministratorsClient) Get(ctx context.Context, resourceGroupN Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerAdministratorsClient", "Get", err.Error()) } @@ -283,7 +280,7 @@ func (client ServerAdministratorsClient) GetPreparer(ctx context.Context, resour preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/Administrators/activeDirectory", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/administrators/activeDirectory", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -326,8 +323,7 @@ func (client ServerAdministratorsClient) List(ctx context.Context, resourceGroup Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerAdministratorsClient", "List", err.Error()) } @@ -369,7 +365,7 @@ func (client ServerAdministratorsClient) ListPreparer(ctx context.Context, resou preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/administrators", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/administrators", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/serverbasedperformancetier.go b/services/mysql/mgmt/2020-01-01/mysql/serverbasedperformancetier.go new file mode 100644 index 000000000000..0ff0eb048231 --- /dev/null +++ b/services/mysql/mgmt/2020-01-01/mysql/serverbasedperformancetier.go @@ -0,0 +1,120 @@ +package mysql + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ServerBasedPerformanceTierClient is the the Microsoft Azure management API provides create, read, update, and delete +// functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and +// configurations with new business model. +type ServerBasedPerformanceTierClient struct { + BaseClient +} + +// NewServerBasedPerformanceTierClient creates an instance of the ServerBasedPerformanceTierClient client. +func NewServerBasedPerformanceTierClient(subscriptionID string) ServerBasedPerformanceTierClient { + return NewServerBasedPerformanceTierClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewServerBasedPerformanceTierClientWithBaseURI creates an instance of the ServerBasedPerformanceTierClient client +// using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign +// clouds, Azure stack). +func NewServerBasedPerformanceTierClientWithBaseURI(baseURI string, subscriptionID string) ServerBasedPerformanceTierClient { + return ServerBasedPerformanceTierClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// List list all the performance tiers for a MySQL server. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +func (client ServerBasedPerformanceTierClient) List(ctx context.Context, resourceGroupName string, serverName string) (result PerformanceTierListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerBasedPerformanceTierClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("mysql.ServerBasedPerformanceTierClient", "List", err.Error()) + } + + req, err := client.ListPreparer(ctx, resourceGroupName, serverName) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerBasedPerformanceTierClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "mysql.ServerBasedPerformanceTierClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerBasedPerformanceTierClient", "List", resp, "Failure responding to request") + return + } + + return +} + +// ListPreparer prepares the List request. +func (client ServerBasedPerformanceTierClient) ListPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-12-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/performanceTiers", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ServerBasedPerformanceTierClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ServerBasedPerformanceTierClient) ListResponder(resp *http.Response) (result PerformanceTierListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mysql/mgmt/2020-01-01/mysql/serverkeys.go b/services/mysql/mgmt/2020-01-01/mysql/serverkeys.go index a569ee221cc4..58c12f4e9ed0 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/serverkeys.go +++ b/services/mysql/mgmt/2020-01-01/mysql/serverkeys.go @@ -58,8 +58,7 @@ func (client ServerKeysClient) CreateOrUpdate(ctx context.Context, serverName st Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerKeysClient", "CreateOrUpdate", err.Error()) } @@ -151,8 +150,7 @@ func (client ServerKeysClient) Delete(ctx context.Context, serverName string, ke Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerKeysClient", "Delete", err.Error()) } @@ -238,8 +236,7 @@ func (client ServerKeysClient) Get(ctx context.Context, resourceGroupName string if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerKeysClient", "Get", err.Error()) @@ -327,8 +324,7 @@ func (client ServerKeysClient) List(ctx context.Context, resourceGroupName strin Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerKeysClient", "List", err.Error()) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/serverparameters.go b/services/mysql/mgmt/2020-01-01/mysql/serverparameters.go new file mode 100644 index 000000000000..8abc4a100608 --- /dev/null +++ b/services/mysql/mgmt/2020-01-01/mysql/serverparameters.go @@ -0,0 +1,125 @@ +package mysql + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ServerParametersClient is the the Microsoft Azure management API provides create, read, update, and delete +// functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, log files and +// configurations with new business model. +type ServerParametersClient struct { + BaseClient +} + +// NewServerParametersClient creates an instance of the ServerParametersClient client. +func NewServerParametersClient(subscriptionID string) ServerParametersClient { + return NewServerParametersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewServerParametersClientWithBaseURI creates an instance of the ServerParametersClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewServerParametersClientWithBaseURI(baseURI string, subscriptionID string) ServerParametersClient { + return ServerParametersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// ListUpdateConfigurations update a list of configurations in a given server. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +// value - the parameters for updating a list of server configuration. +func (client ServerParametersClient) ListUpdateConfigurations(ctx context.Context, resourceGroupName string, serverName string, value ConfigurationListResult) (result ServerParametersListUpdateConfigurationsFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerParametersClient.ListUpdateConfigurations") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("mysql.ServerParametersClient", "ListUpdateConfigurations", err.Error()) + } + + req, err := client.ListUpdateConfigurationsPreparer(ctx, resourceGroupName, serverName, value) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerParametersClient", "ListUpdateConfigurations", nil, "Failure preparing request") + return + } + + result, err = client.ListUpdateConfigurationsSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerParametersClient", "ListUpdateConfigurations", nil, "Failure sending request") + return + } + + return +} + +// ListUpdateConfigurationsPreparer prepares the ListUpdateConfigurations request. +func (client ServerParametersClient) ListUpdateConfigurationsPreparer(ctx context.Context, resourceGroupName string, serverName string, value ConfigurationListResult) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-12-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/updateConfigurations", pathParameters), + autorest.WithJSON(value), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListUpdateConfigurationsSender sends the ListUpdateConfigurations request. The method will close the +// http.Response Body if it receives an error. +func (client ServerParametersClient) ListUpdateConfigurationsSender(req *http.Request) (future ServerParametersListUpdateConfigurationsFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// ListUpdateConfigurationsResponder handles the response to the ListUpdateConfigurations request. The method always +// closes the http.Response Body. +func (client ServerParametersClient) ListUpdateConfigurationsResponder(resp *http.Response) (result ConfigurationListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/mysql/mgmt/2020-01-01/mysql/servers.go b/services/mysql/mgmt/2020-01-01/mysql/servers.go index db98e13d4941..05e836d20c21 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/servers.go +++ b/services/mysql/mgmt/2020-01-01/mysql/servers.go @@ -54,8 +54,7 @@ func (client ServersClient) Create(ctx context.Context, resourceGroupName string Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.Sku", Name: validation.Null, Rule: false, Chain: []validation.Constraint{{Target: "parameters.Sku.Name", Name: validation.Null, Rule: true, Chain: nil}, @@ -98,7 +97,7 @@ func (client ServersClient) CreatePreparer(ctx context.Context, resourceGroupNam autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -151,8 +150,7 @@ func (client ServersClient) Delete(ctx context.Context, resourceGroupName string Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServersClient", "Delete", err.Error()) } @@ -187,7 +185,7 @@ func (client ServersClient) DeletePreparer(ctx context.Context, resourceGroupNam preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -238,8 +236,7 @@ func (client ServersClient) Get(ctx context.Context, resourceGroupName string, s Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServersClient", "Get", err.Error()) } @@ -281,7 +278,7 @@ func (client ServersClient) GetPreparer(ctx context.Context, resourceGroupName s preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -358,7 +355,7 @@ func (client ServersClient) ListPreparer(ctx context.Context) (*http.Request, er preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBForMySQL/servers", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBforMySQL/servers", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -400,8 +397,7 @@ func (client ServersClient) ListByResourceGroup(ctx context.Context, resourceGro Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServersClient", "ListByResourceGroup", err.Error()) } @@ -442,7 +438,7 @@ func (client ServersClient) ListByResourceGroupPreparer(ctx context.Context, res preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -485,8 +481,7 @@ func (client ServersClient) Restart(ctx context.Context, resourceGroupName strin Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServersClient", "Restart", err.Error()) } @@ -521,7 +516,7 @@ func (client ServersClient) RestartPreparer(ctx context.Context, resourceGroupNa preparer := autorest.CreatePreparer( autorest.AsPost(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/restart", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/restart", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -572,8 +567,7 @@ func (client ServersClient) Start(ctx context.Context, resourceGroupName string, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServersClient", "Start", err.Error()) } @@ -659,8 +653,7 @@ func (client ServersClient) Stop(ctx context.Context, resourceGroupName string, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServersClient", "Stop", err.Error()) } @@ -748,8 +741,7 @@ func (client ServersClient) Update(ctx context.Context, resourceGroupName string Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServersClient", "Update", err.Error()) } @@ -785,7 +777,7 @@ func (client ServersClient) UpdatePreparer(ctx context.Context, resourceGroupNam autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPatch(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -839,8 +831,7 @@ func (client ServersClient) Upgrade(ctx context.Context, resourceGroupName strin Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServersClient", "Upgrade", err.Error()) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/serversecurityalertpolicies.go b/services/mysql/mgmt/2020-01-01/mysql/serversecurityalertpolicies.go index 2a811d71c765..2280c4af0075 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/serversecurityalertpolicies.go +++ b/services/mysql/mgmt/2020-01-01/mysql/serversecurityalertpolicies.go @@ -53,8 +53,7 @@ func (client ServerSecurityAlertPoliciesClient) CreateOrUpdate(ctx context.Conte if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerSecurityAlertPoliciesClient", "CreateOrUpdate", err.Error()) @@ -144,8 +143,7 @@ func (client ServerSecurityAlertPoliciesClient) Get(ctx context.Context, resourc if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.ServerSecurityAlertPoliciesClient", "Get", err.Error()) @@ -212,3 +210,130 @@ func (client ServerSecurityAlertPoliciesClient) GetResponder(resp *http.Response result.Response = autorest.Response{Response: resp} return } + +// ListByServer get the server's threat detection policies. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +func (client ServerSecurityAlertPoliciesClient) ListByServer(ctx context.Context, resourceGroupName string, serverName string) (result ServerSecurityAlertPolicyListResultPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerSecurityAlertPoliciesClient.ListByServer") + defer func() { + sc := -1 + if result.ssaplr.Response.Response != nil { + sc = result.ssaplr.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("mysql.ServerSecurityAlertPoliciesClient", "ListByServer", err.Error()) + } + + result.fn = client.listByServerNextResults + req, err := client.ListByServerPreparer(ctx, resourceGroupName, serverName) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerSecurityAlertPoliciesClient", "ListByServer", nil, "Failure preparing request") + return + } + + resp, err := client.ListByServerSender(req) + if err != nil { + result.ssaplr.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "mysql.ServerSecurityAlertPoliciesClient", "ListByServer", resp, "Failure sending request") + return + } + + result.ssaplr, err = client.ListByServerResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerSecurityAlertPoliciesClient", "ListByServer", resp, "Failure responding to request") + return + } + if result.ssaplr.hasNextLink() && result.ssaplr.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListByServerPreparer prepares the ListByServer request. +func (client ServerSecurityAlertPoliciesClient) ListByServerPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-12-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/securityAlertPolicies", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByServerSender sends the ListByServer request. The method will close the +// http.Response Body if it receives an error. +func (client ServerSecurityAlertPoliciesClient) ListByServerSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListByServerResponder handles the response to the ListByServer request. The method always +// closes the http.Response Body. +func (client ServerSecurityAlertPoliciesClient) ListByServerResponder(resp *http.Response) (result ServerSecurityAlertPolicyListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByServerNextResults retrieves the next set of results, if any. +func (client ServerSecurityAlertPoliciesClient) listByServerNextResults(ctx context.Context, lastResults ServerSecurityAlertPolicyListResult) (result ServerSecurityAlertPolicyListResult, err error) { + req, err := lastResults.serverSecurityAlertPolicyListResultPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "mysql.ServerSecurityAlertPoliciesClient", "listByServerNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByServerSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "mysql.ServerSecurityAlertPoliciesClient", "listByServerNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByServerResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "mysql.ServerSecurityAlertPoliciesClient", "listByServerNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByServerComplete enumerates all values, automatically crossing page boundaries as required. +func (client ServerSecurityAlertPoliciesClient) ListByServerComplete(ctx context.Context, resourceGroupName string, serverName string) (result ServerSecurityAlertPolicyListResultIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerSecurityAlertPoliciesClient.ListByServer") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByServer(ctx, resourceGroupName, serverName) + return +} diff --git a/services/mysql/mgmt/2020-01-01/mysql/topquerystatistics.go b/services/mysql/mgmt/2020-01-01/mysql/topquerystatistics.go index b1fd3adfc8c0..3a4006893827 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/topquerystatistics.go +++ b/services/mysql/mgmt/2020-01-01/mysql/topquerystatistics.go @@ -55,8 +55,7 @@ func (client TopQueryStatisticsClient) Get(ctx context.Context, resourceGroupNam Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.TopQueryStatisticsClient", "Get", err.Error()) } @@ -143,8 +142,7 @@ func (client TopQueryStatisticsClient) ListByServer(ctx context.Context, resourc Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.TopQueryStatisticsInputProperties", Name: validation.Null, Rule: true, Chain: []validation.Constraint{{Target: "parameters.TopQueryStatisticsInputProperties.NumberOfTopQueries", Name: validation.Null, Rule: true, Chain: nil}, diff --git a/services/mysql/mgmt/2020-01-01/mysql/virtualnetworkrules.go b/services/mysql/mgmt/2020-01-01/mysql/virtualnetworkrules.go index 581e20925a20..921006f49eb2 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/virtualnetworkrules.go +++ b/services/mysql/mgmt/2020-01-01/mysql/virtualnetworkrules.go @@ -54,8 +54,7 @@ func (client VirtualNetworkRulesClient) CreateOrUpdate(ctx context.Context, reso if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, @@ -97,7 +96,7 @@ func (client VirtualNetworkRulesClient) CreateOrUpdatePreparer(ctx context.Conte autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -149,8 +148,7 @@ func (client VirtualNetworkRulesClient) Delete(ctx context.Context, resourceGrou if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.VirtualNetworkRulesClient", "Delete", err.Error()) @@ -188,7 +186,7 @@ func (client VirtualNetworkRulesClient) DeletePreparer(ctx context.Context, reso preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -238,8 +236,7 @@ func (client VirtualNetworkRulesClient) Get(ctx context.Context, resourceGroupNa if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.VirtualNetworkRulesClient", "Get", err.Error()) @@ -284,7 +281,7 @@ func (client VirtualNetworkRulesClient) GetPreparer(ctx context.Context, resourc preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -325,8 +322,7 @@ func (client VirtualNetworkRulesClient) ListByServer(ctx context.Context, resour if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.VirtualNetworkRulesClient", "ListByServer", err.Error()) @@ -375,7 +371,7 @@ func (client VirtualNetworkRulesClient) ListByServerPreparer(ctx context.Context preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySQL/servers/{serverName}/virtualNetworkRules", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/virtualNetworkRules", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/mysql/mgmt/2020-01-01/mysql/waitstatistics.go b/services/mysql/mgmt/2020-01-01/mysql/waitstatistics.go index a34985f1bd78..741f248a92e4 100644 --- a/services/mysql/mgmt/2020-01-01/mysql/waitstatistics.go +++ b/services/mysql/mgmt/2020-01-01/mysql/waitstatistics.go @@ -54,8 +54,7 @@ func (client WaitStatisticsClient) Get(ctx context.Context, resourceGroupName st Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("mysql.WaitStatisticsClient", "Get", err.Error()) } @@ -142,8 +141,7 @@ func (client WaitStatisticsClient) ListByServer(ctx context.Context, resourceGro Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.WaitStatisticsInputProperties", Name: validation.Null, Rule: true, Chain: []validation.Constraint{{Target: "parameters.WaitStatisticsInputProperties.ObservationStartTime", Name: validation.Null, Rule: true, Chain: nil}, From 58653c3060b7d04156bf5d03ca081f9bd6ce7fd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=AE=AD=E9=A3=9E?= Date: Thu, 15 Jul 2021 14:53:36 +0800 Subject: [PATCH 4/5] Generated from specification/postgresql/resource-manager/readme.md tag package-2020-01-01 (commit hash: e3980786418c280ecd7ed2e141407ed0f63cd493) --- .../postgresql/mgmt/postgresql/models.go | 33 ++ .../mgmt/postgresql/postgresqlapi/models.go | 3 + .../postgresql/mgmt/postgresql/models.go | 33 ++ .../mgmt/postgresql/postgresqlapi/models.go | 3 + .../mgmt/2020-01-01/postgresql/CHANGELOG.md | 77 ++++- .../mgmt/2020-01-01/postgresql/_meta.json | 2 +- .../postgresql/checknameavailability.go | 2 +- .../2020-01-01/postgresql/configurations.go | 15 +- .../mgmt/2020-01-01/postgresql/databases.go | 20 +- .../2020-01-01/postgresql/firewallrules.go | 20 +- .../locationbasedperformancetier.go | 2 +- .../mgmt/2020-01-01/postgresql/logfiles.go | 5 +- .../mgmt/2020-01-01/postgresql/models.go | 316 ++++++++++++++++++ .../mgmt/2020-01-01/postgresql/operations.go | 2 +- .../postgresql/postgresqlapi/interfaces.go | 23 ++ .../postgresql/privateendpointconnections.go | 15 +- .../postgresql/privatelinkresources.go | 6 +- .../postgresql/recoverableservers.go | 120 +++++++ .../mgmt/2020-01-01/postgresql/replicas.go | 5 +- .../postgresql/serveradministrators.go | 20 +- .../postgresql/serverbasedperformancetier.go | 120 +++++++ .../mgmt/2020-01-01/postgresql/serverkeys.go | 12 +- .../2020-01-01/postgresql/serverparameters.go | 125 +++++++ .../mgmt/2020-01-01/postgresql/servers.go | 32 +- .../postgresql/serversecurityalertpolicies.go | 133 +++++++- .../postgresql/virtualnetworkrules.go | 20 +- 26 files changed, 1039 insertions(+), 125 deletions(-) create mode 100644 services/postgresql/mgmt/2020-01-01/postgresql/recoverableservers.go create mode 100644 services/postgresql/mgmt/2020-01-01/postgresql/serverbasedperformancetier.go create mode 100644 services/postgresql/mgmt/2020-01-01/postgresql/serverparameters.go diff --git a/profiles/latest/postgresql/mgmt/postgresql/models.go b/profiles/latest/postgresql/mgmt/postgresql/models.go index 7c35a7c93635..912aa71c6cb4 100644 --- a/profiles/latest/postgresql/mgmt/postgresql/models.go +++ b/profiles/latest/postgresql/mgmt/postgresql/models.go @@ -212,6 +212,9 @@ type PrivateLinkResourceProperties = original.PrivateLinkResourceProperties type PrivateLinkResourcesClient = original.PrivateLinkResourcesClient type PrivateLinkServiceConnectionStateProperty = original.PrivateLinkServiceConnectionStateProperty type ProxyResource = original.ProxyResource +type RecoverableServerProperties = original.RecoverableServerProperties +type RecoverableServerResource = original.RecoverableServerResource +type RecoverableServersClient = original.RecoverableServersClient type ReplicasClient = original.ReplicasClient type Resource = original.Resource type ResourceIdentity = original.ResourceIdentity @@ -223,6 +226,7 @@ type ServerAdministratorResourceListResult = original.ServerAdministratorResourc type ServerAdministratorsClient = original.ServerAdministratorsClient type ServerAdministratorsCreateOrUpdateFuture = original.ServerAdministratorsCreateOrUpdateFuture type ServerAdministratorsDeleteFuture = original.ServerAdministratorsDeleteFuture +type ServerBasedPerformanceTierClient = original.ServerBasedPerformanceTierClient type ServerForCreate = original.ServerForCreate type ServerKey = original.ServerKey type ServerKeyListResult = original.ServerKeyListResult @@ -233,6 +237,8 @@ type ServerKeysClient = original.ServerKeysClient type ServerKeysCreateOrUpdateFuture = original.ServerKeysCreateOrUpdateFuture type ServerKeysDeleteFuture = original.ServerKeysDeleteFuture type ServerListResult = original.ServerListResult +type ServerParametersClient = original.ServerParametersClient +type ServerParametersListUpdateConfigurationsFuture = original.ServerParametersListUpdateConfigurationsFuture type ServerPrivateEndpointConnection = original.ServerPrivateEndpointConnection type ServerPrivateEndpointConnectionProperties = original.ServerPrivateEndpointConnectionProperties type ServerPrivateLinkServiceConnectionStateProperty = original.ServerPrivateLinkServiceConnectionStateProperty @@ -245,6 +251,9 @@ type ServerPropertiesForRestore = original.ServerPropertiesForRestore type ServerSecurityAlertPoliciesClient = original.ServerSecurityAlertPoliciesClient type ServerSecurityAlertPoliciesCreateOrUpdateFuture = original.ServerSecurityAlertPoliciesCreateOrUpdateFuture type ServerSecurityAlertPolicy = original.ServerSecurityAlertPolicy +type ServerSecurityAlertPolicyListResult = original.ServerSecurityAlertPolicyListResult +type ServerSecurityAlertPolicyListResultIterator = original.ServerSecurityAlertPolicyListResultIterator +type ServerSecurityAlertPolicyListResultPage = original.ServerSecurityAlertPolicyListResultPage type ServerUpdateParameters = original.ServerUpdateParameters type ServerUpdateParametersProperties = original.ServerUpdateParametersProperties type ServersClient = original.ServersClient @@ -334,6 +343,12 @@ func NewPrivateLinkResourcesClient(subscriptionID string) PrivateLinkResourcesCl func NewPrivateLinkResourcesClientWithBaseURI(baseURI string, subscriptionID string) PrivateLinkResourcesClient { return original.NewPrivateLinkResourcesClientWithBaseURI(baseURI, subscriptionID) } +func NewRecoverableServersClient(subscriptionID string) RecoverableServersClient { + return original.NewRecoverableServersClient(subscriptionID) +} +func NewRecoverableServersClientWithBaseURI(baseURI string, subscriptionID string) RecoverableServersClient { + return original.NewRecoverableServersClientWithBaseURI(baseURI, subscriptionID) +} func NewReplicasClient(subscriptionID string) ReplicasClient { return original.NewReplicasClient(subscriptionID) } @@ -346,6 +361,12 @@ func NewServerAdministratorsClient(subscriptionID string) ServerAdministratorsCl func NewServerAdministratorsClientWithBaseURI(baseURI string, subscriptionID string) ServerAdministratorsClient { return original.NewServerAdministratorsClientWithBaseURI(baseURI, subscriptionID) } +func NewServerBasedPerformanceTierClient(subscriptionID string) ServerBasedPerformanceTierClient { + return original.NewServerBasedPerformanceTierClient(subscriptionID) +} +func NewServerBasedPerformanceTierClientWithBaseURI(baseURI string, subscriptionID string) ServerBasedPerformanceTierClient { + return original.NewServerBasedPerformanceTierClientWithBaseURI(baseURI, subscriptionID) +} func NewServerKeyListResultIterator(page ServerKeyListResultPage) ServerKeyListResultIterator { return original.NewServerKeyListResultIterator(page) } @@ -358,12 +379,24 @@ func NewServerKeysClient(subscriptionID string) ServerKeysClient { func NewServerKeysClientWithBaseURI(baseURI string, subscriptionID string) ServerKeysClient { return original.NewServerKeysClientWithBaseURI(baseURI, subscriptionID) } +func NewServerParametersClient(subscriptionID string) ServerParametersClient { + return original.NewServerParametersClient(subscriptionID) +} +func NewServerParametersClientWithBaseURI(baseURI string, subscriptionID string) ServerParametersClient { + return original.NewServerParametersClientWithBaseURI(baseURI, subscriptionID) +} func NewServerSecurityAlertPoliciesClient(subscriptionID string) ServerSecurityAlertPoliciesClient { return original.NewServerSecurityAlertPoliciesClient(subscriptionID) } func NewServerSecurityAlertPoliciesClientWithBaseURI(baseURI string, subscriptionID string) ServerSecurityAlertPoliciesClient { return original.NewServerSecurityAlertPoliciesClientWithBaseURI(baseURI, subscriptionID) } +func NewServerSecurityAlertPolicyListResultIterator(page ServerSecurityAlertPolicyListResultPage) ServerSecurityAlertPolicyListResultIterator { + return original.NewServerSecurityAlertPolicyListResultIterator(page) +} +func NewServerSecurityAlertPolicyListResultPage(cur ServerSecurityAlertPolicyListResult, getNextPage func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error)) ServerSecurityAlertPolicyListResultPage { + return original.NewServerSecurityAlertPolicyListResultPage(cur, getNextPage) +} func NewServersClient(subscriptionID string) ServersClient { return original.NewServersClient(subscriptionID) } diff --git a/profiles/latest/postgresql/mgmt/postgresql/postgresqlapi/models.go b/profiles/latest/postgresql/mgmt/postgresql/postgresqlapi/models.go index d263209c3487..d65a04e239f1 100644 --- a/profiles/latest/postgresql/mgmt/postgresql/postgresqlapi/models.go +++ b/profiles/latest/postgresql/mgmt/postgresql/postgresqlapi/models.go @@ -19,9 +19,12 @@ type LogFilesClientAPI = original.LogFilesClientAPI type OperationsClientAPI = original.OperationsClientAPI type PrivateEndpointConnectionsClientAPI = original.PrivateEndpointConnectionsClientAPI type PrivateLinkResourcesClientAPI = original.PrivateLinkResourcesClientAPI +type RecoverableServersClientAPI = original.RecoverableServersClientAPI type ReplicasClientAPI = original.ReplicasClientAPI type ServerAdministratorsClientAPI = original.ServerAdministratorsClientAPI +type ServerBasedPerformanceTierClientAPI = original.ServerBasedPerformanceTierClientAPI type ServerKeysClientAPI = original.ServerKeysClientAPI +type ServerParametersClientAPI = original.ServerParametersClientAPI type ServerSecurityAlertPoliciesClientAPI = original.ServerSecurityAlertPoliciesClientAPI type ServersClientAPI = original.ServersClientAPI type VirtualNetworkRulesClientAPI = original.VirtualNetworkRulesClientAPI diff --git a/profiles/preview/postgresql/mgmt/postgresql/models.go b/profiles/preview/postgresql/mgmt/postgresql/models.go index 899fdaead90c..ebef058b8e6f 100644 --- a/profiles/preview/postgresql/mgmt/postgresql/models.go +++ b/profiles/preview/postgresql/mgmt/postgresql/models.go @@ -212,6 +212,9 @@ type PrivateLinkResourceProperties = original.PrivateLinkResourceProperties type PrivateLinkResourcesClient = original.PrivateLinkResourcesClient type PrivateLinkServiceConnectionStateProperty = original.PrivateLinkServiceConnectionStateProperty type ProxyResource = original.ProxyResource +type RecoverableServerProperties = original.RecoverableServerProperties +type RecoverableServerResource = original.RecoverableServerResource +type RecoverableServersClient = original.RecoverableServersClient type ReplicasClient = original.ReplicasClient type Resource = original.Resource type ResourceIdentity = original.ResourceIdentity @@ -223,6 +226,7 @@ type ServerAdministratorResourceListResult = original.ServerAdministratorResourc type ServerAdministratorsClient = original.ServerAdministratorsClient type ServerAdministratorsCreateOrUpdateFuture = original.ServerAdministratorsCreateOrUpdateFuture type ServerAdministratorsDeleteFuture = original.ServerAdministratorsDeleteFuture +type ServerBasedPerformanceTierClient = original.ServerBasedPerformanceTierClient type ServerForCreate = original.ServerForCreate type ServerKey = original.ServerKey type ServerKeyListResult = original.ServerKeyListResult @@ -233,6 +237,8 @@ type ServerKeysClient = original.ServerKeysClient type ServerKeysCreateOrUpdateFuture = original.ServerKeysCreateOrUpdateFuture type ServerKeysDeleteFuture = original.ServerKeysDeleteFuture type ServerListResult = original.ServerListResult +type ServerParametersClient = original.ServerParametersClient +type ServerParametersListUpdateConfigurationsFuture = original.ServerParametersListUpdateConfigurationsFuture type ServerPrivateEndpointConnection = original.ServerPrivateEndpointConnection type ServerPrivateEndpointConnectionProperties = original.ServerPrivateEndpointConnectionProperties type ServerPrivateLinkServiceConnectionStateProperty = original.ServerPrivateLinkServiceConnectionStateProperty @@ -245,6 +251,9 @@ type ServerPropertiesForRestore = original.ServerPropertiesForRestore type ServerSecurityAlertPoliciesClient = original.ServerSecurityAlertPoliciesClient type ServerSecurityAlertPoliciesCreateOrUpdateFuture = original.ServerSecurityAlertPoliciesCreateOrUpdateFuture type ServerSecurityAlertPolicy = original.ServerSecurityAlertPolicy +type ServerSecurityAlertPolicyListResult = original.ServerSecurityAlertPolicyListResult +type ServerSecurityAlertPolicyListResultIterator = original.ServerSecurityAlertPolicyListResultIterator +type ServerSecurityAlertPolicyListResultPage = original.ServerSecurityAlertPolicyListResultPage type ServerUpdateParameters = original.ServerUpdateParameters type ServerUpdateParametersProperties = original.ServerUpdateParametersProperties type ServersClient = original.ServersClient @@ -334,6 +343,12 @@ func NewPrivateLinkResourcesClient(subscriptionID string) PrivateLinkResourcesCl func NewPrivateLinkResourcesClientWithBaseURI(baseURI string, subscriptionID string) PrivateLinkResourcesClient { return original.NewPrivateLinkResourcesClientWithBaseURI(baseURI, subscriptionID) } +func NewRecoverableServersClient(subscriptionID string) RecoverableServersClient { + return original.NewRecoverableServersClient(subscriptionID) +} +func NewRecoverableServersClientWithBaseURI(baseURI string, subscriptionID string) RecoverableServersClient { + return original.NewRecoverableServersClientWithBaseURI(baseURI, subscriptionID) +} func NewReplicasClient(subscriptionID string) ReplicasClient { return original.NewReplicasClient(subscriptionID) } @@ -346,6 +361,12 @@ func NewServerAdministratorsClient(subscriptionID string) ServerAdministratorsCl func NewServerAdministratorsClientWithBaseURI(baseURI string, subscriptionID string) ServerAdministratorsClient { return original.NewServerAdministratorsClientWithBaseURI(baseURI, subscriptionID) } +func NewServerBasedPerformanceTierClient(subscriptionID string) ServerBasedPerformanceTierClient { + return original.NewServerBasedPerformanceTierClient(subscriptionID) +} +func NewServerBasedPerformanceTierClientWithBaseURI(baseURI string, subscriptionID string) ServerBasedPerformanceTierClient { + return original.NewServerBasedPerformanceTierClientWithBaseURI(baseURI, subscriptionID) +} func NewServerKeyListResultIterator(page ServerKeyListResultPage) ServerKeyListResultIterator { return original.NewServerKeyListResultIterator(page) } @@ -358,12 +379,24 @@ func NewServerKeysClient(subscriptionID string) ServerKeysClient { func NewServerKeysClientWithBaseURI(baseURI string, subscriptionID string) ServerKeysClient { return original.NewServerKeysClientWithBaseURI(baseURI, subscriptionID) } +func NewServerParametersClient(subscriptionID string) ServerParametersClient { + return original.NewServerParametersClient(subscriptionID) +} +func NewServerParametersClientWithBaseURI(baseURI string, subscriptionID string) ServerParametersClient { + return original.NewServerParametersClientWithBaseURI(baseURI, subscriptionID) +} func NewServerSecurityAlertPoliciesClient(subscriptionID string) ServerSecurityAlertPoliciesClient { return original.NewServerSecurityAlertPoliciesClient(subscriptionID) } func NewServerSecurityAlertPoliciesClientWithBaseURI(baseURI string, subscriptionID string) ServerSecurityAlertPoliciesClient { return original.NewServerSecurityAlertPoliciesClientWithBaseURI(baseURI, subscriptionID) } +func NewServerSecurityAlertPolicyListResultIterator(page ServerSecurityAlertPolicyListResultPage) ServerSecurityAlertPolicyListResultIterator { + return original.NewServerSecurityAlertPolicyListResultIterator(page) +} +func NewServerSecurityAlertPolicyListResultPage(cur ServerSecurityAlertPolicyListResult, getNextPage func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error)) ServerSecurityAlertPolicyListResultPage { + return original.NewServerSecurityAlertPolicyListResultPage(cur, getNextPage) +} func NewServersClient(subscriptionID string) ServersClient { return original.NewServersClient(subscriptionID) } diff --git a/profiles/preview/postgresql/mgmt/postgresql/postgresqlapi/models.go b/profiles/preview/postgresql/mgmt/postgresql/postgresqlapi/models.go index d263209c3487..d65a04e239f1 100644 --- a/profiles/preview/postgresql/mgmt/postgresql/postgresqlapi/models.go +++ b/profiles/preview/postgresql/mgmt/postgresql/postgresqlapi/models.go @@ -19,9 +19,12 @@ type LogFilesClientAPI = original.LogFilesClientAPI type OperationsClientAPI = original.OperationsClientAPI type PrivateEndpointConnectionsClientAPI = original.PrivateEndpointConnectionsClientAPI type PrivateLinkResourcesClientAPI = original.PrivateLinkResourcesClientAPI +type RecoverableServersClientAPI = original.RecoverableServersClientAPI type ReplicasClientAPI = original.ReplicasClientAPI type ServerAdministratorsClientAPI = original.ServerAdministratorsClientAPI +type ServerBasedPerformanceTierClientAPI = original.ServerBasedPerformanceTierClientAPI type ServerKeysClientAPI = original.ServerKeysClientAPI +type ServerParametersClientAPI = original.ServerParametersClientAPI type ServerSecurityAlertPoliciesClientAPI = original.ServerSecurityAlertPoliciesClientAPI type ServersClientAPI = original.ServersClientAPI type VirtualNetworkRulesClientAPI = original.VirtualNetworkRulesClientAPI diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/CHANGELOG.md b/services/postgresql/mgmt/2020-01-01/postgresql/CHANGELOG.md index bd9e28e8fadd..66548bb4117a 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/CHANGELOG.md +++ b/services/postgresql/mgmt/2020-01-01/postgresql/CHANGELOG.md @@ -4,16 +4,67 @@ ### New Funcs -1. AzureEntityResource.MarshalJSON() ([]byte, error) -1. ErrorAdditionalInfo.MarshalJSON() ([]byte, error) -1. ErrorResponse.MarshalJSON() ([]byte, error) -1. OperationDisplay.MarshalJSON() ([]byte, error) -1. PrivateEndpointConnectionListResult.MarshalJSON() ([]byte, error) -1. PrivateLinkResource.MarshalJSON() ([]byte, error) -1. PrivateLinkResourceListResult.MarshalJSON() ([]byte, error) -1. PrivateLinkResourceProperties.MarshalJSON() ([]byte, error) -1. ProxyResource.MarshalJSON() ([]byte, error) -1. Resource.MarshalJSON() ([]byte, error) -1. ServerKeyListResult.MarshalJSON() ([]byte, error) -1. ServerPrivateEndpointConnection.MarshalJSON() ([]byte, error) -1. VirtualNetworkRuleListResult.MarshalJSON() ([]byte, error) +1. *RecoverableServerResource.UnmarshalJSON([]byte) error +1. *ServerParametersListUpdateConfigurationsFuture.UnmarshalJSON([]byte) error +1. *ServerSecurityAlertPolicyListResultIterator.Next() error +1. *ServerSecurityAlertPolicyListResultIterator.NextWithContext(context.Context) error +1. *ServerSecurityAlertPolicyListResultPage.Next() error +1. *ServerSecurityAlertPolicyListResultPage.NextWithContext(context.Context) error +1. NewRecoverableServersClient(string) RecoverableServersClient +1. NewRecoverableServersClientWithBaseURI(string, string) RecoverableServersClient +1. NewServerBasedPerformanceTierClient(string) ServerBasedPerformanceTierClient +1. NewServerBasedPerformanceTierClientWithBaseURI(string, string) ServerBasedPerformanceTierClient +1. NewServerParametersClient(string) ServerParametersClient +1. NewServerParametersClientWithBaseURI(string, string) ServerParametersClient +1. NewServerSecurityAlertPolicyListResultIterator(ServerSecurityAlertPolicyListResultPage) ServerSecurityAlertPolicyListResultIterator +1. NewServerSecurityAlertPolicyListResultPage(ServerSecurityAlertPolicyListResult, func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error)) ServerSecurityAlertPolicyListResultPage +1. RecoverableServerProperties.MarshalJSON() ([]byte, error) +1. RecoverableServerResource.MarshalJSON() ([]byte, error) +1. RecoverableServersClient.Get(context.Context, string, string) (RecoverableServerResource, error) +1. RecoverableServersClient.GetPreparer(context.Context, string, string) (*http.Request, error) +1. RecoverableServersClient.GetResponder(*http.Response) (RecoverableServerResource, error) +1. RecoverableServersClient.GetSender(*http.Request) (*http.Response, error) +1. ServerBasedPerformanceTierClient.List(context.Context, string, string) (PerformanceTierListResult, error) +1. ServerBasedPerformanceTierClient.ListPreparer(context.Context, string, string) (*http.Request, error) +1. ServerBasedPerformanceTierClient.ListResponder(*http.Response) (PerformanceTierListResult, error) +1. ServerBasedPerformanceTierClient.ListSender(*http.Request) (*http.Response, error) +1. ServerParametersClient.ListUpdateConfigurations(context.Context, string, string, ConfigurationListResult) (ServerParametersListUpdateConfigurationsFuture, error) +1. ServerParametersClient.ListUpdateConfigurationsPreparer(context.Context, string, string, ConfigurationListResult) (*http.Request, error) +1. ServerParametersClient.ListUpdateConfigurationsResponder(*http.Response) (ConfigurationListResult, error) +1. ServerParametersClient.ListUpdateConfigurationsSender(*http.Request) (ServerParametersListUpdateConfigurationsFuture, error) +1. ServerSecurityAlertPoliciesClient.ListByServer(context.Context, string, string) (ServerSecurityAlertPolicyListResultPage, error) +1. ServerSecurityAlertPoliciesClient.ListByServerComplete(context.Context, string, string) (ServerSecurityAlertPolicyListResultIterator, error) +1. ServerSecurityAlertPoliciesClient.ListByServerPreparer(context.Context, string, string) (*http.Request, error) +1. ServerSecurityAlertPoliciesClient.ListByServerResponder(*http.Response) (ServerSecurityAlertPolicyListResult, error) +1. ServerSecurityAlertPoliciesClient.ListByServerSender(*http.Request) (*http.Response, error) +1. ServerSecurityAlertPolicyListResult.IsEmpty() bool +1. ServerSecurityAlertPolicyListResult.MarshalJSON() ([]byte, error) +1. ServerSecurityAlertPolicyListResultIterator.NotDone() bool +1. ServerSecurityAlertPolicyListResultIterator.Response() ServerSecurityAlertPolicyListResult +1. ServerSecurityAlertPolicyListResultIterator.Value() ServerSecurityAlertPolicy +1. ServerSecurityAlertPolicyListResultPage.NotDone() bool +1. ServerSecurityAlertPolicyListResultPage.Response() ServerSecurityAlertPolicyListResult +1. ServerSecurityAlertPolicyListResultPage.Values() []ServerSecurityAlertPolicy + +### Struct Changes + +#### New Structs + +1. RecoverableServerProperties +1. RecoverableServerResource +1. RecoverableServersClient +1. ServerBasedPerformanceTierClient +1. ServerParametersClient +1. ServerParametersListUpdateConfigurationsFuture +1. ServerSecurityAlertPolicyListResult +1. ServerSecurityAlertPolicyListResultIterator +1. ServerSecurityAlertPolicyListResultPage + +#### New Struct Fields + +1. PerformanceTierProperties.MaxBackupRetentionDays +1. PerformanceTierProperties.MaxLargeStorageMB +1. PerformanceTierProperties.MaxStorageMB +1. PerformanceTierProperties.MinBackupRetentionDays +1. PerformanceTierProperties.MinLargeStorageMB +1. PerformanceTierProperties.MinStorageMB diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/_meta.json b/services/postgresql/mgmt/2020-01-01/postgresql/_meta.json index 1aacd052fc27..942890bc6838 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/_meta.json +++ b/services/postgresql/mgmt/2020-01-01/postgresql/_meta.json @@ -1,5 +1,5 @@ { - "commit": "3c764635e7d442b3e74caf593029fcd440b3ef82", + "commit": "e3980786418c280ecd7ed2e141407ed0f63cd493", "readme": "/_/azure-rest-api-specs/specification/postgresql/resource-manager/readme.md", "tag": "package-2020-01-01", "use": "@microsoft.azure/autorest.go@2.1.183", diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/checknameavailability.go b/services/postgresql/mgmt/2020-01-01/postgresql/checknameavailability.go index 8a0da370f05a..12b36c0e3671 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/checknameavailability.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/checknameavailability.go @@ -93,7 +93,7 @@ func (client CheckNameAvailabilityClient) ExecutePreparer(ctx context.Context, n autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPost(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBForPostgreSQL/checkNameAvailability", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBforPostgreSQL/checkNameAvailability", pathParameters), autorest.WithJSON(nameAvailabilityRequest), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/configurations.go b/services/postgresql/mgmt/2020-01-01/postgresql/configurations.go index feaaf83facaf..fea45892bacd 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/configurations.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/configurations.go @@ -55,8 +55,7 @@ func (client ConfigurationsClient) CreateOrUpdate(ctx context.Context, resourceG Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ConfigurationsClient", "CreateOrUpdate", err.Error()) } @@ -93,7 +92,7 @@ func (client ConfigurationsClient) CreateOrUpdatePreparer(ctx context.Context, r autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/configurations/{configurationName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/configurations/{configurationName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -147,8 +146,7 @@ func (client ConfigurationsClient) Get(ctx context.Context, resourceGroupName st Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ConfigurationsClient", "Get", err.Error()) } @@ -191,7 +189,7 @@ func (client ConfigurationsClient) GetPreparer(ctx context.Context, resourceGrou preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/configurations/{configurationName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/configurations/{configurationName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -234,8 +232,7 @@ func (client ConfigurationsClient) ListByServer(ctx context.Context, resourceGro Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ConfigurationsClient", "ListByServer", err.Error()) } @@ -277,7 +274,7 @@ func (client ConfigurationsClient) ListByServerPreparer(ctx context.Context, res preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/configurations", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/configurations", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/databases.go b/services/postgresql/mgmt/2020-01-01/postgresql/databases.go index 2b881d38f129..02db08006ae1 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/databases.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/databases.go @@ -55,8 +55,7 @@ func (client DatabasesClient) CreateOrUpdate(ctx context.Context, resourceGroupN Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.DatabasesClient", "CreateOrUpdate", err.Error()) } @@ -93,7 +92,7 @@ func (client DatabasesClient) CreateOrUpdatePreparer(ctx context.Context, resour autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/databases/{databaseName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/databases/{databaseName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -147,8 +146,7 @@ func (client DatabasesClient) Delete(ctx context.Context, resourceGroupName stri Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.DatabasesClient", "Delete", err.Error()) } @@ -184,7 +182,7 @@ func (client DatabasesClient) DeletePreparer(ctx context.Context, resourceGroupN preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/databases/{databaseName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/databases/{databaseName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -236,8 +234,7 @@ func (client DatabasesClient) Get(ctx context.Context, resourceGroupName string, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.DatabasesClient", "Get", err.Error()) } @@ -280,7 +277,7 @@ func (client DatabasesClient) GetPreparer(ctx context.Context, resourceGroupName preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/databases/{databaseName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/databases/{databaseName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -323,8 +320,7 @@ func (client DatabasesClient) ListByServer(ctx context.Context, resourceGroupNam Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.DatabasesClient", "ListByServer", err.Error()) } @@ -366,7 +362,7 @@ func (client DatabasesClient) ListByServerPreparer(ctx context.Context, resource preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/databases", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/databases", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/firewallrules.go b/services/postgresql/mgmt/2020-01-01/postgresql/firewallrules.go index 74c9523a0e7c..58dca532531e 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/firewallrules.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/firewallrules.go @@ -55,8 +55,7 @@ func (client FirewallRulesClient) CreateOrUpdate(ctx context.Context, resourceGr Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.FirewallRuleProperties", Name: validation.Null, Rule: true, Chain: []validation.Constraint{{Target: "parameters.FirewallRuleProperties.StartIPAddress", Name: validation.Null, Rule: true, @@ -100,7 +99,7 @@ func (client FirewallRulesClient) CreateOrUpdatePreparer(ctx context.Context, re autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -154,8 +153,7 @@ func (client FirewallRulesClient) Delete(ctx context.Context, resourceGroupName Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.FirewallRulesClient", "Delete", err.Error()) } @@ -191,7 +189,7 @@ func (client FirewallRulesClient) DeletePreparer(ctx context.Context, resourceGr preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -243,8 +241,7 @@ func (client FirewallRulesClient) Get(ctx context.Context, resourceGroupName str Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.FirewallRulesClient", "Get", err.Error()) } @@ -287,7 +284,7 @@ func (client FirewallRulesClient) GetPreparer(ctx context.Context, resourceGroup preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/firewallRules/{firewallRuleName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -330,8 +327,7 @@ func (client FirewallRulesClient) ListByServer(ctx context.Context, resourceGrou Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.FirewallRulesClient", "ListByServer", err.Error()) } @@ -373,7 +369,7 @@ func (client FirewallRulesClient) ListByServerPreparer(ctx context.Context, reso preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/firewallRules", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/firewallRules", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/locationbasedperformancetier.go b/services/postgresql/mgmt/2020-01-01/postgresql/locationbasedperformancetier.go index f1be2e8ad708..d09c4a70f479 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/locationbasedperformancetier.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/locationbasedperformancetier.go @@ -91,7 +91,7 @@ func (client LocationBasedPerformanceTierClient) ListPreparer(ctx context.Contex preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBForPostgreSQL/locations/{locationName}/performanceTiers", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBforPostgreSQL/locations/{locationName}/performanceTiers", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/logfiles.go b/services/postgresql/mgmt/2020-01-01/postgresql/logfiles.go index a2d6752efb7a..9de9f62b6f92 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/logfiles.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/logfiles.go @@ -53,8 +53,7 @@ func (client LogFilesClient) ListByServer(ctx context.Context, resourceGroupName Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.LogFilesClient", "ListByServer", err.Error()) } @@ -96,7 +95,7 @@ func (client LogFilesClient) ListByServerPreparer(ctx context.Context, resourceG preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/logFiles", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/logFiles", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/models.go b/services/postgresql/mgmt/2020-01-01/postgresql/models.go index 019da26aa3bf..a1369bec68eb 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/models.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/models.go @@ -747,6 +747,18 @@ type PerformanceTierListResult struct { type PerformanceTierProperties struct { // ID - ID of the performance tier. ID *string `json:"id,omitempty"` + // MaxBackupRetentionDays - Maximum Backup retention in days for the performance tier edition + MaxBackupRetentionDays *int32 `json:"maxBackupRetentionDays,omitempty"` + // MinBackupRetentionDays - Minimum Backup retention in days for the performance tier edition + MinBackupRetentionDays *int32 `json:"minBackupRetentionDays,omitempty"` + // MaxStorageMB - Max storage allowed for a server. + MaxStorageMB *int32 `json:"maxStorageMB,omitempty"` + // MinLargeStorageMB - Max storage allowed for a server. + MinLargeStorageMB *int32 `json:"minLargeStorageMB,omitempty"` + // MaxLargeStorageMB - Max storage allowed for a server. + MaxLargeStorageMB *int32 `json:"maxLargeStorageMB,omitempty"` + // MinStorageMB - Max storage allowed for a server. + MinStorageMB *int32 `json:"minStorageMB,omitempty"` // ServiceLevelObjectives - Service level objectives associated with the performance tier ServiceLevelObjectives *[]PerformanceTierServiceLevelObjectives `json:"serviceLevelObjectives,omitempty"` } @@ -1399,6 +1411,101 @@ func (pr ProxyResource) MarshalJSON() ([]byte, error) { return json.Marshal(objectMap) } +// RecoverableServerProperties the recoverable server's properties. +type RecoverableServerProperties struct { + // LastAvailableBackupDateTime - READ-ONLY; The last available backup date time. + LastAvailableBackupDateTime *string `json:"lastAvailableBackupDateTime,omitempty"` + // ServiceLevelObjective - READ-ONLY; The service level objective + ServiceLevelObjective *string `json:"serviceLevelObjective,omitempty"` + // Edition - READ-ONLY; Edition of the performance tier. + Edition *string `json:"edition,omitempty"` + // VCore - READ-ONLY; vCore associated with the service level objective + VCore *int32 `json:"vCore,omitempty"` + // HardwareGeneration - READ-ONLY; Hardware generation associated with the service level objective + HardwareGeneration *string `json:"hardwareGeneration,omitempty"` + // Version - READ-ONLY; The PostgreSQL version + Version *string `json:"version,omitempty"` +} + +// MarshalJSON is the custom marshaler for RecoverableServerProperties. +func (rsp RecoverableServerProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// RecoverableServerResource a recoverable server resource. +type RecoverableServerResource struct { + autorest.Response `json:"-"` + // RecoverableServerProperties - Resource properties. + *RecoverableServerProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the resource + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for RecoverableServerResource. +func (rsr RecoverableServerResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if rsr.RecoverableServerProperties != nil { + objectMap["properties"] = rsr.RecoverableServerProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for RecoverableServerResource struct. +func (rsr *RecoverableServerResource) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var recoverableServerProperties RecoverableServerProperties + err = json.Unmarshal(*v, &recoverableServerProperties) + if err != nil { + return err + } + rsr.RecoverableServerProperties = &recoverableServerProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + rsr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + rsr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + rsr.Type = &typeVar + } + } + } + + return nil +} + // Resource common fields that are returned in the response for all Azure Resource Manager resources type Resource struct { // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} @@ -2203,6 +2310,49 @@ type ServerListResult struct { Value *[]Server `json:"value,omitempty"` } +// ServerParametersListUpdateConfigurationsFuture an abstraction for monitoring and retrieving the results +// of a long-running operation. +type ServerParametersListUpdateConfigurationsFuture struct { + azure.FutureAPI + // Result returns the result of the asynchronous operation. + // If the operation has not completed it will return an error. + Result func(ServerParametersClient) (ConfigurationListResult, error) +} + +// UnmarshalJSON is the custom unmarshaller for CreateFuture. +func (future *ServerParametersListUpdateConfigurationsFuture) UnmarshalJSON(body []byte) error { + var azFuture azure.Future + if err := json.Unmarshal(body, &azFuture); err != nil { + return err + } + future.FutureAPI = &azFuture + future.Result = future.result + return nil +} + +// result is the default implementation for ServerParametersListUpdateConfigurationsFuture.Result. +func (future *ServerParametersListUpdateConfigurationsFuture) result(client ServerParametersClient) (clr ConfigurationListResult, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerParametersListUpdateConfigurationsFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + clr.Response.Response = future.Response() + err = azure.NewAsyncOpIncompleteError("postgresql.ServerParametersListUpdateConfigurationsFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if clr.Response.Response, err = future.GetResult(sender); err == nil && clr.Response.Response.StatusCode != http.StatusNoContent { + clr, err = client.ListUpdateConfigurationsResponder(clr.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerParametersListUpdateConfigurationsFuture", "Result", clr.Response.Response, "Failure responding to request") + } + } + return +} + // ServerPrivateEndpointConnection a private endpoint connection under a server type ServerPrivateEndpointConnection struct { // ID - READ-ONLY; Resource ID of the Private Endpoint Connection. @@ -3005,6 +3155,172 @@ func (ssap *ServerSecurityAlertPolicy) UnmarshalJSON(body []byte) error { return nil } +// ServerSecurityAlertPolicyListResult a list of the server's security alert policies. +type ServerSecurityAlertPolicyListResult struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; Array of results. + Value *[]ServerSecurityAlertPolicy `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to retrieve next page of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServerSecurityAlertPolicyListResult. +func (ssaplr ServerSecurityAlertPolicyListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ServerSecurityAlertPolicyListResultIterator provides access to a complete listing of +// ServerSecurityAlertPolicy values. +type ServerSecurityAlertPolicyListResultIterator struct { + i int + page ServerSecurityAlertPolicyListResultPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *ServerSecurityAlertPolicyListResultIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerSecurityAlertPolicyListResultIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *ServerSecurityAlertPolicyListResultIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter ServerSecurityAlertPolicyListResultIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter ServerSecurityAlertPolicyListResultIterator) Response() ServerSecurityAlertPolicyListResult { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter ServerSecurityAlertPolicyListResultIterator) Value() ServerSecurityAlertPolicy { + if !iter.page.NotDone() { + return ServerSecurityAlertPolicy{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the ServerSecurityAlertPolicyListResultIterator type. +func NewServerSecurityAlertPolicyListResultIterator(page ServerSecurityAlertPolicyListResultPage) ServerSecurityAlertPolicyListResultIterator { + return ServerSecurityAlertPolicyListResultIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ssaplr ServerSecurityAlertPolicyListResult) IsEmpty() bool { + return ssaplr.Value == nil || len(*ssaplr.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (ssaplr ServerSecurityAlertPolicyListResult) hasNextLink() bool { + return ssaplr.NextLink != nil && len(*ssaplr.NextLink) != 0 +} + +// serverSecurityAlertPolicyListResultPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ssaplr ServerSecurityAlertPolicyListResult) serverSecurityAlertPolicyListResultPreparer(ctx context.Context) (*http.Request, error) { + if !ssaplr.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ssaplr.NextLink))) +} + +// ServerSecurityAlertPolicyListResultPage contains a page of ServerSecurityAlertPolicy values. +type ServerSecurityAlertPolicyListResultPage struct { + fn func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error) + ssaplr ServerSecurityAlertPolicyListResult +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *ServerSecurityAlertPolicyListResultPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerSecurityAlertPolicyListResultPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.ssaplr) + if err != nil { + return err + } + page.ssaplr = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *ServerSecurityAlertPolicyListResultPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page ServerSecurityAlertPolicyListResultPage) NotDone() bool { + return !page.ssaplr.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page ServerSecurityAlertPolicyListResultPage) Response() ServerSecurityAlertPolicyListResult { + return page.ssaplr +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page ServerSecurityAlertPolicyListResultPage) Values() []ServerSecurityAlertPolicy { + if page.ssaplr.IsEmpty() { + return nil + } + return *page.ssaplr.Value +} + +// Creates a new instance of the ServerSecurityAlertPolicyListResultPage type. +func NewServerSecurityAlertPolicyListResultPage(cur ServerSecurityAlertPolicyListResult, getNextPage func(context.Context, ServerSecurityAlertPolicyListResult) (ServerSecurityAlertPolicyListResult, error)) ServerSecurityAlertPolicyListResultPage { + return ServerSecurityAlertPolicyListResultPage{ + fn: getNextPage, + ssaplr: cur, + } +} + // ServersRestartFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type ServersRestartFuture struct { diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/operations.go b/services/postgresql/mgmt/2020-01-01/postgresql/operations.go index c0c57c4cd8be..624b7c44f63e 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/operations.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/operations.go @@ -76,7 +76,7 @@ func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPath("/providers/Microsoft.DBForPostgreSQL/operations"), + autorest.WithPath("/providers/Microsoft.DBforPostgreSQL/operations"), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/postgresqlapi/interfaces.go b/services/postgresql/mgmt/2020-01-01/postgresql/postgresqlapi/interfaces.go index 792a0586a553..39ed98502bfd 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/postgresqlapi/interfaces.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/postgresqlapi/interfaces.go @@ -71,6 +71,13 @@ type ConfigurationsClientAPI interface { var _ ConfigurationsClientAPI = (*postgresql.ConfigurationsClient)(nil) +// ServerParametersClientAPI contains the set of methods on the ServerParametersClient type. +type ServerParametersClientAPI interface { + ListUpdateConfigurations(ctx context.Context, resourceGroupName string, serverName string, value postgresql.ConfigurationListResult) (result postgresql.ServerParametersListUpdateConfigurationsFuture, err error) +} + +var _ ServerParametersClientAPI = (*postgresql.ServerParametersClient)(nil) + // LogFilesClientAPI contains the set of methods on the LogFilesClient type. type LogFilesClientAPI interface { ListByServer(ctx context.Context, resourceGroupName string, serverName string) (result postgresql.LogFileListResult, err error) @@ -88,6 +95,20 @@ type ServerAdministratorsClientAPI interface { var _ ServerAdministratorsClientAPI = (*postgresql.ServerAdministratorsClient)(nil) +// RecoverableServersClientAPI contains the set of methods on the RecoverableServersClient type. +type RecoverableServersClientAPI interface { + Get(ctx context.Context, resourceGroupName string, serverName string) (result postgresql.RecoverableServerResource, err error) +} + +var _ RecoverableServersClientAPI = (*postgresql.RecoverableServersClient)(nil) + +// ServerBasedPerformanceTierClientAPI contains the set of methods on the ServerBasedPerformanceTierClient type. +type ServerBasedPerformanceTierClientAPI interface { + List(ctx context.Context, resourceGroupName string, serverName string) (result postgresql.PerformanceTierListResult, err error) +} + +var _ ServerBasedPerformanceTierClientAPI = (*postgresql.ServerBasedPerformanceTierClient)(nil) + // LocationBasedPerformanceTierClientAPI contains the set of methods on the LocationBasedPerformanceTierClient type. type LocationBasedPerformanceTierClientAPI interface { List(ctx context.Context, locationName string) (result postgresql.PerformanceTierListResult, err error) @@ -113,6 +134,8 @@ var _ OperationsClientAPI = (*postgresql.OperationsClient)(nil) type ServerSecurityAlertPoliciesClientAPI interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, serverName string, parameters postgresql.ServerSecurityAlertPolicy) (result postgresql.ServerSecurityAlertPoliciesCreateOrUpdateFuture, err error) Get(ctx context.Context, resourceGroupName string, serverName string) (result postgresql.ServerSecurityAlertPolicy, err error) + ListByServer(ctx context.Context, resourceGroupName string, serverName string) (result postgresql.ServerSecurityAlertPolicyListResultPage, err error) + ListByServerComplete(ctx context.Context, resourceGroupName string, serverName string) (result postgresql.ServerSecurityAlertPolicyListResultIterator, err error) } var _ ServerSecurityAlertPoliciesClientAPI = (*postgresql.ServerSecurityAlertPoliciesClient)(nil) diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/privateendpointconnections.go b/services/postgresql/mgmt/2020-01-01/postgresql/privateendpointconnections.go index 632d8c2eb4dc..a4564ecc597d 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/privateendpointconnections.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/privateendpointconnections.go @@ -52,8 +52,7 @@ func (client PrivateEndpointConnectionsClient) CreateOrUpdate(ctx context.Contex if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.PrivateEndpointConnectionProperties", Name: validation.Null, Rule: false, Chain: []validation.Constraint{{Target: "parameters.PrivateEndpointConnectionProperties.PrivateLinkServiceConnectionState", Name: validation.Null, Rule: false, @@ -150,8 +149,7 @@ func (client PrivateEndpointConnectionsClient) Delete(ctx context.Context, resou if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.PrivateEndpointConnectionsClient", "Delete", err.Error()) @@ -239,8 +237,7 @@ func (client PrivateEndpointConnectionsClient) Get(ctx context.Context, resource if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.PrivateEndpointConnectionsClient", "Get", err.Error()) @@ -326,8 +323,7 @@ func (client PrivateEndpointConnectionsClient) ListByServer(ctx context.Context, if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.PrivateEndpointConnectionsClient", "ListByServer", err.Error()) @@ -457,8 +453,7 @@ func (client PrivateEndpointConnectionsClient) UpdateTags(ctx context.Context, r Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.PrivateEndpointConnectionsClient", "UpdateTags", err.Error()) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/privatelinkresources.go b/services/postgresql/mgmt/2020-01-01/postgresql/privatelinkresources.go index 88e967257cd0..821ea3e43a0f 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/privatelinkresources.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/privatelinkresources.go @@ -53,8 +53,7 @@ func (client PrivateLinkResourcesClient) Get(ctx context.Context, resourceGroupN if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.PrivateLinkResourcesClient", "Get", err.Error()) @@ -140,8 +139,7 @@ func (client PrivateLinkResourcesClient) ListByServer(ctx context.Context, resou if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.PrivateLinkResourcesClient", "ListByServer", err.Error()) diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/recoverableservers.go b/services/postgresql/mgmt/2020-01-01/postgresql/recoverableservers.go new file mode 100644 index 000000000000..351fec57c7d9 --- /dev/null +++ b/services/postgresql/mgmt/2020-01-01/postgresql/recoverableservers.go @@ -0,0 +1,120 @@ +package postgresql + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// RecoverableServersClient is the the Microsoft Azure management API provides create, read, update, and delete +// functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security +// alert policies, log files and configurations with new business model. +type RecoverableServersClient struct { + BaseClient +} + +// NewRecoverableServersClient creates an instance of the RecoverableServersClient client. +func NewRecoverableServersClient(subscriptionID string) RecoverableServersClient { + return NewRecoverableServersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewRecoverableServersClientWithBaseURI creates an instance of the RecoverableServersClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewRecoverableServersClientWithBaseURI(baseURI string, subscriptionID string) RecoverableServersClient { + return RecoverableServersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get gets a recoverable PostgreSQL Server. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +func (client RecoverableServersClient) Get(ctx context.Context, resourceGroupName string, serverName string) (result RecoverableServerResource, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RecoverableServersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("postgresql.RecoverableServersClient", "Get", err.Error()) + } + + req, err := client.GetPreparer(ctx, resourceGroupName, serverName) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.RecoverableServersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "postgresql.RecoverableServersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.RecoverableServersClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client RecoverableServersClient) GetPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-12-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/recoverableServers", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client RecoverableServersClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client RecoverableServersClient) GetResponder(resp *http.Response) (result RecoverableServerResource, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/replicas.go b/services/postgresql/mgmt/2020-01-01/postgresql/replicas.go index ba1c5c858c1a..e4b456911e5b 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/replicas.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/replicas.go @@ -53,8 +53,7 @@ func (client ReplicasClient) ListByServer(ctx context.Context, resourceGroupName Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ReplicasClient", "ListByServer", err.Error()) } @@ -96,7 +95,7 @@ func (client ReplicasClient) ListByServerPreparer(ctx context.Context, resourceG preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/Replicas", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/replicas", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/serveradministrators.go b/services/postgresql/mgmt/2020-01-01/postgresql/serveradministrators.go index 1ab895e57c18..a25a4fbbe773 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/serveradministrators.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/serveradministrators.go @@ -56,8 +56,7 @@ func (client ServerAdministratorsClient) CreateOrUpdate(ctx context.Context, res Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: properties, Constraints: []validation.Constraint{{Target: "properties.ServerAdministratorProperties", Name: validation.Null, Rule: false, Chain: []validation.Constraint{{Target: "properties.ServerAdministratorProperties.AdministratorType", Name: validation.Null, Rule: true, Chain: nil}, @@ -100,7 +99,7 @@ func (client ServerAdministratorsClient) CreateOrUpdatePreparer(ctx context.Cont autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/Administrators/activeDirectory", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/administrators/activeDirectory", pathParameters), autorest.WithJSON(properties), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -153,8 +152,7 @@ func (client ServerAdministratorsClient) Delete(ctx context.Context, resourceGro Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerAdministratorsClient", "Delete", err.Error()) } @@ -189,7 +187,7 @@ func (client ServerAdministratorsClient) DeletePreparer(ctx context.Context, res preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/Administrators/activeDirectory", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/administrators/activeDirectory", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -240,8 +238,7 @@ func (client ServerAdministratorsClient) Get(ctx context.Context, resourceGroupN Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerAdministratorsClient", "Get", err.Error()) } @@ -283,7 +280,7 @@ func (client ServerAdministratorsClient) GetPreparer(ctx context.Context, resour preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/Administrators/activeDirectory", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/administrators/activeDirectory", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -326,8 +323,7 @@ func (client ServerAdministratorsClient) List(ctx context.Context, resourceGroup Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerAdministratorsClient", "List", err.Error()) } @@ -369,7 +365,7 @@ func (client ServerAdministratorsClient) ListPreparer(ctx context.Context, resou preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/administrators", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/administrators", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/serverbasedperformancetier.go b/services/postgresql/mgmt/2020-01-01/postgresql/serverbasedperformancetier.go new file mode 100644 index 000000000000..637a995396d5 --- /dev/null +++ b/services/postgresql/mgmt/2020-01-01/postgresql/serverbasedperformancetier.go @@ -0,0 +1,120 @@ +package postgresql + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ServerBasedPerformanceTierClient is the the Microsoft Azure management API provides create, read, update, and delete +// functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security +// alert policies, log files and configurations with new business model. +type ServerBasedPerformanceTierClient struct { + BaseClient +} + +// NewServerBasedPerformanceTierClient creates an instance of the ServerBasedPerformanceTierClient client. +func NewServerBasedPerformanceTierClient(subscriptionID string) ServerBasedPerformanceTierClient { + return NewServerBasedPerformanceTierClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewServerBasedPerformanceTierClientWithBaseURI creates an instance of the ServerBasedPerformanceTierClient client +// using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign +// clouds, Azure stack). +func NewServerBasedPerformanceTierClientWithBaseURI(baseURI string, subscriptionID string) ServerBasedPerformanceTierClient { + return ServerBasedPerformanceTierClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// List list all the performance tiers for a PostgreSQL server. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +func (client ServerBasedPerformanceTierClient) List(ctx context.Context, resourceGroupName string, serverName string) (result PerformanceTierListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerBasedPerformanceTierClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("postgresql.ServerBasedPerformanceTierClient", "List", err.Error()) + } + + req, err := client.ListPreparer(ctx, resourceGroupName, serverName) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerBasedPerformanceTierClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "postgresql.ServerBasedPerformanceTierClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerBasedPerformanceTierClient", "List", resp, "Failure responding to request") + return + } + + return +} + +// ListPreparer prepares the List request. +func (client ServerBasedPerformanceTierClient) ListPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-12-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/performanceTiers", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ServerBasedPerformanceTierClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ServerBasedPerformanceTierClient) ListResponder(resp *http.Response) (result PerformanceTierListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/serverkeys.go b/services/postgresql/mgmt/2020-01-01/postgresql/serverkeys.go index 5d63a01aa61f..3f917e7a1688 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/serverkeys.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/serverkeys.go @@ -58,8 +58,7 @@ func (client ServerKeysClient) CreateOrUpdate(ctx context.Context, serverName st Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerKeysClient", "CreateOrUpdate", err.Error()) } @@ -151,8 +150,7 @@ func (client ServerKeysClient) Delete(ctx context.Context, serverName string, ke Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerKeysClient", "Delete", err.Error()) } @@ -238,8 +236,7 @@ func (client ServerKeysClient) Get(ctx context.Context, resourceGroupName string if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerKeysClient", "Get", err.Error()) @@ -327,8 +324,7 @@ func (client ServerKeysClient) List(ctx context.Context, resourceGroupName strin Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerKeysClient", "List", err.Error()) } diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/serverparameters.go b/services/postgresql/mgmt/2020-01-01/postgresql/serverparameters.go new file mode 100644 index 000000000000..e7dcb93ddba7 --- /dev/null +++ b/services/postgresql/mgmt/2020-01-01/postgresql/serverparameters.go @@ -0,0 +1,125 @@ +package postgresql + +// 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. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ServerParametersClient is the the Microsoft Azure management API provides create, read, update, and delete +// functionality for Azure PostgreSQL resources including servers, databases, firewall rules, VNET rules, security +// alert policies, log files and configurations with new business model. +type ServerParametersClient struct { + BaseClient +} + +// NewServerParametersClient creates an instance of the ServerParametersClient client. +func NewServerParametersClient(subscriptionID string) ServerParametersClient { + return NewServerParametersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewServerParametersClientWithBaseURI creates an instance of the ServerParametersClient client using a custom +// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure +// stack). +func NewServerParametersClientWithBaseURI(baseURI string, subscriptionID string) ServerParametersClient { + return ServerParametersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// ListUpdateConfigurations update a list of configurations in a given server. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +// value - the parameters for updating a list of server configuration. +func (client ServerParametersClient) ListUpdateConfigurations(ctx context.Context, resourceGroupName string, serverName string, value ConfigurationListResult) (result ServerParametersListUpdateConfigurationsFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerParametersClient.ListUpdateConfigurations") + defer func() { + sc := -1 + if result.FutureAPI != nil && result.FutureAPI.Response() != nil { + sc = result.FutureAPI.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("postgresql.ServerParametersClient", "ListUpdateConfigurations", err.Error()) + } + + req, err := client.ListUpdateConfigurationsPreparer(ctx, resourceGroupName, serverName, value) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerParametersClient", "ListUpdateConfigurations", nil, "Failure preparing request") + return + } + + result, err = client.ListUpdateConfigurationsSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerParametersClient", "ListUpdateConfigurations", nil, "Failure sending request") + return + } + + return +} + +// ListUpdateConfigurationsPreparer prepares the ListUpdateConfigurations request. +func (client ServerParametersClient) ListUpdateConfigurationsPreparer(ctx context.Context, resourceGroupName string, serverName string, value ConfigurationListResult) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-12-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/updateConfigurations", pathParameters), + autorest.WithJSON(value), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListUpdateConfigurationsSender sends the ListUpdateConfigurations request. The method will close the +// http.Response Body if it receives an error. +func (client ServerParametersClient) ListUpdateConfigurationsSender(req *http.Request) (future ServerParametersListUpdateConfigurationsFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + var azf azure.Future + azf, err = azure.NewFutureFromResponse(resp) + future.FutureAPI = &azf + future.Result = future.result + return +} + +// ListUpdateConfigurationsResponder handles the response to the ListUpdateConfigurations request. The method always +// closes the http.Response Body. +func (client ServerParametersClient) ListUpdateConfigurationsResponder(resp *http.Response) (result ConfigurationListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/servers.go b/services/postgresql/mgmt/2020-01-01/postgresql/servers.go index bc0a3487876c..5ee3c060baed 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/servers.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/servers.go @@ -54,8 +54,7 @@ func (client ServersClient) Create(ctx context.Context, resourceGroupName string Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.Sku", Name: validation.Null, Rule: false, Chain: []validation.Constraint{{Target: "parameters.Sku.Name", Name: validation.Null, Rule: true, Chain: nil}, @@ -98,7 +97,7 @@ func (client ServersClient) CreatePreparer(ctx context.Context, resourceGroupNam autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -151,8 +150,7 @@ func (client ServersClient) Delete(ctx context.Context, resourceGroupName string Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServersClient", "Delete", err.Error()) } @@ -187,7 +185,7 @@ func (client ServersClient) DeletePreparer(ctx context.Context, resourceGroupNam preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -238,8 +236,7 @@ func (client ServersClient) Get(ctx context.Context, resourceGroupName string, s Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServersClient", "Get", err.Error()) } @@ -281,7 +278,7 @@ func (client ServersClient) GetPreparer(ctx context.Context, resourceGroupName s preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -358,7 +355,7 @@ func (client ServersClient) ListPreparer(ctx context.Context) (*http.Request, er preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBForPostgreSQL/servers", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DBforPostgreSQL/servers", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -400,8 +397,7 @@ func (client ServersClient) ListByResourceGroup(ctx context.Context, resourceGro Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServersClient", "ListByResourceGroup", err.Error()) } @@ -442,7 +438,7 @@ func (client ServersClient) ListByResourceGroupPreparer(ctx context.Context, res preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -485,8 +481,7 @@ func (client ServersClient) Restart(ctx context.Context, resourceGroupName strin Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServersClient", "Restart", err.Error()) } @@ -521,7 +516,7 @@ func (client ServersClient) RestartPreparer(ctx context.Context, resourceGroupNa preparer := autorest.CreatePreparer( autorest.AsPost(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/restart", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/restart", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -574,8 +569,7 @@ func (client ServersClient) Update(ctx context.Context, resourceGroupName string Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServersClient", "Update", err.Error()) } @@ -611,7 +605,7 @@ func (client ServersClient) UpdatePreparer(ctx context.Context, resourceGroupNam autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPatch(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/serversecurityalertpolicies.go b/services/postgresql/mgmt/2020-01-01/postgresql/serversecurityalertpolicies.go index ecee5a3f232c..277082f2e2fe 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/serversecurityalertpolicies.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/serversecurityalertpolicies.go @@ -53,8 +53,7 @@ func (client ServerSecurityAlertPoliciesClient) CreateOrUpdate(ctx context.Conte if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerSecurityAlertPoliciesClient", "CreateOrUpdate", err.Error()) @@ -144,8 +143,7 @@ func (client ServerSecurityAlertPoliciesClient) Get(ctx context.Context, resourc if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.ServerSecurityAlertPoliciesClient", "Get", err.Error()) @@ -212,3 +210,130 @@ func (client ServerSecurityAlertPoliciesClient) GetResponder(resp *http.Response result.Response = autorest.Response{Response: resp} return } + +// ListByServer get the server's threat detection policies. +// Parameters: +// resourceGroupName - the name of the resource group. The name is case insensitive. +// serverName - the name of the server. +func (client ServerSecurityAlertPoliciesClient) ListByServer(ctx context.Context, resourceGroupName string, serverName string) (result ServerSecurityAlertPolicyListResultPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerSecurityAlertPoliciesClient.ListByServer") + defer func() { + sc := -1 + if result.ssaplr.Response.Response != nil { + sc = result.ssaplr.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, + {TargetValue: client.SubscriptionID, + Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { + return result, validation.NewError("postgresql.ServerSecurityAlertPoliciesClient", "ListByServer", err.Error()) + } + + result.fn = client.listByServerNextResults + req, err := client.ListByServerPreparer(ctx, resourceGroupName, serverName) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerSecurityAlertPoliciesClient", "ListByServer", nil, "Failure preparing request") + return + } + + resp, err := client.ListByServerSender(req) + if err != nil { + result.ssaplr.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "postgresql.ServerSecurityAlertPoliciesClient", "ListByServer", resp, "Failure sending request") + return + } + + result.ssaplr, err = client.ListByServerResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerSecurityAlertPoliciesClient", "ListByServer", resp, "Failure responding to request") + return + } + if result.ssaplr.hasNextLink() && result.ssaplr.IsEmpty() { + err = result.NextWithContext(ctx) + return + } + + return +} + +// ListByServerPreparer prepares the ListByServer request. +func (client ServerSecurityAlertPoliciesClient) ListByServerPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serverName": autorest.Encode("path", serverName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-12-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/securityAlertPolicies", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByServerSender sends the ListByServer request. The method will close the +// http.Response Body if it receives an error. +func (client ServerSecurityAlertPoliciesClient) ListByServerSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListByServerResponder handles the response to the ListByServer request. The method always +// closes the http.Response Body. +func (client ServerSecurityAlertPoliciesClient) ListByServerResponder(resp *http.Response) (result ServerSecurityAlertPolicyListResult, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByServerNextResults retrieves the next set of results, if any. +func (client ServerSecurityAlertPoliciesClient) listByServerNextResults(ctx context.Context, lastResults ServerSecurityAlertPolicyListResult) (result ServerSecurityAlertPolicyListResult, err error) { + req, err := lastResults.serverSecurityAlertPolicyListResultPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "postgresql.ServerSecurityAlertPoliciesClient", "listByServerNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByServerSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "postgresql.ServerSecurityAlertPoliciesClient", "listByServerNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByServerResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "postgresql.ServerSecurityAlertPoliciesClient", "listByServerNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByServerComplete enumerates all values, automatically crossing page boundaries as required. +func (client ServerSecurityAlertPoliciesClient) ListByServerComplete(ctx context.Context, resourceGroupName string, serverName string) (result ServerSecurityAlertPolicyListResultIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServerSecurityAlertPoliciesClient.ListByServer") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByServer(ctx, resourceGroupName, serverName) + return +} diff --git a/services/postgresql/mgmt/2020-01-01/postgresql/virtualnetworkrules.go b/services/postgresql/mgmt/2020-01-01/postgresql/virtualnetworkrules.go index 243cc9c356f1..2c5f35c26cf5 100644 --- a/services/postgresql/mgmt/2020-01-01/postgresql/virtualnetworkrules.go +++ b/services/postgresql/mgmt/2020-01-01/postgresql/virtualnetworkrules.go @@ -54,8 +54,7 @@ func (client VirtualNetworkRulesClient) CreateOrUpdate(ctx context.Context, reso if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: parameters, @@ -97,7 +96,7 @@ func (client VirtualNetworkRulesClient) CreateOrUpdatePreparer(ctx context.Conte autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPut(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), autorest.WithJSON(parameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) @@ -149,8 +148,7 @@ func (client VirtualNetworkRulesClient) Delete(ctx context.Context, resourceGrou if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.VirtualNetworkRulesClient", "Delete", err.Error()) @@ -188,7 +186,7 @@ func (client VirtualNetworkRulesClient) DeletePreparer(ctx context.Context, reso preparer := autorest.CreatePreparer( autorest.AsDelete(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -238,8 +236,7 @@ func (client VirtualNetworkRulesClient) Get(ctx context.Context, resourceGroupNa if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.VirtualNetworkRulesClient", "Get", err.Error()) @@ -284,7 +281,7 @@ func (client VirtualNetworkRulesClient) GetPreparer(ctx context.Context, resourc preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } @@ -325,8 +322,7 @@ func (client VirtualNetworkRulesClient) ListByServer(ctx context.Context, resour if err := validation.Validate([]validation.Validation{ {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, - {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, {TargetValue: client.SubscriptionID, Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { return result, validation.NewError("postgresql.VirtualNetworkRulesClient", "ListByServer", err.Error()) @@ -375,7 +371,7 @@ func (client VirtualNetworkRulesClient) ListByServerPreparer(ctx context.Context preparer := autorest.CreatePreparer( autorest.AsGet(), autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSQL/servers/{serverName}/virtualNetworkRules", pathParameters), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/virtualNetworkRules", pathParameters), autorest.WithQueryParameters(queryParameters)) return preparer.Prepare((&http.Request{}).WithContext(ctx)) } From 5e41f5f2392f7107945c92f0b86af3462fc7a608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=AE=AD=E9=A3=9E?= Date: Thu, 15 Jul 2021 14:55:16 +0800 Subject: [PATCH 5/5] v55.7.0 --- CHANGELOG.md | 17 +++++++++++++++-- version/version.go | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 276b6d5bdf22..dda2ad842164 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # CHANGELOG +## `v55.7.0` + +### New Packages + +- `github.com/Azure/azure-sdk-for-go/services/mediaservices/mgmt/2021-06-01/media` + +### Updated Packages + +| Package Path | Changelog | +| :--- | :---: | +| `github.com/Azure/azure-sdk-for-go/services/mysql/mgmt/2020-01-01/mysql` | [details](https://github.com/Azure/azure-sdk-for-go/tree/master/services/mysql/mgmt/2020-01-01/mysql/CHANGELOG.md) | +| `github.com/Azure/azure-sdk-for-go/services/postgresql/mgmt/2020-01-01/postgresql` | [details](https://github.com/Azure/azure-sdk-for-go/tree/master/services/postgresql/mgmt/2020-01-01/postgresql/CHANGELOG.md) | + ## `v55.6.0` ### New Packages @@ -15,13 +28,13 @@ | Package Path | Changelog | | :--- | :---: | -| `github.com/Azure/azure-sdk-for-go/services/preview/quantum/mgmt/2019-11-04-preview/quantum` | [details](https://github.com/Azure/azure-sdk-for-go/tree/master/services/preview/quantum/mgmt/2019-11-04-preview/quantum/CHANGELOG.md) | +| `github.com/Azure/azure-sdk-for-go/services/preview/quantum/mgmt/2019-11-04-preview/quantum` | [details](https://github.com/Azure/azure-sdk-for-go/blob/v55.6.0/services/preview/quantum/mgmt/2019-11-04-preview/quantum/CHANGELOG.md) | ### Breaking Changes | Package Path | Changelog | | :--- | :---: | -| `github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security` | [details](https://github.com/Azure/azure-sdk-for-go/tree/master/services/preview/security/mgmt/v3.0/security/CHANGELOG.md) | +| `github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security` | [details](https://github.com/Azure/azure-sdk-for-go/blob/v55.6.0/services/preview/security/mgmt/v3.0/security/CHANGELOG.md) | ## `v55.5.0` diff --git a/version/version.go b/version/version.go index f3de42bd5f04..ced4ddbfd439 100644 --- a/version/version.go +++ b/version/version.go @@ -4,4 +4,4 @@ package version // Licensed under the MIT License. See License.txt in the project root for license information. // Number contains the semantic version of this SDK. -const Number = "v55.6.0" +const Number = "v55.7.0"