// 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 armappservice

const (
	moduleName    = "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/appservice/armappservice"
	moduleVersion = "v5.0.0"
)

// AppServicePlanRestrictions - App Service plans this offer is restricted to.
type AppServicePlanRestrictions string

const (
	AppServicePlanRestrictionsBasic    AppServicePlanRestrictions = "Basic"
	AppServicePlanRestrictionsFree     AppServicePlanRestrictions = "Free"
	AppServicePlanRestrictionsNone     AppServicePlanRestrictions = "None"
	AppServicePlanRestrictionsPremium  AppServicePlanRestrictions = "Premium"
	AppServicePlanRestrictionsShared   AppServicePlanRestrictions = "Shared"
	AppServicePlanRestrictionsStandard AppServicePlanRestrictions = "Standard"
)

// PossibleAppServicePlanRestrictionsValues returns the possible values for the AppServicePlanRestrictions const type.
func PossibleAppServicePlanRestrictionsValues() []AppServicePlanRestrictions {
	return []AppServicePlanRestrictions{
		AppServicePlanRestrictionsBasic,
		AppServicePlanRestrictionsFree,
		AppServicePlanRestrictionsNone,
		AppServicePlanRestrictionsPremium,
		AppServicePlanRestrictionsShared,
		AppServicePlanRestrictionsStandard,
	}
}

// AuthType - Auth Type
type AuthType string

const (
	AuthTypeAnonymous       AuthType = "Anonymous"
	AuthTypeSystemIdentity  AuthType = "SystemIdentity"
	AuthTypeUserAssigned    AuthType = "UserAssigned"
	AuthTypeUserCredentials AuthType = "UserCredentials"
)

// PossibleAuthTypeValues returns the possible values for the AuthType const type.
func PossibleAuthTypeValues() []AuthType {
	return []AuthType{
		AuthTypeAnonymous,
		AuthTypeSystemIdentity,
		AuthTypeUserAssigned,
		AuthTypeUserCredentials,
	}
}

// AuthenticationType - Property to select authentication type to access the selected storage account. Available options:
// SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString.
type AuthenticationType string

const (
	AuthenticationTypeStorageAccountConnectionString AuthenticationType = "StorageAccountConnectionString"
	AuthenticationTypeSystemAssignedIdentity         AuthenticationType = "SystemAssignedIdentity"
	AuthenticationTypeUserAssignedIdentity           AuthenticationType = "UserAssignedIdentity"
)

// PossibleAuthenticationTypeValues returns the possible values for the AuthenticationType const type.
func PossibleAuthenticationTypeValues() []AuthenticationType {
	return []AuthenticationType{
		AuthenticationTypeStorageAccountConnectionString,
		AuthenticationTypeSystemAssignedIdentity,
		AuthenticationTypeUserAssignedIdentity,
	}
}

// AutoGeneratedDomainNameLabelScope - Specifies the scope of uniqueness for the default hostname during resource creation
type AutoGeneratedDomainNameLabelScope string

const (
	AutoGeneratedDomainNameLabelScopeNoReuse            AutoGeneratedDomainNameLabelScope = "NoReuse"
	AutoGeneratedDomainNameLabelScopeResourceGroupReuse AutoGeneratedDomainNameLabelScope = "ResourceGroupReuse"
	AutoGeneratedDomainNameLabelScopeSubscriptionReuse  AutoGeneratedDomainNameLabelScope = "SubscriptionReuse"
	AutoGeneratedDomainNameLabelScopeTenantReuse        AutoGeneratedDomainNameLabelScope = "TenantReuse"
)

// PossibleAutoGeneratedDomainNameLabelScopeValues returns the possible values for the AutoGeneratedDomainNameLabelScope const type.
func PossibleAutoGeneratedDomainNameLabelScopeValues() []AutoGeneratedDomainNameLabelScope {
	return []AutoGeneratedDomainNameLabelScope{
		AutoGeneratedDomainNameLabelScopeNoReuse,
		AutoGeneratedDomainNameLabelScopeResourceGroupReuse,
		AutoGeneratedDomainNameLabelScopeSubscriptionReuse,
		AutoGeneratedDomainNameLabelScopeTenantReuse,
	}
}

// AutoHealActionType - Predefined action to be taken.
type AutoHealActionType string

const (
	AutoHealActionTypeCustomAction AutoHealActionType = "CustomAction"
	AutoHealActionTypeLogEvent     AutoHealActionType = "LogEvent"
	AutoHealActionTypeRecycle      AutoHealActionType = "Recycle"
)

// PossibleAutoHealActionTypeValues returns the possible values for the AutoHealActionType const type.
func PossibleAutoHealActionTypeValues() []AutoHealActionType {
	return []AutoHealActionType{
		AutoHealActionTypeCustomAction,
		AutoHealActionTypeLogEvent,
		AutoHealActionTypeRecycle,
	}
}

// AzureResourceType - Type of the Azure resource the hostname is assigned to.
type AzureResourceType string

const (
	AzureResourceTypeTrafficManager AzureResourceType = "TrafficManager"
	AzureResourceTypeWebsite        AzureResourceType = "Website"
)

// PossibleAzureResourceTypeValues returns the possible values for the AzureResourceType const type.
func PossibleAzureResourceTypeValues() []AzureResourceType {
	return []AzureResourceType{
		AzureResourceTypeTrafficManager,
		AzureResourceTypeWebsite,
	}
}

// AzureStorageProtocol - Mounting protocol to use for the storage account.
type AzureStorageProtocol string

const (
	AzureStorageProtocolHTTP AzureStorageProtocol = "Http"
	AzureStorageProtocolNfs  AzureStorageProtocol = "Nfs"
	AzureStorageProtocolSmb  AzureStorageProtocol = "Smb"
)

// PossibleAzureStorageProtocolValues returns the possible values for the AzureStorageProtocol const type.
func PossibleAzureStorageProtocolValues() []AzureStorageProtocol {
	return []AzureStorageProtocol{
		AzureStorageProtocolHTTP,
		AzureStorageProtocolNfs,
		AzureStorageProtocolSmb,
	}
}

// AzureStorageState - State of the storage account.
type AzureStorageState string

const (
	AzureStorageStateInvalidCredentials AzureStorageState = "InvalidCredentials"
	AzureStorageStateInvalidShare       AzureStorageState = "InvalidShare"
	AzureStorageStateNotValidated       AzureStorageState = "NotValidated"
	AzureStorageStateOk                 AzureStorageState = "Ok"
)

// PossibleAzureStorageStateValues returns the possible values for the AzureStorageState const type.
func PossibleAzureStorageStateValues() []AzureStorageState {
	return []AzureStorageState{
		AzureStorageStateInvalidCredentials,
		AzureStorageStateInvalidShare,
		AzureStorageStateNotValidated,
		AzureStorageStateOk,
	}
}

// AzureStorageType - Type of storage.
type AzureStorageType string

const (
	AzureStorageTypeAzureBlob  AzureStorageType = "AzureBlob"
	AzureStorageTypeAzureFiles AzureStorageType = "AzureFiles"
)

// PossibleAzureStorageTypeValues returns the possible values for the AzureStorageType const type.
func PossibleAzureStorageTypeValues() []AzureStorageType {
	return []AzureStorageType{
		AzureStorageTypeAzureBlob,
		AzureStorageTypeAzureFiles,
	}
}

// BackupItemStatus - Backup status.
type BackupItemStatus string

const (
	BackupItemStatusCreated            BackupItemStatus = "Created"
	BackupItemStatusDeleteFailed       BackupItemStatus = "DeleteFailed"
	BackupItemStatusDeleteInProgress   BackupItemStatus = "DeleteInProgress"
	BackupItemStatusDeleted            BackupItemStatus = "Deleted"
	BackupItemStatusFailed             BackupItemStatus = "Failed"
	BackupItemStatusInProgress         BackupItemStatus = "InProgress"
	BackupItemStatusPartiallySucceeded BackupItemStatus = "PartiallySucceeded"
	BackupItemStatusSkipped            BackupItemStatus = "Skipped"
	BackupItemStatusSucceeded          BackupItemStatus = "Succeeded"
	BackupItemStatusTimedOut           BackupItemStatus = "TimedOut"
)

// PossibleBackupItemStatusValues returns the possible values for the BackupItemStatus const type.
func PossibleBackupItemStatusValues() []BackupItemStatus {
	return []BackupItemStatus{
		BackupItemStatusCreated,
		BackupItemStatusDeleteFailed,
		BackupItemStatusDeleteInProgress,
		BackupItemStatusDeleted,
		BackupItemStatusFailed,
		BackupItemStatusInProgress,
		BackupItemStatusPartiallySucceeded,
		BackupItemStatusSkipped,
		BackupItemStatusSucceeded,
		BackupItemStatusTimedOut,
	}
}

// BackupRestoreOperationType - Operation type.
type BackupRestoreOperationType string

const (
	BackupRestoreOperationTypeClone      BackupRestoreOperationType = "Clone"
	BackupRestoreOperationTypeCloudFS    BackupRestoreOperationType = "CloudFS"
	BackupRestoreOperationTypeDefault    BackupRestoreOperationType = "Default"
	BackupRestoreOperationTypeRelocation BackupRestoreOperationType = "Relocation"
	BackupRestoreOperationTypeSnapshot   BackupRestoreOperationType = "Snapshot"
)

// PossibleBackupRestoreOperationTypeValues returns the possible values for the BackupRestoreOperationType const type.
func PossibleBackupRestoreOperationTypeValues() []BackupRestoreOperationType {
	return []BackupRestoreOperationType{
		BackupRestoreOperationTypeClone,
		BackupRestoreOperationTypeCloudFS,
		BackupRestoreOperationTypeDefault,
		BackupRestoreOperationTypeRelocation,
		BackupRestoreOperationTypeSnapshot,
	}
}

type BasicAuthName string

const (
	BasicAuthNameDefault BasicAuthName = "default"
)

// PossibleBasicAuthNameValues returns the possible values for the BasicAuthName const type.
func PossibleBasicAuthNameValues() []BasicAuthName {
	return []BasicAuthName{
		BasicAuthNameDefault,
	}
}

// BuildStatus - The status of the static site build.
type BuildStatus string

const (
	BuildStatusDeleting             BuildStatus = "Deleting"
	BuildStatusDeploying            BuildStatus = "Deploying"
	BuildStatusDetached             BuildStatus = "Detached"
	BuildStatusFailed               BuildStatus = "Failed"
	BuildStatusReady                BuildStatus = "Ready"
	BuildStatusUploading            BuildStatus = "Uploading"
	BuildStatusWaitingForDeployment BuildStatus = "WaitingForDeployment"
)

// PossibleBuildStatusValues returns the possible values for the BuildStatus const type.
func PossibleBuildStatusValues() []BuildStatus {
	return []BuildStatus{
		BuildStatusDeleting,
		BuildStatusDeploying,
		BuildStatusDetached,
		BuildStatusFailed,
		BuildStatusReady,
		BuildStatusUploading,
		BuildStatusWaitingForDeployment,
	}
}

// BuiltInAuthenticationProvider - The default authentication provider to use when multiple providers are configured. This
// setting is only needed if multiple providers are configured and the unauthenticated client action is set to
// "RedirectToLoginPage".
type BuiltInAuthenticationProvider string

const (
	BuiltInAuthenticationProviderAzureActiveDirectory BuiltInAuthenticationProvider = "AzureActiveDirectory"
	BuiltInAuthenticationProviderFacebook             BuiltInAuthenticationProvider = "Facebook"
	BuiltInAuthenticationProviderGithub               BuiltInAuthenticationProvider = "Github"
	BuiltInAuthenticationProviderGoogle               BuiltInAuthenticationProvider = "Google"
	BuiltInAuthenticationProviderMicrosoftAccount     BuiltInAuthenticationProvider = "MicrosoftAccount"
	BuiltInAuthenticationProviderTwitter              BuiltInAuthenticationProvider = "Twitter"
)

// PossibleBuiltInAuthenticationProviderValues returns the possible values for the BuiltInAuthenticationProvider const type.
func PossibleBuiltInAuthenticationProviderValues() []BuiltInAuthenticationProvider {
	return []BuiltInAuthenticationProvider{
		BuiltInAuthenticationProviderAzureActiveDirectory,
		BuiltInAuthenticationProviderFacebook,
		BuiltInAuthenticationProviderGithub,
		BuiltInAuthenticationProviderGoogle,
		BuiltInAuthenticationProviderMicrosoftAccount,
		BuiltInAuthenticationProviderTwitter,
	}
}

// CertificateOrderActionType - Action type.
type CertificateOrderActionType string

const (
	CertificateOrderActionTypeCertificateExpirationWarning CertificateOrderActionType = "CertificateExpirationWarning"
	CertificateOrderActionTypeCertificateExpired           CertificateOrderActionType = "CertificateExpired"
	CertificateOrderActionTypeCertificateIssued            CertificateOrderActionType = "CertificateIssued"
	CertificateOrderActionTypeCertificateOrderCanceled     CertificateOrderActionType = "CertificateOrderCanceled"
	CertificateOrderActionTypeCertificateOrderCreated      CertificateOrderActionType = "CertificateOrderCreated"
	CertificateOrderActionTypeCertificateRevoked           CertificateOrderActionType = "CertificateRevoked"
	CertificateOrderActionTypeDomainValidationComplete     CertificateOrderActionType = "DomainValidationComplete"
	CertificateOrderActionTypeFraudCleared                 CertificateOrderActionType = "FraudCleared"
	CertificateOrderActionTypeFraudDetected                CertificateOrderActionType = "FraudDetected"
	CertificateOrderActionTypeFraudDocumentationRequired   CertificateOrderActionType = "FraudDocumentationRequired"
	CertificateOrderActionTypeOrgNameChange                CertificateOrderActionType = "OrgNameChange"
	CertificateOrderActionTypeOrgValidationComplete        CertificateOrderActionType = "OrgValidationComplete"
	CertificateOrderActionTypeSanDrop                      CertificateOrderActionType = "SanDrop"
	CertificateOrderActionTypeUnknown                      CertificateOrderActionType = "Unknown"
)

// PossibleCertificateOrderActionTypeValues returns the possible values for the CertificateOrderActionType const type.
func PossibleCertificateOrderActionTypeValues() []CertificateOrderActionType {
	return []CertificateOrderActionType{
		CertificateOrderActionTypeCertificateExpirationWarning,
		CertificateOrderActionTypeCertificateExpired,
		CertificateOrderActionTypeCertificateIssued,
		CertificateOrderActionTypeCertificateOrderCanceled,
		CertificateOrderActionTypeCertificateOrderCreated,
		CertificateOrderActionTypeCertificateRevoked,
		CertificateOrderActionTypeDomainValidationComplete,
		CertificateOrderActionTypeFraudCleared,
		CertificateOrderActionTypeFraudDetected,
		CertificateOrderActionTypeFraudDocumentationRequired,
		CertificateOrderActionTypeOrgNameChange,
		CertificateOrderActionTypeOrgValidationComplete,
		CertificateOrderActionTypeSanDrop,
		CertificateOrderActionTypeUnknown,
	}
}

// CertificateOrderStatus - Current order status.
type CertificateOrderStatus string

const (
	CertificateOrderStatusCanceled          CertificateOrderStatus = "Canceled"
	CertificateOrderStatusDenied            CertificateOrderStatus = "Denied"
	CertificateOrderStatusExpired           CertificateOrderStatus = "Expired"
	CertificateOrderStatusIssued            CertificateOrderStatus = "Issued"
	CertificateOrderStatusNotSubmitted      CertificateOrderStatus = "NotSubmitted"
	CertificateOrderStatusPendingRekey      CertificateOrderStatus = "PendingRekey"
	CertificateOrderStatusPendingissuance   CertificateOrderStatus = "Pendingissuance"
	CertificateOrderStatusPendingrevocation CertificateOrderStatus = "Pendingrevocation"
	CertificateOrderStatusRevoked           CertificateOrderStatus = "Revoked"
	CertificateOrderStatusUnused            CertificateOrderStatus = "Unused"
)

// PossibleCertificateOrderStatusValues returns the possible values for the CertificateOrderStatus const type.
func PossibleCertificateOrderStatusValues() []CertificateOrderStatus {
	return []CertificateOrderStatus{
		CertificateOrderStatusCanceled,
		CertificateOrderStatusDenied,
		CertificateOrderStatusExpired,
		CertificateOrderStatusIssued,
		CertificateOrderStatusNotSubmitted,
		CertificateOrderStatusPendingRekey,
		CertificateOrderStatusPendingissuance,
		CertificateOrderStatusPendingrevocation,
		CertificateOrderStatusRevoked,
		CertificateOrderStatusUnused,
	}
}

// CertificateProductType - Certificate product type.
type CertificateProductType string

const (
	CertificateProductTypeStandardDomainValidatedSSL         CertificateProductType = "StandardDomainValidatedSsl"
	CertificateProductTypeStandardDomainValidatedWildCardSSL CertificateProductType = "StandardDomainValidatedWildCardSsl"
)

// PossibleCertificateProductTypeValues returns the possible values for the CertificateProductType const type.
func PossibleCertificateProductTypeValues() []CertificateProductType {
	return []CertificateProductType{
		CertificateProductTypeStandardDomainValidatedSSL,
		CertificateProductTypeStandardDomainValidatedWildCardSSL,
	}
}

// Channels - List of channels that this recommendation can apply.
type Channels string

const (
	ChannelsAPI          Channels = "Api"
	ChannelsAll          Channels = "All"
	ChannelsEmail        Channels = "Email"
	ChannelsNotification Channels = "Notification"
	ChannelsWebhook      Channels = "Webhook"
)

// PossibleChannelsValues returns the possible values for the Channels const type.
func PossibleChannelsValues() []Channels {
	return []Channels{
		ChannelsAPI,
		ChannelsAll,
		ChannelsEmail,
		ChannelsNotification,
		ChannelsWebhook,
	}
}

// CheckNameResourceTypes - Resource type used for verification.
type CheckNameResourceTypes string

const (
	CheckNameResourceTypesHostingEnvironment              CheckNameResourceTypes = "HostingEnvironment"
	CheckNameResourceTypesMicrosoftWebHostingEnvironments CheckNameResourceTypes = "Microsoft.Web/hostingEnvironments"
	CheckNameResourceTypesMicrosoftWebPublishingUsers     CheckNameResourceTypes = "Microsoft.Web/publishingUsers"
	CheckNameResourceTypesMicrosoftWebSites               CheckNameResourceTypes = "Microsoft.Web/sites"
	CheckNameResourceTypesMicrosoftWebSitesSlots          CheckNameResourceTypes = "Microsoft.Web/sites/slots"
	CheckNameResourceTypesPublishingUser                  CheckNameResourceTypes = "PublishingUser"
	CheckNameResourceTypesSite                            CheckNameResourceTypes = "Site"
	CheckNameResourceTypesSlot                            CheckNameResourceTypes = "Slot"
)

// PossibleCheckNameResourceTypesValues returns the possible values for the CheckNameResourceTypes const type.
func PossibleCheckNameResourceTypesValues() []CheckNameResourceTypes {
	return []CheckNameResourceTypes{
		CheckNameResourceTypesHostingEnvironment,
		CheckNameResourceTypesMicrosoftWebHostingEnvironments,
		CheckNameResourceTypesMicrosoftWebPublishingUsers,
		CheckNameResourceTypesMicrosoftWebSites,
		CheckNameResourceTypesMicrosoftWebSitesSlots,
		CheckNameResourceTypesPublishingUser,
		CheckNameResourceTypesSite,
		CheckNameResourceTypesSlot,
	}
}

// ClientCertMode - This composes with ClientCertEnabled setting.
// * ClientCertEnabled: false means ClientCert is ignored.
// * ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.
// * ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted.
type ClientCertMode string

const (
	ClientCertModeOptional                ClientCertMode = "Optional"
	ClientCertModeOptionalInteractiveUser ClientCertMode = "OptionalInteractiveUser"
	ClientCertModeRequired                ClientCertMode = "Required"
)

// PossibleClientCertModeValues returns the possible values for the ClientCertMode const type.
func PossibleClientCertModeValues() []ClientCertMode {
	return []ClientCertMode{
		ClientCertModeOptional,
		ClientCertModeOptionalInteractiveUser,
		ClientCertModeRequired,
	}
}

// CloneAbilityResult - Name of app.
type CloneAbilityResult string

const (
	CloneAbilityResultCloneable          CloneAbilityResult = "Cloneable"
	CloneAbilityResultNotCloneable       CloneAbilityResult = "NotCloneable"
	CloneAbilityResultPartiallyCloneable CloneAbilityResult = "PartiallyCloneable"
)

// PossibleCloneAbilityResultValues returns the possible values for the CloneAbilityResult const type.
func PossibleCloneAbilityResultValues() []CloneAbilityResult {
	return []CloneAbilityResult{
		CloneAbilityResultCloneable,
		CloneAbilityResultNotCloneable,
		CloneAbilityResultPartiallyCloneable,
	}
}

// ComputeModeOptions - Shared/dedicated workers.
type ComputeModeOptions string

const (
	ComputeModeOptionsDedicated ComputeModeOptions = "Dedicated"
	ComputeModeOptionsDynamic   ComputeModeOptions = "Dynamic"
	ComputeModeOptionsShared    ComputeModeOptions = "Shared"
)

// PossibleComputeModeOptionsValues returns the possible values for the ComputeModeOptions const type.
func PossibleComputeModeOptionsValues() []ComputeModeOptions {
	return []ComputeModeOptions{
		ComputeModeOptionsDedicated,
		ComputeModeOptionsDynamic,
		ComputeModeOptionsShared,
	}
}

// ConnectionStringType - Type of database.
type ConnectionStringType string

const (
	ConnectionStringTypeAPIHub          ConnectionStringType = "ApiHub"
	ConnectionStringTypeCustom          ConnectionStringType = "Custom"
	ConnectionStringTypeDocDb           ConnectionStringType = "DocDb"
	ConnectionStringTypeEventHub        ConnectionStringType = "EventHub"
	ConnectionStringTypeMySQL           ConnectionStringType = "MySql"
	ConnectionStringTypeNotificationHub ConnectionStringType = "NotificationHub"
	ConnectionStringTypePostgreSQL      ConnectionStringType = "PostgreSQL"
	ConnectionStringTypeRedisCache      ConnectionStringType = "RedisCache"
	ConnectionStringTypeSQLAzure        ConnectionStringType = "SQLAzure"
	ConnectionStringTypeSQLServer       ConnectionStringType = "SQLServer"
	ConnectionStringTypeServiceBus      ConnectionStringType = "ServiceBus"
)

// PossibleConnectionStringTypeValues returns the possible values for the ConnectionStringType const type.
func PossibleConnectionStringTypeValues() []ConnectionStringType {
	return []ConnectionStringType{
		ConnectionStringTypeAPIHub,
		ConnectionStringTypeCustom,
		ConnectionStringTypeDocDb,
		ConnectionStringTypeEventHub,
		ConnectionStringTypeMySQL,
		ConnectionStringTypeNotificationHub,
		ConnectionStringTypePostgreSQL,
		ConnectionStringTypeRedisCache,
		ConnectionStringTypeSQLAzure,
		ConnectionStringTypeSQLServer,
		ConnectionStringTypeServiceBus,
	}
}

// ContinuousWebJobStatus - Job status.
type ContinuousWebJobStatus string

const (
	ContinuousWebJobStatusInitializing   ContinuousWebJobStatus = "Initializing"
	ContinuousWebJobStatusPendingRestart ContinuousWebJobStatus = "PendingRestart"
	ContinuousWebJobStatusRunning        ContinuousWebJobStatus = "Running"
	ContinuousWebJobStatusStarting       ContinuousWebJobStatus = "Starting"
	ContinuousWebJobStatusStopped        ContinuousWebJobStatus = "Stopped"
)

// PossibleContinuousWebJobStatusValues returns the possible values for the ContinuousWebJobStatus const type.
func PossibleContinuousWebJobStatusValues() []ContinuousWebJobStatus {
	return []ContinuousWebJobStatus{
		ContinuousWebJobStatusInitializing,
		ContinuousWebJobStatusPendingRestart,
		ContinuousWebJobStatusRunning,
		ContinuousWebJobStatusStarting,
		ContinuousWebJobStatusStopped,
	}
}

// CookieExpirationConvention - The convention used when determining the session cookie's expiration.
type CookieExpirationConvention string

const (
	CookieExpirationConventionFixedTime               CookieExpirationConvention = "FixedTime"
	CookieExpirationConventionIdentityProviderDerived CookieExpirationConvention = "IdentityProviderDerived"
)

// PossibleCookieExpirationConventionValues returns the possible values for the CookieExpirationConvention const type.
func PossibleCookieExpirationConventionValues() []CookieExpirationConvention {
	return []CookieExpirationConvention{
		CookieExpirationConventionFixedTime,
		CookieExpirationConventionIdentityProviderDerived,
	}
}

type CustomDNSSuffixProvisioningState string

const (
	CustomDNSSuffixProvisioningStateDegraded   CustomDNSSuffixProvisioningState = "Degraded"
	CustomDNSSuffixProvisioningStateFailed     CustomDNSSuffixProvisioningState = "Failed"
	CustomDNSSuffixProvisioningStateInProgress CustomDNSSuffixProvisioningState = "InProgress"
	CustomDNSSuffixProvisioningStateSucceeded  CustomDNSSuffixProvisioningState = "Succeeded"
)

// PossibleCustomDNSSuffixProvisioningStateValues returns the possible values for the CustomDNSSuffixProvisioningState const type.
func PossibleCustomDNSSuffixProvisioningStateValues() []CustomDNSSuffixProvisioningState {
	return []CustomDNSSuffixProvisioningState{
		CustomDNSSuffixProvisioningStateDegraded,
		CustomDNSSuffixProvisioningStateFailed,
		CustomDNSSuffixProvisioningStateInProgress,
		CustomDNSSuffixProvisioningStateSucceeded,
	}
}

// CustomDomainStatus - The status of the custom domain
type CustomDomainStatus string

const (
	CustomDomainStatusAdding                    CustomDomainStatus = "Adding"
	CustomDomainStatusDeleting                  CustomDomainStatus = "Deleting"
	CustomDomainStatusFailed                    CustomDomainStatus = "Failed"
	CustomDomainStatusReady                     CustomDomainStatus = "Ready"
	CustomDomainStatusRetrievingValidationToken CustomDomainStatus = "RetrievingValidationToken"
	CustomDomainStatusUnhealthy                 CustomDomainStatus = "Unhealthy"
	CustomDomainStatusValidating                CustomDomainStatus = "Validating"
)

// PossibleCustomDomainStatusValues returns the possible values for the CustomDomainStatus const type.
func PossibleCustomDomainStatusValues() []CustomDomainStatus {
	return []CustomDomainStatus{
		CustomDomainStatusAdding,
		CustomDomainStatusDeleting,
		CustomDomainStatusFailed,
		CustomDomainStatusReady,
		CustomDomainStatusRetrievingValidationToken,
		CustomDomainStatusUnhealthy,
		CustomDomainStatusValidating,
	}
}

// CustomHostNameDNSRecordType - Type of the DNS record.
type CustomHostNameDNSRecordType string

const (
	CustomHostNameDNSRecordTypeA     CustomHostNameDNSRecordType = "A"
	CustomHostNameDNSRecordTypeCName CustomHostNameDNSRecordType = "CName"
)

// PossibleCustomHostNameDNSRecordTypeValues returns the possible values for the CustomHostNameDNSRecordType const type.
func PossibleCustomHostNameDNSRecordTypeValues() []CustomHostNameDNSRecordType {
	return []CustomHostNameDNSRecordType{
		CustomHostNameDNSRecordTypeA,
		CustomHostNameDNSRecordTypeCName,
	}
}

// DNSType - Current DNS type
type DNSType string

const (
	DNSTypeAzureDNS                  DNSType = "AzureDns"
	DNSTypeDefaultDomainRegistrarDNS DNSType = "DefaultDomainRegistrarDns"
)

// PossibleDNSTypeValues returns the possible values for the DNSType const type.
func PossibleDNSTypeValues() []DNSType {
	return []DNSType{
		DNSTypeAzureDNS,
		DNSTypeDefaultDomainRegistrarDNS,
	}
}

// DNSVerificationTestResult - DNS verification test result.
type DNSVerificationTestResult string

const (
	DNSVerificationTestResultFailed  DNSVerificationTestResult = "Failed"
	DNSVerificationTestResultPassed  DNSVerificationTestResult = "Passed"
	DNSVerificationTestResultSkipped DNSVerificationTestResult = "Skipped"
)

// PossibleDNSVerificationTestResultValues returns the possible values for the DNSVerificationTestResult const type.
func PossibleDNSVerificationTestResultValues() []DNSVerificationTestResult {
	return []DNSVerificationTestResult{
		DNSVerificationTestResultFailed,
		DNSVerificationTestResultPassed,
		DNSVerificationTestResultSkipped,
	}
}

// DaprLogLevel - Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.
type DaprLogLevel string

const (
	DaprLogLevelDebug DaprLogLevel = "debug"
	DaprLogLevelError DaprLogLevel = "error"
	DaprLogLevelInfo  DaprLogLevel = "info"
	DaprLogLevelWarn  DaprLogLevel = "warn"
)

// PossibleDaprLogLevelValues returns the possible values for the DaprLogLevel const type.
func PossibleDaprLogLevelValues() []DaprLogLevel {
	return []DaprLogLevel{
		DaprLogLevelDebug,
		DaprLogLevelError,
		DaprLogLevelInfo,
		DaprLogLevelWarn,
	}
}

// DatabaseType - Database type (e.g. SqlAzure / MySql).
type DatabaseType string

const (
	DatabaseTypeLocalMySQL DatabaseType = "LocalMySql"
	DatabaseTypeMySQL      DatabaseType = "MySql"
	DatabaseTypePostgreSQL DatabaseType = "PostgreSql"
	DatabaseTypeSQLAzure   DatabaseType = "SqlAzure"
)

// PossibleDatabaseTypeValues returns the possible values for the DatabaseType const type.
func PossibleDatabaseTypeValues() []DatabaseType {
	return []DatabaseType{
		DatabaseTypeLocalMySQL,
		DatabaseTypeMySQL,
		DatabaseTypePostgreSQL,
		DatabaseTypeSQLAzure,
	}
}

// DayOfWeek - The day of the week.
type DayOfWeek string

const (
	DayOfWeekFriday    DayOfWeek = "Friday"
	DayOfWeekMonday    DayOfWeek = "Monday"
	DayOfWeekSaturday  DayOfWeek = "Saturday"
	DayOfWeekSunday    DayOfWeek = "Sunday"
	DayOfWeekThursday  DayOfWeek = "Thursday"
	DayOfWeekTuesday   DayOfWeek = "Tuesday"
	DayOfWeekWednesday DayOfWeek = "Wednesday"
)

// PossibleDayOfWeekValues returns the possible values for the DayOfWeek const type.
func PossibleDayOfWeekValues() []DayOfWeek {
	return []DayOfWeek{
		DayOfWeekFriday,
		DayOfWeekMonday,
		DayOfWeekSaturday,
		DayOfWeekSunday,
		DayOfWeekThursday,
		DayOfWeekTuesday,
		DayOfWeekWednesday,
	}
}

type DaysOfWeek string

const (
	DaysOfWeekFriday    DaysOfWeek = "Friday"
	DaysOfWeekMonday    DaysOfWeek = "Monday"
	DaysOfWeekSaturday  DaysOfWeek = "Saturday"
	DaysOfWeekSunday    DaysOfWeek = "Sunday"
	DaysOfWeekThursday  DaysOfWeek = "Thursday"
	DaysOfWeekTuesday   DaysOfWeek = "Tuesday"
	DaysOfWeekWednesday DaysOfWeek = "Wednesday"
)

// PossibleDaysOfWeekValues returns the possible values for the DaysOfWeek const type.
func PossibleDaysOfWeekValues() []DaysOfWeek {
	return []DaysOfWeek{
		DaysOfWeekFriday,
		DaysOfWeekMonday,
		DaysOfWeekSaturday,
		DaysOfWeekSunday,
		DaysOfWeekThursday,
		DaysOfWeekTuesday,
		DaysOfWeekWednesday,
	}
}

// DefaultAction - Default action for main access restriction if no rules are matched.
type DefaultAction string

const (
	DefaultActionAllow DefaultAction = "Allow"
	DefaultActionDeny  DefaultAction = "Deny"
)

// PossibleDefaultActionValues returns the possible values for the DefaultAction const type.
func PossibleDefaultActionValues() []DefaultAction {
	return []DefaultAction{
		DefaultActionAllow,
		DefaultActionDeny,
	}
}

// DeploymentBuildStatus - Deployment build status.
type DeploymentBuildStatus string

const (
	DeploymentBuildStatusBuildAborted             DeploymentBuildStatus = "BuildAborted"
	DeploymentBuildStatusBuildFailed              DeploymentBuildStatus = "BuildFailed"
	DeploymentBuildStatusBuildInProgress          DeploymentBuildStatus = "BuildInProgress"
	DeploymentBuildStatusBuildPending             DeploymentBuildStatus = "BuildPending"
	DeploymentBuildStatusBuildRequestReceived     DeploymentBuildStatus = "BuildRequestReceived"
	DeploymentBuildStatusBuildSuccessful          DeploymentBuildStatus = "BuildSuccessful"
	DeploymentBuildStatusPostBuildRestartRequired DeploymentBuildStatus = "PostBuildRestartRequired"
	DeploymentBuildStatusRuntimeFailed            DeploymentBuildStatus = "RuntimeFailed"
	DeploymentBuildStatusRuntimeStarting          DeploymentBuildStatus = "RuntimeStarting"
	DeploymentBuildStatusRuntimeSuccessful        DeploymentBuildStatus = "RuntimeSuccessful"
	DeploymentBuildStatusStartPolling             DeploymentBuildStatus = "StartPolling"
	DeploymentBuildStatusStartPollingWithRestart  DeploymentBuildStatus = "StartPollingWithRestart"
	DeploymentBuildStatusTimedOut                 DeploymentBuildStatus = "TimedOut"
)

// PossibleDeploymentBuildStatusValues returns the possible values for the DeploymentBuildStatus const type.
func PossibleDeploymentBuildStatusValues() []DeploymentBuildStatus {
	return []DeploymentBuildStatus{
		DeploymentBuildStatusBuildAborted,
		DeploymentBuildStatusBuildFailed,
		DeploymentBuildStatusBuildInProgress,
		DeploymentBuildStatusBuildPending,
		DeploymentBuildStatusBuildRequestReceived,
		DeploymentBuildStatusBuildSuccessful,
		DeploymentBuildStatusPostBuildRestartRequired,
		DeploymentBuildStatusRuntimeFailed,
		DeploymentBuildStatusRuntimeStarting,
		DeploymentBuildStatusRuntimeSuccessful,
		DeploymentBuildStatusStartPolling,
		DeploymentBuildStatusStartPollingWithRestart,
		DeploymentBuildStatusTimedOut,
	}
}

// DetectorType - Whether this detector is an Analysis Detector or not.
type DetectorType string

const (
	DetectorTypeAnalysis         DetectorType = "Analysis"
	DetectorTypeCategoryOverview DetectorType = "CategoryOverview"
	DetectorTypeDetector         DetectorType = "Detector"
)

// PossibleDetectorTypeValues returns the possible values for the DetectorType const type.
func PossibleDetectorTypeValues() []DetectorType {
	return []DetectorType{
		DetectorTypeAnalysis,
		DetectorTypeCategoryOverview,
		DetectorTypeDetector,
	}
}

// DomainStatus - Domain registration status.
type DomainStatus string

const (
	DomainStatusActive              DomainStatus = "Active"
	DomainStatusAwaiting            DomainStatus = "Awaiting"
	DomainStatusCancelled           DomainStatus = "Cancelled"
	DomainStatusConfiscated         DomainStatus = "Confiscated"
	DomainStatusDisabled            DomainStatus = "Disabled"
	DomainStatusExcluded            DomainStatus = "Excluded"
	DomainStatusExpired             DomainStatus = "Expired"
	DomainStatusFailed              DomainStatus = "Failed"
	DomainStatusHeld                DomainStatus = "Held"
	DomainStatusJSONConverterFailed DomainStatus = "JsonConverterFailed"
	DomainStatusLocked              DomainStatus = "Locked"
	DomainStatusParked              DomainStatus = "Parked"
	DomainStatusPending             DomainStatus = "Pending"
	DomainStatusReserved            DomainStatus = "Reserved"
	DomainStatusReverted            DomainStatus = "Reverted"
	DomainStatusSuspended           DomainStatus = "Suspended"
	DomainStatusTransferred         DomainStatus = "Transferred"
	DomainStatusUnknown             DomainStatus = "Unknown"
	DomainStatusUnlocked            DomainStatus = "Unlocked"
	DomainStatusUnparked            DomainStatus = "Unparked"
	DomainStatusUpdated             DomainStatus = "Updated"
)

// PossibleDomainStatusValues returns the possible values for the DomainStatus const type.
func PossibleDomainStatusValues() []DomainStatus {
	return []DomainStatus{
		DomainStatusActive,
		DomainStatusAwaiting,
		DomainStatusCancelled,
		DomainStatusConfiscated,
		DomainStatusDisabled,
		DomainStatusExcluded,
		DomainStatusExpired,
		DomainStatusFailed,
		DomainStatusHeld,
		DomainStatusJSONConverterFailed,
		DomainStatusLocked,
		DomainStatusParked,
		DomainStatusPending,
		DomainStatusReserved,
		DomainStatusReverted,
		DomainStatusSuspended,
		DomainStatusTransferred,
		DomainStatusUnknown,
		DomainStatusUnlocked,
		DomainStatusUnparked,
		DomainStatusUpdated,
	}
}

// DomainType - Valid values are Regular domain: Azure will charge the full price of domain registration, SoftDeleted: Purchasing
// this domain will simply restore it and this operation will not cost anything.
type DomainType string

const (
	DomainTypeRegular     DomainType = "Regular"
	DomainTypeSoftDeleted DomainType = "SoftDeleted"
)

// PossibleDomainTypeValues returns the possible values for the DomainType const type.
func PossibleDomainTypeValues() []DomainType {
	return []DomainType{
		DomainTypeRegular,
		DomainTypeSoftDeleted,
	}
}

// EnterpriseGradeCdnStatus - State indicating the status of the enterprise grade CDN serving traffic to the static web app.
type EnterpriseGradeCdnStatus string

const (
	EnterpriseGradeCdnStatusDisabled  EnterpriseGradeCdnStatus = "Disabled"
	EnterpriseGradeCdnStatusDisabling EnterpriseGradeCdnStatus = "Disabling"
	EnterpriseGradeCdnStatusEnabled   EnterpriseGradeCdnStatus = "Enabled"
	EnterpriseGradeCdnStatusEnabling  EnterpriseGradeCdnStatus = "Enabling"
)

// PossibleEnterpriseGradeCdnStatusValues returns the possible values for the EnterpriseGradeCdnStatus const type.
func PossibleEnterpriseGradeCdnStatusValues() []EnterpriseGradeCdnStatus {
	return []EnterpriseGradeCdnStatus{
		EnterpriseGradeCdnStatusDisabled,
		EnterpriseGradeCdnStatusDisabling,
		EnterpriseGradeCdnStatusEnabled,
		EnterpriseGradeCdnStatusEnabling,
	}
}

// ForwardProxyConvention - The convention used to determine the url of the request made.
type ForwardProxyConvention string

const (
	ForwardProxyConventionCustom   ForwardProxyConvention = "Custom"
	ForwardProxyConventionNoProxy  ForwardProxyConvention = "NoProxy"
	ForwardProxyConventionStandard ForwardProxyConvention = "Standard"
)

// PossibleForwardProxyConventionValues returns the possible values for the ForwardProxyConvention const type.
func PossibleForwardProxyConventionValues() []ForwardProxyConvention {
	return []ForwardProxyConvention{
		ForwardProxyConventionCustom,
		ForwardProxyConventionNoProxy,
		ForwardProxyConventionStandard,
	}
}

// FrequencyUnit - The unit of time for how often the backup should be executed (e.g. for weekly backup, this should be set
// to Day and FrequencyInterval should be set to 7)
type FrequencyUnit string

const (
	FrequencyUnitDay  FrequencyUnit = "Day"
	FrequencyUnitHour FrequencyUnit = "Hour"
)

// PossibleFrequencyUnitValues returns the possible values for the FrequencyUnit const type.
func PossibleFrequencyUnitValues() []FrequencyUnit {
	return []FrequencyUnit{
		FrequencyUnitDay,
		FrequencyUnitHour,
	}
}

type FrontEndServiceType string

const (
	FrontEndServiceTypeLoadBalancer FrontEndServiceType = "LoadBalancer"
	FrontEndServiceTypeNodePort     FrontEndServiceType = "NodePort"
)

// PossibleFrontEndServiceTypeValues returns the possible values for the FrontEndServiceType const type.
func PossibleFrontEndServiceTypeValues() []FrontEndServiceType {
	return []FrontEndServiceType{
		FrontEndServiceTypeLoadBalancer,
		FrontEndServiceTypeNodePort,
	}
}

// FtpsState - State of FTP / FTPS service
type FtpsState string

const (
	FtpsStateAllAllowed FtpsState = "AllAllowed"
	FtpsStateDisabled   FtpsState = "Disabled"
	FtpsStateFtpsOnly   FtpsState = "FtpsOnly"
)

// PossibleFtpsStateValues returns the possible values for the FtpsState const type.
func PossibleFtpsStateValues() []FtpsState {
	return []FtpsState{
		FtpsStateAllAllowed,
		FtpsStateDisabled,
		FtpsStateFtpsOnly,
	}
}

// FunctionsDeploymentStorageType - Property to select Azure Storage type. Available options: blobContainer.
type FunctionsDeploymentStorageType string

const (
	FunctionsDeploymentStorageTypeBlobContainer FunctionsDeploymentStorageType = "blobContainer"
)

// PossibleFunctionsDeploymentStorageTypeValues returns the possible values for the FunctionsDeploymentStorageType const type.
func PossibleFunctionsDeploymentStorageTypeValues() []FunctionsDeploymentStorageType {
	return []FunctionsDeploymentStorageType{
		FunctionsDeploymentStorageTypeBlobContainer,
	}
}

// HostNameType - Type of the hostname.
type HostNameType string

const (
	HostNameTypeManaged  HostNameType = "Managed"
	HostNameTypeVerified HostNameType = "Verified"
)

// PossibleHostNameTypeValues returns the possible values for the HostNameType const type.
func PossibleHostNameTypeValues() []HostNameType {
	return []HostNameType{
		HostNameTypeManaged,
		HostNameTypeVerified,
	}
}

// HostType - Indicates whether the hostname is a standard or repository hostname.
type HostType string

const (
	HostTypeRepository HostType = "Repository"
	HostTypeStandard   HostType = "Standard"
)

// PossibleHostTypeValues returns the possible values for the HostType const type.
func PossibleHostTypeValues() []HostType {
	return []HostType{
		HostTypeRepository,
		HostTypeStandard,
	}
}

// HostingEnvironmentStatus - Current status of the App Service Environment.
type HostingEnvironmentStatus string

const (
	HostingEnvironmentStatusDeleting  HostingEnvironmentStatus = "Deleting"
	HostingEnvironmentStatusPreparing HostingEnvironmentStatus = "Preparing"
	HostingEnvironmentStatusReady     HostingEnvironmentStatus = "Ready"
	HostingEnvironmentStatusScaling   HostingEnvironmentStatus = "Scaling"
)

// PossibleHostingEnvironmentStatusValues returns the possible values for the HostingEnvironmentStatus const type.
func PossibleHostingEnvironmentStatusValues() []HostingEnvironmentStatus {
	return []HostingEnvironmentStatus{
		HostingEnvironmentStatusDeleting,
		HostingEnvironmentStatusPreparing,
		HostingEnvironmentStatusReady,
		HostingEnvironmentStatusScaling,
	}
}

// IPFilterTag - Defines what this IP filter will be used for. This is to support IP filtering on proxies.
type IPFilterTag string

const (
	IPFilterTagDefault    IPFilterTag = "Default"
	IPFilterTagServiceTag IPFilterTag = "ServiceTag"
	IPFilterTagXffProxy   IPFilterTag = "XffProxy"
)

// PossibleIPFilterTagValues returns the possible values for the IPFilterTag const type.
func PossibleIPFilterTagValues() []IPFilterTag {
	return []IPFilterTag{
		IPFilterTagDefault,
		IPFilterTagServiceTag,
		IPFilterTagXffProxy,
	}
}

// IPMode - Specifies the IP mode of the app.
type IPMode string

const (
	IPModeIPv4        IPMode = "IPv4"
	IPModeIPv4AndIPv6 IPMode = "IPv4AndIPv6"
	IPModeIPv6        IPMode = "IPv6"
)

// PossibleIPModeValues returns the possible values for the IPMode const type.
func PossibleIPModeValues() []IPMode {
	return []IPMode{
		IPModeIPv4,
		IPModeIPv4AndIPv6,
		IPModeIPv6,
	}
}

// InAvailabilityReasonType - Invalid indicates the name provided does not match Azure App Service naming requirements. AlreadyExists
// indicates that the name is already in use and is therefore unavailable.
type InAvailabilityReasonType string

const (
	InAvailabilityReasonTypeAlreadyExists InAvailabilityReasonType = "AlreadyExists"
	InAvailabilityReasonTypeInvalid       InAvailabilityReasonType = "Invalid"
)

// PossibleInAvailabilityReasonTypeValues returns the possible values for the InAvailabilityReasonType const type.
func PossibleInAvailabilityReasonTypeValues() []InAvailabilityReasonType {
	return []InAvailabilityReasonType{
		InAvailabilityReasonTypeAlreadyExists,
		InAvailabilityReasonTypeInvalid,
	}
}

// InsightStatus - Level of the most severe insight generated by the detector.
type InsightStatus string

const (
	InsightStatusCritical InsightStatus = "Critical"
	InsightStatusInfo     InsightStatus = "Info"
	InsightStatusNone     InsightStatus = "None"
	InsightStatusSuccess  InsightStatus = "Success"
	InsightStatusWarning  InsightStatus = "Warning"
)

// PossibleInsightStatusValues returns the possible values for the InsightStatus const type.
func PossibleInsightStatusValues() []InsightStatus {
	return []InsightStatus{
		InsightStatusCritical,
		InsightStatusInfo,
		InsightStatusNone,
		InsightStatusSuccess,
		InsightStatusWarning,
	}
}

// IssueType - Represents the type of the Detector
type IssueType string

const (
	IssueTypeAppCrash             IssueType = "AppCrash"
	IssueTypeAppDeployment        IssueType = "AppDeployment"
	IssueTypeAseDeployment        IssueType = "AseDeployment"
	IssueTypeOther                IssueType = "Other"
	IssueTypePlatformIssue        IssueType = "PlatformIssue"
	IssueTypeRuntimeIssueDetected IssueType = "RuntimeIssueDetected"
	IssueTypeServiceIncident      IssueType = "ServiceIncident"
	IssueTypeUserIssue            IssueType = "UserIssue"
)

// PossibleIssueTypeValues returns the possible values for the IssueType const type.
func PossibleIssueTypeValues() []IssueType {
	return []IssueType{
		IssueTypeAppCrash,
		IssueTypeAppDeployment,
		IssueTypeAseDeployment,
		IssueTypeOther,
		IssueTypePlatformIssue,
		IssueTypeRuntimeIssueDetected,
		IssueTypeServiceIncident,
		IssueTypeUserIssue,
	}
}

// KeyType - The key type.
type KeyType string

const (
	KeyTypeNotSpecified KeyType = "NotSpecified"
	KeyTypePrimary      KeyType = "Primary"
	KeyTypeSecondary    KeyType = "Secondary"
)

// PossibleKeyTypeValues returns the possible values for the KeyType const type.
func PossibleKeyTypeValues() []KeyType {
	return []KeyType{
		KeyTypeNotSpecified,
		KeyTypePrimary,
		KeyTypeSecondary,
	}
}

// KeyVaultSecretStatus - Status of the Key Vault secret.
type KeyVaultSecretStatus string

const (
	KeyVaultSecretStatusAzureServiceUnauthorizedToAccessKeyVault KeyVaultSecretStatus = "AzureServiceUnauthorizedToAccessKeyVault"
	KeyVaultSecretStatusCertificateOrderFailed                   KeyVaultSecretStatus = "CertificateOrderFailed"
	KeyVaultSecretStatusExternalPrivateKey                       KeyVaultSecretStatus = "ExternalPrivateKey"
	KeyVaultSecretStatusInitialized                              KeyVaultSecretStatus = "Initialized"
	KeyVaultSecretStatusKeyVaultDoesNotExist                     KeyVaultSecretStatus = "KeyVaultDoesNotExist"
	KeyVaultSecretStatusKeyVaultSecretDoesNotExist               KeyVaultSecretStatus = "KeyVaultSecretDoesNotExist"
	KeyVaultSecretStatusOperationNotPermittedOnKeyVault          KeyVaultSecretStatus = "OperationNotPermittedOnKeyVault"
	KeyVaultSecretStatusSucceeded                                KeyVaultSecretStatus = "Succeeded"
	KeyVaultSecretStatusUnknown                                  KeyVaultSecretStatus = "Unknown"
	KeyVaultSecretStatusUnknownError                             KeyVaultSecretStatus = "UnknownError"
	KeyVaultSecretStatusWaitingOnCertificateOrder                KeyVaultSecretStatus = "WaitingOnCertificateOrder"
)

// PossibleKeyVaultSecretStatusValues returns the possible values for the KeyVaultSecretStatus const type.
func PossibleKeyVaultSecretStatusValues() []KeyVaultSecretStatus {
	return []KeyVaultSecretStatus{
		KeyVaultSecretStatusAzureServiceUnauthorizedToAccessKeyVault,
		KeyVaultSecretStatusCertificateOrderFailed,
		KeyVaultSecretStatusExternalPrivateKey,
		KeyVaultSecretStatusInitialized,
		KeyVaultSecretStatusKeyVaultDoesNotExist,
		KeyVaultSecretStatusKeyVaultSecretDoesNotExist,
		KeyVaultSecretStatusOperationNotPermittedOnKeyVault,
		KeyVaultSecretStatusSucceeded,
		KeyVaultSecretStatusUnknown,
		KeyVaultSecretStatusUnknownError,
		KeyVaultSecretStatusWaitingOnCertificateOrder,
	}
}

// Kind - The workflow kind.
type Kind string

const (
	KindStateful  Kind = "Stateful"
	KindStateless Kind = "Stateless"
)

// PossibleKindValues returns the possible values for the Kind const type.
func PossibleKindValues() []Kind {
	return []Kind{
		KindStateful,
		KindStateless,
	}
}

// KubeEnvironmentProvisioningState - Provisioning state of the Kubernetes Environment.
type KubeEnvironmentProvisioningState string

const (
	KubeEnvironmentProvisioningStateCanceled                      KubeEnvironmentProvisioningState = "Canceled"
	KubeEnvironmentProvisioningStateFailed                        KubeEnvironmentProvisioningState = "Failed"
	KubeEnvironmentProvisioningStateInfrastructureSetupComplete   KubeEnvironmentProvisioningState = "InfrastructureSetupComplete"
	KubeEnvironmentProvisioningStateInfrastructureSetupInProgress KubeEnvironmentProvisioningState = "InfrastructureSetupInProgress"
	KubeEnvironmentProvisioningStateInitializationInProgress      KubeEnvironmentProvisioningState = "InitializationInProgress"
	KubeEnvironmentProvisioningStateScheduledForDelete            KubeEnvironmentProvisioningState = "ScheduledForDelete"
	KubeEnvironmentProvisioningStateSucceeded                     KubeEnvironmentProvisioningState = "Succeeded"
	KubeEnvironmentProvisioningStateUpgradeFailed                 KubeEnvironmentProvisioningState = "UpgradeFailed"
	KubeEnvironmentProvisioningStateUpgradeRequested              KubeEnvironmentProvisioningState = "UpgradeRequested"
	KubeEnvironmentProvisioningStateWaiting                       KubeEnvironmentProvisioningState = "Waiting"
)

// PossibleKubeEnvironmentProvisioningStateValues returns the possible values for the KubeEnvironmentProvisioningState const type.
func PossibleKubeEnvironmentProvisioningStateValues() []KubeEnvironmentProvisioningState {
	return []KubeEnvironmentProvisioningState{
		KubeEnvironmentProvisioningStateCanceled,
		KubeEnvironmentProvisioningStateFailed,
		KubeEnvironmentProvisioningStateInfrastructureSetupComplete,
		KubeEnvironmentProvisioningStateInfrastructureSetupInProgress,
		KubeEnvironmentProvisioningStateInitializationInProgress,
		KubeEnvironmentProvisioningStateScheduledForDelete,
		KubeEnvironmentProvisioningStateSucceeded,
		KubeEnvironmentProvisioningStateUpgradeFailed,
		KubeEnvironmentProvisioningStateUpgradeRequested,
		KubeEnvironmentProvisioningStateWaiting,
	}
}

// LoadBalancingMode - Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment.
type LoadBalancingMode string

const (
	LoadBalancingModeNone          LoadBalancingMode = "None"
	LoadBalancingModePublishing    LoadBalancingMode = "Publishing"
	LoadBalancingModeWeb           LoadBalancingMode = "Web"
	LoadBalancingModeWebPublishing LoadBalancingMode = "Web, Publishing"
)

// PossibleLoadBalancingModeValues returns the possible values for the LoadBalancingMode const type.
func PossibleLoadBalancingModeValues() []LoadBalancingMode {
	return []LoadBalancingMode{
		LoadBalancingModeNone,
		LoadBalancingModePublishing,
		LoadBalancingModeWeb,
		LoadBalancingModeWebPublishing,
	}
}

// LogLevel - Log level.
type LogLevel string

const (
	LogLevelError       LogLevel = "Error"
	LogLevelInformation LogLevel = "Information"
	LogLevelOff         LogLevel = "Off"
	LogLevelVerbose     LogLevel = "Verbose"
	LogLevelWarning     LogLevel = "Warning"
)

// PossibleLogLevelValues returns the possible values for the LogLevel const type.
func PossibleLogLevelValues() []LogLevel {
	return []LogLevel{
		LogLevelError,
		LogLevelInformation,
		LogLevelOff,
		LogLevelVerbose,
		LogLevelWarning,
	}
}

// MSDeployLogEntryType - Log entry type
type MSDeployLogEntryType string

const (
	MSDeployLogEntryTypeError   MSDeployLogEntryType = "Error"
	MSDeployLogEntryTypeMessage MSDeployLogEntryType = "Message"
	MSDeployLogEntryTypeWarning MSDeployLogEntryType = "Warning"
)

// PossibleMSDeployLogEntryTypeValues returns the possible values for the MSDeployLogEntryType const type.
func PossibleMSDeployLogEntryTypeValues() []MSDeployLogEntryType {
	return []MSDeployLogEntryType{
		MSDeployLogEntryTypeError,
		MSDeployLogEntryTypeMessage,
		MSDeployLogEntryTypeWarning,
	}
}

// MSDeployProvisioningState - Provisioning state
type MSDeployProvisioningState string

const (
	MSDeployProvisioningStateAccepted  MSDeployProvisioningState = "accepted"
	MSDeployProvisioningStateCanceled  MSDeployProvisioningState = "canceled"
	MSDeployProvisioningStateFailed    MSDeployProvisioningState = "failed"
	MSDeployProvisioningStateRunning   MSDeployProvisioningState = "running"
	MSDeployProvisioningStateSucceeded MSDeployProvisioningState = "succeeded"
)

// PossibleMSDeployProvisioningStateValues returns the possible values for the MSDeployProvisioningState const type.
func PossibleMSDeployProvisioningStateValues() []MSDeployProvisioningState {
	return []MSDeployProvisioningState{
		MSDeployProvisioningStateAccepted,
		MSDeployProvisioningStateCanceled,
		MSDeployProvisioningStateFailed,
		MSDeployProvisioningStateRunning,
		MSDeployProvisioningStateSucceeded,
	}
}

// ManagedPipelineMode - Managed pipeline mode.
type ManagedPipelineMode string

const (
	ManagedPipelineModeClassic    ManagedPipelineMode = "Classic"
	ManagedPipelineModeIntegrated ManagedPipelineMode = "Integrated"
)

// PossibleManagedPipelineModeValues returns the possible values for the ManagedPipelineMode const type.
func PossibleManagedPipelineModeValues() []ManagedPipelineMode {
	return []ManagedPipelineMode{
		ManagedPipelineModeClassic,
		ManagedPipelineModeIntegrated,
	}
}

// ManagedServiceIdentityType - Type of managed service identity.
type ManagedServiceIdentityType string

const (
	ManagedServiceIdentityTypeNone                       ManagedServiceIdentityType = "None"
	ManagedServiceIdentityTypeSystemAssigned             ManagedServiceIdentityType = "SystemAssigned"
	ManagedServiceIdentityTypeSystemAssignedUserAssigned ManagedServiceIdentityType = "SystemAssigned, UserAssigned"
	ManagedServiceIdentityTypeUserAssigned               ManagedServiceIdentityType = "UserAssigned"
)

// PossibleManagedServiceIdentityTypeValues returns the possible values for the ManagedServiceIdentityType const type.
func PossibleManagedServiceIdentityTypeValues() []ManagedServiceIdentityType {
	return []ManagedServiceIdentityType{
		ManagedServiceIdentityTypeNone,
		ManagedServiceIdentityTypeSystemAssigned,
		ManagedServiceIdentityTypeSystemAssignedUserAssigned,
		ManagedServiceIdentityTypeUserAssigned,
	}
}

// MySQLMigrationType - The type of migration operation to be done
type MySQLMigrationType string

const (
	MySQLMigrationTypeLocalToRemote MySQLMigrationType = "LocalToRemote"
	MySQLMigrationTypeRemoteToLocal MySQLMigrationType = "RemoteToLocal"
)

// PossibleMySQLMigrationTypeValues returns the possible values for the MySQLMigrationType const type.
func PossibleMySQLMigrationTypeValues() []MySQLMigrationType {
	return []MySQLMigrationType{
		MySQLMigrationTypeLocalToRemote,
		MySQLMigrationTypeRemoteToLocal,
	}
}

// NotificationLevel - Level indicating how critical this recommendation can impact.
type NotificationLevel string

const (
	NotificationLevelCritical            NotificationLevel = "Critical"
	NotificationLevelInformation         NotificationLevel = "Information"
	NotificationLevelNonUrgentSuggestion NotificationLevel = "NonUrgentSuggestion"
	NotificationLevelWarning             NotificationLevel = "Warning"
)

// PossibleNotificationLevelValues returns the possible values for the NotificationLevel const type.
func PossibleNotificationLevelValues() []NotificationLevel {
	return []NotificationLevel{
		NotificationLevelCritical,
		NotificationLevelInformation,
		NotificationLevelNonUrgentSuggestion,
		NotificationLevelWarning,
	}
}

// OpenAuthenticationProviderType - Open authentication policy provider type.
type OpenAuthenticationProviderType string

const (
	OpenAuthenticationProviderTypeAAD OpenAuthenticationProviderType = "AAD"
)

// PossibleOpenAuthenticationProviderTypeValues returns the possible values for the OpenAuthenticationProviderType const type.
func PossibleOpenAuthenticationProviderTypeValues() []OpenAuthenticationProviderType {
	return []OpenAuthenticationProviderType{
		OpenAuthenticationProviderTypeAAD,
	}
}

// OperationStatus - The current status of the operation.
type OperationStatus string

const (
	OperationStatusCreated    OperationStatus = "Created"
	OperationStatusFailed     OperationStatus = "Failed"
	OperationStatusInProgress OperationStatus = "InProgress"
	OperationStatusSucceeded  OperationStatus = "Succeeded"
	OperationStatusTimedOut   OperationStatus = "TimedOut"
)

// PossibleOperationStatusValues returns the possible values for the OperationStatus const type.
func PossibleOperationStatusValues() []OperationStatus {
	return []OperationStatus{
		OperationStatusCreated,
		OperationStatusFailed,
		OperationStatusInProgress,
		OperationStatusSucceeded,
		OperationStatusTimedOut,
	}
}

// ParameterType - The parameter type.
type ParameterType string

const (
	ParameterTypeArray        ParameterType = "Array"
	ParameterTypeBool         ParameterType = "Bool"
	ParameterTypeFloat        ParameterType = "Float"
	ParameterTypeInt          ParameterType = "Int"
	ParameterTypeNotSpecified ParameterType = "NotSpecified"
	ParameterTypeObject       ParameterType = "Object"
	ParameterTypeSecureObject ParameterType = "SecureObject"
	ParameterTypeSecureString ParameterType = "SecureString"
	ParameterTypeString       ParameterType = "String"
)

// PossibleParameterTypeValues returns the possible values for the ParameterType const type.
func PossibleParameterTypeValues() []ParameterType {
	return []ParameterType{
		ParameterTypeArray,
		ParameterTypeBool,
		ParameterTypeFloat,
		ParameterTypeInt,
		ParameterTypeNotSpecified,
		ParameterTypeObject,
		ParameterTypeSecureObject,
		ParameterTypeSecureString,
		ParameterTypeString,
	}
}

type ProviderOsTypeSelected string

const (
	ProviderOsTypeSelectedAll              ProviderOsTypeSelected = "All"
	ProviderOsTypeSelectedLinux            ProviderOsTypeSelected = "Linux"
	ProviderOsTypeSelectedLinuxFunctions   ProviderOsTypeSelected = "LinuxFunctions"
	ProviderOsTypeSelectedWindows          ProviderOsTypeSelected = "Windows"
	ProviderOsTypeSelectedWindowsFunctions ProviderOsTypeSelected = "WindowsFunctions"
)

// PossibleProviderOsTypeSelectedValues returns the possible values for the ProviderOsTypeSelected const type.
func PossibleProviderOsTypeSelectedValues() []ProviderOsTypeSelected {
	return []ProviderOsTypeSelected{
		ProviderOsTypeSelectedAll,
		ProviderOsTypeSelectedLinux,
		ProviderOsTypeSelectedLinuxFunctions,
		ProviderOsTypeSelectedWindows,
		ProviderOsTypeSelectedWindowsFunctions,
	}
}

type ProviderStackOsType string

const (
	ProviderStackOsTypeAll     ProviderStackOsType = "All"
	ProviderStackOsTypeLinux   ProviderStackOsType = "Linux"
	ProviderStackOsTypeWindows ProviderStackOsType = "Windows"
)

// PossibleProviderStackOsTypeValues returns the possible values for the ProviderStackOsType const type.
func PossibleProviderStackOsTypeValues() []ProviderStackOsType {
	return []ProviderStackOsType{
		ProviderStackOsTypeAll,
		ProviderStackOsTypeLinux,
		ProviderStackOsTypeWindows,
	}
}

// ProvisioningState - Status of certificate order.
type ProvisioningState string

const (
	ProvisioningStateCanceled   ProvisioningState = "Canceled"
	ProvisioningStateDeleting   ProvisioningState = "Deleting"
	ProvisioningStateFailed     ProvisioningState = "Failed"
	ProvisioningStateInProgress ProvisioningState = "InProgress"
	ProvisioningStateSucceeded  ProvisioningState = "Succeeded"
)

// PossibleProvisioningStateValues returns the possible values for the ProvisioningState const type.
func PossibleProvisioningStateValues() []ProvisioningState {
	return []ProvisioningState{
		ProvisioningStateCanceled,
		ProvisioningStateDeleting,
		ProvisioningStateFailed,
		ProvisioningStateInProgress,
		ProvisioningStateSucceeded,
	}
}

// PublicCertificateLocation - Public Certificate Location
type PublicCertificateLocation string

const (
	PublicCertificateLocationCurrentUserMy  PublicCertificateLocation = "CurrentUserMy"
	PublicCertificateLocationLocalMachineMy PublicCertificateLocation = "LocalMachineMy"
	PublicCertificateLocationUnknown        PublicCertificateLocation = "Unknown"
)

// PossiblePublicCertificateLocationValues returns the possible values for the PublicCertificateLocation const type.
func PossiblePublicCertificateLocationValues() []PublicCertificateLocation {
	return []PublicCertificateLocation{
		PublicCertificateLocationCurrentUserMy,
		PublicCertificateLocationLocalMachineMy,
		PublicCertificateLocationUnknown,
	}
}

// PublishingProfileFormat - Name of the format. Valid values are: FileZilla3 WebDeploy -- default Ftp
type PublishingProfileFormat string

const (
	PublishingProfileFormatFileZilla3 PublishingProfileFormat = "FileZilla3"
	PublishingProfileFormatFtp        PublishingProfileFormat = "Ftp"
	PublishingProfileFormatWebDeploy  PublishingProfileFormat = "WebDeploy"
)

// PossiblePublishingProfileFormatValues returns the possible values for the PublishingProfileFormat const type.
func PossiblePublishingProfileFormatValues() []PublishingProfileFormat {
	return []PublishingProfileFormat{
		PublishingProfileFormatFileZilla3,
		PublishingProfileFormatFtp,
		PublishingProfileFormatWebDeploy,
	}
}

// RecurrenceFrequency - The recurrence frequency.
type RecurrenceFrequency string

const (
	RecurrenceFrequencyDay          RecurrenceFrequency = "Day"
	RecurrenceFrequencyHour         RecurrenceFrequency = "Hour"
	RecurrenceFrequencyMinute       RecurrenceFrequency = "Minute"
	RecurrenceFrequencyMonth        RecurrenceFrequency = "Month"
	RecurrenceFrequencyNotSpecified RecurrenceFrequency = "NotSpecified"
	RecurrenceFrequencySecond       RecurrenceFrequency = "Second"
	RecurrenceFrequencyWeek         RecurrenceFrequency = "Week"
	RecurrenceFrequencyYear         RecurrenceFrequency = "Year"
)

// PossibleRecurrenceFrequencyValues returns the possible values for the RecurrenceFrequency const type.
func PossibleRecurrenceFrequencyValues() []RecurrenceFrequency {
	return []RecurrenceFrequency{
		RecurrenceFrequencyDay,
		RecurrenceFrequencyHour,
		RecurrenceFrequencyMinute,
		RecurrenceFrequencyMonth,
		RecurrenceFrequencyNotSpecified,
		RecurrenceFrequencySecond,
		RecurrenceFrequencyWeek,
		RecurrenceFrequencyYear,
	}
}

// RedundancyMode - Site redundancy mode
type RedundancyMode string

const (
	RedundancyModeActiveActive RedundancyMode = "ActiveActive"
	RedundancyModeFailover     RedundancyMode = "Failover"
	RedundancyModeGeoRedundant RedundancyMode = "GeoRedundant"
	RedundancyModeManual       RedundancyMode = "Manual"
	RedundancyModeNone         RedundancyMode = "None"
)

// PossibleRedundancyModeValues returns the possible values for the RedundancyMode const type.
func PossibleRedundancyModeValues() []RedundancyMode {
	return []RedundancyMode{
		RedundancyModeActiveActive,
		RedundancyModeFailover,
		RedundancyModeGeoRedundant,
		RedundancyModeManual,
		RedundancyModeNone,
	}
}

// RenderingType - Rendering Type
type RenderingType string

const (
	RenderingTypeAppInsight               RenderingType = "AppInsight"
	RenderingTypeAppInsightEnablement     RenderingType = "AppInsightEnablement"
	RenderingTypeCard                     RenderingType = "Card"
	RenderingTypeChangeAnalysisOnboarding RenderingType = "ChangeAnalysisOnboarding"
	RenderingTypeChangeSets               RenderingType = "ChangeSets"
	RenderingTypeChangesView              RenderingType = "ChangesView"
	RenderingTypeDataSummary              RenderingType = "DataSummary"
	RenderingTypeDependencyGraph          RenderingType = "DependencyGraph"
	RenderingTypeDetector                 RenderingType = "Detector"
	RenderingTypeDownTime                 RenderingType = "DownTime"
	RenderingTypeDropDown                 RenderingType = "DropDown"
	RenderingTypeDynamicInsight           RenderingType = "DynamicInsight"
	RenderingTypeEmail                    RenderingType = "Email"
	RenderingTypeForm                     RenderingType = "Form"
	RenderingTypeGuage                    RenderingType = "Guage"
	RenderingTypeInsights                 RenderingType = "Insights"
	RenderingTypeMarkdown                 RenderingType = "Markdown"
	RenderingTypeNoGraph                  RenderingType = "NoGraph"
	RenderingTypePieChart                 RenderingType = "PieChart"
	RenderingTypeSearchComponent          RenderingType = "SearchComponent"
	RenderingTypeSolution                 RenderingType = "Solution"
	RenderingTypeSummaryCard              RenderingType = "SummaryCard"
	RenderingTypeTable                    RenderingType = "Table"
	RenderingTypeTimeSeries               RenderingType = "TimeSeries"
	RenderingTypeTimeSeriesPerInstance    RenderingType = "TimeSeriesPerInstance"
)

// PossibleRenderingTypeValues returns the possible values for the RenderingType const type.
func PossibleRenderingTypeValues() []RenderingType {
	return []RenderingType{
		RenderingTypeAppInsight,
		RenderingTypeAppInsightEnablement,
		RenderingTypeCard,
		RenderingTypeChangeAnalysisOnboarding,
		RenderingTypeChangeSets,
		RenderingTypeChangesView,
		RenderingTypeDataSummary,
		RenderingTypeDependencyGraph,
		RenderingTypeDetector,
		RenderingTypeDownTime,
		RenderingTypeDropDown,
		RenderingTypeDynamicInsight,
		RenderingTypeEmail,
		RenderingTypeForm,
		RenderingTypeGuage,
		RenderingTypeInsights,
		RenderingTypeMarkdown,
		RenderingTypeNoGraph,
		RenderingTypePieChart,
		RenderingTypeSearchComponent,
		RenderingTypeSolution,
		RenderingTypeSummaryCard,
		RenderingTypeTable,
		RenderingTypeTimeSeries,
		RenderingTypeTimeSeriesPerInstance,
	}
}

type ResolveStatus string

const (
	ResolveStatusAccessToKeyVaultDenied ResolveStatus = "AccessToKeyVaultDenied"
	ResolveStatusFetchTimedOut          ResolveStatus = "FetchTimedOut"
	ResolveStatusInitialized            ResolveStatus = "Initialized"
	ResolveStatusInvalidSyntax          ResolveStatus = "InvalidSyntax"
	ResolveStatusMSINotEnabled          ResolveStatus = "MSINotEnabled"
	ResolveStatusOtherReasons           ResolveStatus = "OtherReasons"
	ResolveStatusResolved               ResolveStatus = "Resolved"
	ResolveStatusSecretNotFound         ResolveStatus = "SecretNotFound"
	ResolveStatusSecretVersionNotFound  ResolveStatus = "SecretVersionNotFound"
	ResolveStatusUnauthorizedClient     ResolveStatus = "UnauthorizedClient"
	ResolveStatusVaultNotFound          ResolveStatus = "VaultNotFound"
)

// PossibleResolveStatusValues returns the possible values for the ResolveStatus const type.
func PossibleResolveStatusValues() []ResolveStatus {
	return []ResolveStatus{
		ResolveStatusAccessToKeyVaultDenied,
		ResolveStatusFetchTimedOut,
		ResolveStatusInitialized,
		ResolveStatusInvalidSyntax,
		ResolveStatusMSINotEnabled,
		ResolveStatusOtherReasons,
		ResolveStatusResolved,
		ResolveStatusSecretNotFound,
		ResolveStatusSecretVersionNotFound,
		ResolveStatusUnauthorizedClient,
		ResolveStatusVaultNotFound,
	}
}

type ResourceNotRenewableReason string

const (
	ResourceNotRenewableReasonExpirationNotInRenewalTimeRange          ResourceNotRenewableReason = "ExpirationNotInRenewalTimeRange"
	ResourceNotRenewableReasonRegistrationStatusNotSupportedForRenewal ResourceNotRenewableReason = "RegistrationStatusNotSupportedForRenewal"
	ResourceNotRenewableReasonSubscriptionNotActive                    ResourceNotRenewableReason = "SubscriptionNotActive"
)

// PossibleResourceNotRenewableReasonValues returns the possible values for the ResourceNotRenewableReason const type.
func PossibleResourceNotRenewableReasonValues() []ResourceNotRenewableReason {
	return []ResourceNotRenewableReason{
		ResourceNotRenewableReasonExpirationNotInRenewalTimeRange,
		ResourceNotRenewableReasonRegistrationStatusNotSupportedForRenewal,
		ResourceNotRenewableReasonSubscriptionNotActive,
	}
}

// ResourceScopeType - Name of a resource type this recommendation applies, e.g. Subscription, ServerFarm, Site.
type ResourceScopeType string

const (
	ResourceScopeTypeServerFarm   ResourceScopeType = "ServerFarm"
	ResourceScopeTypeSubscription ResourceScopeType = "Subscription"
	ResourceScopeTypeWebSite      ResourceScopeType = "WebSite"
)

// PossibleResourceScopeTypeValues returns the possible values for the ResourceScopeType const type.
func PossibleResourceScopeTypeValues() []ResourceScopeType {
	return []ResourceScopeType{
		ResourceScopeTypeServerFarm,
		ResourceScopeTypeSubscription,
		ResourceScopeTypeWebSite,
	}
}

// RouteType - The type of route this is: DEFAULT - By default, every app has routes to the local address ranges specified
// by RFC1918 INHERITED - Routes inherited from the real Virtual Network routes STATIC - Static
// route set on the app only
// These values will be used for syncing an app's routes with those from a Virtual Network.
type RouteType string

const (
	RouteTypeDEFAULT   RouteType = "DEFAULT"
	RouteTypeINHERITED RouteType = "INHERITED"
	RouteTypeSTATIC    RouteType = "STATIC"
)

// PossibleRouteTypeValues returns the possible values for the RouteType const type.
func PossibleRouteTypeValues() []RouteType {
	return []RouteType{
		RouteTypeDEFAULT,
		RouteTypeINHERITED,
		RouteTypeSTATIC,
	}
}

// RuntimeName - Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom
type RuntimeName string

const (
	RuntimeNameCustom         RuntimeName = "custom"
	RuntimeNameDotnetIsolated RuntimeName = "dotnet-isolated"
	RuntimeNameJava           RuntimeName = "java"
	RuntimeNameNode           RuntimeName = "node"
	RuntimeNamePowershell     RuntimeName = "powershell"
	RuntimeNamePython         RuntimeName = "python"
)

// PossibleRuntimeNameValues returns the possible values for the RuntimeName const type.
func PossibleRuntimeNameValues() []RuntimeName {
	return []RuntimeName{
		RuntimeNameCustom,
		RuntimeNameDotnetIsolated,
		RuntimeNameJava,
		RuntimeNameNode,
		RuntimeNamePowershell,
		RuntimeNamePython,
	}
}

type SKUName string

const (
	SKUNameBasic            SKUName = "Basic"
	SKUNameDynamic          SKUName = "Dynamic"
	SKUNameElasticIsolated  SKUName = "ElasticIsolated"
	SKUNameElasticPremium   SKUName = "ElasticPremium"
	SKUNameFlexConsumption  SKUName = "FlexConsumption"
	SKUNameFree             SKUName = "Free"
	SKUNameIsolated         SKUName = "Isolated"
	SKUNameIsolatedV2       SKUName = "IsolatedV2"
	SKUNamePremium          SKUName = "Premium"
	SKUNamePremiumContainer SKUName = "PremiumContainer"
	SKUNamePremiumV2        SKUName = "PremiumV2"
	SKUNamePremiumV3        SKUName = "PremiumV3"
	SKUNameShared           SKUName = "Shared"
	SKUNameStandard         SKUName = "Standard"
)

// PossibleSKUNameValues returns the possible values for the SKUName const type.
func PossibleSKUNameValues() []SKUName {
	return []SKUName{
		SKUNameBasic,
		SKUNameDynamic,
		SKUNameElasticIsolated,
		SKUNameElasticPremium,
		SKUNameFlexConsumption,
		SKUNameFree,
		SKUNameIsolated,
		SKUNameIsolatedV2,
		SKUNamePremium,
		SKUNamePremiumContainer,
		SKUNamePremiumV2,
		SKUNamePremiumV3,
		SKUNameShared,
		SKUNameStandard,
	}
}

// SSLState - SSL type
type SSLState string

const (
	SSLStateDisabled       SSLState = "Disabled"
	SSLStateIPBasedEnabled SSLState = "IpBasedEnabled"
	SSLStateSniEnabled     SSLState = "SniEnabled"
)

// PossibleSSLStateValues returns the possible values for the SSLState const type.
func PossibleSSLStateValues() []SSLState {
	return []SSLState{
		SSLStateDisabled,
		SSLStateIPBasedEnabled,
		SSLStateSniEnabled,
	}
}

// ScmType - SCM type.
type ScmType string

const (
	ScmTypeBitbucketGit ScmType = "BitbucketGit"
	ScmTypeBitbucketHg  ScmType = "BitbucketHg"
	ScmTypeCodePlexGit  ScmType = "CodePlexGit"
	ScmTypeCodePlexHg   ScmType = "CodePlexHg"
	ScmTypeDropbox      ScmType = "Dropbox"
	ScmTypeExternalGit  ScmType = "ExternalGit"
	ScmTypeExternalHg   ScmType = "ExternalHg"
	ScmTypeGitHub       ScmType = "GitHub"
	ScmTypeLocalGit     ScmType = "LocalGit"
	ScmTypeNone         ScmType = "None"
	ScmTypeOneDrive     ScmType = "OneDrive"
	ScmTypeTfs          ScmType = "Tfs"
	ScmTypeVSO          ScmType = "VSO"
	ScmTypeVSTSRM       ScmType = "VSTSRM"
)

// PossibleScmTypeValues returns the possible values for the ScmType const type.
func PossibleScmTypeValues() []ScmType {
	return []ScmType{
		ScmTypeBitbucketGit,
		ScmTypeBitbucketHg,
		ScmTypeCodePlexGit,
		ScmTypeCodePlexHg,
		ScmTypeDropbox,
		ScmTypeExternalGit,
		ScmTypeExternalHg,
		ScmTypeGitHub,
		ScmTypeLocalGit,
		ScmTypeNone,
		ScmTypeOneDrive,
		ScmTypeTfs,
		ScmTypeVSO,
		ScmTypeVSTSRM,
	}
}

// SiteAvailabilityState - Management information availability state for the app.
type SiteAvailabilityState string

const (
	SiteAvailabilityStateDisasterRecoveryMode SiteAvailabilityState = "DisasterRecoveryMode"
	SiteAvailabilityStateLimited              SiteAvailabilityState = "Limited"
	SiteAvailabilityStateNormal               SiteAvailabilityState = "Normal"
)

// PossibleSiteAvailabilityStateValues returns the possible values for the SiteAvailabilityState const type.
func PossibleSiteAvailabilityStateValues() []SiteAvailabilityState {
	return []SiteAvailabilityState{
		SiteAvailabilityStateDisasterRecoveryMode,
		SiteAvailabilityStateLimited,
		SiteAvailabilityStateNormal,
	}
}

// SiteExtensionType - Site extension type.
type SiteExtensionType string

const (
	SiteExtensionTypeGallery SiteExtensionType = "Gallery"
	SiteExtensionTypeWebRoot SiteExtensionType = "WebRoot"
)

// PossibleSiteExtensionTypeValues returns the possible values for the SiteExtensionType const type.
func PossibleSiteExtensionTypeValues() []SiteExtensionType {
	return []SiteExtensionType{
		SiteExtensionTypeGallery,
		SiteExtensionTypeWebRoot,
	}
}

// SiteLoadBalancing - Site load balancing.
type SiteLoadBalancing string

const (
	SiteLoadBalancingLeastRequests               SiteLoadBalancing = "LeastRequests"
	SiteLoadBalancingLeastRequestsWithTieBreaker SiteLoadBalancing = "LeastRequestsWithTieBreaker"
	SiteLoadBalancingLeastResponseTime           SiteLoadBalancing = "LeastResponseTime"
	SiteLoadBalancingPerSiteRoundRobin           SiteLoadBalancing = "PerSiteRoundRobin"
	SiteLoadBalancingRequestHash                 SiteLoadBalancing = "RequestHash"
	SiteLoadBalancingWeightedRoundRobin          SiteLoadBalancing = "WeightedRoundRobin"
	SiteLoadBalancingWeightedTotalTraffic        SiteLoadBalancing = "WeightedTotalTraffic"
)

// PossibleSiteLoadBalancingValues returns the possible values for the SiteLoadBalancing const type.
func PossibleSiteLoadBalancingValues() []SiteLoadBalancing {
	return []SiteLoadBalancing{
		SiteLoadBalancingLeastRequests,
		SiteLoadBalancingLeastRequestsWithTieBreaker,
		SiteLoadBalancingLeastResponseTime,
		SiteLoadBalancingPerSiteRoundRobin,
		SiteLoadBalancingRequestHash,
		SiteLoadBalancingWeightedRoundRobin,
		SiteLoadBalancingWeightedTotalTraffic,
	}
}

type SiteRuntimeState string

const (
	SiteRuntimeStateREADY   SiteRuntimeState = "READY"
	SiteRuntimeStateSTOPPED SiteRuntimeState = "STOPPED"
	SiteRuntimeStateUNKNOWN SiteRuntimeState = "UNKNOWN"
)

// PossibleSiteRuntimeStateValues returns the possible values for the SiteRuntimeState const type.
func PossibleSiteRuntimeStateValues() []SiteRuntimeState {
	return []SiteRuntimeState{
		SiteRuntimeStateREADY,
		SiteRuntimeStateSTOPPED,
		SiteRuntimeStateUNKNOWN,
	}
}

// SolutionType - Type of Solution
type SolutionType string

const (
	SolutionTypeBestPractices     SolutionType = "BestPractices"
	SolutionTypeDeepInvestigation SolutionType = "DeepInvestigation"
	SolutionTypeQuickSolution     SolutionType = "QuickSolution"
)

// PossibleSolutionTypeValues returns the possible values for the SolutionType const type.
func PossibleSolutionTypeValues() []SolutionType {
	return []SolutionType{
		SolutionTypeBestPractices,
		SolutionTypeDeepInvestigation,
		SolutionTypeQuickSolution,
	}
}

// StackPreferredOs - Function App stack preferred OS.
type StackPreferredOs string

const (
	StackPreferredOsLinux   StackPreferredOs = "Linux"
	StackPreferredOsWindows StackPreferredOs = "Windows"
)

// PossibleStackPreferredOsValues returns the possible values for the StackPreferredOs const type.
func PossibleStackPreferredOsValues() []StackPreferredOs {
	return []StackPreferredOs{
		StackPreferredOsLinux,
		StackPreferredOsWindows,
	}
}

// StagingEnvironmentPolicy - State indicating whether staging environments are allowed or not allowed for a static web app.
type StagingEnvironmentPolicy string

const (
	StagingEnvironmentPolicyDisabled StagingEnvironmentPolicy = "Disabled"
	StagingEnvironmentPolicyEnabled  StagingEnvironmentPolicy = "Enabled"
)

// PossibleStagingEnvironmentPolicyValues returns the possible values for the StagingEnvironmentPolicy const type.
func PossibleStagingEnvironmentPolicyValues() []StagingEnvironmentPolicy {
	return []StagingEnvironmentPolicy{
		StagingEnvironmentPolicyDisabled,
		StagingEnvironmentPolicyEnabled,
	}
}

// StatusOptions - App Service plan status.
type StatusOptions string

const (
	StatusOptionsCreating StatusOptions = "Creating"
	StatusOptionsPending  StatusOptions = "Pending"
	StatusOptionsReady    StatusOptions = "Ready"
)

// PossibleStatusOptionsValues returns the possible values for the StatusOptions const type.
func PossibleStatusOptionsValues() []StatusOptions {
	return []StatusOptions{
		StatusOptionsCreating,
		StatusOptionsPending,
		StatusOptionsReady,
	}
}

type StorageType string

const (
	StorageTypeLocalNode         StorageType = "LocalNode"
	StorageTypeNetworkFileSystem StorageType = "NetworkFileSystem"
)

// PossibleStorageTypeValues returns the possible values for the StorageType const type.
func PossibleStorageTypeValues() []StorageType {
	return []StorageType{
		StorageTypeLocalNode,
		StorageTypeNetworkFileSystem,
	}
}

// SupportedTLSVersions - MinTlsVersion: configures the minimum version of TLS required for SSL requests
type SupportedTLSVersions string

const (
	SupportedTLSVersionsOne0 SupportedTLSVersions = "1.0"
	SupportedTLSVersionsOne1 SupportedTLSVersions = "1.1"
	SupportedTLSVersionsOne2 SupportedTLSVersions = "1.2"
	SupportedTLSVersionsOne3 SupportedTLSVersions = "1.3"
)

// PossibleSupportedTLSVersionsValues returns the possible values for the SupportedTLSVersions const type.
func PossibleSupportedTLSVersionsValues() []SupportedTLSVersions {
	return []SupportedTLSVersions{
		SupportedTLSVersionsOne0,
		SupportedTLSVersionsOne1,
		SupportedTLSVersionsOne2,
		SupportedTLSVersionsOne3,
	}
}

// TLSCipherSuites - The minimum strength TLS cipher suite allowed for an application
type TLSCipherSuites string

const (
	TLSCipherSuitesTLSAES128GCMSHA256               TLSCipherSuites = "TLS_AES_128_GCM_SHA256"
	TLSCipherSuitesTLSAES256GCMSHA384               TLSCipherSuites = "TLS_AES_256_GCM_SHA384"
	TLSCipherSuitesTLSECDHEECDSAWITHAES128CBCSHA256 TLSCipherSuites = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
	TLSCipherSuitesTLSECDHEECDSAWITHAES128GCMSHA256 TLSCipherSuites = "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
	TLSCipherSuitesTLSECDHEECDSAWITHAES256GCMSHA384 TLSCipherSuites = "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
	TLSCipherSuitesTLSECDHERSAWITHAES128CBCSHA      TLSCipherSuites = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"
	TLSCipherSuitesTLSECDHERSAWITHAES128CBCSHA256   TLSCipherSuites = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
	TLSCipherSuitesTLSECDHERSAWITHAES128GCMSHA256   TLSCipherSuites = "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
	TLSCipherSuitesTLSECDHERSAWITHAES256CBCSHA      TLSCipherSuites = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"
	TLSCipherSuitesTLSECDHERSAWITHAES256CBCSHA384   TLSCipherSuites = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
	TLSCipherSuitesTLSECDHERSAWITHAES256GCMSHA384   TLSCipherSuites = "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
	TLSCipherSuitesTLSRSAWITHAES128CBCSHA           TLSCipherSuites = "TLS_RSA_WITH_AES_128_CBC_SHA"
	TLSCipherSuitesTLSRSAWITHAES128CBCSHA256        TLSCipherSuites = "TLS_RSA_WITH_AES_128_CBC_SHA256"
	TLSCipherSuitesTLSRSAWITHAES128GCMSHA256        TLSCipherSuites = "TLS_RSA_WITH_AES_128_GCM_SHA256"
	TLSCipherSuitesTLSRSAWITHAES256CBCSHA           TLSCipherSuites = "TLS_RSA_WITH_AES_256_CBC_SHA"
	TLSCipherSuitesTLSRSAWITHAES256CBCSHA256        TLSCipherSuites = "TLS_RSA_WITH_AES_256_CBC_SHA256"
	TLSCipherSuitesTLSRSAWITHAES256GCMSHA384        TLSCipherSuites = "TLS_RSA_WITH_AES_256_GCM_SHA384"
)

// PossibleTLSCipherSuitesValues returns the possible values for the TLSCipherSuites const type.
func PossibleTLSCipherSuitesValues() []TLSCipherSuites {
	return []TLSCipherSuites{
		TLSCipherSuitesTLSAES128GCMSHA256,
		TLSCipherSuitesTLSAES256GCMSHA384,
		TLSCipherSuitesTLSECDHEECDSAWITHAES128CBCSHA256,
		TLSCipherSuitesTLSECDHEECDSAWITHAES128GCMSHA256,
		TLSCipherSuitesTLSECDHEECDSAWITHAES256GCMSHA384,
		TLSCipherSuitesTLSECDHERSAWITHAES128CBCSHA,
		TLSCipherSuitesTLSECDHERSAWITHAES128CBCSHA256,
		TLSCipherSuitesTLSECDHERSAWITHAES128GCMSHA256,
		TLSCipherSuitesTLSECDHERSAWITHAES256CBCSHA,
		TLSCipherSuitesTLSECDHERSAWITHAES256CBCSHA384,
		TLSCipherSuitesTLSECDHERSAWITHAES256GCMSHA384,
		TLSCipherSuitesTLSRSAWITHAES128CBCSHA,
		TLSCipherSuitesTLSRSAWITHAES128CBCSHA256,
		TLSCipherSuitesTLSRSAWITHAES128GCMSHA256,
		TLSCipherSuitesTLSRSAWITHAES256CBCSHA,
		TLSCipherSuitesTLSRSAWITHAES256CBCSHA256,
		TLSCipherSuitesTLSRSAWITHAES256GCMSHA384,
	}
}

// TriggerTypes - The trigger type of the function
type TriggerTypes string

const (
	TriggerTypesHTTPTrigger TriggerTypes = "HttpTrigger"
	TriggerTypesUnknown     TriggerTypes = "Unknown"
)

// PossibleTriggerTypesValues returns the possible values for the TriggerTypes const type.
func PossibleTriggerTypesValues() []TriggerTypes {
	return []TriggerTypes{
		TriggerTypesHTTPTrigger,
		TriggerTypesUnknown,
	}
}

// TriggeredWebJobStatus - Job status.
type TriggeredWebJobStatus string

const (
	TriggeredWebJobStatusError   TriggeredWebJobStatus = "Error"
	TriggeredWebJobStatusFailed  TriggeredWebJobStatus = "Failed"
	TriggeredWebJobStatusSuccess TriggeredWebJobStatus = "Success"
)

// PossibleTriggeredWebJobStatusValues returns the possible values for the TriggeredWebJobStatus const type.
func PossibleTriggeredWebJobStatusValues() []TriggeredWebJobStatus {
	return []TriggeredWebJobStatus{
		TriggeredWebJobStatusError,
		TriggeredWebJobStatusFailed,
		TriggeredWebJobStatusSuccess,
	}
}

// UnauthenticatedClientAction - The action to take when an unauthenticated client attempts to access the app.
type UnauthenticatedClientAction string

const (
	UnauthenticatedClientActionAllowAnonymous      UnauthenticatedClientAction = "AllowAnonymous"
	UnauthenticatedClientActionRedirectToLoginPage UnauthenticatedClientAction = "RedirectToLoginPage"
)

// PossibleUnauthenticatedClientActionValues returns the possible values for the UnauthenticatedClientAction const type.
func PossibleUnauthenticatedClientActionValues() []UnauthenticatedClientAction {
	return []UnauthenticatedClientAction{
		UnauthenticatedClientActionAllowAnonymous,
		UnauthenticatedClientActionRedirectToLoginPage,
	}
}

// UnauthenticatedClientActionV2 - The action to take when an unauthenticated client attempts to access the app.
type UnauthenticatedClientActionV2 string

const (
	UnauthenticatedClientActionV2AllowAnonymous      UnauthenticatedClientActionV2 = "AllowAnonymous"
	UnauthenticatedClientActionV2RedirectToLoginPage UnauthenticatedClientActionV2 = "RedirectToLoginPage"
	UnauthenticatedClientActionV2Return401           UnauthenticatedClientActionV2 = "Return401"
	UnauthenticatedClientActionV2Return403           UnauthenticatedClientActionV2 = "Return403"
)

// PossibleUnauthenticatedClientActionV2Values returns the possible values for the UnauthenticatedClientActionV2 const type.
func PossibleUnauthenticatedClientActionV2Values() []UnauthenticatedClientActionV2 {
	return []UnauthenticatedClientActionV2{
		UnauthenticatedClientActionV2AllowAnonymous,
		UnauthenticatedClientActionV2RedirectToLoginPage,
		UnauthenticatedClientActionV2Return401,
		UnauthenticatedClientActionV2Return403,
	}
}

// UpgradeAvailability - Whether an upgrade is available for this App Service Environment.
type UpgradeAvailability string

const (
	// UpgradeAvailabilityNone - No upgrade is currently available for this App Service Environment
	UpgradeAvailabilityNone UpgradeAvailability = "None"
	// UpgradeAvailabilityReady - An upgrade is ready to be manually initiated on this App Service Environment
	UpgradeAvailabilityReady UpgradeAvailability = "Ready"
)

// PossibleUpgradeAvailabilityValues returns the possible values for the UpgradeAvailability const type.
func PossibleUpgradeAvailabilityValues() []UpgradeAvailability {
	return []UpgradeAvailability{
		UpgradeAvailabilityNone,
		UpgradeAvailabilityReady,
	}
}

// UpgradePreference - Upgrade Preference
type UpgradePreference string

const (
	// UpgradePreferenceEarly - This App Service Environment will be upgraded before others in the same region that have Upgrade
	// Preference 'Late'
	UpgradePreferenceEarly UpgradePreference = "Early"
	// UpgradePreferenceLate - This App Service Environment will be upgraded after others in the same region that have Upgrade
	// Preference 'Early'
	UpgradePreferenceLate UpgradePreference = "Late"
	// UpgradePreferenceManual - ASEv3 only. Once an upgrade is available, this App Service Environment will wait 10 days for
	// the upgrade to be manually initiated. After 10 days the upgrade will begin automatically
	UpgradePreferenceManual UpgradePreference = "Manual"
	// UpgradePreferenceNone - No preference on when this App Service Environment will be upgraded
	UpgradePreferenceNone UpgradePreference = "None"
)

// PossibleUpgradePreferenceValues returns the possible values for the UpgradePreference const type.
func PossibleUpgradePreferenceValues() []UpgradePreference {
	return []UpgradePreference{
		UpgradePreferenceEarly,
		UpgradePreferenceLate,
		UpgradePreferenceManual,
		UpgradePreferenceNone,
	}
}

// UsageState - State indicating whether the app has exceeded its quota usage. Read-only.
type UsageState string

const (
	UsageStateExceeded UsageState = "Exceeded"
	UsageStateNormal   UsageState = "Normal"
)

// PossibleUsageStateValues returns the possible values for the UsageState const type.
func PossibleUsageStateValues() []UsageState {
	return []UsageState{
		UsageStateExceeded,
		UsageStateNormal,
	}
}

// ValidateResourceTypes - Resource type used for verification.
type ValidateResourceTypes string

const (
	ValidateResourceTypesMicrosoftWebHostingEnvironments ValidateResourceTypes = "Microsoft.Web/hostingEnvironments"
	ValidateResourceTypesServerFarm                      ValidateResourceTypes = "ServerFarm"
	ValidateResourceTypesSite                            ValidateResourceTypes = "Site"
)

// PossibleValidateResourceTypesValues returns the possible values for the ValidateResourceTypes const type.
func PossibleValidateResourceTypesValues() []ValidateResourceTypes {
	return []ValidateResourceTypes{
		ValidateResourceTypesMicrosoftWebHostingEnvironments,
		ValidateResourceTypesServerFarm,
		ValidateResourceTypesSite,
	}
}

// WebJobType - Job type.
type WebJobType string

const (
	WebJobTypeContinuous WebJobType = "Continuous"
	WebJobTypeTriggered  WebJobType = "Triggered"
)

// PossibleWebJobTypeValues returns the possible values for the WebJobType const type.
func PossibleWebJobTypeValues() []WebJobType {
	return []WebJobType{
		WebJobTypeContinuous,
		WebJobTypeTriggered,
	}
}

// WorkerSizeOptions - Size of the machines.
type WorkerSizeOptions string

const (
	WorkerSizeOptionsD1               WorkerSizeOptions = "D1"
	WorkerSizeOptionsD2               WorkerSizeOptions = "D2"
	WorkerSizeOptionsD3               WorkerSizeOptions = "D3"
	WorkerSizeOptionsDefault          WorkerSizeOptions = "Default"
	WorkerSizeOptionsLarge            WorkerSizeOptions = "Large"
	WorkerSizeOptionsLargeV3          WorkerSizeOptions = "LargeV3"
	WorkerSizeOptionsMedium           WorkerSizeOptions = "Medium"
	WorkerSizeOptionsMediumV3         WorkerSizeOptions = "MediumV3"
	WorkerSizeOptionsNestedSmall      WorkerSizeOptions = "NestedSmall"
	WorkerSizeOptionsNestedSmallLinux WorkerSizeOptions = "NestedSmallLinux"
	WorkerSizeOptionsSmall            WorkerSizeOptions = "Small"
	WorkerSizeOptionsSmallV3          WorkerSizeOptions = "SmallV3"
)

// PossibleWorkerSizeOptionsValues returns the possible values for the WorkerSizeOptions const type.
func PossibleWorkerSizeOptionsValues() []WorkerSizeOptions {
	return []WorkerSizeOptions{
		WorkerSizeOptionsD1,
		WorkerSizeOptionsD2,
		WorkerSizeOptionsD3,
		WorkerSizeOptionsDefault,
		WorkerSizeOptionsLarge,
		WorkerSizeOptionsLargeV3,
		WorkerSizeOptionsMedium,
		WorkerSizeOptionsMediumV3,
		WorkerSizeOptionsNestedSmall,
		WorkerSizeOptionsNestedSmallLinux,
		WorkerSizeOptionsSmall,
		WorkerSizeOptionsSmallV3,
	}
}

// WorkflowHealthState - Gets or sets the workflow health state.
type WorkflowHealthState string

const (
	WorkflowHealthStateHealthy      WorkflowHealthState = "Healthy"
	WorkflowHealthStateNotSpecified WorkflowHealthState = "NotSpecified"
	WorkflowHealthStateUnhealthy    WorkflowHealthState = "Unhealthy"
	WorkflowHealthStateUnknown      WorkflowHealthState = "Unknown"
)

// PossibleWorkflowHealthStateValues returns the possible values for the WorkflowHealthState const type.
func PossibleWorkflowHealthStateValues() []WorkflowHealthState {
	return []WorkflowHealthState{
		WorkflowHealthStateHealthy,
		WorkflowHealthStateNotSpecified,
		WorkflowHealthStateUnhealthy,
		WorkflowHealthStateUnknown,
	}
}

// WorkflowProvisioningState - The workflow provisioning state.
type WorkflowProvisioningState string

const (
	WorkflowProvisioningStateAccepted      WorkflowProvisioningState = "Accepted"
	WorkflowProvisioningStateCanceled      WorkflowProvisioningState = "Canceled"
	WorkflowProvisioningStateCompleted     WorkflowProvisioningState = "Completed"
	WorkflowProvisioningStateCreated       WorkflowProvisioningState = "Created"
	WorkflowProvisioningStateCreating      WorkflowProvisioningState = "Creating"
	WorkflowProvisioningStateDeleted       WorkflowProvisioningState = "Deleted"
	WorkflowProvisioningStateDeleting      WorkflowProvisioningState = "Deleting"
	WorkflowProvisioningStateFailed        WorkflowProvisioningState = "Failed"
	WorkflowProvisioningStateInProgress    WorkflowProvisioningState = "InProgress"
	WorkflowProvisioningStateMoving        WorkflowProvisioningState = "Moving"
	WorkflowProvisioningStateNotSpecified  WorkflowProvisioningState = "NotSpecified"
	WorkflowProvisioningStatePending       WorkflowProvisioningState = "Pending"
	WorkflowProvisioningStateReady         WorkflowProvisioningState = "Ready"
	WorkflowProvisioningStateRegistered    WorkflowProvisioningState = "Registered"
	WorkflowProvisioningStateRegistering   WorkflowProvisioningState = "Registering"
	WorkflowProvisioningStateRenewing      WorkflowProvisioningState = "Renewing"
	WorkflowProvisioningStateRunning       WorkflowProvisioningState = "Running"
	WorkflowProvisioningStateSucceeded     WorkflowProvisioningState = "Succeeded"
	WorkflowProvisioningStateUnregistered  WorkflowProvisioningState = "Unregistered"
	WorkflowProvisioningStateUnregistering WorkflowProvisioningState = "Unregistering"
	WorkflowProvisioningStateUpdating      WorkflowProvisioningState = "Updating"
	WorkflowProvisioningStateWaiting       WorkflowProvisioningState = "Waiting"
)

// PossibleWorkflowProvisioningStateValues returns the possible values for the WorkflowProvisioningState const type.
func PossibleWorkflowProvisioningStateValues() []WorkflowProvisioningState {
	return []WorkflowProvisioningState{
		WorkflowProvisioningStateAccepted,
		WorkflowProvisioningStateCanceled,
		WorkflowProvisioningStateCompleted,
		WorkflowProvisioningStateCreated,
		WorkflowProvisioningStateCreating,
		WorkflowProvisioningStateDeleted,
		WorkflowProvisioningStateDeleting,
		WorkflowProvisioningStateFailed,
		WorkflowProvisioningStateInProgress,
		WorkflowProvisioningStateMoving,
		WorkflowProvisioningStateNotSpecified,
		WorkflowProvisioningStatePending,
		WorkflowProvisioningStateReady,
		WorkflowProvisioningStateRegistered,
		WorkflowProvisioningStateRegistering,
		WorkflowProvisioningStateRenewing,
		WorkflowProvisioningStateRunning,
		WorkflowProvisioningStateSucceeded,
		WorkflowProvisioningStateUnregistered,
		WorkflowProvisioningStateUnregistering,
		WorkflowProvisioningStateUpdating,
		WorkflowProvisioningStateWaiting,
	}
}

// WorkflowSKUName - The sku name.
type WorkflowSKUName string

const (
	WorkflowSKUNameBasic        WorkflowSKUName = "Basic"
	WorkflowSKUNameFree         WorkflowSKUName = "Free"
	WorkflowSKUNameNotSpecified WorkflowSKUName = "NotSpecified"
	WorkflowSKUNamePremium      WorkflowSKUName = "Premium"
	WorkflowSKUNameShared       WorkflowSKUName = "Shared"
	WorkflowSKUNameStandard     WorkflowSKUName = "Standard"
)

// PossibleWorkflowSKUNameValues returns the possible values for the WorkflowSKUName const type.
func PossibleWorkflowSKUNameValues() []WorkflowSKUName {
	return []WorkflowSKUName{
		WorkflowSKUNameBasic,
		WorkflowSKUNameFree,
		WorkflowSKUNameNotSpecified,
		WorkflowSKUNamePremium,
		WorkflowSKUNameShared,
		WorkflowSKUNameStandard,
	}
}

// WorkflowState - The workflow state.
type WorkflowState string

const (
	WorkflowStateCompleted    WorkflowState = "Completed"
	WorkflowStateDeleted      WorkflowState = "Deleted"
	WorkflowStateDisabled     WorkflowState = "Disabled"
	WorkflowStateEnabled      WorkflowState = "Enabled"
	WorkflowStateNotSpecified WorkflowState = "NotSpecified"
	WorkflowStateSuspended    WorkflowState = "Suspended"
)

// PossibleWorkflowStateValues returns the possible values for the WorkflowState const type.
func PossibleWorkflowStateValues() []WorkflowState {
	return []WorkflowState{
		WorkflowStateCompleted,
		WorkflowStateDeleted,
		WorkflowStateDisabled,
		WorkflowStateEnabled,
		WorkflowStateNotSpecified,
		WorkflowStateSuspended,
	}
}

// WorkflowStatus - The workflow status.
type WorkflowStatus string

const (
	WorkflowStatusAborted      WorkflowStatus = "Aborted"
	WorkflowStatusCancelled    WorkflowStatus = "Cancelled"
	WorkflowStatusFailed       WorkflowStatus = "Failed"
	WorkflowStatusFaulted      WorkflowStatus = "Faulted"
	WorkflowStatusIgnored      WorkflowStatus = "Ignored"
	WorkflowStatusNotSpecified WorkflowStatus = "NotSpecified"
	WorkflowStatusPaused       WorkflowStatus = "Paused"
	WorkflowStatusRunning      WorkflowStatus = "Running"
	WorkflowStatusSkipped      WorkflowStatus = "Skipped"
	WorkflowStatusSucceeded    WorkflowStatus = "Succeeded"
	WorkflowStatusSuspended    WorkflowStatus = "Suspended"
	WorkflowStatusTimedOut     WorkflowStatus = "TimedOut"
	WorkflowStatusWaiting      WorkflowStatus = "Waiting"
)

// PossibleWorkflowStatusValues returns the possible values for the WorkflowStatus const type.
func PossibleWorkflowStatusValues() []WorkflowStatus {
	return []WorkflowStatus{
		WorkflowStatusAborted,
		WorkflowStatusCancelled,
		WorkflowStatusFailed,
		WorkflowStatusFaulted,
		WorkflowStatusIgnored,
		WorkflowStatusNotSpecified,
		WorkflowStatusPaused,
		WorkflowStatusRunning,
		WorkflowStatusSkipped,
		WorkflowStatusSucceeded,
		WorkflowStatusSuspended,
		WorkflowStatusTimedOut,
		WorkflowStatusWaiting,
	}
}

// WorkflowTriggerProvisioningState - The workflow trigger provisioning state.
type WorkflowTriggerProvisioningState string

const (
	WorkflowTriggerProvisioningStateAccepted      WorkflowTriggerProvisioningState = "Accepted"
	WorkflowTriggerProvisioningStateCanceled      WorkflowTriggerProvisioningState = "Canceled"
	WorkflowTriggerProvisioningStateCompleted     WorkflowTriggerProvisioningState = "Completed"
	WorkflowTriggerProvisioningStateCreated       WorkflowTriggerProvisioningState = "Created"
	WorkflowTriggerProvisioningStateCreating      WorkflowTriggerProvisioningState = "Creating"
	WorkflowTriggerProvisioningStateDeleted       WorkflowTriggerProvisioningState = "Deleted"
	WorkflowTriggerProvisioningStateDeleting      WorkflowTriggerProvisioningState = "Deleting"
	WorkflowTriggerProvisioningStateFailed        WorkflowTriggerProvisioningState = "Failed"
	WorkflowTriggerProvisioningStateMoving        WorkflowTriggerProvisioningState = "Moving"
	WorkflowTriggerProvisioningStateNotSpecified  WorkflowTriggerProvisioningState = "NotSpecified"
	WorkflowTriggerProvisioningStateReady         WorkflowTriggerProvisioningState = "Ready"
	WorkflowTriggerProvisioningStateRegistered    WorkflowTriggerProvisioningState = "Registered"
	WorkflowTriggerProvisioningStateRegistering   WorkflowTriggerProvisioningState = "Registering"
	WorkflowTriggerProvisioningStateRunning       WorkflowTriggerProvisioningState = "Running"
	WorkflowTriggerProvisioningStateSucceeded     WorkflowTriggerProvisioningState = "Succeeded"
	WorkflowTriggerProvisioningStateUnregistered  WorkflowTriggerProvisioningState = "Unregistered"
	WorkflowTriggerProvisioningStateUnregistering WorkflowTriggerProvisioningState = "Unregistering"
	WorkflowTriggerProvisioningStateUpdating      WorkflowTriggerProvisioningState = "Updating"
)

// PossibleWorkflowTriggerProvisioningStateValues returns the possible values for the WorkflowTriggerProvisioningState const type.
func PossibleWorkflowTriggerProvisioningStateValues() []WorkflowTriggerProvisioningState {
	return []WorkflowTriggerProvisioningState{
		WorkflowTriggerProvisioningStateAccepted,
		WorkflowTriggerProvisioningStateCanceled,
		WorkflowTriggerProvisioningStateCompleted,
		WorkflowTriggerProvisioningStateCreated,
		WorkflowTriggerProvisioningStateCreating,
		WorkflowTriggerProvisioningStateDeleted,
		WorkflowTriggerProvisioningStateDeleting,
		WorkflowTriggerProvisioningStateFailed,
		WorkflowTriggerProvisioningStateMoving,
		WorkflowTriggerProvisioningStateNotSpecified,
		WorkflowTriggerProvisioningStateReady,
		WorkflowTriggerProvisioningStateRegistered,
		WorkflowTriggerProvisioningStateRegistering,
		WorkflowTriggerProvisioningStateRunning,
		WorkflowTriggerProvisioningStateSucceeded,
		WorkflowTriggerProvisioningStateUnregistered,
		WorkflowTriggerProvisioningStateUnregistering,
		WorkflowTriggerProvisioningStateUpdating,
	}
}
