// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

// The storage account.
type StorageAccount_STATUS struct {
	// ExtendedLocation: The extendedLocation of the resource.
	ExtendedLocation *ExtendedLocation_STATUS `json:"extendedLocation,omitempty"`

	// Id: Fully qualified resource ID for the resource. Ex -
	// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	Id *string `json:"id,omitempty"`

	// Identity: The identity of the resource.
	Identity *Identity_STATUS `json:"identity,omitempty"`

	// Kind: Gets the Kind.
	Kind *StorageAccount_Kind_STATUS `json:"kind,omitempty"`

	// Location: The geo-location where the resource lives
	Location *string `json:"location,omitempty"`

	// Name: The name of the resource
	Name *string `json:"name,omitempty"`

	// Properties: Properties of the storage account.
	Properties *StorageAccountProperties_STATUS `json:"properties,omitempty"`

	// Sku: Gets the SKU.
	Sku *Sku_STATUS `json:"sku,omitempty"`

	// Tags: Resource tags.
	Tags map[string]string `json:"tags"`

	// Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string `json:"type,omitempty"`
}

// The complex type of the extended location.
type ExtendedLocation_STATUS struct {
	// Name: The name of the extended location.
	Name *string `json:"name,omitempty"`

	// Type: The type of the extended location.
	Type *ExtendedLocationType_STATUS `json:"type,omitempty"`
}

// Identity for the resource.
type Identity_STATUS struct {
	// PrincipalId: The principal ID of resource identity.
	PrincipalId *string `json:"principalId,omitempty"`

	// TenantId: The tenant ID of resource.
	TenantId *string `json:"tenantId,omitempty"`

	// Type: The identity type.
	Type *Identity_Type_STATUS `json:"type,omitempty"`

	// UserAssignedIdentities: Gets or sets a list of key value pairs that describe the set of User Assigned identities that
	// will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned
	// identity is permitted here.
	UserAssignedIdentities map[string]UserAssignedIdentity_STATUS `json:"userAssignedIdentities"`
}

// The SKU of the storage account.
type Sku_STATUS struct {
	// Name: The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called
	//  accountType.
	Name *SkuName_STATUS `json:"name,omitempty"`

	// Tier: The SKU tier. This is based on the SKU name.
	Tier *Tier_STATUS `json:"tier,omitempty"`
}

type StorageAccount_Kind_STATUS string

const (
	StorageAccount_Kind_STATUS_BlobStorage      = StorageAccount_Kind_STATUS("BlobStorage")
	StorageAccount_Kind_STATUS_BlockBlobStorage = StorageAccount_Kind_STATUS("BlockBlobStorage")
	StorageAccount_Kind_STATUS_FileStorage      = StorageAccount_Kind_STATUS("FileStorage")
	StorageAccount_Kind_STATUS_Storage          = StorageAccount_Kind_STATUS("Storage")
	StorageAccount_Kind_STATUS_StorageV2        = StorageAccount_Kind_STATUS("StorageV2")
)

// Mapping from string to StorageAccount_Kind_STATUS
var storageAccount_Kind_STATUS_Values = map[string]StorageAccount_Kind_STATUS{
	"blobstorage":      StorageAccount_Kind_STATUS_BlobStorage,
	"blockblobstorage": StorageAccount_Kind_STATUS_BlockBlobStorage,
	"filestorage":      StorageAccount_Kind_STATUS_FileStorage,
	"storage":          StorageAccount_Kind_STATUS_Storage,
	"storagev2":        StorageAccount_Kind_STATUS_StorageV2,
}

// Properties of the storage account.
type StorageAccountProperties_STATUS struct {
	// AccessTier: Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium'
	// access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium
	// block blobs storage account type.
	AccessTier *StorageAccountProperties_AccessTier_STATUS `json:"accessTier,omitempty"`

	// AccountMigrationInProgress: If customer initiated account migration is in progress, the value will be true else it will
	// be null.
	AccountMigrationInProgress *bool `json:"accountMigrationInProgress,omitempty"`

	// AllowBlobPublicAccess: Allow or disallow public access to all blobs or containers in the storage account. The default
	// interpretation is false for this property.
	AllowBlobPublicAccess *bool `json:"allowBlobPublicAccess,omitempty"`

	// AllowCrossTenantReplication: Allow or disallow cross AAD tenant object replication. Set this property to true for new or
	// existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The
	// default interpretation is false for new accounts to follow best security practices by default.
	AllowCrossTenantReplication *bool `json:"allowCrossTenantReplication,omitempty"`

	// AllowSharedKeyAccess: Indicates whether the storage account permits requests to be authorized with the account access
	// key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure
	// Active Directory (Azure AD). The default value is null, which is equivalent to true.
	AllowSharedKeyAccess *bool `json:"allowSharedKeyAccess,omitempty"`

	// AllowedCopyScope: Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.
	AllowedCopyScope *StorageAccountProperties_AllowedCopyScope_STATUS `json:"allowedCopyScope,omitempty"`

	// AzureFilesIdentityBasedAuthentication: Provides the identity based authentication settings for Azure Files.
	AzureFilesIdentityBasedAuthentication *AzureFilesIdentityBasedAuthentication_STATUS `json:"azureFilesIdentityBasedAuthentication,omitempty"`

	// BlobRestoreStatus: Blob restore status
	BlobRestoreStatus *BlobRestoreStatus_STATUS `json:"blobRestoreStatus,omitempty"`

	// CreationTime: Gets the creation date and time of the storage account in UTC.
	CreationTime *string `json:"creationTime,omitempty"`

	// CustomDomain: Gets the custom domain the user assigned to this storage account.
	CustomDomain *CustomDomain_STATUS `json:"customDomain,omitempty"`

	// DefaultToOAuthAuthentication: A boolean flag which indicates whether the default authentication is OAuth or not. The
	// default interpretation is false for this property.
	DefaultToOAuthAuthentication *bool `json:"defaultToOAuthAuthentication,omitempty"`

	// DnsEndpointType: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of
	// accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an
	// alphanumeric DNS Zone identifier.
	DnsEndpointType *StorageAccountProperties_DnsEndpointType_STATUS `json:"dnsEndpointType,omitempty"`

	// Encryption: Encryption settings to be used for server-side encryption for the storage account.
	Encryption *Encryption_STATUS `json:"encryption,omitempty"`

	// FailoverInProgress: If the failover is in progress, the value will be true, otherwise, it will be null.
	FailoverInProgress *bool `json:"failoverInProgress,omitempty"`

	// GeoReplicationStats: Geo Replication Stats
	GeoReplicationStats *GeoReplicationStats_STATUS `json:"geoReplicationStats,omitempty"`

	// ImmutableStorageWithVersioning: The property is immutable and can only be set to true at the account creation time. When
	// set to true, it enables object level immutability for all the containers in the account by default.
	ImmutableStorageWithVersioning *ImmutableStorageAccount_STATUS `json:"immutableStorageWithVersioning,omitempty"`

	// IsHnsEnabled: Account HierarchicalNamespace enabled if sets to true.
	IsHnsEnabled *bool `json:"isHnsEnabled,omitempty"`

	// IsLocalUserEnabled: Enables local users feature, if set to true
	IsLocalUserEnabled *bool `json:"isLocalUserEnabled,omitempty"`

	// IsNfsV3Enabled: NFS 3.0 protocol support enabled if set to true.
	IsNfsV3Enabled *bool `json:"isNfsV3Enabled,omitempty"`

	// IsSftpEnabled: Enables Secure File Transfer Protocol, if set to true
	IsSftpEnabled *bool `json:"isSftpEnabled,omitempty"`

	// IsSkuConversionBlocked: This property will be set to true or false on an event of ongoing migration. Default value is
	// null.
	IsSkuConversionBlocked *bool `json:"isSkuConversionBlocked,omitempty"`

	// KeyCreationTime: Storage account keys creation time.
	KeyCreationTime *KeyCreationTime_STATUS `json:"keyCreationTime,omitempty"`

	// KeyPolicy: KeyPolicy assigned to the storage account.
	KeyPolicy *KeyPolicy_STATUS `json:"keyPolicy,omitempty"`

	// LargeFileSharesState: Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.
	LargeFileSharesState *StorageAccountProperties_LargeFileSharesState_STATUS `json:"largeFileSharesState,omitempty"`

	// LastGeoFailoverTime: Gets the timestamp of the most recent instance of a failover to the secondary location. Only the
	// most recent timestamp is retained. This element is not returned if there has never been a failover instance. Only
	// available if the accountType is Standard_GRS or Standard_RAGRS.
	LastGeoFailoverTime *string `json:"lastGeoFailoverTime,omitempty"`

	// MinimumTlsVersion: Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS
	// 1.0 for this property.
	MinimumTlsVersion *StorageAccountProperties_MinimumTlsVersion_STATUS `json:"minimumTlsVersion,omitempty"`

	// NetworkAcls: Network rule set
	NetworkAcls *NetworkRuleSet_STATUS `json:"networkAcls,omitempty"`

	// PrimaryEndpoints: Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object. Note that
	// Standard_ZRS and Premium_LRS accounts only return the blob endpoint.
	PrimaryEndpoints *Endpoints_STATUS `json:"primaryEndpoints,omitempty"`

	// PrimaryLocation: Gets the location of the primary data center for the storage account.
	PrimaryLocation *string `json:"primaryLocation,omitempty"`

	// PrivateEndpointConnections: List of private endpoint connection associated with the specified storage account
	PrivateEndpointConnections []PrivateEndpointConnection_STATUS `json:"privateEndpointConnections"`

	// ProvisioningState: Gets the status of the storage account at the time the operation was called.
	ProvisioningState *StorageAccountProperties_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// PublicNetworkAccess: Allow or disallow public network access to Storage Account. Value is optional but if passed in,
	// must be 'Enabled' or 'Disabled'.
	PublicNetworkAccess *StorageAccountProperties_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"`

	// RoutingPreference: Maintains information about the network routing choice opted by the user for data transfer
	RoutingPreference *RoutingPreference_STATUS `json:"routingPreference,omitempty"`

	// SasPolicy: SasPolicy assigned to the storage account.
	SasPolicy *SasPolicy_STATUS `json:"sasPolicy,omitempty"`

	// SecondaryEndpoints: Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object from the
	// secondary location of the storage account. Only available if the SKU name is Standard_RAGRS.
	SecondaryEndpoints *Endpoints_STATUS `json:"secondaryEndpoints,omitempty"`

	// SecondaryLocation: Gets the location of the geo-replicated secondary for the storage account. Only available if the
	// accountType is Standard_GRS or Standard_RAGRS.
	SecondaryLocation *string `json:"secondaryLocation,omitempty"`

	// StatusOfPrimary: Gets the status indicating whether the primary location of the storage account is available or
	// unavailable.
	StatusOfPrimary *StorageAccountProperties_StatusOfPrimary_STATUS `json:"statusOfPrimary,omitempty"`

	// StatusOfSecondary: Gets the status indicating whether the secondary location of the storage account is available or
	// unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS.
	StatusOfSecondary *StorageAccountProperties_StatusOfSecondary_STATUS `json:"statusOfSecondary,omitempty"`

	// StorageAccountSkuConversionStatus: This property is readOnly and is set by server during asynchronous storage account
	// sku conversion operations.
	StorageAccountSkuConversionStatus *StorageAccountSkuConversionStatus_STATUS `json:"storageAccountSkuConversionStatus,omitempty"`

	// SupportsHttpsTrafficOnly: Allows https traffic only to storage service if sets to true.
	SupportsHttpsTrafficOnly *bool `json:"supportsHttpsTrafficOnly,omitempty"`
}

// Settings for Azure Files identity based authentication.
type AzureFilesIdentityBasedAuthentication_STATUS struct {
	// ActiveDirectoryProperties: Required if directoryServiceOptions are AD, optional if they are AADKERB.
	ActiveDirectoryProperties *ActiveDirectoryProperties_STATUS `json:"activeDirectoryProperties,omitempty"`

	// DefaultSharePermission: Default share permission for users using Kerberos authentication if RBAC role is not assigned.
	DefaultSharePermission *AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS `json:"defaultSharePermission,omitempty"`

	// DirectoryServiceOptions: Indicates the directory service used. Note that this enum may be extended in the future.
	DirectoryServiceOptions *AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS `json:"directoryServiceOptions,omitempty"`
}

// Blob restore status.
type BlobRestoreStatus_STATUS struct {
	// FailureReason: Failure reason when blob restore is failed.
	FailureReason *string `json:"failureReason,omitempty"`

	// Parameters: Blob restore request parameters.
	Parameters *BlobRestoreParameters_STATUS `json:"parameters,omitempty"`

	// RestoreId: Id for tracking blob restore request.
	RestoreId *string `json:"restoreId,omitempty"`

	// Status: The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing.
	// - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed.
	Status *BlobRestoreStatus_Status_STATUS `json:"status,omitempty"`
}

// The custom domain assigned to this storage account. This can be set via Update.
type CustomDomain_STATUS struct {
	// Name: Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source.
	Name *string `json:"name,omitempty"`

	// UseSubDomainName: Indicates whether indirect CName validation is enabled. Default value is false. This should only be
	// set on updates.
	UseSubDomainName *bool `json:"useSubDomainName,omitempty"`
}

// The encryption settings on the storage account.
type Encryption_STATUS struct {
	// Identity: The identity to be used with service-side encryption at rest.
	Identity *EncryptionIdentity_STATUS `json:"identity,omitempty"`

	// KeySource: The encryption keySource (provider). Possible values (case-insensitive):  Microsoft.Storage,
	// Microsoft.Keyvault
	KeySource *Encryption_KeySource_STATUS `json:"keySource,omitempty"`

	// Keyvaultproperties: Properties provided by key vault.
	Keyvaultproperties *KeyVaultProperties_STATUS `json:"keyvaultproperties,omitempty"`

	// RequireInfrastructureEncryption: A boolean indicating whether or not the service applies a secondary layer of encryption
	// with platform managed keys for data at rest.
	RequireInfrastructureEncryption *bool `json:"requireInfrastructureEncryption,omitempty"`

	// Services: List of services which support encryption.
	Services *EncryptionServices_STATUS `json:"services,omitempty"`
}

// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object.
type Endpoints_STATUS struct {
	// Blob: Gets the blob endpoint.
	Blob *string `json:"blob,omitempty"`

	// Dfs: Gets the dfs endpoint.
	Dfs *string `json:"dfs,omitempty"`

	// File: Gets the file endpoint.
	File *string `json:"file,omitempty"`

	// InternetEndpoints: Gets the internet routing storage endpoints
	InternetEndpoints *StorageAccountInternetEndpoints_STATUS `json:"internetEndpoints,omitempty"`

	// MicrosoftEndpoints: Gets the microsoft routing storage endpoints.
	MicrosoftEndpoints *StorageAccountMicrosoftEndpoints_STATUS `json:"microsoftEndpoints,omitempty"`

	// Queue: Gets the queue endpoint.
	Queue *string `json:"queue,omitempty"`

	// Table: Gets the table endpoint.
	Table *string `json:"table,omitempty"`

	// Web: Gets the web endpoint.
	Web *string `json:"web,omitempty"`
}

// The type of extendedLocation.
type ExtendedLocationType_STATUS string

const ExtendedLocationType_STATUS_EdgeZone = ExtendedLocationType_STATUS("EdgeZone")

// Mapping from string to ExtendedLocationType_STATUS
var extendedLocationType_STATUS_Values = map[string]ExtendedLocationType_STATUS{
	"edgezone": ExtendedLocationType_STATUS_EdgeZone,
}

// Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when
// geo-redundant replication is enabled for the storage account.
type GeoReplicationStats_STATUS struct {
	// CanFailover: A boolean flag which indicates whether or not account failover is supported for the account.
	CanFailover *bool `json:"canFailover,omitempty"`

	// CanPlannedFailover: A boolean flag which indicates whether or not planned account failover is supported for the account.
	CanPlannedFailover *bool `json:"canPlannedFailover,omitempty"`

	// LastSyncTime: All primary writes preceding this UTC date/time value are guaranteed to be available for read operations.
	// Primary writes following this point in time may or may not be available for reads. Element may be default value if value
	// of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap.
	LastSyncTime *string `json:"lastSyncTime,omitempty"`

	// PostFailoverRedundancy: The redundancy type of the account after an account failover is performed.
	PostFailoverRedundancy *GeoReplicationStats_PostFailoverRedundancy_STATUS `json:"postFailoverRedundancy,omitempty"`

	// PostPlannedFailoverRedundancy: The redundancy type of the account after a planned account failover is performed.
	PostPlannedFailoverRedundancy *GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS `json:"postPlannedFailoverRedundancy,omitempty"`

	// Status: The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is
	// active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary
	// location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the
	// secondary location is temporarily unavailable.
	Status *GeoReplicationStats_Status_STATUS `json:"status,omitempty"`
}

type Identity_Type_STATUS string

const (
	Identity_Type_STATUS_None                       = Identity_Type_STATUS("None")
	Identity_Type_STATUS_SystemAssigned             = Identity_Type_STATUS("SystemAssigned")
	Identity_Type_STATUS_SystemAssignedUserAssigned = Identity_Type_STATUS("SystemAssigned,UserAssigned")
	Identity_Type_STATUS_UserAssigned               = Identity_Type_STATUS("UserAssigned")
)

// Mapping from string to Identity_Type_STATUS
var identity_Type_STATUS_Values = map[string]Identity_Type_STATUS{
	"none":                        Identity_Type_STATUS_None,
	"systemassigned":              Identity_Type_STATUS_SystemAssigned,
	"systemassigned,userassigned": Identity_Type_STATUS_SystemAssignedUserAssigned,
	"userassigned":                Identity_Type_STATUS_UserAssigned,
}

// This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning.
type ImmutableStorageAccount_STATUS struct {
	// Enabled: A boolean flag which enables account-level immutability. All the containers under such an account have
	// object-level immutability enabled by default.
	Enabled *bool `json:"enabled,omitempty"`

	// ImmutabilityPolicy: Specifies the default account-level immutability policy which is inherited and applied to objects
	// that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher
	// precedence than the container-level immutability policy, which has a higher precedence than the account-level
	// immutability policy.
	ImmutabilityPolicy *AccountImmutabilityPolicyProperties_STATUS `json:"immutabilityPolicy,omitempty"`
}

// Storage account keys creation time.
type KeyCreationTime_STATUS struct {
	Key1 *string `json:"key1,omitempty"`
	Key2 *string `json:"key2,omitempty"`
}

// KeyPolicy assigned to the storage account.
type KeyPolicy_STATUS struct {
	// KeyExpirationPeriodInDays: The key expiration period in days.
	KeyExpirationPeriodInDays *int `json:"keyExpirationPeriodInDays,omitempty"`
}

// Network rule set
type NetworkRuleSet_STATUS struct {
	// Bypass: Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of
	// Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics.
	Bypass *NetworkRuleSet_Bypass_STATUS `json:"bypass,omitempty"`

	// DefaultAction: Specifies the default action of allow or deny when no other rules match.
	DefaultAction *NetworkRuleSet_DefaultAction_STATUS `json:"defaultAction,omitempty"`

	// IpRules: Sets the IP ACL rules
	IpRules []IPRule_STATUS `json:"ipRules"`

	// ResourceAccessRules: Sets the resource access rules
	ResourceAccessRules []ResourceAccessRule_STATUS `json:"resourceAccessRules"`

	// VirtualNetworkRules: Sets the virtual network rules
	VirtualNetworkRules []VirtualNetworkRule_STATUS `json:"virtualNetworkRules"`
}

// The Private Endpoint Connection resource.
type PrivateEndpointConnection_STATUS struct {
	// Id: Fully qualified resource ID for the resource. Ex -
	// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	Id *string `json:"id,omitempty"`
}

// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user
// data, the default option is microsoft routing
type RoutingPreference_STATUS struct {
	// PublishInternetEndpoints: A boolean flag which indicates whether internet routing storage endpoints are to be published
	PublishInternetEndpoints *bool `json:"publishInternetEndpoints,omitempty"`

	// PublishMicrosoftEndpoints: A boolean flag which indicates whether microsoft routing storage endpoints are to be published
	PublishMicrosoftEndpoints *bool `json:"publishMicrosoftEndpoints,omitempty"`

	// RoutingChoice: Routing Choice defines the kind of network routing opted by the user.
	RoutingChoice *RoutingPreference_RoutingChoice_STATUS `json:"routingChoice,omitempty"`
}

// SasPolicy assigned to the storage account.
type SasPolicy_STATUS struct {
	// ExpirationAction: The SAS expiration action. Can only be Log.
	ExpirationAction *SasPolicy_ExpirationAction_STATUS `json:"expirationAction,omitempty"`

	// SasExpirationPeriod: The SAS expiration period, DD.HH:MM:SS.
	SasExpirationPeriod *string `json:"sasExpirationPeriod,omitempty"`
}

// The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called
// accountType.
type SkuName_STATUS string

const (
	SkuName_STATUS_Premium_LRS     = SkuName_STATUS("Premium_LRS")
	SkuName_STATUS_Premium_ZRS     = SkuName_STATUS("Premium_ZRS")
	SkuName_STATUS_Standard_GRS    = SkuName_STATUS("Standard_GRS")
	SkuName_STATUS_Standard_GZRS   = SkuName_STATUS("Standard_GZRS")
	SkuName_STATUS_Standard_LRS    = SkuName_STATUS("Standard_LRS")
	SkuName_STATUS_Standard_RAGRS  = SkuName_STATUS("Standard_RAGRS")
	SkuName_STATUS_Standard_RAGZRS = SkuName_STATUS("Standard_RAGZRS")
	SkuName_STATUS_Standard_ZRS    = SkuName_STATUS("Standard_ZRS")
)

// Mapping from string to SkuName_STATUS
var skuName_STATUS_Values = map[string]SkuName_STATUS{
	"premium_lrs":     SkuName_STATUS_Premium_LRS,
	"premium_zrs":     SkuName_STATUS_Premium_ZRS,
	"standard_grs":    SkuName_STATUS_Standard_GRS,
	"standard_gzrs":   SkuName_STATUS_Standard_GZRS,
	"standard_lrs":    SkuName_STATUS_Standard_LRS,
	"standard_ragrs":  SkuName_STATUS_Standard_RAGRS,
	"standard_ragzrs": SkuName_STATUS_Standard_RAGZRS,
	"standard_zrs":    SkuName_STATUS_Standard_ZRS,
}

type StorageAccountProperties_AccessTier_STATUS string

const (
	StorageAccountProperties_AccessTier_STATUS_Cool    = StorageAccountProperties_AccessTier_STATUS("Cool")
	StorageAccountProperties_AccessTier_STATUS_Hot     = StorageAccountProperties_AccessTier_STATUS("Hot")
	StorageAccountProperties_AccessTier_STATUS_Premium = StorageAccountProperties_AccessTier_STATUS("Premium")
)

// Mapping from string to StorageAccountProperties_AccessTier_STATUS
var storageAccountProperties_AccessTier_STATUS_Values = map[string]StorageAccountProperties_AccessTier_STATUS{
	"cool":    StorageAccountProperties_AccessTier_STATUS_Cool,
	"hot":     StorageAccountProperties_AccessTier_STATUS_Hot,
	"premium": StorageAccountProperties_AccessTier_STATUS_Premium,
}

type StorageAccountProperties_AllowedCopyScope_STATUS string

const (
	StorageAccountProperties_AllowedCopyScope_STATUS_AAD         = StorageAccountProperties_AllowedCopyScope_STATUS("AAD")
	StorageAccountProperties_AllowedCopyScope_STATUS_PrivateLink = StorageAccountProperties_AllowedCopyScope_STATUS("PrivateLink")
)

// Mapping from string to StorageAccountProperties_AllowedCopyScope_STATUS
var storageAccountProperties_AllowedCopyScope_STATUS_Values = map[string]StorageAccountProperties_AllowedCopyScope_STATUS{
	"aad":         StorageAccountProperties_AllowedCopyScope_STATUS_AAD,
	"privatelink": StorageAccountProperties_AllowedCopyScope_STATUS_PrivateLink,
}

type StorageAccountProperties_DnsEndpointType_STATUS string

const (
	StorageAccountProperties_DnsEndpointType_STATUS_AzureDnsZone = StorageAccountProperties_DnsEndpointType_STATUS("AzureDnsZone")
	StorageAccountProperties_DnsEndpointType_STATUS_Standard     = StorageAccountProperties_DnsEndpointType_STATUS("Standard")
)

// Mapping from string to StorageAccountProperties_DnsEndpointType_STATUS
var storageAccountProperties_DnsEndpointType_STATUS_Values = map[string]StorageAccountProperties_DnsEndpointType_STATUS{
	"azurednszone": StorageAccountProperties_DnsEndpointType_STATUS_AzureDnsZone,
	"standard":     StorageAccountProperties_DnsEndpointType_STATUS_Standard,
}

type StorageAccountProperties_LargeFileSharesState_STATUS string

const (
	StorageAccountProperties_LargeFileSharesState_STATUS_Disabled = StorageAccountProperties_LargeFileSharesState_STATUS("Disabled")
	StorageAccountProperties_LargeFileSharesState_STATUS_Enabled  = StorageAccountProperties_LargeFileSharesState_STATUS("Enabled")
)

// Mapping from string to StorageAccountProperties_LargeFileSharesState_STATUS
var storageAccountProperties_LargeFileSharesState_STATUS_Values = map[string]StorageAccountProperties_LargeFileSharesState_STATUS{
	"disabled": StorageAccountProperties_LargeFileSharesState_STATUS_Disabled,
	"enabled":  StorageAccountProperties_LargeFileSharesState_STATUS_Enabled,
}

type StorageAccountProperties_MinimumTlsVersion_STATUS string

const (
	StorageAccountProperties_MinimumTlsVersion_STATUS_TLS1_0 = StorageAccountProperties_MinimumTlsVersion_STATUS("TLS1_0")
	StorageAccountProperties_MinimumTlsVersion_STATUS_TLS1_1 = StorageAccountProperties_MinimumTlsVersion_STATUS("TLS1_1")
	StorageAccountProperties_MinimumTlsVersion_STATUS_TLS1_2 = StorageAccountProperties_MinimumTlsVersion_STATUS("TLS1_2")
)

// Mapping from string to StorageAccountProperties_MinimumTlsVersion_STATUS
var storageAccountProperties_MinimumTlsVersion_STATUS_Values = map[string]StorageAccountProperties_MinimumTlsVersion_STATUS{
	"tls1_0": StorageAccountProperties_MinimumTlsVersion_STATUS_TLS1_0,
	"tls1_1": StorageAccountProperties_MinimumTlsVersion_STATUS_TLS1_1,
	"tls1_2": StorageAccountProperties_MinimumTlsVersion_STATUS_TLS1_2,
}

type StorageAccountProperties_ProvisioningState_STATUS string

const (
	StorageAccountProperties_ProvisioningState_STATUS_Creating     = StorageAccountProperties_ProvisioningState_STATUS("Creating")
	StorageAccountProperties_ProvisioningState_STATUS_ResolvingDNS = StorageAccountProperties_ProvisioningState_STATUS("ResolvingDNS")
	StorageAccountProperties_ProvisioningState_STATUS_Succeeded    = StorageAccountProperties_ProvisioningState_STATUS("Succeeded")
)

// Mapping from string to StorageAccountProperties_ProvisioningState_STATUS
var storageAccountProperties_ProvisioningState_STATUS_Values = map[string]StorageAccountProperties_ProvisioningState_STATUS{
	"creating":     StorageAccountProperties_ProvisioningState_STATUS_Creating,
	"resolvingdns": StorageAccountProperties_ProvisioningState_STATUS_ResolvingDNS,
	"succeeded":    StorageAccountProperties_ProvisioningState_STATUS_Succeeded,
}

type StorageAccountProperties_PublicNetworkAccess_STATUS string

const (
	StorageAccountProperties_PublicNetworkAccess_STATUS_Disabled = StorageAccountProperties_PublicNetworkAccess_STATUS("Disabled")
	StorageAccountProperties_PublicNetworkAccess_STATUS_Enabled  = StorageAccountProperties_PublicNetworkAccess_STATUS("Enabled")
)

// Mapping from string to StorageAccountProperties_PublicNetworkAccess_STATUS
var storageAccountProperties_PublicNetworkAccess_STATUS_Values = map[string]StorageAccountProperties_PublicNetworkAccess_STATUS{
	"disabled": StorageAccountProperties_PublicNetworkAccess_STATUS_Disabled,
	"enabled":  StorageAccountProperties_PublicNetworkAccess_STATUS_Enabled,
}

type StorageAccountProperties_StatusOfPrimary_STATUS string

const (
	StorageAccountProperties_StatusOfPrimary_STATUS_Available   = StorageAccountProperties_StatusOfPrimary_STATUS("available")
	StorageAccountProperties_StatusOfPrimary_STATUS_Unavailable = StorageAccountProperties_StatusOfPrimary_STATUS("unavailable")
)

// Mapping from string to StorageAccountProperties_StatusOfPrimary_STATUS
var storageAccountProperties_StatusOfPrimary_STATUS_Values = map[string]StorageAccountProperties_StatusOfPrimary_STATUS{
	"available":   StorageAccountProperties_StatusOfPrimary_STATUS_Available,
	"unavailable": StorageAccountProperties_StatusOfPrimary_STATUS_Unavailable,
}

type StorageAccountProperties_StatusOfSecondary_STATUS string

const (
	StorageAccountProperties_StatusOfSecondary_STATUS_Available   = StorageAccountProperties_StatusOfSecondary_STATUS("available")
	StorageAccountProperties_StatusOfSecondary_STATUS_Unavailable = StorageAccountProperties_StatusOfSecondary_STATUS("unavailable")
)

// Mapping from string to StorageAccountProperties_StatusOfSecondary_STATUS
var storageAccountProperties_StatusOfSecondary_STATUS_Values = map[string]StorageAccountProperties_StatusOfSecondary_STATUS{
	"available":   StorageAccountProperties_StatusOfSecondary_STATUS_Available,
	"unavailable": StorageAccountProperties_StatusOfSecondary_STATUS_Unavailable,
}

// This defines the sku conversion status object for asynchronous sku conversions.
type StorageAccountSkuConversionStatus_STATUS struct {
	// EndTime: This property represents the sku conversion end time.
	EndTime *string `json:"endTime,omitempty"`

	// SkuConversionStatus: This property indicates the current sku conversion status.
	SkuConversionStatus *StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS `json:"skuConversionStatus,omitempty"`

	// StartTime: This property represents the sku conversion start time.
	StartTime *string `json:"startTime,omitempty"`

	// TargetSkuName: This property represents the target sku name to which the account sku is being converted asynchronously.
	TargetSkuName *SkuName_STATUS `json:"targetSkuName,omitempty"`
}

// The SKU tier. This is based on the SKU name.
type Tier_STATUS string

const (
	Tier_STATUS_Premium  = Tier_STATUS("Premium")
	Tier_STATUS_Standard = Tier_STATUS("Standard")
)

// Mapping from string to Tier_STATUS
var tier_STATUS_Values = map[string]Tier_STATUS{
	"premium":  Tier_STATUS_Premium,
	"standard": Tier_STATUS_Standard,
}

// UserAssignedIdentity for the resource.
type UserAssignedIdentity_STATUS struct {
	// ClientId: The client ID of the identity.
	ClientId *string `json:"clientId,omitempty"`

	// PrincipalId: The principal ID of the identity.
	PrincipalId *string `json:"principalId,omitempty"`
}

// This defines account-level immutability policy properties.
type AccountImmutabilityPolicyProperties_STATUS struct {
	// AllowProtectedAppendWrites: This property can only be changed for disabled and unlocked time-based retention policies.
	// When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only
	// new blocks can be added and any existing blocks cannot be modified or deleted.
	AllowProtectedAppendWrites *bool `json:"allowProtectedAppendWrites,omitempty"`

	// ImmutabilityPeriodSinceCreationInDays: The immutability period for the blobs in the container since the policy creation,
	// in days.
	ImmutabilityPeriodSinceCreationInDays *int `json:"immutabilityPeriodSinceCreationInDays,omitempty"`

	// State: The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state
	// allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites
	// property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a
	// Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition
	// to a Locked state which cannot be reverted.
	State *AccountImmutabilityPolicyProperties_State_STATUS `json:"state,omitempty"`
}

// Settings properties for Active Directory (AD).
type ActiveDirectoryProperties_STATUS struct {
	// AccountType: Specifies the Active Directory account type for Azure Storage.
	AccountType *ActiveDirectoryProperties_AccountType_STATUS `json:"accountType,omitempty"`

	// AzureStorageSid: Specifies the security identifier (SID) for Azure Storage.
	AzureStorageSid *string `json:"azureStorageSid,omitempty"`

	// DomainGuid: Specifies the domain GUID.
	DomainGuid *string `json:"domainGuid,omitempty"`

	// DomainName: Specifies the primary domain that the AD DNS server is authoritative for.
	DomainName *string `json:"domainName,omitempty"`

	// DomainSid: Specifies the security identifier (SID).
	DomainSid *string `json:"domainSid,omitempty"`

	// ForestName: Specifies the Active Directory forest to get.
	ForestName *string `json:"forestName,omitempty"`

	// NetBiosDomainName: Specifies the NetBIOS domain name.
	NetBiosDomainName *string `json:"netBiosDomainName,omitempty"`

	// SamAccountName: Specifies the Active Directory SAMAccountName for Azure Storage.
	SamAccountName *string `json:"samAccountName,omitempty"`
}

type AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS string

const (
	AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_None                                       = AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS("None")
	AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_StorageFileDataSmbShareContributor         = AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS("StorageFileDataSmbShareContributor")
	AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_StorageFileDataSmbShareElevatedContributor = AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS("StorageFileDataSmbShareElevatedContributor")
	AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_StorageFileDataSmbShareReader              = AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS("StorageFileDataSmbShareReader")
)

// Mapping from string to AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS
var azureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_Values = map[string]AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS{
	"none":                               AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_None,
	"storagefiledatasmbsharecontributor": AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_StorageFileDataSmbShareContributor,
	"storagefiledatasmbshareelevatedcontributor": AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_StorageFileDataSmbShareElevatedContributor,
	"storagefiledatasmbsharereader":              AzureFilesIdentityBasedAuthentication_DefaultSharePermission_STATUS_StorageFileDataSmbShareReader,
}

type AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS string

const (
	AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_AADDS   = AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS("AADDS")
	AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_AADKERB = AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS("AADKERB")
	AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_AD      = AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS("AD")
	AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_None    = AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS("None")
)

// Mapping from string to AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS
var azureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_Values = map[string]AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS{
	"aadds":   AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_AADDS,
	"aadkerb": AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_AADKERB,
	"ad":      AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_AD,
	"none":    AzureFilesIdentityBasedAuthentication_DirectoryServiceOptions_STATUS_None,
}

// Blob restore parameters
type BlobRestoreParameters_STATUS struct {
	// BlobRanges: Blob ranges to restore.
	BlobRanges []BlobRestoreRange_STATUS `json:"blobRanges"`

	// TimeToRestore: Restore blob to the specified time.
	TimeToRestore *string `json:"timeToRestore,omitempty"`
}

type BlobRestoreStatus_Status_STATUS string

const (
	BlobRestoreStatus_Status_STATUS_Complete   = BlobRestoreStatus_Status_STATUS("Complete")
	BlobRestoreStatus_Status_STATUS_Failed     = BlobRestoreStatus_Status_STATUS("Failed")
	BlobRestoreStatus_Status_STATUS_InProgress = BlobRestoreStatus_Status_STATUS("InProgress")
)

// Mapping from string to BlobRestoreStatus_Status_STATUS
var blobRestoreStatus_Status_STATUS_Values = map[string]BlobRestoreStatus_Status_STATUS{
	"complete":   BlobRestoreStatus_Status_STATUS_Complete,
	"failed":     BlobRestoreStatus_Status_STATUS_Failed,
	"inprogress": BlobRestoreStatus_Status_STATUS_InProgress,
}

type Encryption_KeySource_STATUS string

const (
	Encryption_KeySource_STATUS_MicrosoftKeyvault = Encryption_KeySource_STATUS("Microsoft.Keyvault")
	Encryption_KeySource_STATUS_MicrosoftStorage  = Encryption_KeySource_STATUS("Microsoft.Storage")
)

// Mapping from string to Encryption_KeySource_STATUS
var encryption_KeySource_STATUS_Values = map[string]Encryption_KeySource_STATUS{
	"microsoft.keyvault": Encryption_KeySource_STATUS_MicrosoftKeyvault,
	"microsoft.storage":  Encryption_KeySource_STATUS_MicrosoftStorage,
}

// Encryption identity for the storage account.
type EncryptionIdentity_STATUS struct {
	// FederatedIdentityClientId: ClientId of the multi-tenant application to be used in conjunction with the user-assigned
	// identity for cross-tenant customer-managed-keys server-side encryption on the storage account.
	FederatedIdentityClientId *string `json:"federatedIdentityClientId,omitempty"`

	// UserAssignedIdentity: Resource identifier of the UserAssigned identity to be associated with server-side encryption on
	// the storage account.
	UserAssignedIdentity *string `json:"userAssignedIdentity,omitempty"`
}

// A list of services that support encryption.
type EncryptionServices_STATUS struct {
	// Blob: The encryption function of the blob storage service.
	Blob *EncryptionService_STATUS `json:"blob,omitempty"`

	// File: The encryption function of the file storage service.
	File *EncryptionService_STATUS `json:"file,omitempty"`

	// Queue: The encryption function of the queue storage service.
	Queue *EncryptionService_STATUS `json:"queue,omitempty"`

	// Table: The encryption function of the table storage service.
	Table *EncryptionService_STATUS `json:"table,omitempty"`
}

type GeoReplicationStats_PostFailoverRedundancy_STATUS string

const (
	GeoReplicationStats_PostFailoverRedundancy_STATUS_Standard_LRS = GeoReplicationStats_PostFailoverRedundancy_STATUS("Standard_LRS")
	GeoReplicationStats_PostFailoverRedundancy_STATUS_Standard_ZRS = GeoReplicationStats_PostFailoverRedundancy_STATUS("Standard_ZRS")
)

// Mapping from string to GeoReplicationStats_PostFailoverRedundancy_STATUS
var geoReplicationStats_PostFailoverRedundancy_STATUS_Values = map[string]GeoReplicationStats_PostFailoverRedundancy_STATUS{
	"standard_lrs": GeoReplicationStats_PostFailoverRedundancy_STATUS_Standard_LRS,
	"standard_zrs": GeoReplicationStats_PostFailoverRedundancy_STATUS_Standard_ZRS,
}

type GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS string

const (
	GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Standard_GRS    = GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS("Standard_GRS")
	GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Standard_GZRS   = GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS("Standard_GZRS")
	GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Standard_RAGRS  = GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS("Standard_RAGRS")
	GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Standard_RAGZRS = GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS("Standard_RAGZRS")
)

// Mapping from string to GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS
var geoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Values = map[string]GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS{
	"standard_grs":    GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Standard_GRS,
	"standard_gzrs":   GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Standard_GZRS,
	"standard_ragrs":  GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Standard_RAGRS,
	"standard_ragzrs": GeoReplicationStats_PostPlannedFailoverRedundancy_STATUS_Standard_RAGZRS,
}

type GeoReplicationStats_Status_STATUS string

const (
	GeoReplicationStats_Status_STATUS_Bootstrap   = GeoReplicationStats_Status_STATUS("Bootstrap")
	GeoReplicationStats_Status_STATUS_Live        = GeoReplicationStats_Status_STATUS("Live")
	GeoReplicationStats_Status_STATUS_Unavailable = GeoReplicationStats_Status_STATUS("Unavailable")
)

// Mapping from string to GeoReplicationStats_Status_STATUS
var geoReplicationStats_Status_STATUS_Values = map[string]GeoReplicationStats_Status_STATUS{
	"bootstrap":   GeoReplicationStats_Status_STATUS_Bootstrap,
	"live":        GeoReplicationStats_Status_STATUS_Live,
	"unavailable": GeoReplicationStats_Status_STATUS_Unavailable,
}

// IP rule with specific IP or IP range in CIDR format.
type IPRule_STATUS struct {
	// Action: The action of IP ACL rule.
	Action *IPRule_Action_STATUS `json:"action,omitempty"`

	// Value: Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed.
	Value *string `json:"value,omitempty"`
}

// Properties of key vault.
type KeyVaultProperties_STATUS struct {
	// CurrentVersionedKeyExpirationTimestamp: This is a read only property that represents the expiration time of the current
	// version of the customer managed key used for encryption.
	CurrentVersionedKeyExpirationTimestamp *string `json:"currentVersionedKeyExpirationTimestamp,omitempty"`

	// CurrentVersionedKeyIdentifier: The object identifier of the current versioned Key Vault Key in use.
	CurrentVersionedKeyIdentifier *string `json:"currentVersionedKeyIdentifier,omitempty"`

	// Keyname: The name of KeyVault key.
	Keyname *string `json:"keyname,omitempty"`

	// Keyvaulturi: The Uri of KeyVault.
	Keyvaulturi *string `json:"keyvaulturi,omitempty"`

	// Keyversion: The version of KeyVault key.
	Keyversion *string `json:"keyversion,omitempty"`

	// LastKeyRotationTimestamp: Timestamp of last rotation of the Key Vault Key.
	LastKeyRotationTimestamp *string `json:"lastKeyRotationTimestamp,omitempty"`
}

type NetworkRuleSet_Bypass_STATUS string

const (
	NetworkRuleSet_Bypass_STATUS_AzureServices = NetworkRuleSet_Bypass_STATUS("AzureServices")
	NetworkRuleSet_Bypass_STATUS_Logging       = NetworkRuleSet_Bypass_STATUS("Logging")
	NetworkRuleSet_Bypass_STATUS_Metrics       = NetworkRuleSet_Bypass_STATUS("Metrics")
	NetworkRuleSet_Bypass_STATUS_None          = NetworkRuleSet_Bypass_STATUS("None")
)

// Mapping from string to NetworkRuleSet_Bypass_STATUS
var networkRuleSet_Bypass_STATUS_Values = map[string]NetworkRuleSet_Bypass_STATUS{
	"azureservices": NetworkRuleSet_Bypass_STATUS_AzureServices,
	"logging":       NetworkRuleSet_Bypass_STATUS_Logging,
	"metrics":       NetworkRuleSet_Bypass_STATUS_Metrics,
	"none":          NetworkRuleSet_Bypass_STATUS_None,
}

type NetworkRuleSet_DefaultAction_STATUS string

const (
	NetworkRuleSet_DefaultAction_STATUS_Allow = NetworkRuleSet_DefaultAction_STATUS("Allow")
	NetworkRuleSet_DefaultAction_STATUS_Deny  = NetworkRuleSet_DefaultAction_STATUS("Deny")
)

// Mapping from string to NetworkRuleSet_DefaultAction_STATUS
var networkRuleSet_DefaultAction_STATUS_Values = map[string]NetworkRuleSet_DefaultAction_STATUS{
	"allow": NetworkRuleSet_DefaultAction_STATUS_Allow,
	"deny":  NetworkRuleSet_DefaultAction_STATUS_Deny,
}

// Resource Access Rule.
type ResourceAccessRule_STATUS struct {
	// ResourceId: Resource Id
	ResourceId *string `json:"resourceId,omitempty"`

	// TenantId: Tenant Id
	TenantId *string `json:"tenantId,omitempty"`
}

type RoutingPreference_RoutingChoice_STATUS string

const (
	RoutingPreference_RoutingChoice_STATUS_InternetRouting  = RoutingPreference_RoutingChoice_STATUS("InternetRouting")
	RoutingPreference_RoutingChoice_STATUS_MicrosoftRouting = RoutingPreference_RoutingChoice_STATUS("MicrosoftRouting")
)

// Mapping from string to RoutingPreference_RoutingChoice_STATUS
var routingPreference_RoutingChoice_STATUS_Values = map[string]RoutingPreference_RoutingChoice_STATUS{
	"internetrouting":  RoutingPreference_RoutingChoice_STATUS_InternetRouting,
	"microsoftrouting": RoutingPreference_RoutingChoice_STATUS_MicrosoftRouting,
}

type SasPolicy_ExpirationAction_STATUS string

const SasPolicy_ExpirationAction_STATUS_Log = SasPolicy_ExpirationAction_STATUS("Log")

// Mapping from string to SasPolicy_ExpirationAction_STATUS
var sasPolicy_ExpirationAction_STATUS_Values = map[string]SasPolicy_ExpirationAction_STATUS{
	"log": SasPolicy_ExpirationAction_STATUS_Log,
}

// The URIs that are used to perform a retrieval of a public blob, file, web or dfs object via a internet routing endpoint.
type StorageAccountInternetEndpoints_STATUS struct {
	// Blob: Gets the blob endpoint.
	Blob *string `json:"blob,omitempty"`

	// Dfs: Gets the dfs endpoint.
	Dfs *string `json:"dfs,omitempty"`

	// File: Gets the file endpoint.
	File *string `json:"file,omitempty"`

	// Web: Gets the web endpoint.
	Web *string `json:"web,omitempty"`
}

// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via a microsoft routing
// endpoint.
type StorageAccountMicrosoftEndpoints_STATUS struct {
	// Blob: Gets the blob endpoint.
	Blob *string `json:"blob,omitempty"`

	// Dfs: Gets the dfs endpoint.
	Dfs *string `json:"dfs,omitempty"`

	// File: Gets the file endpoint.
	File *string `json:"file,omitempty"`

	// Queue: Gets the queue endpoint.
	Queue *string `json:"queue,omitempty"`

	// Table: Gets the table endpoint.
	Table *string `json:"table,omitempty"`

	// Web: Gets the web endpoint.
	Web *string `json:"web,omitempty"`
}

type StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS string

const (
	StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS_Failed     = StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS("Failed")
	StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS_InProgress = StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS("InProgress")
	StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS_Succeeded  = StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS("Succeeded")
)

// Mapping from string to StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS
var storageAccountSkuConversionStatus_SkuConversionStatus_STATUS_Values = map[string]StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS{
	"failed":     StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS_Failed,
	"inprogress": StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS_InProgress,
	"succeeded":  StorageAccountSkuConversionStatus_SkuConversionStatus_STATUS_Succeeded,
}

// Virtual Network rule.
type VirtualNetworkRule_STATUS struct {
	// Action: The action of virtual network rule.
	Action *VirtualNetworkRule_Action_STATUS `json:"action,omitempty"`

	// Id: Resource ID of a subnet, for example:
	// /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}.
	Id *string `json:"id,omitempty"`

	// State: Gets the state of virtual network rule.
	State *VirtualNetworkRule_State_STATUS `json:"state,omitempty"`
}

type AccountImmutabilityPolicyProperties_State_STATUS string

const (
	AccountImmutabilityPolicyProperties_State_STATUS_Disabled = AccountImmutabilityPolicyProperties_State_STATUS("Disabled")
	AccountImmutabilityPolicyProperties_State_STATUS_Locked   = AccountImmutabilityPolicyProperties_State_STATUS("Locked")
	AccountImmutabilityPolicyProperties_State_STATUS_Unlocked = AccountImmutabilityPolicyProperties_State_STATUS("Unlocked")
)

// Mapping from string to AccountImmutabilityPolicyProperties_State_STATUS
var accountImmutabilityPolicyProperties_State_STATUS_Values = map[string]AccountImmutabilityPolicyProperties_State_STATUS{
	"disabled": AccountImmutabilityPolicyProperties_State_STATUS_Disabled,
	"locked":   AccountImmutabilityPolicyProperties_State_STATUS_Locked,
	"unlocked": AccountImmutabilityPolicyProperties_State_STATUS_Unlocked,
}

type ActiveDirectoryProperties_AccountType_STATUS string

const (
	ActiveDirectoryProperties_AccountType_STATUS_Computer = ActiveDirectoryProperties_AccountType_STATUS("Computer")
	ActiveDirectoryProperties_AccountType_STATUS_User     = ActiveDirectoryProperties_AccountType_STATUS("User")
)

// Mapping from string to ActiveDirectoryProperties_AccountType_STATUS
var activeDirectoryProperties_AccountType_STATUS_Values = map[string]ActiveDirectoryProperties_AccountType_STATUS{
	"computer": ActiveDirectoryProperties_AccountType_STATUS_Computer,
	"user":     ActiveDirectoryProperties_AccountType_STATUS_User,
}

// Blob range
type BlobRestoreRange_STATUS struct {
	// EndRange: Blob end range. This is exclusive. Empty means account end.
	EndRange *string `json:"endRange,omitempty"`

	// StartRange: Blob start range. This is inclusive. Empty means account start.
	StartRange *string `json:"startRange,omitempty"`
}

// A service that allows server-side encryption to be used.
type EncryptionService_STATUS struct {
	// Enabled: A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is
	// enabled by default today and cannot be disabled.
	Enabled *bool `json:"enabled,omitempty"`

	// KeyType: Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped
	// encryption key will be used. 'Service' key type implies that a default service key is used.
	KeyType *EncryptionService_KeyType_STATUS `json:"keyType,omitempty"`

	// LastEnabledTime: Gets a rough estimate of the date/time when the encryption was last enabled by the user. Data is
	// encrypted at rest by default today and cannot be disabled.
	LastEnabledTime *string `json:"lastEnabledTime,omitempty"`
}

type IPRule_Action_STATUS string

const IPRule_Action_STATUS_Allow = IPRule_Action_STATUS("Allow")

// Mapping from string to IPRule_Action_STATUS
var iPRule_Action_STATUS_Values = map[string]IPRule_Action_STATUS{
	"allow": IPRule_Action_STATUS_Allow,
}

type VirtualNetworkRule_Action_STATUS string

const VirtualNetworkRule_Action_STATUS_Allow = VirtualNetworkRule_Action_STATUS("Allow")

// Mapping from string to VirtualNetworkRule_Action_STATUS
var virtualNetworkRule_Action_STATUS_Values = map[string]VirtualNetworkRule_Action_STATUS{
	"allow": VirtualNetworkRule_Action_STATUS_Allow,
}

type VirtualNetworkRule_State_STATUS string

const (
	VirtualNetworkRule_State_STATUS_Deprovisioning       = VirtualNetworkRule_State_STATUS("Deprovisioning")
	VirtualNetworkRule_State_STATUS_Failed               = VirtualNetworkRule_State_STATUS("Failed")
	VirtualNetworkRule_State_STATUS_NetworkSourceDeleted = VirtualNetworkRule_State_STATUS("NetworkSourceDeleted")
	VirtualNetworkRule_State_STATUS_Provisioning         = VirtualNetworkRule_State_STATUS("Provisioning")
	VirtualNetworkRule_State_STATUS_Succeeded            = VirtualNetworkRule_State_STATUS("Succeeded")
)

// Mapping from string to VirtualNetworkRule_State_STATUS
var virtualNetworkRule_State_STATUS_Values = map[string]VirtualNetworkRule_State_STATUS{
	"deprovisioning":       VirtualNetworkRule_State_STATUS_Deprovisioning,
	"failed":               VirtualNetworkRule_State_STATUS_Failed,
	"networksourcedeleted": VirtualNetworkRule_State_STATUS_NetworkSourceDeleted,
	"provisioning":         VirtualNetworkRule_State_STATUS_Provisioning,
	"succeeded":            VirtualNetworkRule_State_STATUS_Succeeded,
}

type EncryptionService_KeyType_STATUS string

const (
	EncryptionService_KeyType_STATUS_Account = EncryptionService_KeyType_STATUS("Account")
	EncryptionService_KeyType_STATUS_Service = EncryptionService_KeyType_STATUS("Service")
)

// Mapping from string to EncryptionService_KeyType_STATUS
var encryptionService_KeyType_STATUS_Values = map[string]EncryptionService_KeyType_STATUS{
	"account": EncryptionService_KeyType_STATUS_Account,
	"service": EncryptionService_KeyType_STATUS_Service,
}
