// 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) Go Code Generator. DO NOT EDIT.

package armazurestackhcivm

// AttestBootIntegrityPropertyEnum - The status of whether the list of boot integrity properties is validated.
type AttestBootIntegrityPropertyEnum string

const (
	// AttestBootIntegrityPropertyEnumInvalid - Boot integrity properties are invalid
	AttestBootIntegrityPropertyEnumInvalid AttestBootIntegrityPropertyEnum = "Invalid"
	// AttestBootIntegrityPropertyEnumUnknown - Boot integrity properties status is unknown
	AttestBootIntegrityPropertyEnumUnknown AttestBootIntegrityPropertyEnum = "Unknown"
	// AttestBootIntegrityPropertyEnumValid - Boot integrity properties are valid
	AttestBootIntegrityPropertyEnumValid AttestBootIntegrityPropertyEnum = "Valid"
)

// PossibleAttestBootIntegrityPropertyEnumValues returns the possible values for the AttestBootIntegrityPropertyEnum const type.
func PossibleAttestBootIntegrityPropertyEnumValues() []AttestBootIntegrityPropertyEnum {
	return []AttestBootIntegrityPropertyEnum{
		AttestBootIntegrityPropertyEnumInvalid,
		AttestBootIntegrityPropertyEnumUnknown,
		AttestBootIntegrityPropertyEnumValid,
	}
}

// AttestCertPropertyEnum - The status of whether attestation certificate is validated.
type AttestCertPropertyEnum string

const (
	// AttestCertPropertyEnumInvalid - Attestation certificate is invalid
	AttestCertPropertyEnumInvalid AttestCertPropertyEnum = "Invalid"
	// AttestCertPropertyEnumUnknown - Attestation certificate status is unknown
	AttestCertPropertyEnumUnknown AttestCertPropertyEnum = "Unknown"
	// AttestCertPropertyEnumValid - Attestation certificate is valid
	AttestCertPropertyEnumValid AttestCertPropertyEnum = "Valid"
)

// PossibleAttestCertPropertyEnumValues returns the possible values for the AttestCertPropertyEnum const type.
func PossibleAttestCertPropertyEnumValues() []AttestCertPropertyEnum {
	return []AttestCertPropertyEnum{
		AttestCertPropertyEnumInvalid,
		AttestCertPropertyEnumUnknown,
		AttestCertPropertyEnumValid,
	}
}

// AttestDiskSecurityEncryptionTypeEnum - Defines type of managed disk security encryption type from attestation token.
type AttestDiskSecurityEncryptionTypeEnum string

const (
	// AttestDiskSecurityEncryptionTypeEnumNonPersistedTPM - Disk security encryption type is non-persisted Trusted Platform Module
	// (TPM)
	AttestDiskSecurityEncryptionTypeEnumNonPersistedTPM AttestDiskSecurityEncryptionTypeEnum = "NonPersistedTPM"
	// AttestDiskSecurityEncryptionTypeEnumUnknown - Disk security encryption type is unknown
	AttestDiskSecurityEncryptionTypeEnumUnknown AttestDiskSecurityEncryptionTypeEnum = "Unknown"
)

// PossibleAttestDiskSecurityEncryptionTypeEnumValues returns the possible values for the AttestDiskSecurityEncryptionTypeEnum const type.
func PossibleAttestDiskSecurityEncryptionTypeEnumValues() []AttestDiskSecurityEncryptionTypeEnum {
	return []AttestDiskSecurityEncryptionTypeEnum{
		AttestDiskSecurityEncryptionTypeEnumNonPersistedTPM,
		AttestDiskSecurityEncryptionTypeEnumUnknown,
	}
}

// AttestHWPlatformEnum - Defines type of hardware platform from attestation token.
type AttestHWPlatformEnum string

const (
	// AttestHWPlatformEnumSEVSNP - AttestHWPlatform is Secure Encrypted Virtualization Secure Nested Paging (SEVSNP)
	AttestHWPlatformEnumSEVSNP AttestHWPlatformEnum = "SEVSNP"
	// AttestHWPlatformEnumUnknown - AttestHWPlatform is unknown
	AttestHWPlatformEnumUnknown AttestHWPlatformEnum = "Unknown"
)

// PossibleAttestHWPlatformEnumValues returns the possible values for the AttestHWPlatformEnum const type.
func PossibleAttestHWPlatformEnumValues() []AttestHWPlatformEnum {
	return []AttestHWPlatformEnum{
		AttestHWPlatformEnumSEVSNP,
		AttestHWPlatformEnumUnknown,
	}
}

// AttestHealthStatusEnum - The health status of attestation validation and parsing
type AttestHealthStatusEnum string

const (
	// AttestHealthStatusEnumHealthy - Attestation validation and parsing healthy
	AttestHealthStatusEnumHealthy AttestHealthStatusEnum = "Healthy"
	// AttestHealthStatusEnumPending - Attestation validation and parsing pending
	AttestHealthStatusEnumPending AttestHealthStatusEnum = "Pending"
	// AttestHealthStatusEnumUnhealthy - Attestation validation and parsing unhealthy
	AttestHealthStatusEnumUnhealthy AttestHealthStatusEnum = "Unhealthy"
	// AttestHealthStatusEnumUnknown - Attestation validation and parsing status is unknown
	AttestHealthStatusEnumUnknown AttestHealthStatusEnum = "Unknown"
)

// PossibleAttestHealthStatusEnumValues returns the possible values for the AttestHealthStatusEnum const type.
func PossibleAttestHealthStatusEnumValues() []AttestHealthStatusEnum {
	return []AttestHealthStatusEnum{
		AttestHealthStatusEnumHealthy,
		AttestHealthStatusEnumPending,
		AttestHealthStatusEnumUnhealthy,
		AttestHealthStatusEnumUnknown,
	}
}

// AttestSecureBootPropertyEnum - The status of whether secure boot is enabled.
type AttestSecureBootPropertyEnum string

const (
	// AttestSecureBootPropertyEnumDisabled - Secure boot disabled
	AttestSecureBootPropertyEnumDisabled AttestSecureBootPropertyEnum = "Disabled"
	// AttestSecureBootPropertyEnumEnabled - Secure boot enabled
	AttestSecureBootPropertyEnumEnabled AttestSecureBootPropertyEnum = "Enabled"
	// AttestSecureBootPropertyEnumUnknown - Secure boot status is unknown
	AttestSecureBootPropertyEnumUnknown AttestSecureBootPropertyEnum = "Unknown"
)

// PossibleAttestSecureBootPropertyEnumValues returns the possible values for the AttestSecureBootPropertyEnum const type.
func PossibleAttestSecureBootPropertyEnumValues() []AttestSecureBootPropertyEnum {
	return []AttestSecureBootPropertyEnum{
		AttestSecureBootPropertyEnumDisabled,
		AttestSecureBootPropertyEnumEnabled,
		AttestSecureBootPropertyEnumUnknown,
	}
}

// CloudInitDataSource - Datasource for the gallery image when provisioning with cloud-init [NoCloud, Azure]
type CloudInitDataSource string

const (
	// CloudInitDataSourceAzure - Azure is used as the datasource
	CloudInitDataSourceAzure CloudInitDataSource = "Azure"
	// CloudInitDataSourceNoCloud - NoCloud is used as the datasource
	CloudInitDataSourceNoCloud CloudInitDataSource = "NoCloud"
)

// PossibleCloudInitDataSourceValues returns the possible values for the CloudInitDataSource const type.
func PossibleCloudInitDataSourceValues() []CloudInitDataSource {
	return []CloudInitDataSource{
		CloudInitDataSourceAzure,
		CloudInitDataSourceNoCloud,
	}
}

// CreatedByType - The kind of entity that created the resource.
type CreatedByType string

const (
	// CreatedByTypeApplication - The entity was created by an application.
	CreatedByTypeApplication CreatedByType = "Application"
	// CreatedByTypeKey - The entity was created by a key.
	CreatedByTypeKey CreatedByType = "Key"
	// CreatedByTypeManagedIdentity - The entity was created by a managed identity.
	CreatedByTypeManagedIdentity CreatedByType = "ManagedIdentity"
	// CreatedByTypeUser - The entity was created by a user.
	CreatedByTypeUser CreatedByType = "User"
)

// PossibleCreatedByTypeValues returns the possible values for the CreatedByType const type.
func PossibleCreatedByTypeValues() []CreatedByType {
	return []CreatedByType{
		CreatedByTypeApplication,
		CreatedByTypeKey,
		CreatedByTypeManagedIdentity,
		CreatedByTypeUser,
	}
}

// DiskFileFormat - The format of the actual VHD file [vhd, vhdx]
type DiskFileFormat string

const (
	// DiskFileFormatVhd - VHD file format
	DiskFileFormatVhd DiskFileFormat = "vhd"
	// DiskFileFormatVhdx - VHDX file format
	DiskFileFormatVhdx DiskFileFormat = "vhdx"
)

// PossibleDiskFileFormatValues returns the possible values for the DiskFileFormat const type.
func PossibleDiskFileFormatValues() []DiskFileFormat {
	return []DiskFileFormat{
		DiskFileFormatVhd,
		DiskFileFormatVhdx,
	}
}

// ExtendedLocationTypes - The type of extendedLocation.
type ExtendedLocationTypes string

const (
	// ExtendedLocationTypesCustomLocation - Custom extended location type
	ExtendedLocationTypesCustomLocation ExtendedLocationTypes = "CustomLocation"
)

// PossibleExtendedLocationTypesValues returns the possible values for the ExtendedLocationTypes const type.
func PossibleExtendedLocationTypesValues() []ExtendedLocationTypes {
	return []ExtendedLocationTypes{
		ExtendedLocationTypesCustomLocation,
	}
}

// GpuAssignmentTypeEnum - Gpu Assignment types
type GpuAssignmentTypeEnum string

const (
	// GpuAssignmentTypeEnumGpuDDA - Attach Graphics Processing Unit (GPU) using Discrete Device Assignment (DDA)
	GpuAssignmentTypeEnumGpuDDA GpuAssignmentTypeEnum = "GpuDDA"
	// GpuAssignmentTypeEnumGpuP - Attach Graphics Processing Unit (GPU) using GPU Partitioning
	GpuAssignmentTypeEnumGpuP GpuAssignmentTypeEnum = "GpuP"
)

// PossibleGpuAssignmentTypeEnumValues returns the possible values for the GpuAssignmentTypeEnum const type.
func PossibleGpuAssignmentTypeEnumValues() []GpuAssignmentTypeEnum {
	return []GpuAssignmentTypeEnum{
		GpuAssignmentTypeEnumGpuDDA,
		GpuAssignmentTypeEnumGpuP,
	}
}

// HyperVGeneration - The hypervisor generation of the Virtual Machine [V1, V2]
type HyperVGeneration string

const (
	// HyperVGenerationV1 - Generation 1 (V1) hypervisor
	HyperVGenerationV1 HyperVGeneration = "V1"
	// HyperVGenerationV2 - Generation 2 (V2) hypervisor
	HyperVGenerationV2 HyperVGeneration = "V2"
)

// PossibleHyperVGenerationValues returns the possible values for the HyperVGeneration const type.
func PossibleHyperVGenerationValues() []HyperVGeneration {
	return []HyperVGeneration{
		HyperVGenerationV1,
		HyperVGenerationV2,
	}
}

// IPAllocationMethodEnum - IPAllocationMethod - The IP address allocation method. Possible values include: 'Static', 'Dynamic'
type IPAllocationMethodEnum string

const (
	// IPAllocationMethodEnumDynamic - Dynamic IP allocation method
	IPAllocationMethodEnumDynamic IPAllocationMethodEnum = "Dynamic"
	// IPAllocationMethodEnumStatic - Static IP allocation method
	IPAllocationMethodEnumStatic IPAllocationMethodEnum = "Static"
)

// PossibleIPAllocationMethodEnumValues returns the possible values for the IPAllocationMethodEnum const type.
func PossibleIPAllocationMethodEnumValues() []IPAllocationMethodEnum {
	return []IPAllocationMethodEnum{
		IPAllocationMethodEnumDynamic,
		IPAllocationMethodEnumStatic,
	}
}

// IPPoolTypeEnum - Type of the IP Pool [vm, vippool]
type IPPoolTypeEnum string

const (
	// IPPoolTypeEnumVM - Virtual Machine IP Pool
	IPPoolTypeEnumVM IPPoolTypeEnum = "vm"
	// IPPoolTypeEnumVippool - VIP Pool
	IPPoolTypeEnumVippool IPPoolTypeEnum = "vippool"
)

// PossibleIPPoolTypeEnumValues returns the possible values for the IPPoolTypeEnum const type.
func PossibleIPPoolTypeEnumValues() []IPPoolTypeEnum {
	return []IPPoolTypeEnum{
		IPPoolTypeEnumVM,
		IPPoolTypeEnumVippool,
	}
}

// LogicalNetworkTypeEnum - Type of Logical Network
type LogicalNetworkTypeEnum string

const (
	// LogicalNetworkTypeEnumInfrastructure - Logical Network of type Infrastructure
	LogicalNetworkTypeEnumInfrastructure LogicalNetworkTypeEnum = "Infrastructure"
	// LogicalNetworkTypeEnumWorkload - Logical Network of type Workload
	LogicalNetworkTypeEnumWorkload LogicalNetworkTypeEnum = "Workload"
)

// PossibleLogicalNetworkTypeEnumValues returns the possible values for the LogicalNetworkTypeEnum const type.
func PossibleLogicalNetworkTypeEnumValues() []LogicalNetworkTypeEnum {
	return []LogicalNetworkTypeEnum{
		LogicalNetworkTypeEnumInfrastructure,
		LogicalNetworkTypeEnumWorkload,
	}
}

// ManagedServiceIdentityType - Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
type ManagedServiceIdentityType string

const (
	// ManagedServiceIdentityTypeNone - No managed identity.
	ManagedServiceIdentityTypeNone ManagedServiceIdentityType = "None"
	// ManagedServiceIdentityTypeSystemAssigned - System assigned managed identity.
	ManagedServiceIdentityTypeSystemAssigned ManagedServiceIdentityType = "SystemAssigned"
	// ManagedServiceIdentityTypeSystemAssignedUserAssigned - System and user assigned managed identity.
	ManagedServiceIdentityTypeSystemAssignedUserAssigned ManagedServiceIdentityType = "SystemAssigned,UserAssigned"
	// ManagedServiceIdentityTypeUserAssigned - User assigned managed identity.
	ManagedServiceIdentityTypeUserAssigned ManagedServiceIdentityType = "UserAssigned"
)

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

// OperatingSystemTypes - Operating system type that the gallery image uses [Windows, Linux]
type OperatingSystemTypes string

const (
	// OperatingSystemTypesLinux - Linux operating system
	OperatingSystemTypesLinux OperatingSystemTypes = "Linux"
	// OperatingSystemTypesWindows - Windows operating system
	OperatingSystemTypesWindows OperatingSystemTypes = "Windows"
)

// PossibleOperatingSystemTypesValues returns the possible values for the OperatingSystemTypes const type.
func PossibleOperatingSystemTypesValues() []OperatingSystemTypes {
	return []OperatingSystemTypes{
		OperatingSystemTypesLinux,
		OperatingSystemTypesWindows,
	}
}

// PowerStateEnum - The power state of the virtual machine instance
type PowerStateEnum string

const (
	// PowerStateEnumDeallocated - Virtual machine deallocated
	PowerStateEnumDeallocated PowerStateEnum = "Deallocated"
	// PowerStateEnumDeallocating - Virtual machine deallocating
	PowerStateEnumDeallocating PowerStateEnum = "Deallocating"
	// PowerStateEnumPaused - Virtual machine paused
	PowerStateEnumPaused PowerStateEnum = "Paused"
	// PowerStateEnumRunning - Virtual machine running
	PowerStateEnumRunning PowerStateEnum = "Running"
	// PowerStateEnumSaved - Virtual machine Saved,
	PowerStateEnumSaved PowerStateEnum = "Saved"
	// PowerStateEnumStarting - Virtual machine starting
	PowerStateEnumStarting PowerStateEnum = "Starting"
	// PowerStateEnumStopped - Virtual machine stopped
	PowerStateEnumStopped PowerStateEnum = "Stopped"
	// PowerStateEnumStopping - Virtual machine stopping
	PowerStateEnumStopping PowerStateEnum = "Stopping"
	// PowerStateEnumUnknown - Power state of the virtual machine is unknown
	PowerStateEnumUnknown PowerStateEnum = "Unknown"
)

// PossiblePowerStateEnumValues returns the possible values for the PowerStateEnum const type.
func PossiblePowerStateEnumValues() []PowerStateEnum {
	return []PowerStateEnum{
		PowerStateEnumDeallocated,
		PowerStateEnumDeallocating,
		PowerStateEnumPaused,
		PowerStateEnumRunning,
		PowerStateEnumSaved,
		PowerStateEnumStarting,
		PowerStateEnumStopped,
		PowerStateEnumStopping,
		PowerStateEnumUnknown,
	}
}

// ProvisioningAction - Defines the different types of operations for guest agent.
type ProvisioningAction string

const (
	// ProvisioningActionInstall - Install guest agent
	ProvisioningActionInstall ProvisioningAction = "install"
	// ProvisioningActionRepair - Repair guest agent
	ProvisioningActionRepair ProvisioningAction = "repair"
	// ProvisioningActionUninstall - Uninstall guest agent
	ProvisioningActionUninstall ProvisioningAction = "uninstall"
)

// PossibleProvisioningActionValues returns the possible values for the ProvisioningAction const type.
func PossibleProvisioningActionValues() []ProvisioningAction {
	return []ProvisioningAction{
		ProvisioningActionInstall,
		ProvisioningActionRepair,
		ProvisioningActionUninstall,
	}
}

// ProvisioningStateEnum - Provisioning state of the resource.
type ProvisioningStateEnum string

const (
	// ProvisioningStateEnumAccepted - Provisioning has been accepted
	ProvisioningStateEnumAccepted ProvisioningStateEnum = "Accepted"
	// ProvisioningStateEnumCanceled - Provisioning has been canceled
	ProvisioningStateEnumCanceled ProvisioningStateEnum = "Canceled"
	// ProvisioningStateEnumDeleting - Deletion of the resource is in progress
	ProvisioningStateEnumDeleting ProvisioningStateEnum = "Deleting"
	// ProvisioningStateEnumFailed - Provisioning has failed
	ProvisioningStateEnumFailed ProvisioningStateEnum = "Failed"
	// ProvisioningStateEnumInProgress - Provisioning is in progress
	ProvisioningStateEnumInProgress ProvisioningStateEnum = "InProgress"
	// ProvisioningStateEnumSucceeded - Provisioning has succeeded
	ProvisioningStateEnumSucceeded ProvisioningStateEnum = "Succeeded"
)

// PossibleProvisioningStateEnumValues returns the possible values for the ProvisioningStateEnum const type.
func PossibleProvisioningStateEnumValues() []ProvisioningStateEnum {
	return []ProvisioningStateEnum{
		ProvisioningStateEnumAccepted,
		ProvisioningStateEnumCanceled,
		ProvisioningStateEnumDeleting,
		ProvisioningStateEnumFailed,
		ProvisioningStateEnumInProgress,
		ProvisioningStateEnumSucceeded,
	}
}

// SecurityEncryptionType - Encryption type of the managed disk enum.
type SecurityEncryptionType string

const (
	// SecurityEncryptionTypeNonPersistedTPM - Non-persisted TPM encryption type
	SecurityEncryptionTypeNonPersistedTPM SecurityEncryptionType = "NonPersistedTPM"
)

// PossibleSecurityEncryptionTypeValues returns the possible values for the SecurityEncryptionType const type.
func PossibleSecurityEncryptionTypeValues() []SecurityEncryptionType {
	return []SecurityEncryptionType{
		SecurityEncryptionTypeNonPersistedTPM,
	}
}

// SecurityRuleAccess - Whether network traffic is allowed or denied.
type SecurityRuleAccess string

const (
	// SecurityRuleAccessAllow - Network traffic is allowed
	SecurityRuleAccessAllow SecurityRuleAccess = "Allow"
	// SecurityRuleAccessDeny - Network traffic is denied
	SecurityRuleAccessDeny SecurityRuleAccess = "Deny"
)

// PossibleSecurityRuleAccessValues returns the possible values for the SecurityRuleAccess const type.
func PossibleSecurityRuleAccessValues() []SecurityRuleAccess {
	return []SecurityRuleAccess{
		SecurityRuleAccessAllow,
		SecurityRuleAccessDeny,
	}
}

// SecurityRuleDirection - The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing
// traffic.
type SecurityRuleDirection string

const (
	// SecurityRuleDirectionInbound - Rule is evaluated on incoming traffic
	SecurityRuleDirectionInbound SecurityRuleDirection = "Inbound"
	// SecurityRuleDirectionOutbound - Rule is evaluated on outgoing traffic
	SecurityRuleDirectionOutbound SecurityRuleDirection = "Outbound"
)

// PossibleSecurityRuleDirectionValues returns the possible values for the SecurityRuleDirection const type.
func PossibleSecurityRuleDirectionValues() []SecurityRuleDirection {
	return []SecurityRuleDirection{
		SecurityRuleDirectionInbound,
		SecurityRuleDirectionOutbound,
	}
}

// SecurityRuleProtocol - Network protocol this rule applies to.
type SecurityRuleProtocol string

const (
	// SecurityRuleProtocolAsterisk - Wildcard rule for all protocols
	SecurityRuleProtocolAsterisk SecurityRuleProtocol = "*"
	// SecurityRuleProtocolIcmp - Internet Control Message Protocol
	SecurityRuleProtocolIcmp SecurityRuleProtocol = "Icmp"
	// SecurityRuleProtocolTCP - Transmission Control Protocol
	SecurityRuleProtocolTCP SecurityRuleProtocol = "Tcp"
	// SecurityRuleProtocolUDP - User Datagram Protocol
	SecurityRuleProtocolUDP SecurityRuleProtocol = "Udp"
)

// PossibleSecurityRuleProtocolValues returns the possible values for the SecurityRuleProtocol const type.
func PossibleSecurityRuleProtocolValues() []SecurityRuleProtocol {
	return []SecurityRuleProtocol{
		SecurityRuleProtocolAsterisk,
		SecurityRuleProtocolIcmp,
		SecurityRuleProtocolTCP,
		SecurityRuleProtocolUDP,
	}
}

// SecurityTypes - Specifies the SecurityType of the virtual machine. EnableTPM and SecureBootEnabled must be set to true
// for SecurityType to function.
type SecurityTypes string

const (
	// SecurityTypesConfidentialVM - Confidential VM security type
	SecurityTypesConfidentialVM SecurityTypes = "ConfidentialVM"
	// SecurityTypesTrustedLaunch - Trusted Launch security type
	SecurityTypesTrustedLaunch SecurityTypes = "TrustedLaunch"
)

// PossibleSecurityTypesValues returns the possible values for the SecurityTypes const type.
func PossibleSecurityTypesValues() []SecurityTypes {
	return []SecurityTypes{
		SecurityTypesConfidentialVM,
		SecurityTypesTrustedLaunch,
	}
}

// Status - The status of the operation performed on the resource [Succeeded, Failed, InProgress]
type Status string

const (
	// StatusFailed - Operation failed
	StatusFailed Status = "Failed"
	// StatusInProgress - Operation is in progress
	StatusInProgress Status = "InProgress"
	// StatusSucceeded - Operation succeeded
	StatusSucceeded Status = "Succeeded"
)

// PossibleStatusValues returns the possible values for the Status const type.
func PossibleStatusValues() []Status {
	return []Status{
		StatusFailed,
		StatusInProgress,
		StatusSucceeded,
	}
}

// StatusLevelTypes - The level code.
type StatusLevelTypes string

const (
	// StatusLevelTypesError - Error status level
	StatusLevelTypesError StatusLevelTypes = "Error"
	// StatusLevelTypesInfo - Informational status level
	StatusLevelTypesInfo StatusLevelTypes = "Info"
	// StatusLevelTypesWarning - Warning status level
	StatusLevelTypesWarning StatusLevelTypes = "Warning"
)

// PossibleStatusLevelTypesValues returns the possible values for the StatusLevelTypes const type.
func PossibleStatusLevelTypesValues() []StatusLevelTypes {
	return []StatusLevelTypes{
		StatusLevelTypesError,
		StatusLevelTypesInfo,
		StatusLevelTypesWarning,
	}
}

// StatusTypes - The installation status of the hybrid machine agent installation.
type StatusTypes string

const (
	// StatusTypesFailed - Installation failed
	StatusTypesFailed StatusTypes = "Failed"
	// StatusTypesInProgress - Installation in progress
	StatusTypesInProgress StatusTypes = "InProgress"
	// StatusTypesSucceeded - Installation succeeded
	StatusTypesSucceeded StatusTypes = "Succeeded"
)

// PossibleStatusTypesValues returns the possible values for the StatusTypes const type.
func PossibleStatusTypesValues() []StatusTypes {
	return []StatusTypes{
		StatusTypesFailed,
		StatusTypesInProgress,
		StatusTypesSucceeded,
	}
}

// VMSizeEnum - VM Sizes
type VMSizeEnum string

const (
	// VMSizeEnumCustom - Custom virtual machine size
	VMSizeEnumCustom VMSizeEnum = "Custom"
	// VMSizeEnumDefault - Default virtual machine size
	VMSizeEnumDefault VMSizeEnum = "Default"
	// VMSizeEnumStandardA2V2 - Standard A2 v2 virtual machine size
	VMSizeEnumStandardA2V2 VMSizeEnum = "Standard_A2_v2"
	// VMSizeEnumStandardA4V2 - Standard A4 v2 virtual machine size
	VMSizeEnumStandardA4V2 VMSizeEnum = "Standard_A4_v2"
	// VMSizeEnumStandardD16SV3 - Standard D16s v3 virtual machine size
	VMSizeEnumStandardD16SV3 VMSizeEnum = "Standard_D16s_v3"
	// VMSizeEnumStandardD2SV3 - Standard D2s v3 virtual machine size
	VMSizeEnumStandardD2SV3 VMSizeEnum = "Standard_D2s_v3"
	// VMSizeEnumStandardD32SV3 - Standard D32s v3 virtual machine size
	VMSizeEnumStandardD32SV3 VMSizeEnum = "Standard_D32s_v3"
	// VMSizeEnumStandardD4SV3 - Standard D4s v3 virtual machine size
	VMSizeEnumStandardD4SV3 VMSizeEnum = "Standard_D4s_v3"
	// VMSizeEnumStandardD8SV3 - Standard D8s v3 virtual machine size
	VMSizeEnumStandardD8SV3 VMSizeEnum = "Standard_D8s_v3"
	// VMSizeEnumStandardDS13V2 - Standard DS13 v2 virtual machine size
	VMSizeEnumStandardDS13V2 VMSizeEnum = "Standard_DS13_v2"
	// VMSizeEnumStandardDS2V2 - Standard DS2 v2 virtual machine size
	VMSizeEnumStandardDS2V2 VMSizeEnum = "Standard_DS2_v2"
	// VMSizeEnumStandardDS3V2 - Standard DS3 v2 virtual machine size
	VMSizeEnumStandardDS3V2 VMSizeEnum = "Standard_DS3_v2"
	// VMSizeEnumStandardDS4V2 - Standard DS4 v2 virtual machine size
	VMSizeEnumStandardDS4V2 VMSizeEnum = "Standard_DS4_v2"
	// VMSizeEnumStandardDS5V2 - Standard DS5 v2 virtual machine size
	VMSizeEnumStandardDS5V2 VMSizeEnum = "Standard_DS5_v2"
	// VMSizeEnumStandardK8S2V1 - Standard K8S2 v1 virtual machine size
	VMSizeEnumStandardK8S2V1 VMSizeEnum = "Standard_K8S2_v1"
	// VMSizeEnumStandardK8S3V1 - Standard K8S3 v1 virtual machine size
	VMSizeEnumStandardK8S3V1 VMSizeEnum = "Standard_K8S3_v1"
	// VMSizeEnumStandardK8S4V1 - Standard K8S4 v1 virtual machine size
	VMSizeEnumStandardK8S4V1 VMSizeEnum = "Standard_K8S4_v1"
	// VMSizeEnumStandardK8S5V1 - Standard K8S5 v1 virtual machine size
	VMSizeEnumStandardK8S5V1 VMSizeEnum = "Standard_K8S5_v1"
	// VMSizeEnumStandardK8SV1 - Standard K8S v1 virtual machine size
	VMSizeEnumStandardK8SV1 VMSizeEnum = "Standard_K8S_v1"
	// VMSizeEnumStandardNK12 - Standard NK12 virtual machine size
	VMSizeEnumStandardNK12 VMSizeEnum = "Standard_NK12"
	// VMSizeEnumStandardNK6 - Standard NK6 virtual machine size
	VMSizeEnumStandardNK6 VMSizeEnum = "Standard_NK6"
	// VMSizeEnumStandardNV12 - Standard NV12 virtual machine size
	VMSizeEnumStandardNV12 VMSizeEnum = "Standard_NV12"
	// VMSizeEnumStandardNV6 - Standard NV6 virtual machine size
	VMSizeEnumStandardNV6 VMSizeEnum = "Standard_NV6"
)

// PossibleVMSizeEnumValues returns the possible values for the VMSizeEnum const type.
func PossibleVMSizeEnumValues() []VMSizeEnum {
	return []VMSizeEnum{
		VMSizeEnumCustom,
		VMSizeEnumDefault,
		VMSizeEnumStandardA2V2,
		VMSizeEnumStandardA4V2,
		VMSizeEnumStandardD16SV3,
		VMSizeEnumStandardD2SV3,
		VMSizeEnumStandardD32SV3,
		VMSizeEnumStandardD4SV3,
		VMSizeEnumStandardD8SV3,
		VMSizeEnumStandardDS13V2,
		VMSizeEnumStandardDS2V2,
		VMSizeEnumStandardDS3V2,
		VMSizeEnumStandardDS4V2,
		VMSizeEnumStandardDS5V2,
		VMSizeEnumStandardK8S2V1,
		VMSizeEnumStandardK8S3V1,
		VMSizeEnumStandardK8S4V1,
		VMSizeEnumStandardK8S5V1,
		VMSizeEnumStandardK8SV1,
		VMSizeEnumStandardNK12,
		VMSizeEnumStandardNK6,
		VMSizeEnumStandardNV12,
		VMSizeEnumStandardNV6,
	}
}
