// 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. DO NOT EDIT.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

package armproviderhub

import "time"

type APIProfile struct {
	// Api version.
	APIVersion *string

	// Profile version.
	ProfileVersion *string
}

type AdditionalAuthorization struct {
	ApplicationID    *string
	RoleDefinitionID *string
}

type AllowedResourceName struct {
	// Get action verb.
	GetActionVerb *string

	// Resource name.
	Name *string
}

type AllowedUnauthorizedActionsExtension struct {
	// The action.
	Action *string

	// The intent.
	Intent *Intent
}

type ApplicationDataAuthorization struct {
	// REQUIRED; The ownership role the application has on the resource types. The service owner role gives the application owner
	// permissions. The limited owner role gives elevated permissions but does not allow all
	// the permissions of a service owner, such as read/write on internal metadata.
	Role *Role

	// The resource types from the defined resource types in the provider namespace that the application can access. If no resource
	// types are specified and the role is service owner, the default is * which
	// is all resource types
	ResourceTypes []*string
}

type ApplicationProviderAuthorization struct {
	// The managed by role definition ID for the application.
	ManagedByRoleDefinitionID *string

	// The role definition ID for the application.
	RoleDefinitionID *string
}

type AsyncOperationPollingRules struct {
	// The additional options.
	AdditionalOptions *AdditionalOptionsAsyncOperation

	// The authorization actions.
	AuthorizationActions []*string
}

type AsyncTimeoutRule struct {
	ActionName *string

	// This is a TimeSpan property
	Timeout *string
}

type AuthorizationActionMapping struct {
	// The desired action name.
	Desired *string

	// The original action name.
	Original *string
}

type AuthorizedApplication struct {
	Properties *AuthorizedApplicationProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type AuthorizedApplicationArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string

	// The value.
	Value []*AuthorizedApplication
}

type AuthorizedApplicationProperties struct {
	// The authorizations that determine the level of data access permissions on the specified resource types.
	DataAuthorizations    []*ApplicationDataAuthorization
	ProviderAuthorization *ApplicationProviderAuthorization

	// READ-ONLY; The provisioning state.
	ProvisioningState *ProvisioningState
}

type CanaryTrafficRegionRolloutConfiguration struct {
	// The regions.
	Regions []*string

	// The skip regions.
	SkipRegions []*string
}

type CheckNameAvailabilitySpecifications struct {
	// Whether default validation is enabled.
	EnableDefaultValidation *bool

	// The resource types with custom validation.
	ResourceTypesWithCustomValidation []*string
}

type CheckinManifestInfo struct {
	// REQUIRED; Whether the manifest is checked in.
	IsCheckedIn *bool

	// REQUIRED; The status message.
	StatusMessage *string

	// The commit id.
	CommitID *string

	// The pull request.
	PullRequest *string
}

type CheckinManifestParams struct {
	// REQUIRED; The baseline ARM manifest location supplied to the checkin manifest operation.
	BaselineArmManifestLocation *string

	// REQUIRED; The environment supplied to the checkin manifest operation.
	Environment *string
}

type CustomRollout struct {
	// REQUIRED; Properties of the rollout.
	Properties *CustomRolloutProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type CustomRolloutArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string
	Value    []*CustomRollout
}

type CustomRolloutProperties struct {
	// REQUIRED; The specification.
	Specification *CustomRolloutPropertiesSpecification

	// The status.
	Status *CustomRolloutPropertiesStatus

	// READ-ONLY; The provisioned state of the resource.
	ProvisioningState *ProvisioningState
}

// CustomRolloutPropertiesSpecification - The specification.
type CustomRolloutPropertiesSpecification struct {
	// The auto provisioning configuration.
	AutoProvisionConfig *CustomRolloutSpecificationAutoProvisionConfig

	// The canary region configuration.
	Canary *CustomRolloutSpecificationCanary

	// The provider registration.
	ProviderRegistration *CustomRolloutSpecificationProviderRegistration

	// Whether refreshing subscription registration is enabled or disabled.
	RefreshSubscriptionRegistration *bool

	// The list of ARM regions scoped for the release.
	ReleaseScopes []*string

	// The resource type registrations.
	ResourceTypeRegistrations []*ResourceTypeRegistration

	// Whether release scope validation should be skipped.
	SkipReleaseScopeValidation *bool
}

// CustomRolloutPropertiesStatus - The status.
type CustomRolloutPropertiesStatus struct {
	// The completed regions.
	CompletedRegions []*string

	// The failed or skipped regions.
	FailedOrSkippedRegions map[string]*ExtendedErrorInfo

	// The manifest checkin status.
	ManifestCheckinStatus *CustomRolloutStatusManifestCheckinStatus
}

type CustomRolloutSpecification struct {
	// The auto provisioning configuration.
	AutoProvisionConfig *CustomRolloutSpecificationAutoProvisionConfig

	// The canary region configuration.
	Canary *CustomRolloutSpecificationCanary

	// The provider registration.
	ProviderRegistration *CustomRolloutSpecificationProviderRegistration

	// Whether refreshing subscription registration is enabled or disabled.
	RefreshSubscriptionRegistration *bool

	// The list of ARM regions scoped for the release.
	ReleaseScopes []*string

	// The resource type registrations.
	ResourceTypeRegistrations []*ResourceTypeRegistration

	// Whether release scope validation should be skipped.
	SkipReleaseScopeValidation *bool
}

// CustomRolloutSpecificationAutoProvisionConfig - The auto provisioning configuration.
type CustomRolloutSpecificationAutoProvisionConfig struct {
	ResourceGraph *bool
	Storage       *bool
}

// CustomRolloutSpecificationCanary - The canary region configuration.
type CustomRolloutSpecificationCanary struct {
	Regions []*string
}

// CustomRolloutSpecificationProviderRegistration - The provider registration.
type CustomRolloutSpecificationProviderRegistration struct {
	// Provider registration kind. This Metadata is also used by portal/tooling/etc to render different UX experiences for resources
	// of the same type.
	Kind       *ProviderRegistrationKind
	Properties *ProviderRegistrationProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type CustomRolloutStatus struct {
	// The completed regions.
	CompletedRegions []*string

	// The failed or skipped regions.
	FailedOrSkippedRegions map[string]*ExtendedErrorInfo

	// The manifest checkin status.
	ManifestCheckinStatus *CustomRolloutStatusManifestCheckinStatus
}

// CustomRolloutStatusManifestCheckinStatus - The manifest checkin status.
type CustomRolloutStatusManifestCheckinStatus struct {
	// REQUIRED; Whether the manifest is checked in.
	IsCheckedIn *bool

	// REQUIRED; The status message.
	StatusMessage *string

	// The commit id.
	CommitID *string

	// The pull request.
	PullRequest *string
}

type DefaultRollout struct {
	// Properties of the rollout.
	Properties *DefaultRolloutProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type DefaultRolloutArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string
	Value    []*DefaultRollout
}

type DefaultRolloutProperties struct {
	// The default rollout specification.
	Specification *DefaultRolloutPropertiesSpecification

	// The default rollout status.
	Status *DefaultRolloutPropertiesStatus

	// READ-ONLY; The provisioned state of the resource.
	ProvisioningState *ProvisioningState
}

// DefaultRolloutPropertiesSpecification - The default rollout specification.
type DefaultRolloutPropertiesSpecification struct {
	// The auto provisioning config.
	AutoProvisionConfig *DefaultRolloutSpecificationAutoProvisionConfig

	// The canary traffic region configuration.
	Canary *DefaultRolloutSpecificationCanary

	// The expedited rollout definition.
	ExpeditedRollout *DefaultRolloutSpecificationExpeditedRollout

	// The high traffic region configuration.
	HighTraffic *DefaultRolloutSpecificationHighTraffic

	// The low traffic region configuration.
	LowTraffic *DefaultRolloutSpecificationLowTraffic

	// The medium traffic region configuration.
	MediumTraffic *DefaultRolloutSpecificationMediumTraffic

	// The provider registration.
	ProviderRegistration *DefaultRolloutSpecificationProviderRegistration

	// The resource type registrations.
	ResourceTypeRegistrations []*ResourceTypeRegistration

	// The rest of the world group one region configuration.
	RestOfTheWorldGroupOne *DefaultRolloutSpecificationRestOfTheWorldGroupOne

	// The rest of the world group two region configuration.
	RestOfTheWorldGroupTwo *DefaultRolloutSpecificationRestOfTheWorldGroupTwo
}

// DefaultRolloutPropertiesStatus - The default rollout status.
type DefaultRolloutPropertiesStatus struct {
	// The completed regions.
	CompletedRegions []*string

	// The failed or skipped regions.
	FailedOrSkippedRegions map[string]*ExtendedErrorInfo

	// The manifest checkin status.
	ManifestCheckinStatus *DefaultRolloutStatusManifestCheckinStatus

	// The next traffic region.
	NextTrafficRegion *TrafficRegionCategory

	// The next traffic region scheduled time.
	NextTrafficRegionScheduledTime *time.Time

	// The subscription reregistration result.
	SubscriptionReregistrationResult *SubscriptionReregistrationResult
}

type DefaultRolloutSpecification struct {
	// The auto provisioning config.
	AutoProvisionConfig *DefaultRolloutSpecificationAutoProvisionConfig

	// The canary traffic region configuration.
	Canary *DefaultRolloutSpecificationCanary

	// The expedited rollout definition.
	ExpeditedRollout *DefaultRolloutSpecificationExpeditedRollout

	// The high traffic region configuration.
	HighTraffic *DefaultRolloutSpecificationHighTraffic

	// The low traffic region configuration.
	LowTraffic *DefaultRolloutSpecificationLowTraffic

	// The medium traffic region configuration.
	MediumTraffic *DefaultRolloutSpecificationMediumTraffic

	// The provider registration.
	ProviderRegistration *DefaultRolloutSpecificationProviderRegistration

	// The resource type registrations.
	ResourceTypeRegistrations []*ResourceTypeRegistration

	// The rest of the world group one region configuration.
	RestOfTheWorldGroupOne *DefaultRolloutSpecificationRestOfTheWorldGroupOne

	// The rest of the world group two region configuration.
	RestOfTheWorldGroupTwo *DefaultRolloutSpecificationRestOfTheWorldGroupTwo
}

// DefaultRolloutSpecificationAutoProvisionConfig - The auto provisioning config.
type DefaultRolloutSpecificationAutoProvisionConfig struct {
	// Whether auto provisioning for resource graph is enabled.
	ResourceGraph *bool

	// Whether auto provisioning for storage is enabled.
	Storage *bool
}

// DefaultRolloutSpecificationCanary - The canary traffic region configuration.
type DefaultRolloutSpecificationCanary struct {
	// The regions.
	Regions []*string

	// The skip regions.
	SkipRegions []*string
}

// DefaultRolloutSpecificationExpeditedRollout - The expedited rollout definition.
type DefaultRolloutSpecificationExpeditedRollout struct {
	// Indicates whether expedited rollout is enabled/disabled
	Enabled *bool
}

// DefaultRolloutSpecificationHighTraffic - The high traffic region configuration.
type DefaultRolloutSpecificationHighTraffic struct {
	Regions []*string

	// The wait duration.
	WaitDuration *string
}

// DefaultRolloutSpecificationLowTraffic - The low traffic region configuration.
type DefaultRolloutSpecificationLowTraffic struct {
	Regions []*string

	// The wait duration.
	WaitDuration *string
}

// DefaultRolloutSpecificationMediumTraffic - The medium traffic region configuration.
type DefaultRolloutSpecificationMediumTraffic struct {
	Regions []*string

	// The wait duration.
	WaitDuration *string
}

// DefaultRolloutSpecificationProviderRegistration - The provider registration.
type DefaultRolloutSpecificationProviderRegistration struct {
	// Provider registration kind. This Metadata is also used by portal/tooling/etc to render different UX experiences for resources
	// of the same type.
	Kind       *ProviderRegistrationKind
	Properties *ProviderRegistrationProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// DefaultRolloutSpecificationRestOfTheWorldGroupOne - The rest of the world group one region configuration.
type DefaultRolloutSpecificationRestOfTheWorldGroupOne struct {
	Regions []*string

	// The wait duration.
	WaitDuration *string
}

// DefaultRolloutSpecificationRestOfTheWorldGroupTwo - The rest of the world group two region configuration.
type DefaultRolloutSpecificationRestOfTheWorldGroupTwo struct {
	Regions []*string

	// The wait duration.
	WaitDuration *string
}

type DefaultRolloutStatus struct {
	// The completed regions.
	CompletedRegions []*string

	// The failed or skipped regions.
	FailedOrSkippedRegions map[string]*ExtendedErrorInfo

	// The manifest checkin status.
	ManifestCheckinStatus *DefaultRolloutStatusManifestCheckinStatus

	// The next traffic region.
	NextTrafficRegion *TrafficRegionCategory

	// The next traffic region scheduled time.
	NextTrafficRegionScheduledTime *time.Time

	// The subscription reregistration result.
	SubscriptionReregistrationResult *SubscriptionReregistrationResult
}

// DefaultRolloutStatusManifestCheckinStatus - The manifest checkin status.
type DefaultRolloutStatusManifestCheckinStatus struct {
	// REQUIRED; Whether the manifest is checked in.
	IsCheckedIn *bool

	// REQUIRED; The status message.
	StatusMessage *string

	// The commit id.
	CommitID *string

	// The pull request.
	PullRequest *string
}

type DeleteDependency struct {
	// Linked property.
	LinkedProperty *string

	// Linked type.
	LinkedType *string

	// Required features.
	RequiredFeatures []*string
}

type DstsConfiguration struct {
	// REQUIRED; The service name.
	ServiceName *string

	// This is a URI property.
	ServiceDNSName *string
}

type EndpointInformation struct {
	// The endpoint.
	Endpoint *string

	// The endpoint type.
	EndpointType *NotificationEndpointType

	// The schema version.
	SchemaVersion *string
}

// ErrorAdditionalInfo - The resource management error additional info.
type ErrorAdditionalInfo struct {
	// READ-ONLY; The additional info.
	Info any

	// READ-ONLY; The additional info type.
	Type *string
}

// ErrorDetail - The error detail.
type ErrorDetail struct {
	// READ-ONLY; The error additional info.
	AdditionalInfo []*ErrorAdditionalInfo

	// READ-ONLY; The error code.
	Code *string

	// READ-ONLY; The error details.
	Details []*ErrorDetail

	// READ-ONLY; The error message.
	Message *string

	// READ-ONLY; The error target.
	Target *string
}

// 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 {
	// The error object.
	Error *ErrorDetail
}

type ExpeditedRolloutDefinition struct {
	// Indicates whether expedited rollout is enabled/disabled
	Enabled *bool
}

// ExtendedErrorInfo - Error information.
type ExtendedErrorInfo struct {
	// The additional error information.
	AdditionalInfo []*TypedErrorInfo

	// The error code.
	Code *string

	// The error details.
	Details []*ExtendedErrorInfo

	// The error message.
	Message *string

	// The target of the error.
	Target *string
}

type ExtendedLocationOptions struct {
	SupportedPolicy *ResourceTypeExtendedLocationPolicy

	// The type.
	Type *ExtendedLocationType
}

type ExtensionOptions struct {
	// The request.
	Request []*ExtensionOptionType

	// The response.
	Response []*ExtensionOptionType
}

type FanoutLinkedNotificationRule struct {
	// The actions.
	Actions []*string

	// The dsts configuration.
	DstsConfiguration *FanoutLinkedNotificationRuleDstsConfiguration

	// The endpoints.
	Endpoints []*ResourceProviderEndpoint

	// The token auth configuration.
	TokenAuthConfiguration *TokenAuthConfiguration
}

// FanoutLinkedNotificationRuleDstsConfiguration - The dsts configuration.
type FanoutLinkedNotificationRuleDstsConfiguration struct {
	// REQUIRED; The service name.
	ServiceName *string

	// This is a URI property.
	ServiceDNSName *string
}

type FeaturesRule struct {
	// REQUIRED; The required feature policy.
	RequiredFeaturesPolicy *FeaturesPolicy
}

type FilterRule struct {
	// The endpoint information.
	EndpointInformation []*EndpointInformation

	// The filter query.
	FilterQuery *string
}

type FrontloadPayload struct {
	// REQUIRED; Properties of the frontload payload.
	Properties *FrontloadPayloadProperties
}

type FrontloadPayloadProperties struct {
	// REQUIRED; The copy from location.
	CopyFromLocation *string

	// REQUIRED; The environment type.
	EnvironmentType *AvailableCheckInManifestEnvironment

	// REQUIRED; The resource types to exclude.
	ExcludeResourceTypes []*string

	// REQUIRED; The frontload location.
	FrontloadLocation *string

	// REQUIRED; The fields to ignore.
	IgnoreFields []*string

	// REQUIRED; The resource types to include.
	IncludeResourceTypes []*string

	// REQUIRED; The operation type.
	OperationType *string

	// REQUIRED; The endpoint level fields to override.
	OverrideEndpointLevelFields *FrontloadPayloadPropertiesOverrideEndpointLevelFields

	// REQUIRED; The manifest level fields to override.
	OverrideManifestLevelFields *FrontloadPayloadPropertiesOverrideManifestLevelFields

	// REQUIRED; The provider namespace.
	ProviderNamespace *string

	// REQUIRED; The service feature flag.
	ServiceFeatureFlag *ServiceFeatureFlagAction
}

// FrontloadPayloadPropertiesOverrideEndpointLevelFields - The endpoint level fields to override.
type FrontloadPayloadPropertiesOverrideEndpointLevelFields struct {
	// REQUIRED; The api version.
	APIVersion *string

	// REQUIRED; The api versions.
	APIVersions []*string

	// REQUIRED; The dsts configuration.
	DstsConfiguration *ResourceTypeEndpointBaseDstsConfiguration

	// REQUIRED; Whether it's enabled.
	Enabled *bool

	// REQUIRED; The endpoint type.
	EndpointType *EndpointType

	// REQUIRED; The endpoint uri.
	EndpointURI *string

	// REQUIRED; The features rule.
	FeaturesRule *ResourceTypeEndpointBaseFeaturesRule

	// REQUIRED; The locations.
	Locations []*string

	// REQUIRED; The required features.
	RequiredFeatures []*string

	// REQUIRED; The sku link.
	SKULink *string

	// REQUIRED; This is a TimeSpan property.
	Timeout *string

	// REQUIRED; The zones.
	Zones []*string
}

// FrontloadPayloadPropertiesOverrideManifestLevelFields - The manifest level fields to override.
type FrontloadPayloadPropertiesOverrideManifestLevelFields struct {
	// The resource hydration accounts.
	ResourceHydrationAccounts []*ResourceHydrationAccount
}

type GroupConnectivityInformation struct {
	// REQUIRED; The group id.
	GroupID *string

	// REQUIRED; List of required members for the group id.
	RequiredMembers []*string

	// REQUIRED; List of required zone names for the group id.
	RequiredZoneNames []*string

	// The redirect map id.
	RedirectMapID *string
}

type IdentityManagement struct {
	// The type.
	Type *IdentityManagementTypes
}

type IdentityManagementProperties struct {
	// The application id.
	ApplicationID *string

	// The application ids.
	ApplicationIDs []*string

	// The delegation app ids.
	DelegationAppIDs []*string

	// The type.
	Type *IdentityManagementTypes
}

type LegacyDisallowedCondition struct {
	// The disallowed legacy operations.
	DisallowedLegacyOperations []*LegacyOperation

	// Feature string.
	Feature *string
}

type LightHouseAuthorization struct {
	// REQUIRED; The principal id.
	PrincipalID *string

	// REQUIRED; The role definition id.
	RoleDefinitionID *string
}

type LinkedAccessCheck struct {
	// The action name.
	ActionName *string

	// The linked action.
	LinkedAction *string

	// The linked action verb.
	LinkedActionVerb *string

	// The linked property.
	LinkedProperty *string

	// The linked type.
	LinkedType *string
}

type LinkedNotificationRule struct {
	// The actions.
	Actions []*string

	// The actions on failed operation.
	ActionsOnFailedOperation []*string

	// The fast path actions.
	FastPathActions []*string

	// The fast path action on failed operation.
	FastPathActionsOnFailedOperation []*string

	// This is a TimeSpan property.
	LinkedNotificationTimeout *string
}

type LinkedOperationRule struct {
	// REQUIRED; The linked action.
	LinkedAction *LinkedAction

	// REQUIRED; The linked operation.
	LinkedOperation *LinkedOperation

	// Depends on types.
	DependsOnTypes []*string
}

type LocalizedOperationDefinition struct {
	// REQUIRED; Display information of the operation.
	Display *LocalizedOperationDefinitionDisplay

	// REQUIRED; Name of the operation.
	Name *string

	// The action type.
	ActionType *OperationActionType

	// Indicates whether the operation applies to data-plane.
	IsDataAction *bool

	// The origin.
	Origin *OperationOrigins
}

// LocalizedOperationDefinitionDisplay - Display information of the operation.
type LocalizedOperationDefinitionDisplay struct {
	// REQUIRED; Display information of the operation.
	Default *LocalizedOperationDisplayDefinitionDefault

	// Display information of the operation for cs locale.
	Cs *LocalizedOperationDisplayDefinitionCs

	// Display information of the operation for de locale.
	De *LocalizedOperationDisplayDefinitionDe

	// Display information of the operation for en locale.
	En *LocalizedOperationDisplayDefinitionEn

	// Display information of the operation for es locale.
	Es *LocalizedOperationDisplayDefinitionEs

	// Display information of the operation for fr locale.
	Fr *LocalizedOperationDisplayDefinitionFr

	// Display information of the operation for hu locale.
	Hu *LocalizedOperationDisplayDefinitionHu

	// Display information of the operation for it locale.
	It *LocalizedOperationDisplayDefinitionIt

	// Display information of the operation for ja locale.
	Ja *LocalizedOperationDisplayDefinitionJa

	// Display information of the operation for ko locale.
	Ko *LocalizedOperationDisplayDefinitionKo

	// Display information of the operation for nl locale.
	Nl *LocalizedOperationDisplayDefinitionNl

	// Display information of the operation for pl locale.
	Pl *LocalizedOperationDisplayDefinitionPl

	// Display information of the operation for pt-PT locale.
	Pt *LocalizedOperationDisplayDefinitionPt

	// Display information of the operation for pt-BR locale.
	PtBR *LocalizedOperationDisplayDefinitionPtBR

	// Display information of the operation for ru locale.
	Ru *LocalizedOperationDisplayDefinitionRu

	// Display information of the operation for sv locale.
	Sv *LocalizedOperationDisplayDefinitionSv

	// Display information of the operation for zh-Hans locale.
	ZhHans *LocalizedOperationDisplayDefinitionZhHans

	// Display information of the operation for zh-Hant locale.
	ZhHant *LocalizedOperationDisplayDefinitionZhHant
}

type LocalizedOperationDisplayDefinition struct {
	// REQUIRED; Display information of the operation.
	Default *LocalizedOperationDisplayDefinitionDefault

	// Display information of the operation for cs locale.
	Cs *LocalizedOperationDisplayDefinitionCs

	// Display information of the operation for de locale.
	De *LocalizedOperationDisplayDefinitionDe

	// Display information of the operation for en locale.
	En *LocalizedOperationDisplayDefinitionEn

	// Display information of the operation for es locale.
	Es *LocalizedOperationDisplayDefinitionEs

	// Display information of the operation for fr locale.
	Fr *LocalizedOperationDisplayDefinitionFr

	// Display information of the operation for hu locale.
	Hu *LocalizedOperationDisplayDefinitionHu

	// Display information of the operation for it locale.
	It *LocalizedOperationDisplayDefinitionIt

	// Display information of the operation for ja locale.
	Ja *LocalizedOperationDisplayDefinitionJa

	// Display information of the operation for ko locale.
	Ko *LocalizedOperationDisplayDefinitionKo

	// Display information of the operation for nl locale.
	Nl *LocalizedOperationDisplayDefinitionNl

	// Display information of the operation for pl locale.
	Pl *LocalizedOperationDisplayDefinitionPl

	// Display information of the operation for pt-PT locale.
	Pt *LocalizedOperationDisplayDefinitionPt

	// Display information of the operation for pt-BR locale.
	PtBR *LocalizedOperationDisplayDefinitionPtBR

	// Display information of the operation for ru locale.
	Ru *LocalizedOperationDisplayDefinitionRu

	// Display information of the operation for sv locale.
	Sv *LocalizedOperationDisplayDefinitionSv

	// Display information of the operation for zh-Hans locale.
	ZhHans *LocalizedOperationDisplayDefinitionZhHans

	// Display information of the operation for zh-Hant locale.
	ZhHant *LocalizedOperationDisplayDefinitionZhHant
}

// LocalizedOperationDisplayDefinitionCs - Display information of the operation for cs locale.
type LocalizedOperationDisplayDefinitionCs struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionDe - Display information of the operation for de locale.
type LocalizedOperationDisplayDefinitionDe struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionDefault - Display information of the operation.
type LocalizedOperationDisplayDefinitionDefault struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionEn - Display information of the operation for en locale.
type LocalizedOperationDisplayDefinitionEn struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionEs - Display information of the operation for es locale.
type LocalizedOperationDisplayDefinitionEs struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionFr - Display information of the operation for fr locale.
type LocalizedOperationDisplayDefinitionFr struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionHu - Display information of the operation for hu locale.
type LocalizedOperationDisplayDefinitionHu struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionIt - Display information of the operation for it locale.
type LocalizedOperationDisplayDefinitionIt struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionJa - Display information of the operation for ja locale.
type LocalizedOperationDisplayDefinitionJa struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionKo - Display information of the operation for ko locale.
type LocalizedOperationDisplayDefinitionKo struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionNl - Display information of the operation for nl locale.
type LocalizedOperationDisplayDefinitionNl struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionPl - Display information of the operation for pl locale.
type LocalizedOperationDisplayDefinitionPl struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionPt - Display information of the operation for pt-PT locale.
type LocalizedOperationDisplayDefinitionPt struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionPtBR - Display information of the operation for pt-BR locale.
type LocalizedOperationDisplayDefinitionPtBR struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionRu - Display information of the operation for ru locale.
type LocalizedOperationDisplayDefinitionRu struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionSv - Display information of the operation for sv locale.
type LocalizedOperationDisplayDefinitionSv struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionZhHans - Display information of the operation for zh-Hans locale.
type LocalizedOperationDisplayDefinitionZhHans struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

// LocalizedOperationDisplayDefinitionZhHant - Display information of the operation for zh-Hant locale.
type LocalizedOperationDisplayDefinitionZhHant struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

type LocationQuotaRule struct {
	// The location.
	Location *string

	// The policy.
	Policy *QuotaPolicy

	// The quota id.
	QuotaID *string
}

type LoggingHiddenPropertyPath struct {
	// The hidden paths on request.
	HiddenPathsOnRequest []*string

	// The hidden paths on response.
	HiddenPathsOnResponse []*string
}

type LoggingRule struct {
	// REQUIRED; The action.
	Action *string

	// REQUIRED; The detail level.
	DetailLevel *LoggingDetails

	// REQUIRED; The direction.
	Direction *LoggingDirections

	// The hidden property paths.
	HiddenPropertyPaths *LoggingRuleHiddenPropertyPaths
}

// LoggingRuleHiddenPropertyPaths - The hidden property paths.
type LoggingRuleHiddenPropertyPaths struct {
	// The hidden paths on request.
	HiddenPathsOnRequest []*string

	// The hidden paths on response.
	HiddenPathsOnResponse []*string
}

type ManifestLevelPropertyBag struct {
	// The resource hydration accounts.
	ResourceHydrationAccounts []*ResourceHydrationAccount
}

type Metadata struct {
	// The direct RP role definition id.
	DirectRpRoleDefinitionID *string

	// The global async operation resource type name.
	GlobalAsyncOperationResourceTypeName *string

	// The provider authentication.
	ProviderAuthentication *MetadataProviderAuthentication

	// The provider authorizations.
	ProviderAuthorizations []*ResourceProviderAuthorization

	// The regional async operation resource type name.
	RegionalAsyncOperationResourceTypeName *string

	// The third party provider authorization.
	ThirdPartyProviderAuthorization *MetadataThirdPartyProviderAuthorization
}

// MetadataProviderAuthentication - The provider authentication.
type MetadataProviderAuthentication struct {
	// REQUIRED; The allowed audiences.
	AllowedAudiences []*string
}

// MetadataThirdPartyProviderAuthorization - The third party provider authorization.
type MetadataThirdPartyProviderAuthorization struct {
	// The authorizations.
	Authorizations []*LightHouseAuthorization

	// The managed by tenant id.
	ManagedByTenantID *string
}

type Notification struct {
	// The notification type.
	NotificationType *NotificationType

	// Whether notifications should be skipped.
	SkipNotifications *SkipNotifications
}

type NotificationEndpoint struct {
	// The locations.
	Locations []*string

	// The notification destination.
	NotificationDestination *string
}

type NotificationRegistration struct {
	Properties *NotificationRegistrationProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type NotificationRegistrationArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string

	// The value.
	Value []*NotificationRegistration
}

type NotificationRegistrationProperties struct {
	// The included events.
	IncludedEvents []*string

	// The message scope.
	MessageScope *MessageScope

	// The notification endpoints.
	NotificationEndpoints []*NotificationEndpoint

	// The notification mode.
	NotificationMode *NotificationMode

	// READ-ONLY; The provisioned state of the resource.
	ProvisioningState *ProvisioningState
}

type OpenAPIConfiguration struct {
	// The open api validation.
	Validation *OpenAPIValidation
}

type OpenAPIValidation struct {
	// Indicates whether a non compliance response is allowed for a LIST call
	AllowNoncompliantCollectionResponse *bool
}

type OperationsContent struct {
	// Operations content.
	Properties *OperationsDefinition

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type OperationsContentProperties struct {
	// Operations content.
	Contents []*LocalizedOperationDefinition
}

// OperationsDefinition - Properties of an Operation.
type OperationsDefinition struct {
	// REQUIRED; Display information of the operation.
	Display *OperationsDefinitionDisplay

	// REQUIRED; Name of the operation.
	Name *string

	// The action type.
	ActionType *OperationActionType

	// Indicates whether the operation applies to data-plane.
	IsDataAction *bool

	// The origin.
	Origin *OperationOrigins

	// Anything
	Properties any
}

type OperationsDefinitionArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string

	// The value.
	Value []*OperationsDefinition
}

// OperationsDefinitionDisplay - Display information of the operation.
type OperationsDefinitionDisplay struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

type OperationsDisplayDefinition struct {
	// REQUIRED; The description.
	Description *string

	// REQUIRED; The operation.
	Operation *string

	// REQUIRED; The provider.
	Provider *string

	// REQUIRED; The resource.
	Resource *string
}

type OperationsPutContent struct {
	Properties *OperationsPutContentProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type OperationsPutContentProperties struct {
	// Operations content.
	Contents []*LocalizedOperationDefinition
}

type PrivateResourceProviderConfiguration struct {
	// The allowed subscriptions.
	AllowedSubscriptions []*string
}

type ProviderMonitorSetting struct {
	// REQUIRED; The geo-location where the resource lives
	Location   *string
	Properties *ProviderMonitorSettingProperties

	// Resource tags.
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type ProviderMonitorSettingArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string
	Value    []*ProviderMonitorSetting
}

type ProviderMonitorSettingProperties struct {
	// READ-ONLY; The provisioning state.
	ProvisioningState *ProvisioningState
}

type ProviderRegistration struct {
	// Provider registration kind. This Metadata is also used by portal/tooling/etc to render different UX experiences for resources
	// of the same type.
	Kind       *ProviderRegistrationKind
	Properties *ProviderRegistrationProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type ProviderRegistrationArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string

	// The value.
	Value []*ProviderRegistration
}

type ProviderRegistrationProperties struct {
	// The capabilities.
	Capabilities []*ResourceProviderCapabilities

	// The cross tenant token validation.
	CrossTenantTokenValidation *CrossTenantTokenValidation

	// Custom manifest version.
	CustomManifestVersion *string

	// The dsts configuration.
	DstsConfiguration *ResourceProviderManifestPropertiesDstsConfiguration

	// The enable tenant linked notification.
	EnableTenantLinkedNotification *bool

	// The features rule.
	FeaturesRule *ResourceProviderManifestPropertiesFeaturesRule

	// The global notification endpoints.
	GlobalNotificationEndpoints []*ResourceProviderEndpoint

	// Legacy namespace.
	LegacyNamespace *string

	// Legacy registrations.
	LegacyRegistrations []*string

	// The linked notification rules.
	LinkedNotificationRules []*FanoutLinkedNotificationRule

	// The resource provider management.
	Management *ResourceProviderManifestPropertiesManagement

	// Management groups global notification endpoints.
	ManagementGroupGlobalNotificationEndpoints []*ResourceProviderEndpoint

	// The metadata.
	Metadata any

	// The namespace.
	Namespace *string

	// Notification options.
	NotificationOptions *NotificationOptions

	// Notification settings.
	NotificationSettings *ResourceProviderManifestPropertiesNotificationSettings

	// The notifications.
	Notifications []*Notification

	// Optional features.
	OptionalFeatures []*string

	// The private resource provider configuration.
	PrivateResourceProviderConfiguration *ProviderRegistrationPropertiesPrivateResourceProviderConfiguration

	// The provider authentication.
	ProviderAuthentication *ResourceProviderManifestPropertiesProviderAuthentication

	// The provider authorizations.
	ProviderAuthorizations []*ResourceProviderAuthorization

	// The provider hub metadata.
	ProviderHubMetadata *ProviderRegistrationPropertiesProviderHubMetadata

	// The provider type.
	ProviderType *ResourceProviderType

	// The provider version.
	ProviderVersion *string

	// The request header options.
	RequestHeaderOptions *ResourceProviderManifestPropertiesRequestHeaderOptions

	// The required features.
	RequiredFeatures []*string

	// Resource group lock option during move.
	ResourceGroupLockOptionDuringMove *ResourceProviderManifestPropertiesResourceGroupLockOptionDuringMove

	// resource hydration accounts
	ResourceHydrationAccounts []*ResourceHydrationAccount

	// The resource provider authorization rules.
	ResourceProviderAuthorizationRules *ResourceProviderAuthorizationRules

	// Response options.
	ResponseOptions *ResourceProviderManifestPropertiesResponseOptions

	// The service name.
	ServiceName *string

	// The services.
	Services []*ResourceProviderService

	// The subscription lifecycle notification specifications.
	SubscriptionLifecycleNotificationSpecifications *ProviderRegistrationPropertiesSubscriptionLifecycleNotificationSpecifications

	// The template deployment options.
	TemplateDeploymentOptions *ResourceProviderManifestPropertiesTemplateDeploymentOptions

	// The token auth configuration.
	TokenAuthConfiguration *TokenAuthConfiguration

	// READ-ONLY; The provisioning state.
	ProvisioningState *ProvisioningState
}

// ProviderRegistrationPropertiesPrivateResourceProviderConfiguration - The private resource provider configuration.
type ProviderRegistrationPropertiesPrivateResourceProviderConfiguration struct {
	// The allowed subscriptions.
	AllowedSubscriptions []*string
}

// ProviderRegistrationPropertiesProviderHubMetadata - The provider hub metadata.
type ProviderRegistrationPropertiesProviderHubMetadata struct {
	// The direct RP role definition id.
	DirectRpRoleDefinitionID *string

	// The global async operation resource type name.
	GlobalAsyncOperationResourceTypeName *string

	// The provider authentication.
	ProviderAuthentication *MetadataProviderAuthentication

	// The provider authorizations.
	ProviderAuthorizations []*ResourceProviderAuthorization

	// The regional async operation resource type name.
	RegionalAsyncOperationResourceTypeName *string

	// The third party provider authorization.
	ThirdPartyProviderAuthorization *MetadataThirdPartyProviderAuthorization
}

// ProviderRegistrationPropertiesSubscriptionLifecycleNotificationSpecifications - The subscription lifecycle notification
// specifications.
type ProviderRegistrationPropertiesSubscriptionLifecycleNotificationSpecifications struct {
	// The soft delete TTL.
	SoftDeleteTTL *string

	// The subscription state override actions.
	SubscriptionStateOverrideActions []*SubscriptionStateOverrideAction
}

// ProxyResource - The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a
// location
type ProxyResource struct {
	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type QuotaRule struct {
	// The location rules.
	LocationRules []*LocationQuotaRule

	// The quota policy.
	QuotaPolicy *QuotaPolicy

	// The required features.
	RequiredFeatures []*string
}

type ReRegisterSubscriptionMetadata struct {
	// REQUIRED; Whether it's enabled or not.
	Enabled *bool

	// The concurrency limit.
	ConcurrencyLimit *int32
}

type RequestHeaderOptions struct {
	// The opt in headers.
	OptInHeaders *OptInHeaderType

	// The opt out headers.
	OptOutHeaders *OptOutHeaderType
}

// Resource - Common fields that are returned in the response for all Azure Resource Manager resources
type Resource struct {
	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type ResourceAccessRole struct {
	// The actions.
	Actions []*string

	// The allowed group claims.
	AllowedGroupClaims []*string
}

type ResourceConcurrencyControlOption struct {
	// The policy.
	Policy *Policy
}

type ResourceGraphConfiguration struct {
	// The api version.
	APIVersion *string

	// Whether it's enabled.
	Enabled *bool
}

type ResourceHydrationAccount struct {
	// The account name.
	AccountName *string

	// The encrypted key.
	EncryptedKey *string

	// The max child resource consistency job limit.
	MaxChildResourceConsistencyJobLimit *int64

	// The subscription id.
	SubscriptionID *string
}

type ResourceManagementAction struct {
	// resource management action content.
	Resources []*ResourceManagementEntity
}

type ResourceManagementEntity struct {
	// REQUIRED; The resource id.
	ResourceID *string

	// The home tenant id.
	HomeTenantID *string

	// The location.
	Location *string

	// READ-ONLY; The operation status.
	Status *string
}

type ResourceMovePolicy struct {
	// Whether cross resource group move is enabled.
	CrossResourceGroupMoveEnabled *bool

	// Whether cross subscription move is enabled.
	CrossSubscriptionMoveEnabled *bool

	// Whether validation is required.
	ValidationRequired *bool
}

type ResourceProviderAuthentication struct {
	// REQUIRED; The allowed audiences.
	AllowedAudiences []*string
}

type ResourceProviderAuthorization struct {
	// The allowed third party extensions.
	AllowedThirdPartyExtensions []*ThirdPartyExtension

	// The application id.
	ApplicationID *string

	// The grouping tag.
	GroupingTag *string

	// Managed by authorization.
	ManagedByAuthorization *ResourceProviderAuthorizationManagedByAuthorization

	// The managed by role definition id.
	ManagedByRoleDefinitionID *string

	// The role definition id.
	RoleDefinitionID *string
}

// ResourceProviderAuthorizationManagedByAuthorization - Managed by authorization.
type ResourceProviderAuthorizationManagedByAuthorization struct {
	AdditionalAuthorizations []*AdditionalAuthorization

	// Indicates whether the managed by resource role definition ID should be inherited.
	AllowManagedByInheritance *bool

	// The managed by resource role definition ID for the application.
	ManagedByResourceRoleDefinitionID *string
}

type ResourceProviderAuthorizationRules struct {
	// The async operation polling rules.
	AsyncOperationPollingRules *AsyncOperationPollingRules
}

type ResourceProviderCapabilities struct {
	// REQUIRED; The effect.
	Effect *ResourceProviderCapabilitiesEffect

	// REQUIRED; The quota id.
	QuotaID *string

	// The required features.
	RequiredFeatures []*string
}

type ResourceProviderEndpoint struct {
	// The api versions.
	APIVersions []*string

	// Whether the endpoint is enabled.
	Enabled *bool

	// The endpoint type.
	EndpointType *EndpointType

	// The endpoint uri.
	EndpointURI *string

	// The feature rules.
	FeaturesRule *ResourceProviderEndpointFeaturesRule

	// The locations.
	Locations []*string

	// The required features.
	RequiredFeatures []*string

	// The sku link.
	SKULink *string

	// The timeout.
	Timeout *string
}

// ResourceProviderEndpointFeaturesRule - The feature rules.
type ResourceProviderEndpointFeaturesRule struct {
	// REQUIRED; The required feature policy.
	RequiredFeaturesPolicy *FeaturesPolicy
}

type ResourceProviderManagement struct {
	// The authorization owners.
	AuthorizationOwners []*string

	// List of manifest owners for canary.
	CanaryManifestOwners []*string

	// Options for error response messages.
	ErrorResponseMessageOptions *ResourceProviderManagementErrorResponseMessageOptions

	// Metadata for expedited rollout.
	ExpeditedRolloutMetadata *ResourceProviderManagementExpeditedRolloutMetadata

	// List of expedited rollout submitters.
	ExpeditedRolloutSubmitters []*string

	// The incident contact email.
	IncidentContactEmail *string

	// The incident routing service.
	IncidentRoutingService *string

	// The incident routing team.
	IncidentRoutingTeam *string

	// The manifest owners.
	ManifestOwners []*string

	// The profit center code for the subscription.
	PcCode *string

	// The profit center program id for the subscription.
	ProfitCenterProgramID *string

	// The resource access policy.
	ResourceAccessPolicy *ResourceAccessPolicy

	// The resource access roles.
	ResourceAccessRoles []*ResourceAccessRole

	// The schema owners.
	SchemaOwners []*string

	// The service tree infos.
	ServiceTreeInfos []*ServiceTreeInfo
}

// ResourceProviderManagementErrorResponseMessageOptions - Options for error response messages.
type ResourceProviderManagementErrorResponseMessageOptions struct {
	// Type of server failure response message.
	ServerFailureResponseMessageType *ServerFailureResponseMessageType
}

// ResourceProviderManagementExpeditedRolloutMetadata - Metadata for expedited rollout.
type ResourceProviderManagementExpeditedRolloutMetadata struct {
	// Expedited rollout enabled?
	Enabled *bool

	// Expedited rollout intent.
	ExpeditedRolloutIntent *ExpeditedRolloutIntent
}

type ResourceProviderManifest struct {
	// The capabilities.
	Capabilities []*ResourceProviderCapabilities

	// The cross tenant token validation.
	CrossTenantTokenValidation *CrossTenantTokenValidation

	// Whether tenant linked notification is enabled.
	EnableTenantLinkedNotification *bool

	// The features rule.
	FeaturesRule *ResourceProviderManifestFeaturesRule

	// The global notification endpoints.
	GlobalNotificationEndpoints []*ResourceProviderEndpoint

	// The linked notification rules.
	LinkedNotificationRules []*FanoutLinkedNotificationRule

	// The resource provider management.
	Management *ResourceProviderManifestManagement

	// The metadata.
	Metadata any

	// The namespace.
	Namespace *string

	// The notifications.
	Notifications []*Notification

	// The provider authentication.
	ProviderAuthentication *ResourceProviderManifestProviderAuthentication

	// The provider authorizations.
	ProviderAuthorizations []*ResourceProviderAuthorization

	// The provider type.
	ProviderType *ResourceProviderType

	// The provider version.
	ProviderVersion *string

	// The re-register subscription metadata.
	ReRegisterSubscriptionMetadata *ResourceProviderManifestReRegisterSubscriptionMetadata

	// The request header options.
	RequestHeaderOptions *ResourceProviderManifestRequestHeaderOptions

	// The required features.
	RequiredFeatures []*string

	// The resource provider authorization rules.
	ResourceProviderAuthorizationRules *ResourceProviderAuthorizationRules

	// The resource types.
	ResourceTypes []*ResourceType

	// The service name.
	ServiceName *string

	// The services.
	Services []*ResourceProviderService
}

// ResourceProviderManifestFeaturesRule - The features rule.
type ResourceProviderManifestFeaturesRule struct {
	// REQUIRED; The required feature policy.
	RequiredFeaturesPolicy *FeaturesPolicy
}

// ResourceProviderManifestManagement - The resource provider management.
type ResourceProviderManifestManagement struct {
	// The authorization owners.
	AuthorizationOwners []*string

	// List of manifest owners for canary.
	CanaryManifestOwners []*string

	// Options for error response messages.
	ErrorResponseMessageOptions *ResourceProviderManagementErrorResponseMessageOptions

	// Metadata for expedited rollout.
	ExpeditedRolloutMetadata *ResourceProviderManagementExpeditedRolloutMetadata

	// List of expedited rollout submitters.
	ExpeditedRolloutSubmitters []*string

	// The incident contact email.
	IncidentContactEmail *string

	// The incident routing service.
	IncidentRoutingService *string

	// The incident routing team.
	IncidentRoutingTeam *string

	// The manifest owners.
	ManifestOwners []*string

	// The profit center code for the subscription.
	PcCode *string

	// The profit center program id for the subscription.
	ProfitCenterProgramID *string

	// The resource access policy.
	ResourceAccessPolicy *ResourceAccessPolicy

	// The resource access roles.
	ResourceAccessRoles []*ResourceAccessRole

	// The schema owners.
	SchemaOwners []*string

	// The service tree infos.
	ServiceTreeInfos []*ServiceTreeInfo
}

type ResourceProviderManifestProperties struct {
	// The capabilities.
	Capabilities []*ResourceProviderCapabilities

	// The cross tenant token validation.
	CrossTenantTokenValidation *CrossTenantTokenValidation

	// Custom manifest version.
	CustomManifestVersion *string

	// The dsts configuration.
	DstsConfiguration *ResourceProviderManifestPropertiesDstsConfiguration

	// The enable tenant linked notification.
	EnableTenantLinkedNotification *bool

	// The features rule.
	FeaturesRule *ResourceProviderManifestPropertiesFeaturesRule

	// The global notification endpoints.
	GlobalNotificationEndpoints []*ResourceProviderEndpoint

	// Legacy namespace.
	LegacyNamespace *string

	// Legacy registrations.
	LegacyRegistrations []*string

	// The linked notification rules.
	LinkedNotificationRules []*FanoutLinkedNotificationRule

	// The resource provider management.
	Management *ResourceProviderManifestPropertiesManagement

	// Management groups global notification endpoints.
	ManagementGroupGlobalNotificationEndpoints []*ResourceProviderEndpoint

	// The metadata.
	Metadata any

	// The namespace.
	Namespace *string

	// Notification options.
	NotificationOptions *NotificationOptions

	// Notification settings.
	NotificationSettings *ResourceProviderManifestPropertiesNotificationSettings

	// The notifications.
	Notifications []*Notification

	// Optional features.
	OptionalFeatures []*string

	// The provider authentication.
	ProviderAuthentication *ResourceProviderManifestPropertiesProviderAuthentication

	// The provider authorizations.
	ProviderAuthorizations []*ResourceProviderAuthorization

	// The provider type.
	ProviderType *ResourceProviderType

	// The provider version.
	ProviderVersion *string

	// The request header options.
	RequestHeaderOptions *ResourceProviderManifestPropertiesRequestHeaderOptions

	// The required features.
	RequiredFeatures []*string

	// Resource group lock option during move.
	ResourceGroupLockOptionDuringMove *ResourceProviderManifestPropertiesResourceGroupLockOptionDuringMove

	// resource hydration accounts
	ResourceHydrationAccounts []*ResourceHydrationAccount

	// The resource provider authorization rules.
	ResourceProviderAuthorizationRules *ResourceProviderAuthorizationRules

	// Response options.
	ResponseOptions *ResourceProviderManifestPropertiesResponseOptions

	// The service name.
	ServiceName *string

	// The services.
	Services []*ResourceProviderService

	// The template deployment options.
	TemplateDeploymentOptions *ResourceProviderManifestPropertiesTemplateDeploymentOptions
}

// ResourceProviderManifestPropertiesDstsConfiguration - The dsts configuration.
type ResourceProviderManifestPropertiesDstsConfiguration struct {
	// REQUIRED; The service name.
	ServiceName *string

	// This is a URI property.
	ServiceDNSName *string
}

// ResourceProviderManifestPropertiesFeaturesRule - The features rule.
type ResourceProviderManifestPropertiesFeaturesRule struct {
	// REQUIRED; The required feature policy.
	RequiredFeaturesPolicy *FeaturesPolicy
}

// ResourceProviderManifestPropertiesManagement - The resource provider management.
type ResourceProviderManifestPropertiesManagement struct {
	// The authorization owners.
	AuthorizationOwners []*string

	// List of manifest owners for canary.
	CanaryManifestOwners []*string

	// Options for error response messages.
	ErrorResponseMessageOptions *ResourceProviderManagementErrorResponseMessageOptions

	// Metadata for expedited rollout.
	ExpeditedRolloutMetadata *ResourceProviderManagementExpeditedRolloutMetadata

	// List of expedited rollout submitters.
	ExpeditedRolloutSubmitters []*string

	// The incident contact email.
	IncidentContactEmail *string

	// The incident routing service.
	IncidentRoutingService *string

	// The incident routing team.
	IncidentRoutingTeam *string

	// The manifest owners.
	ManifestOwners []*string

	// The profit center code for the subscription.
	PcCode *string

	// The profit center program id for the subscription.
	ProfitCenterProgramID *string

	// The resource access policy.
	ResourceAccessPolicy *ResourceAccessPolicy

	// The resource access roles.
	ResourceAccessRoles []*ResourceAccessRole

	// The schema owners.
	SchemaOwners []*string

	// The service tree infos.
	ServiceTreeInfos []*ServiceTreeInfo
}

// ResourceProviderManifestPropertiesNotificationSettings - Notification settings.
type ResourceProviderManifestPropertiesNotificationSettings struct {
	SubscriberSettings []*SubscriberSetting
}

// ResourceProviderManifestPropertiesProviderAuthentication - The provider authentication.
type ResourceProviderManifestPropertiesProviderAuthentication struct {
	// REQUIRED; The allowed audiences.
	AllowedAudiences []*string
}

// ResourceProviderManifestPropertiesRequestHeaderOptions - The request header options.
type ResourceProviderManifestPropertiesRequestHeaderOptions struct {
	// The opt in headers.
	OptInHeaders *OptInHeaderType

	// The opt out headers.
	OptOutHeaders *OptOutHeaderType
}

// ResourceProviderManifestPropertiesResourceGroupLockOptionDuringMove - Resource group lock option during move.
type ResourceProviderManifestPropertiesResourceGroupLockOptionDuringMove struct {
	// The action verb that will be blocked when the resource group is locked during move.
	BlockActionVerb *BlockActionVerb
}

// ResourceProviderManifestPropertiesResponseOptions - Response options.
type ResourceProviderManifestPropertiesResponseOptions struct {
	ServiceClientOptionsType *ServiceClientOptionsType
}

// ResourceProviderManifestPropertiesTemplateDeploymentOptions - The template deployment options.
type ResourceProviderManifestPropertiesTemplateDeploymentOptions struct {
	// The preflight options.
	PreflightOptions []*PreflightOption

	// Whether preflight is supported.
	PreflightSupported *bool
}

// ResourceProviderManifestProviderAuthentication - The provider authentication.
type ResourceProviderManifestProviderAuthentication struct {
	// REQUIRED; The allowed audiences.
	AllowedAudiences []*string
}

// ResourceProviderManifestReRegisterSubscriptionMetadata - The re-register subscription metadata.
type ResourceProviderManifestReRegisterSubscriptionMetadata struct {
	// REQUIRED; Whether it's enabled or not.
	Enabled *bool

	// The concurrency limit.
	ConcurrencyLimit *int32
}

// ResourceProviderManifestRequestHeaderOptions - The request header options.
type ResourceProviderManifestRequestHeaderOptions struct {
	// The opt in headers.
	OptInHeaders *OptInHeaderType

	// The opt out headers.
	OptOutHeaders *OptOutHeaderType
}

// ResourceProviderService - Resource provider service.
type ResourceProviderService struct {
	// The service name.
	ServiceName *string

	// The status.
	Status *ServiceStatus
}

type ResourceType struct {
	// The additional options.
	AdditionalOptions *AdditionalOptions

	// The allowed unauthorized actions.
	AllowedUnauthorizedActions []*string

	// The allowed unauthorized actions extensions.
	AllowedUnauthorizedActionsExtensions []*AllowedUnauthorizedActionsExtension

	// The authorization action mappings.
	AuthorizationActionMappings []*AuthorizationActionMapping

	// The cross tenant token validation.
	CrossTenantTokenValidation *CrossTenantTokenValidation

	// The default api version.
	DefaultAPIVersion *string

	// The disallowed action verbs.
	DisallowedActionVerbs []*string

	// The endpoints.
	Endpoints []*ResourceProviderEndpoint

	// The extended locations.
	ExtendedLocations []*ExtendedLocationOptions

	// The features rule.
	FeaturesRule *ResourceTypeFeaturesRule

	// The identity management.
	IdentityManagement *ResourceTypeIdentityManagement

	// The linked access checks.
	LinkedAccessChecks []*LinkedAccessCheck

	// The linked notification rules.
	LinkedNotificationRules []*LinkedNotificationRule

	// The linked operation rules.
	LinkedOperationRules []*LinkedOperationRule

	// The logging rules.
	LoggingRules []*LoggingRule

	// The marketplace type.
	MarketplaceType *MarketplaceType

	// The metadata.
	Metadata any

	// The resource type name.
	Name *string

	// The notifications.
	Notifications []*Notification

	// The quota rule.
	QuotaRule *QuotaRule

	// The request header options.
	RequestHeaderOptions *ResourceTypeRequestHeaderOptions

	// The required features.
	RequiredFeatures []*string

	// The resource deletion policy.
	ResourceDeletionPolicy *ManifestResourceDeletionPolicy

	// The resource provider authorization rules.
	ResourceProviderAuthorizationRules *ResourceProviderAuthorizationRules

	// The resource validation.
	ResourceValidation *ResourceValidation

	// The resource routing type.
	RoutingType *RoutingType

	// The sku link.
	SKULink *string

	// The service tree infos.
	ServiceTreeInfos []*ServiceTreeInfo

	// The subscription state rules.
	SubscriptionStateRules []*SubscriptionStateRule

	// The template deployment policy.
	TemplateDeploymentPolicy *ResourceTypeTemplateDeploymentPolicy

	// The throttling rules.
	ThrottlingRules []*ThrottlingRule
}

type ResourceTypeEndpoint struct {
	// Api version.
	APIVersion *string

	// The api versions.
	APIVersions []*string

	// The data boundary.
	DataBoundary *DataBoundary

	// The dsts configuration.
	DstsConfiguration *ResourceTypeEndpointDstsConfiguration

	// Whether the endpoint is enabled.
	Enabled *bool

	// The endpoint type.
	EndpointType *EndpointTypeResourceType

	// The endpoint uri.
	EndpointURI *string

	// The extensions.
	Extensions []*ResourceTypeExtension

	// The features rule.
	FeaturesRule *ResourceTypeEndpointFeaturesRule

	// Resource type endpoint kind. This Metadata is also used by portal/tooling/etc to render different UX experiences for resources
	// of the same type.
	Kind *ResourceTypeEndpointKind

	// The locations.
	Locations []*string

	// The required features.
	RequiredFeatures []*string

	// The sku link.
	SKULink *string

	// The timeout.
	Timeout *string

	// The token auth configuration.
	TokenAuthConfiguration *TokenAuthConfiguration

	// List of zones.
	Zones []*string
}

type ResourceTypeEndpointBase struct {
	// REQUIRED; The api version.
	APIVersion *string

	// REQUIRED; The api versions.
	APIVersions []*string

	// REQUIRED; The dsts configuration.
	DstsConfiguration *ResourceTypeEndpointBaseDstsConfiguration

	// REQUIRED; Whether it's enabled.
	Enabled *bool

	// REQUIRED; The endpoint type.
	EndpointType *EndpointType

	// REQUIRED; The endpoint uri.
	EndpointURI *string

	// REQUIRED; The features rule.
	FeaturesRule *ResourceTypeEndpointBaseFeaturesRule

	// REQUIRED; The locations.
	Locations []*string

	// REQUIRED; The required features.
	RequiredFeatures []*string

	// REQUIRED; The sku link.
	SKULink *string

	// REQUIRED; This is a TimeSpan property.
	Timeout *string

	// REQUIRED; The zones.
	Zones []*string
}

// ResourceTypeEndpointBaseDstsConfiguration - The dsts configuration.
type ResourceTypeEndpointBaseDstsConfiguration struct {
	// REQUIRED; The service name.
	ServiceName *string

	// This is a URI property.
	ServiceDNSName *string
}

// ResourceTypeEndpointBaseFeaturesRule - The features rule.
type ResourceTypeEndpointBaseFeaturesRule struct {
	// REQUIRED; The required feature policy.
	RequiredFeaturesPolicy *FeaturesPolicy
}

// ResourceTypeEndpointDstsConfiguration - The dsts configuration.
type ResourceTypeEndpointDstsConfiguration struct {
	// REQUIRED; The service name.
	ServiceName *string

	// This is a URI property.
	ServiceDNSName *string
}

// ResourceTypeEndpointFeaturesRule - The features rule.
type ResourceTypeEndpointFeaturesRule struct {
	// REQUIRED; The required feature policy.
	RequiredFeaturesPolicy *FeaturesPolicy
}

type ResourceTypeExtension struct {
	// The endpoint uri.
	EndpointURI *string

	// The extension categories.
	ExtensionCategories []*ExtensionCategory

	// The timeout.
	Timeout *string
}

type ResourceTypeExtensionOptions struct {
	// Resource creation begin.
	ResourceCreationBegin *ResourceTypeExtensionOptionsResourceCreationBegin
}

// ResourceTypeExtensionOptionsResourceCreationBegin - Resource creation begin.
type ResourceTypeExtensionOptionsResourceCreationBegin struct {
	// The request.
	Request []*ExtensionOptionType

	// The response.
	Response []*ExtensionOptionType
}

// ResourceTypeFeaturesRule - The features rule.
type ResourceTypeFeaturesRule struct {
	// REQUIRED; The required feature policy.
	RequiredFeaturesPolicy *FeaturesPolicy
}

// ResourceTypeIdentityManagement - The identity management.
type ResourceTypeIdentityManagement struct {
	// The type.
	Type *IdentityManagementTypes
}

type ResourceTypeOnBehalfOfToken struct {
	// The action name.
	ActionName *string

	// This is a TimeSpan property.
	LifeTime *string
}

type ResourceTypeRegistration struct {
	// Resource type registration kind. This Metadata is also used by portal/tooling/etc to render different UX experiences for
	// resources of the same type.
	Kind       *ResourceTypeRegistrationKind
	Properties *ResourceTypeRegistrationProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type ResourceTypeRegistrationArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string

	// The value.
	Value []*ResourceTypeRegistration
}

type ResourceTypeRegistrationProperties struct {
	// The api profiles.
	APIProfiles []*APIProfile

	// Add resource list target locations?
	AddResourceListTargetLocations *bool

	// The additional options.
	AdditionalOptions *AdditionalOptionsResourceTypeRegistration

	// The allow empty role assignments.
	AllowEmptyRoleAssignments *bool

	// The allowed resource names.
	AllowedResourceNames []*AllowedResourceName

	// Allowed template deployment reference actions.
	AllowedTemplateDeploymentReferenceActions []*string

	// The allowed unauthorized actions.
	AllowedUnauthorizedActions []*string

	// The allowed unauthorized actions extensions.
	AllowedUnauthorizedActionsExtensions []*AllowedUnauthorizedActionsExtension

	// The async operation resource type name.
	AsyncOperationResourceTypeName *string

	// Async timeout rules
	AsyncTimeoutRules []*AsyncTimeoutRule

	// The authorization action mappings
	AuthorizationActionMappings []*AuthorizationActionMapping

	// The availability zone rule.
	AvailabilityZoneRule *ResourceTypeRegistrationPropertiesAvailabilityZoneRule

	// Capacity rule.
	CapacityRule *ResourceTypeRegistrationPropertiesCapacityRule

	// The category.
	Category *ResourceTypeCategory

	// The check name availability specifications.
	CheckNameAvailabilitySpecifications *ResourceTypeRegistrationPropertiesCheckNameAvailabilitySpecifications

	// Common API versions for the resource type.
	CommonAPIVersions []*string

	// The cross tenant token validation.
	CrossTenantTokenValidation *CrossTenantTokenValidation

	// The default api version.
	DefaultAPIVersion *string

	// The disallowed action verbs.
	DisallowedActionVerbs []*string

	// The disallowed end user operations.
	DisallowedEndUserOperations []*string

	// The dsts configuration.
	DstsConfiguration *ResourceTypeRegistrationPropertiesDstsConfiguration

	// Whether async operation is enabled.
	EnableAsyncOperation *bool

	// Whether third party S2S is enabled.
	EnableThirdPartyS2S *bool

	// The extensions.
	Endpoints []*ResourceTypeEndpoint

	// The extended locations.
	ExtendedLocations []*ExtendedLocationOptions

	// The extension options.
	ExtensionOptions *ResourceTypeRegistrationPropertiesExtensionOptions

	// The features rule.
	FeaturesRule *ResourceTypeRegistrationPropertiesFeaturesRule

	// The frontdoor request mode.
	FrontdoorRequestMode *FrontdoorRequestMode

	// Grouping tag.
	GroupingTag *string

	// The identity management.
	IdentityManagement *ResourceTypeRegistrationPropertiesIdentityManagement

	// Whether it is pure proxy.
	IsPureProxy *bool

	// The legacy name.
	LegacyName *string

	// The legacy names.
	LegacyNames []*string

	// The legacy policy.
	LegacyPolicy *ResourceTypeRegistrationPropertiesLegacyPolicy

	// The linked access checks.
	LinkedAccessChecks []*LinkedAccessCheck

	// The linked notification rules.
	LinkedNotificationRules []*LinkedNotificationRule

	// The linked operation rules.
	LinkedOperationRules []*LinkedOperationRule

	// The logging rules.
	LoggingRules []*LoggingRule

	// The resource provider management.
	Management *ResourceTypeRegistrationPropertiesManagement

	// Manifest link.
	ManifestLink *string

	// Marketplace options.
	MarketplaceOptions *ResourceTypeRegistrationPropertiesMarketplaceOptions

	// The marketplace type.
	MarketplaceType *MarketplaceType

	// The metadata.
	Metadata map[string]any

	// The notifications.
	Notifications []*Notification

	// The on behalf of tokens.
	OnBehalfOfTokens *ResourceTypeOnBehalfOfToken

	// The open api configuration.
	OpenAPIConfiguration *OpenAPIConfiguration

	// The policy execution type.
	PolicyExecutionType *PolicyExecutionType

	// The quota rule.
	QuotaRule *QuotaRule

	// The regionality.
	Regionality *Regionality

	// The request header options.
	RequestHeaderOptions *ResourceTypeRegistrationPropertiesRequestHeaderOptions

	// The required features.
	RequiredFeatures []*string

	// Resource cache options.
	ResourceCache *ResourceTypeRegistrationPropertiesResourceCache

	// The resource concurrency control options.
	ResourceConcurrencyControlOptions map[string]*ResourceConcurrencyControlOption

	// The resource deletion policy.
	ResourceDeletionPolicy *ResourceDeletionPolicy

	// The resource graph configuration.
	ResourceGraphConfiguration *ResourceTypeRegistrationPropertiesResourceGraphConfiguration

	// Resource management options.
	ResourceManagementOptions *ResourceTypeRegistrationPropertiesResourceManagementOptions

	// The resource move policy.
	ResourceMovePolicy *ResourceTypeRegistrationPropertiesResourceMovePolicy

	// The resource provider authorization rules.
	ResourceProviderAuthorizationRules *ResourceProviderAuthorizationRules

	// Resource query management options.
	ResourceQueryManagement *ResourceTypeRegistrationPropertiesResourceQueryManagement

	// The resource sub type.
	ResourceSubType *ResourceSubType

	// Resource type common attribute management.
	ResourceTypeCommonAttributeManagement *ResourceTypeRegistrationPropertiesResourceTypeCommonAttributeManagement

	// The resource validation.
	ResourceValidation *ResourceValidation

	// Routing rule.
	RoutingRule *ResourceTypeRegistrationPropertiesRoutingRule

	// The resource routing type.
	RoutingType *RoutingType

	// The sku link.
	SKULink *string

	// The service tree infos.
	ServiceTreeInfos []*ServiceTreeInfo

	// The subscription lifecycle notification specifications.
	SubscriptionLifecycleNotificationSpecifications *ResourceTypeRegistrationPropertiesSubscriptionLifecycleNotificationSpecifications

	// The subscription state rules.
	SubscriptionStateRules []*SubscriptionStateRule

	// Whether tags are supported.
	SupportsTags *bool

	// The swagger specifications.
	SwaggerSpecifications []*SwaggerSpecification

	// The template deployment options.
	TemplateDeploymentOptions *ResourceTypeRegistrationPropertiesTemplateDeploymentOptions

	// The template deployment policy.
	TemplateDeploymentPolicy *ResourceTypeRegistrationPropertiesTemplateDeploymentPolicy

	// The throttling rules.
	ThrottlingRules []*ThrottlingRule

	// The token auth configuration.
	TokenAuthConfiguration *TokenAuthConfiguration

	// READ-ONLY; The provisioning state.
	ProvisioningState *ProvisioningState
}

// ResourceTypeRegistrationPropertiesAvailabilityZoneRule - The availability zone rule.
type ResourceTypeRegistrationPropertiesAvailabilityZoneRule struct {
	AvailabilityZonePolicy *AvailabilityZonePolicy
}

// ResourceTypeRegistrationPropertiesCapacityRule - Capacity rule.
type ResourceTypeRegistrationPropertiesCapacityRule struct {
	// Capacity policy.
	CapacityPolicy *CapacityPolicy

	// Sku alias
	SKUAlias *string
}

// ResourceTypeRegistrationPropertiesCheckNameAvailabilitySpecifications - The check name availability specifications.
type ResourceTypeRegistrationPropertiesCheckNameAvailabilitySpecifications struct {
	// Whether default validation is enabled.
	EnableDefaultValidation *bool

	// The resource types with custom validation.
	ResourceTypesWithCustomValidation []*string
}

// ResourceTypeRegistrationPropertiesDstsConfiguration - The dsts configuration.
type ResourceTypeRegistrationPropertiesDstsConfiguration struct {
	// REQUIRED; The service name.
	ServiceName *string

	// This is a URI property.
	ServiceDNSName *string
}

// ResourceTypeRegistrationPropertiesExtensionOptions - The extension options.
type ResourceTypeRegistrationPropertiesExtensionOptions struct {
	// Resource creation begin.
	ResourceCreationBegin *ResourceTypeExtensionOptionsResourceCreationBegin
}

// ResourceTypeRegistrationPropertiesFeaturesRule - The features rule.
type ResourceTypeRegistrationPropertiesFeaturesRule struct {
	// REQUIRED; The required feature policy.
	RequiredFeaturesPolicy *FeaturesPolicy
}

// ResourceTypeRegistrationPropertiesIdentityManagement - The identity management.
type ResourceTypeRegistrationPropertiesIdentityManagement struct {
	// The application id.
	ApplicationID *string

	// The application ids.
	ApplicationIDs []*string

	// The delegation app ids.
	DelegationAppIDs []*string

	// The type.
	Type *IdentityManagementTypes
}

// ResourceTypeRegistrationPropertiesLegacyPolicy - The legacy policy.
type ResourceTypeRegistrationPropertiesLegacyPolicy struct {
	DisallowedConditions       []*LegacyDisallowedCondition
	DisallowedLegacyOperations []*LegacyOperation
}

// ResourceTypeRegistrationPropertiesManagement - The resource provider management.
type ResourceTypeRegistrationPropertiesManagement struct {
	// The authorization owners.
	AuthorizationOwners []*string

	// List of manifest owners for canary.
	CanaryManifestOwners []*string

	// Options for error response messages.
	ErrorResponseMessageOptions *ResourceProviderManagementErrorResponseMessageOptions

	// Metadata for expedited rollout.
	ExpeditedRolloutMetadata *ResourceProviderManagementExpeditedRolloutMetadata

	// List of expedited rollout submitters.
	ExpeditedRolloutSubmitters []*string

	// The incident contact email.
	IncidentContactEmail *string

	// The incident routing service.
	IncidentRoutingService *string

	// The incident routing team.
	IncidentRoutingTeam *string

	// The manifest owners.
	ManifestOwners []*string

	// The profit center code for the subscription.
	PcCode *string

	// The profit center program id for the subscription.
	ProfitCenterProgramID *string

	// The resource access policy.
	ResourceAccessPolicy *ResourceAccessPolicy

	// The resource access roles.
	ResourceAccessRoles []*ResourceAccessRole

	// The schema owners.
	SchemaOwners []*string

	// The service tree infos.
	ServiceTreeInfos []*ServiceTreeInfo
}

// ResourceTypeRegistrationPropertiesMarketplaceOptions - Marketplace options.
type ResourceTypeRegistrationPropertiesMarketplaceOptions struct {
	// Add-on plan conversion allowed.
	AddOnPlanConversionAllowed *bool
}

// ResourceTypeRegistrationPropertiesRequestHeaderOptions - The request header options.
type ResourceTypeRegistrationPropertiesRequestHeaderOptions struct {
	// The opt in headers.
	OptInHeaders *OptInHeaderType

	// The opt out headers.
	OptOutHeaders *OptOutHeaderType
}

// ResourceTypeRegistrationPropertiesResourceCache - Resource cache options.
type ResourceTypeRegistrationPropertiesResourceCache struct {
	// Enable resource cache.
	EnableResourceCache *bool

	// Resource cache expiration timespan. This is a TimeSpan property.
	ResourceCacheExpirationTimespan *string
}

// ResourceTypeRegistrationPropertiesResourceGraphConfiguration - The resource graph configuration.
type ResourceTypeRegistrationPropertiesResourceGraphConfiguration struct {
	// The api version.
	APIVersion *string

	// Whether it's enabled.
	Enabled *bool
}

// ResourceTypeRegistrationPropertiesResourceManagementOptions - Resource management options.
type ResourceTypeRegistrationPropertiesResourceManagementOptions struct {
	// Batch provisioning support.
	BatchProvisioningSupport *ResourceTypeRegistrationPropertiesResourceManagementOptionsBatchProvisioningSupport

	// Delete dependencies.
	DeleteDependencies []*DeleteDependency

	// Nested provisioning support.
	NestedProvisioningSupport *ResourceTypeRegistrationPropertiesResourceManagementOptionsNestedProvisioningSupport
}

// ResourceTypeRegistrationPropertiesResourceManagementOptionsBatchProvisioningSupport - Batch provisioning support.
type ResourceTypeRegistrationPropertiesResourceManagementOptionsBatchProvisioningSupport struct {
	// Supported operations.
	SupportedOperations *SupportedOperations
}

// ResourceTypeRegistrationPropertiesResourceManagementOptionsNestedProvisioningSupport - Nested provisioning support.
type ResourceTypeRegistrationPropertiesResourceManagementOptionsNestedProvisioningSupport struct {
	// Minimum API version.
	MinimumAPIVersion *string
}

// ResourceTypeRegistrationPropertiesResourceMovePolicy - The resource move policy.
type ResourceTypeRegistrationPropertiesResourceMovePolicy struct {
	// Whether cross resource group move is enabled.
	CrossResourceGroupMoveEnabled *bool

	// Whether cross subscription move is enabled.
	CrossSubscriptionMoveEnabled *bool

	// Whether validation is required.
	ValidationRequired *bool
}

// ResourceTypeRegistrationPropertiesResourceQueryManagement - Resource query management options.
type ResourceTypeRegistrationPropertiesResourceQueryManagement struct {
	// Filter option.
	FilterOption *FilterOption
}

// ResourceTypeRegistrationPropertiesResourceTypeCommonAttributeManagement - Resource type common attribute management.
type ResourceTypeRegistrationPropertiesResourceTypeCommonAttributeManagement struct {
	// Common api versions merge mode.
	CommonAPIVersionsMergeMode *CommonAPIVersionsMergeMode
}

// ResourceTypeRegistrationPropertiesRoutingRule - Routing rule.
type ResourceTypeRegistrationPropertiesRoutingRule struct {
	// Hosted resource type.
	HostResourceType *string
}

// ResourceTypeRegistrationPropertiesSubscriptionLifecycleNotificationSpecifications - The subscription lifecycle notification
// specifications.
type ResourceTypeRegistrationPropertiesSubscriptionLifecycleNotificationSpecifications struct {
	// The soft delete TTL.
	SoftDeleteTTL *string

	// The subscription state override actions.
	SubscriptionStateOverrideActions []*SubscriptionStateOverrideAction
}

// ResourceTypeRegistrationPropertiesTemplateDeploymentOptions - The template deployment options.
type ResourceTypeRegistrationPropertiesTemplateDeploymentOptions struct {
	// The preflight options.
	PreflightOptions []*PreflightOption

	// Whether preflight is supported.
	PreflightSupported *bool
}

// ResourceTypeRegistrationPropertiesTemplateDeploymentPolicy - The template deployment policy.
type ResourceTypeRegistrationPropertiesTemplateDeploymentPolicy struct {
	// REQUIRED; The capabilities.
	Capabilities *TemplateDeploymentCapabilities

	// REQUIRED; The preflight options.
	PreflightOptions *TemplateDeploymentPreflightOptions

	// The preflight notifications.
	PreflightNotifications *TemplateDeploymentPreflightNotifications
}

// ResourceTypeRequestHeaderOptions - The request header options.
type ResourceTypeRequestHeaderOptions struct {
	// The opt in headers.
	OptInHeaders *OptInHeaderType

	// The opt out headers.
	OptOutHeaders *OptOutHeaderType
}

type ResourceTypeSKU struct {
	// REQUIRED; The sku settings.
	SKUSettings []*SKUSetting

	// READ-ONLY; The provisioning state.
	ProvisioningState *ProvisioningState
}

// ResourceTypeTemplateDeploymentPolicy - The template deployment policy.
type ResourceTypeTemplateDeploymentPolicy struct {
	// REQUIRED; The capabilities.
	Capabilities *TemplateDeploymentCapabilities

	// REQUIRED; The preflight options.
	PreflightOptions *TemplateDeploymentPreflightOptions

	// The preflight notifications.
	PreflightNotifications *TemplateDeploymentPreflightNotifications
}

type RolloutStatusBase struct {
	// The completed regions.
	CompletedRegions []*string

	// The failed or skipped regions.
	FailedOrSkippedRegions map[string]*ExtendedErrorInfo
}

type SKUCapability struct {
	// REQUIRED; The name.
	Name *string

	// REQUIRED; The value.
	Value *string
}

type SKUCapacity struct {
	// REQUIRED; The minimum.
	Minimum *int32

	// The default.
	Default *int32

	// The maximum.
	Maximum *int32

	// The scale type.
	ScaleType *SKUScaleType
}

type SKUCost struct {
	// REQUIRED; The meter id.
	MeterID *string

	// The extended unit.
	ExtendedUnit *string

	// The quantity.
	Quantity *int32
}

type SKULocationInfo struct {
	// REQUIRED; The location.
	Location *string

	// The extended locations.
	ExtendedLocations []*string

	// The type.
	Type *ExtendedLocationType

	// The zone details.
	ZoneDetails []*SKUZoneDetail

	// The zones.
	Zones []*string
}

type SKUResource struct {
	Properties *SKUResourceProperties

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type SKUResourceArrayResponseWithContinuation struct {
	// The URL to get to the next set of results, if there are any.
	NextLink *string

	// The sku resources.
	Value []*SKUResource
}

type SKUResourceProperties struct {
	// REQUIRED; The sku settings.
	SKUSettings []*SKUSetting

	// READ-ONLY; The provisioning state.
	ProvisioningState *ProvisioningState
}

type SKUSetting struct {
	// REQUIRED; The name.
	Name *string

	// The capabilities.
	Capabilities []*SKUCapability

	// The capacity.
	Capacity *SKUSettingCapacity

	// The costs.
	Costs []*SKUCost

	// The family.
	Family *string

	// The kind.
	Kind *string

	// The location info.
	LocationInfo []*SKULocationInfo

	// The locations.
	Locations []*string

	// The required features.
	RequiredFeatures []*string

	// The required quota ids.
	RequiredQuotaIDs []*string

	// The size.
	Size *string

	// The tier.
	Tier *string
}

// SKUSettingCapacity - The capacity.
type SKUSettingCapacity struct {
	// REQUIRED; The minimum.
	Minimum *int32

	// The default.
	Default *int32

	// The maximum.
	Maximum *int32

	// The scale type.
	ScaleType *SKUScaleType
}

type SKUZoneDetail struct {
	// The capabilities.
	Capabilities []*SKUCapability

	// The name.
	Name []*string
}

type ServiceTreeInfo struct {
	// The component id.
	ComponentID *string

	// The readiness.
	Readiness *Readiness

	// The service id.
	ServiceID *string
}

type SubscriberSetting struct {
	// The filter rules.
	FilterRules []*FilterRule
}

type SubscriptionLifecycleNotificationSpecifications struct {
	// The soft delete TTL.
	SoftDeleteTTL *string

	// The subscription state override actions.
	SubscriptionStateOverrideActions []*SubscriptionStateOverrideAction
}

type SubscriptionStateOverrideAction struct {
	// REQUIRED; The action.
	Action *SubscriptionNotificationOperation

	// REQUIRED; The state.
	State *SubscriptionTransitioningState
}

type SubscriptionStateRule struct {
	// The allowed actions.
	AllowedActions []*string

	// The subscription state.
	State *SubscriptionState
}

type SwaggerSpecification struct {
	// The api versions.
	APIVersions []*string

	// The swagger spec folder uri.
	SwaggerSpecFolderURI *string
}

// SystemData - Metadata pertaining to creation and last modification of the resource.
type SystemData struct {
	// The timestamp of resource creation (UTC).
	CreatedAt *time.Time

	// The identity that created the resource.
	CreatedBy *string

	// The type of identity that created the resource.
	CreatedByType *CreatedByType

	// The timestamp of resource last modification (UTC)
	LastModifiedAt *time.Time

	// The identity that last modified the resource.
	LastModifiedBy *string

	// The type of identity that last modified the resource.
	LastModifiedByType *CreatedByType
}

type TemplateDeploymentOptions struct {
	// The preflight options.
	PreflightOptions []*PreflightOption

	// Whether preflight is supported.
	PreflightSupported *bool
}

type TemplateDeploymentPolicy struct {
	// REQUIRED; The capabilities.
	Capabilities *TemplateDeploymentCapabilities

	// REQUIRED; The preflight options.
	PreflightOptions *TemplateDeploymentPreflightOptions

	// The preflight notifications.
	PreflightNotifications *TemplateDeploymentPreflightNotifications
}

type ThirdPartyExtension struct {
	// Name of third party extension.
	Name *string
}

type ThirdPartyProviderAuthorization struct {
	// The authorizations.
	Authorizations []*LightHouseAuthorization

	// The managed by tenant id.
	ManagedByTenantID *string
}

type ThrottlingMetric struct {
	// REQUIRED; The limit.
	Limit *int64

	// REQUIRED; The throttling metric type
	Type *ThrottlingMetricType

	// The interval.
	Interval *string
}

type ThrottlingRule struct {
	// REQUIRED; The action.
	Action *string

	// REQUIRED; The metrics.
	Metrics []*ThrottlingMetric

	// The application id.
	ApplicationID []*string

	// The required features.
	RequiredFeatures []*string
}

type TokenAuthConfiguration struct {
	// The authentication scheme.
	AuthenticationScheme *AuthenticationScheme

	// Whether certification authentication fallback is disabled.
	DisableCertificateAuthenticationFallback *bool

	// The signed request scope.
	SignedRequestScope *SignedRequestScope
}

// TrackedResource - The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags'
// and a 'location'
type TrackedResource struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// Resource tags.
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type TrafficRegionRolloutConfiguration struct {
	Regions []*string

	// The wait duration.
	WaitDuration *string
}

type TrafficRegions struct {
	Regions []*string
}

// TypedErrorInfo - Error information.
type TypedErrorInfo struct {
	// REQUIRED; The type of the error.
	Type *string

	// READ-ONLY; The error information.
	Info any
}
