//go:build go1.18
// +build go1.18

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

const (
	moduleName    = "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/azurestackhci/armazurestackhci"
	moduleVersion = "v2.0.0"
)

// AccessLevel - Remote Support Access Level
type AccessLevel string

const (
	AccessLevelDiagnostics          AccessLevel = "Diagnostics"
	AccessLevelDiagnosticsAndRepair AccessLevel = "DiagnosticsAndRepair"
)

// PossibleAccessLevelValues returns the possible values for the AccessLevel const type.
func PossibleAccessLevelValues() []AccessLevel {
	return []AccessLevel{
		AccessLevelDiagnostics,
		AccessLevelDiagnosticsAndRepair,
	}
}

// ActionType - Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.
type ActionType string

const (
	ActionTypeInternal ActionType = "Internal"
)

// PossibleActionTypeValues returns the possible values for the ActionType const type.
func PossibleActionTypeValues() []ActionType {
	return []ActionType{
		ActionTypeInternal,
	}
}

// ArcExtensionState - Arc extension installation state.
type ArcExtensionState string

const (
	// ArcExtensionStateAccepted - Arc extension state is Accepted when extension installation triggered.
	ArcExtensionStateAccepted ArcExtensionState = "Accepted"
	// ArcExtensionStateCanceled - Arc extension state is Canceled.
	ArcExtensionStateCanceled ArcExtensionState = "Canceled"
	// ArcExtensionStateCreating - Arc extension is in Creating State.
	ArcExtensionStateCreating ArcExtensionState = "Creating"
	// ArcExtensionStateDeleted - Arc extension is in Deleted State.
	ArcExtensionStateDeleted ArcExtensionState = "Deleted"
	// ArcExtensionStateDeleting - Arc extension is in Deleting State.
	ArcExtensionStateDeleting ArcExtensionState = "Deleting"
	// ArcExtensionStateFailed - Arc extension state is Failed.
	ArcExtensionStateFailed ArcExtensionState = "Failed"
	// ArcExtensionStateMoving - Arc extension is in Moving State.
	ArcExtensionStateMoving ArcExtensionState = "Moving"
	// ArcExtensionStateNotSpecified - Arc extension state is not specified.
	ArcExtensionStateNotSpecified ArcExtensionState = "NotSpecified"
	// ArcExtensionStateSucceeded - Arc extension state is Succeeded.
	ArcExtensionStateSucceeded ArcExtensionState = "Succeeded"
	// ArcExtensionStateUpdating - Arc extension is in Updating State.
	ArcExtensionStateUpdating ArcExtensionState = "Updating"
)

// PossibleArcExtensionStateValues returns the possible values for the ArcExtensionState const type.
func PossibleArcExtensionStateValues() []ArcExtensionState {
	return []ArcExtensionState{
		ArcExtensionStateAccepted,
		ArcExtensionStateCanceled,
		ArcExtensionStateCreating,
		ArcExtensionStateDeleted,
		ArcExtensionStateDeleting,
		ArcExtensionStateFailed,
		ArcExtensionStateMoving,
		ArcExtensionStateNotSpecified,
		ArcExtensionStateSucceeded,
		ArcExtensionStateUpdating,
	}
}

// ArcSettingAggregateState - Aggregate state of Arc agent across the nodes in this HCI cluster.
type ArcSettingAggregateState string

const (
	ArcSettingAggregateStateAccepted           ArcSettingAggregateState = "Accepted"
	ArcSettingAggregateStateCanceled           ArcSettingAggregateState = "Canceled"
	ArcSettingAggregateStateConnected          ArcSettingAggregateState = "Connected"
	ArcSettingAggregateStateCreating           ArcSettingAggregateState = "Creating"
	ArcSettingAggregateStateDeleted            ArcSettingAggregateState = "Deleted"
	ArcSettingAggregateStateDeleting           ArcSettingAggregateState = "Deleting"
	ArcSettingAggregateStateDisableInProgress  ArcSettingAggregateState = "DisableInProgress"
	ArcSettingAggregateStateDisconnected       ArcSettingAggregateState = "Disconnected"
	ArcSettingAggregateStateError              ArcSettingAggregateState = "Error"
	ArcSettingAggregateStateFailed             ArcSettingAggregateState = "Failed"
	ArcSettingAggregateStateInProgress         ArcSettingAggregateState = "InProgress"
	ArcSettingAggregateStateMoving             ArcSettingAggregateState = "Moving"
	ArcSettingAggregateStateNotSpecified       ArcSettingAggregateState = "NotSpecified"
	ArcSettingAggregateStatePartiallyConnected ArcSettingAggregateState = "PartiallyConnected"
	ArcSettingAggregateStatePartiallySucceeded ArcSettingAggregateState = "PartiallySucceeded"
	ArcSettingAggregateStateProvisioning       ArcSettingAggregateState = "Provisioning"
	ArcSettingAggregateStateSucceeded          ArcSettingAggregateState = "Succeeded"
	ArcSettingAggregateStateUpdating           ArcSettingAggregateState = "Updating"
)

// PossibleArcSettingAggregateStateValues returns the possible values for the ArcSettingAggregateState const type.
func PossibleArcSettingAggregateStateValues() []ArcSettingAggregateState {
	return []ArcSettingAggregateState{
		ArcSettingAggregateStateAccepted,
		ArcSettingAggregateStateCanceled,
		ArcSettingAggregateStateConnected,
		ArcSettingAggregateStateCreating,
		ArcSettingAggregateStateDeleted,
		ArcSettingAggregateStateDeleting,
		ArcSettingAggregateStateDisableInProgress,
		ArcSettingAggregateStateDisconnected,
		ArcSettingAggregateStateError,
		ArcSettingAggregateStateFailed,
		ArcSettingAggregateStateInProgress,
		ArcSettingAggregateStateMoving,
		ArcSettingAggregateStateNotSpecified,
		ArcSettingAggregateStatePartiallyConnected,
		ArcSettingAggregateStatePartiallySucceeded,
		ArcSettingAggregateStateProvisioning,
		ArcSettingAggregateStateSucceeded,
		ArcSettingAggregateStateUpdating,
	}
}

// AvailabilityType - Indicates the way the update content can be downloaded.
type AvailabilityType string

const (
	AvailabilityTypeLocal  AvailabilityType = "Local"
	AvailabilityTypeNotify AvailabilityType = "Notify"
	AvailabilityTypeOnline AvailabilityType = "Online"
)

// PossibleAvailabilityTypeValues returns the possible values for the AvailabilityType const type.
func PossibleAvailabilityTypeValues() []AvailabilityType {
	return []AvailabilityType{
		AvailabilityTypeLocal,
		AvailabilityTypeNotify,
		AvailabilityTypeOnline,
	}
}

// ClusterNodeType - The node type of all the nodes of the cluster.
type ClusterNodeType string

const (
	ClusterNodeTypeFirstParty ClusterNodeType = "FirstParty"
	ClusterNodeTypeThirdParty ClusterNodeType = "ThirdParty"
)

// PossibleClusterNodeTypeValues returns the possible values for the ClusterNodeType const type.
func PossibleClusterNodeTypeValues() []ClusterNodeType {
	return []ClusterNodeType{
		ClusterNodeTypeFirstParty,
		ClusterNodeTypeThirdParty,
	}
}

// ComplianceAssignmentType - Represents the compliance assignment type of a resource.
type ComplianceAssignmentType string

const (
	// ComplianceAssignmentTypeApplyAndAutoCorrect - Applied to the machine. If it drifts, the local service inside the machine
	// makes a correction at the next evaluation.
	ComplianceAssignmentTypeApplyAndAutoCorrect ComplianceAssignmentType = "ApplyAndAutoCorrect"
	// ComplianceAssignmentTypeAudit - Report on the state of the machine, but don't make changes.
	ComplianceAssignmentTypeAudit ComplianceAssignmentType = "Audit"
)

// PossibleComplianceAssignmentTypeValues returns the possible values for the ComplianceAssignmentType const type.
func PossibleComplianceAssignmentTypeValues() []ComplianceAssignmentType {
	return []ComplianceAssignmentType{
		ComplianceAssignmentTypeApplyAndAutoCorrect,
		ComplianceAssignmentTypeAudit,
	}
}

// ComplianceStatus - Represents the compliance status of a resource.
type ComplianceStatus string

const (
	// ComplianceStatusCompliant - The resource is compliant
	ComplianceStatusCompliant ComplianceStatus = "Compliant"
	// ComplianceStatusNonCompliant - The resource is non-compliant
	ComplianceStatusNonCompliant ComplianceStatus = "NonCompliant"
	// ComplianceStatusPending - The resource compliance status is pending
	ComplianceStatusPending ComplianceStatus = "Pending"
)

// PossibleComplianceStatusValues returns the possible values for the ComplianceStatus const type.
func PossibleComplianceStatusValues() []ComplianceStatus {
	return []ComplianceStatus{
		ComplianceStatusCompliant,
		ComplianceStatusNonCompliant,
		ComplianceStatusPending,
	}
}

// ConnectivityStatus - Overall connectivity status for the cluster resource.
type ConnectivityStatus string

const (
	ConnectivityStatusConnected            ConnectivityStatus = "Connected"
	ConnectivityStatusDisconnected         ConnectivityStatus = "Disconnected"
	ConnectivityStatusNotConnectedRecently ConnectivityStatus = "NotConnectedRecently"
	ConnectivityStatusNotSpecified         ConnectivityStatus = "NotSpecified"
	ConnectivityStatusNotYetRegistered     ConnectivityStatus = "NotYetRegistered"
	ConnectivityStatusPartiallyConnected   ConnectivityStatus = "PartiallyConnected"
)

// PossibleConnectivityStatusValues returns the possible values for the ConnectivityStatus const type.
func PossibleConnectivityStatusValues() []ConnectivityStatus {
	return []ConnectivityStatus{
		ConnectivityStatusConnected,
		ConnectivityStatusDisconnected,
		ConnectivityStatusNotConnectedRecently,
		ConnectivityStatusNotSpecified,
		ConnectivityStatusNotYetRegistered,
		ConnectivityStatusPartiallyConnected,
	}
}

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

const (
	CreatedByTypeApplication     CreatedByType = "Application"
	CreatedByTypeKey             CreatedByType = "Key"
	CreatedByTypeManagedIdentity CreatedByType = "ManagedIdentity"
	CreatedByTypeUser            CreatedByType = "User"
)

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

// DeploymentMode - The deployment mode of EnterpriseCloudEngine(ECE) action for a cluster.
type DeploymentMode string

const (
	// DeploymentModeDeploy - Deploy ECE action deployment for a cluster.
	DeploymentModeDeploy DeploymentMode = "Deploy"
	// DeploymentModeValidate - Validate ECE action deployment for a cluster.
	DeploymentModeValidate DeploymentMode = "Validate"
)

// PossibleDeploymentModeValues returns the possible values for the DeploymentMode const type.
func PossibleDeploymentModeValues() []DeploymentMode {
	return []DeploymentMode{
		DeploymentModeDeploy,
		DeploymentModeValidate,
	}
}

// DeviceKind - Edge device kind.
type DeviceKind string

const (
	// DeviceKindHCI - Arc-enabled edge device with HCI OS.
	DeviceKindHCI DeviceKind = "HCI"
)

// PossibleDeviceKindValues returns the possible values for the DeviceKind const type.
func PossibleDeviceKindValues() []DeviceKind {
	return []DeviceKind{
		DeviceKindHCI,
	}
}

// DeviceState - The edge device state.
type DeviceState string

const (
	// DeviceStateConnected - The edge device state is in connected state.
	DeviceStateConnected DeviceState = "Connected"
	// DeviceStateDisconnected - The edge device state is in disconnected state.
	DeviceStateDisconnected DeviceState = "Disconnected"
	// DeviceStateDraining - The edge device state is in draining state.
	DeviceStateDraining DeviceState = "Draining"
	// DeviceStateInMaintenance - The edge device state is in maintenance state.
	DeviceStateInMaintenance DeviceState = "InMaintenance"
	// DeviceStateNotSpecified - The edge device state is not specified.
	DeviceStateNotSpecified DeviceState = "NotSpecified"
	// DeviceStateProcessing - The edge device state is in processing state.
	DeviceStateProcessing DeviceState = "Processing"
	// DeviceStateRepairing - The edge device state is in repairing state.
	DeviceStateRepairing DeviceState = "Repairing"
	// DeviceStateResuming - The edge device state is in resuming state.
	DeviceStateResuming DeviceState = "Resuming"
)

// PossibleDeviceStateValues returns the possible values for the DeviceState const type.
func PossibleDeviceStateValues() []DeviceState {
	return []DeviceState{
		DeviceStateConnected,
		DeviceStateDisconnected,
		DeviceStateDraining,
		DeviceStateInMaintenance,
		DeviceStateNotSpecified,
		DeviceStateProcessing,
		DeviceStateRepairing,
		DeviceStateResuming,
	}
}

// DiagnosticLevel - Desired level of diagnostic data emitted by the cluster.
type DiagnosticLevel string

const (
	DiagnosticLevelBasic    DiagnosticLevel = "Basic"
	DiagnosticLevelEnhanced DiagnosticLevel = "Enhanced"
	DiagnosticLevelOff      DiagnosticLevel = "Off"
)

// PossibleDiagnosticLevelValues returns the possible values for the DiagnosticLevel const type.
func PossibleDiagnosticLevelValues() []DiagnosticLevel {
	return []DiagnosticLevel{
		DiagnosticLevelBasic,
		DiagnosticLevelEnhanced,
		DiagnosticLevelOff,
	}
}

// EceSecrets - Secret names allowed for Enterprise Cloud Engine (ECE) deployment.
type EceSecrets string

const (
	// EceSecretsAzureStackLCMUserCredential - AzureStackLCMUserCredential used for LCM operations for AzureStackHCI cluster.
	EceSecretsAzureStackLCMUserCredential EceSecrets = "AzureStackLCMUserCredential"
	// EceSecretsDefaultARBApplication - DefaultARBApplication used to manage Azure Arc resource bridge (ARB) for AzureStackHCI
	// cluster.
	EceSecretsDefaultARBApplication EceSecrets = "DefaultARBApplication"
	// EceSecretsLocalAdminCredential - LocalAdminCredential used for admin operations for AzureStackHCI cluster.
	EceSecretsLocalAdminCredential EceSecrets = "LocalAdminCredential"
	// EceSecretsWitnessStorageKey - WitnessStorageKey used for setting up a cloud witness for AzureStackHCI cluster.
	EceSecretsWitnessStorageKey EceSecrets = "WitnessStorageKey"
)

// PossibleEceSecretsValues returns the possible values for the EceSecrets const type.
func PossibleEceSecretsValues() []EceSecrets {
	return []EceSecrets{
		EceSecretsAzureStackLCMUserCredential,
		EceSecretsDefaultARBApplication,
		EceSecretsLocalAdminCredential,
		EceSecretsWitnessStorageKey,
	}
}

// ExtensionAggregateState - Aggregate state of Arc Extensions across the nodes in this HCI cluster.
type ExtensionAggregateState string

const (
	ExtensionAggregateStateAccepted                       ExtensionAggregateState = "Accepted"
	ExtensionAggregateStateCanceled                       ExtensionAggregateState = "Canceled"
	ExtensionAggregateStateConnected                      ExtensionAggregateState = "Connected"
	ExtensionAggregateStateCreating                       ExtensionAggregateState = "Creating"
	ExtensionAggregateStateDeleted                        ExtensionAggregateState = "Deleted"
	ExtensionAggregateStateDeleting                       ExtensionAggregateState = "Deleting"
	ExtensionAggregateStateDisconnected                   ExtensionAggregateState = "Disconnected"
	ExtensionAggregateStateError                          ExtensionAggregateState = "Error"
	ExtensionAggregateStateFailed                         ExtensionAggregateState = "Failed"
	ExtensionAggregateStateInProgress                     ExtensionAggregateState = "InProgress"
	ExtensionAggregateStateMoving                         ExtensionAggregateState = "Moving"
	ExtensionAggregateStateNotSpecified                   ExtensionAggregateState = "NotSpecified"
	ExtensionAggregateStatePartiallyConnected             ExtensionAggregateState = "PartiallyConnected"
	ExtensionAggregateStatePartiallySucceeded             ExtensionAggregateState = "PartiallySucceeded"
	ExtensionAggregateStateProvisioning                   ExtensionAggregateState = "Provisioning"
	ExtensionAggregateStateSucceeded                      ExtensionAggregateState = "Succeeded"
	ExtensionAggregateStateUpdating                       ExtensionAggregateState = "Updating"
	ExtensionAggregateStateUpgradeFailedRollbackSucceeded ExtensionAggregateState = "UpgradeFailedRollbackSucceeded"
)

// PossibleExtensionAggregateStateValues returns the possible values for the ExtensionAggregateState const type.
func PossibleExtensionAggregateStateValues() []ExtensionAggregateState {
	return []ExtensionAggregateState{
		ExtensionAggregateStateAccepted,
		ExtensionAggregateStateCanceled,
		ExtensionAggregateStateConnected,
		ExtensionAggregateStateCreating,
		ExtensionAggregateStateDeleted,
		ExtensionAggregateStateDeleting,
		ExtensionAggregateStateDisconnected,
		ExtensionAggregateStateError,
		ExtensionAggregateStateFailed,
		ExtensionAggregateStateInProgress,
		ExtensionAggregateStateMoving,
		ExtensionAggregateStateNotSpecified,
		ExtensionAggregateStatePartiallyConnected,
		ExtensionAggregateStatePartiallySucceeded,
		ExtensionAggregateStateProvisioning,
		ExtensionAggregateStateSucceeded,
		ExtensionAggregateStateUpdating,
		ExtensionAggregateStateUpgradeFailedRollbackSucceeded,
	}
}

// ExtensionManagedBy - Extension managed by user or Azure.
type ExtensionManagedBy string

const (
	ExtensionManagedByAzure ExtensionManagedBy = "Azure"
	ExtensionManagedByUser  ExtensionManagedBy = "User"
)

// PossibleExtensionManagedByValues returns the possible values for the ExtensionManagedBy const type.
func PossibleExtensionManagedByValues() []ExtensionManagedBy {
	return []ExtensionManagedBy{
		ExtensionManagedByAzure,
		ExtensionManagedByUser,
	}
}

type HealthState string

const (
	HealthStateError      HealthState = "Error"
	HealthStateFailure    HealthState = "Failure"
	HealthStateInProgress HealthState = "InProgress"
	HealthStateSuccess    HealthState = "Success"
	HealthStateUnknown    HealthState = "Unknown"
	HealthStateWarning    HealthState = "Warning"
)

// PossibleHealthStateValues returns the possible values for the HealthState const type.
func PossibleHealthStateValues() []HealthState {
	return []HealthState{
		HealthStateError,
		HealthStateFailure,
		HealthStateInProgress,
		HealthStateSuccess,
		HealthStateUnknown,
		HealthStateWarning,
	}
}

// ImdsAttestation - IMDS attestation status of the cluster.
type ImdsAttestation string

const (
	ImdsAttestationDisabled ImdsAttestation = "Disabled"
	ImdsAttestationEnabled  ImdsAttestation = "Enabled"
)

// PossibleImdsAttestationValues returns the possible values for the ImdsAttestation const type.
func PossibleImdsAttestationValues() []ImdsAttestation {
	return []ImdsAttestation{
		ImdsAttestationDisabled,
		ImdsAttestationEnabled,
	}
}

// LogCollectionJobType - LogCollection job type
type LogCollectionJobType string

const (
	LogCollectionJobTypeOnDemand  LogCollectionJobType = "OnDemand"
	LogCollectionJobTypeScheduled LogCollectionJobType = "Scheduled"
)

// PossibleLogCollectionJobTypeValues returns the possible values for the LogCollectionJobType const type.
func PossibleLogCollectionJobTypeValues() []LogCollectionJobType {
	return []LogCollectionJobType{
		LogCollectionJobTypeOnDemand,
		LogCollectionJobTypeScheduled,
	}
}

// LogCollectionStatus - LogCollection status
type LogCollectionStatus string

const (
	LogCollectionStatusFailed     LogCollectionStatus = "Failed"
	LogCollectionStatusInProgress LogCollectionStatus = "InProgress"
	LogCollectionStatusNone       LogCollectionStatus = "None"
	LogCollectionStatusSucceeded  LogCollectionStatus = "Succeeded"
)

// PossibleLogCollectionStatusValues returns the possible values for the LogCollectionStatus const type.
func PossibleLogCollectionStatusValues() []LogCollectionStatus {
	return []LogCollectionStatus{
		LogCollectionStatusFailed,
		LogCollectionStatusInProgress,
		LogCollectionStatusNone,
		LogCollectionStatusSucceeded,
	}
}

// ManagedServiceIdentityType - Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
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,
	}
}

// NodeArcState - State of Arc agent in this node.
type NodeArcState string

const (
	NodeArcStateAccepted           NodeArcState = "Accepted"
	NodeArcStateCanceled           NodeArcState = "Canceled"
	NodeArcStateConnected          NodeArcState = "Connected"
	NodeArcStateCreating           NodeArcState = "Creating"
	NodeArcStateDeleted            NodeArcState = "Deleted"
	NodeArcStateDeleting           NodeArcState = "Deleting"
	NodeArcStateDisableInProgress  NodeArcState = "DisableInProgress"
	NodeArcStateDisconnected       NodeArcState = "Disconnected"
	NodeArcStateError              NodeArcState = "Error"
	NodeArcStateFailed             NodeArcState = "Failed"
	NodeArcStateInProgress         NodeArcState = "InProgress"
	NodeArcStateMoving             NodeArcState = "Moving"
	NodeArcStateNotSpecified       NodeArcState = "NotSpecified"
	NodeArcStatePartiallyConnected NodeArcState = "PartiallyConnected"
	NodeArcStatePartiallySucceeded NodeArcState = "PartiallySucceeded"
	NodeArcStateProvisioning       NodeArcState = "Provisioning"
	NodeArcStateSucceeded          NodeArcState = "Succeeded"
	NodeArcStateUpdating           NodeArcState = "Updating"
)

// PossibleNodeArcStateValues returns the possible values for the NodeArcState const type.
func PossibleNodeArcStateValues() []NodeArcState {
	return []NodeArcState{
		NodeArcStateAccepted,
		NodeArcStateCanceled,
		NodeArcStateConnected,
		NodeArcStateCreating,
		NodeArcStateDeleted,
		NodeArcStateDeleting,
		NodeArcStateDisableInProgress,
		NodeArcStateDisconnected,
		NodeArcStateError,
		NodeArcStateFailed,
		NodeArcStateInProgress,
		NodeArcStateMoving,
		NodeArcStateNotSpecified,
		NodeArcStatePartiallyConnected,
		NodeArcStatePartiallySucceeded,
		NodeArcStateProvisioning,
		NodeArcStateSucceeded,
		NodeArcStateUpdating,
	}
}

// NodeExtensionState - State of Arc Extension in this node.
type NodeExtensionState string

const (
	NodeExtensionStateAccepted           NodeExtensionState = "Accepted"
	NodeExtensionStateCanceled           NodeExtensionState = "Canceled"
	NodeExtensionStateConnected          NodeExtensionState = "Connected"
	NodeExtensionStateCreating           NodeExtensionState = "Creating"
	NodeExtensionStateDeleted            NodeExtensionState = "Deleted"
	NodeExtensionStateDeleting           NodeExtensionState = "Deleting"
	NodeExtensionStateDisconnected       NodeExtensionState = "Disconnected"
	NodeExtensionStateError              NodeExtensionState = "Error"
	NodeExtensionStateFailed             NodeExtensionState = "Failed"
	NodeExtensionStateInProgress         NodeExtensionState = "InProgress"
	NodeExtensionStateMoving             NodeExtensionState = "Moving"
	NodeExtensionStateNotSpecified       NodeExtensionState = "NotSpecified"
	NodeExtensionStatePartiallyConnected NodeExtensionState = "PartiallyConnected"
	NodeExtensionStatePartiallySucceeded NodeExtensionState = "PartiallySucceeded"
	NodeExtensionStateProvisioning       NodeExtensionState = "Provisioning"
	NodeExtensionStateSucceeded          NodeExtensionState = "Succeeded"
	NodeExtensionStateUpdating           NodeExtensionState = "Updating"
)

// PossibleNodeExtensionStateValues returns the possible values for the NodeExtensionState const type.
func PossibleNodeExtensionStateValues() []NodeExtensionState {
	return []NodeExtensionState{
		NodeExtensionStateAccepted,
		NodeExtensionStateCanceled,
		NodeExtensionStateConnected,
		NodeExtensionStateCreating,
		NodeExtensionStateDeleted,
		NodeExtensionStateDeleting,
		NodeExtensionStateDisconnected,
		NodeExtensionStateError,
		NodeExtensionStateFailed,
		NodeExtensionStateInProgress,
		NodeExtensionStateMoving,
		NodeExtensionStateNotSpecified,
		NodeExtensionStatePartiallyConnected,
		NodeExtensionStatePartiallySucceeded,
		NodeExtensionStateProvisioning,
		NodeExtensionStateSucceeded,
		NodeExtensionStateUpdating,
	}
}

// OemActivation - OEM activation status of the cluster.
type OemActivation string

const (
	OemActivationDisabled OemActivation = "Disabled"
	OemActivationEnabled  OemActivation = "Enabled"
)

// PossibleOemActivationValues returns the possible values for the OemActivation const type.
func PossibleOemActivationValues() []OemActivation {
	return []OemActivation{
		OemActivationDisabled,
		OemActivationEnabled,
	}
}

// OperationType - The intended operation for a cluster.
type OperationType string

const (
	// OperationTypeClusterProvisioning - Cluster provisioning operation.
	OperationTypeClusterProvisioning OperationType = "ClusterProvisioning"
	// OperationTypeClusterUpgrade - Cluster upgrade operation.
	OperationTypeClusterUpgrade OperationType = "ClusterUpgrade"
)

// PossibleOperationTypeValues returns the possible values for the OperationType const type.
func PossibleOperationTypeValues() []OperationType {
	return []OperationType{
		OperationTypeClusterProvisioning,
		OperationTypeClusterUpgrade,
	}
}

// Origin - The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default
// value is "user,system"
type Origin string

const (
	OriginSystem     Origin = "system"
	OriginUser       Origin = "user"
	OriginUserSystem Origin = "user,system"
)

// PossibleOriginValues returns the possible values for the Origin const type.
func PossibleOriginValues() []Origin {
	return []Origin{
		OriginSystem,
		OriginUser,
		OriginUserSystem,
	}
}

// ProvisioningState - Provisioning state of the ArcSetting proxy resource.
type ProvisioningState string

const (
	ProvisioningStateAccepted           ProvisioningState = "Accepted"
	ProvisioningStateCanceled           ProvisioningState = "Canceled"
	ProvisioningStateConnected          ProvisioningState = "Connected"
	ProvisioningStateCreating           ProvisioningState = "Creating"
	ProvisioningStateDeleted            ProvisioningState = "Deleted"
	ProvisioningStateDeleting           ProvisioningState = "Deleting"
	ProvisioningStateDisableInProgress  ProvisioningState = "DisableInProgress"
	ProvisioningStateDisconnected       ProvisioningState = "Disconnected"
	ProvisioningStateError              ProvisioningState = "Error"
	ProvisioningStateFailed             ProvisioningState = "Failed"
	ProvisioningStateInProgress         ProvisioningState = "InProgress"
	ProvisioningStateMoving             ProvisioningState = "Moving"
	ProvisioningStateNotSpecified       ProvisioningState = "NotSpecified"
	ProvisioningStatePartiallyConnected ProvisioningState = "PartiallyConnected"
	ProvisioningStatePartiallySucceeded ProvisioningState = "PartiallySucceeded"
	ProvisioningStateProvisioning       ProvisioningState = "Provisioning"
	ProvisioningStateSucceeded          ProvisioningState = "Succeeded"
	ProvisioningStateUpdating           ProvisioningState = "Updating"
)

// PossibleProvisioningStateValues returns the possible values for the ProvisioningState const type.
func PossibleProvisioningStateValues() []ProvisioningState {
	return []ProvisioningState{
		ProvisioningStateAccepted,
		ProvisioningStateCanceled,
		ProvisioningStateConnected,
		ProvisioningStateCreating,
		ProvisioningStateDeleted,
		ProvisioningStateDeleting,
		ProvisioningStateDisableInProgress,
		ProvisioningStateDisconnected,
		ProvisioningStateError,
		ProvisioningStateFailed,
		ProvisioningStateInProgress,
		ProvisioningStateMoving,
		ProvisioningStateNotSpecified,
		ProvisioningStatePartiallyConnected,
		ProvisioningStatePartiallySucceeded,
		ProvisioningStateProvisioning,
		ProvisioningStateSucceeded,
		ProvisioningStateUpdating,
	}
}

type RebootRequirement string

const (
	RebootRequirementFalse   RebootRequirement = "False"
	RebootRequirementTrue    RebootRequirement = "True"
	RebootRequirementUnknown RebootRequirement = "Unknown"
)

// PossibleRebootRequirementValues returns the possible values for the RebootRequirement const type.
func PossibleRebootRequirementValues() []RebootRequirement {
	return []RebootRequirement{
		RebootRequirementFalse,
		RebootRequirementTrue,
		RebootRequirementUnknown,
	}
}

// RemoteSupportType - Remote Support Type for cluster
type RemoteSupportType string

const (
	RemoteSupportTypeEnable RemoteSupportType = "Enable"
	RemoteSupportTypeRevoke RemoteSupportType = "Revoke"
)

// PossibleRemoteSupportTypeValues returns the possible values for the RemoteSupportType const type.
func PossibleRemoteSupportTypeValues() []RemoteSupportType {
	return []RemoteSupportType{
		RemoteSupportTypeEnable,
		RemoteSupportTypeRevoke,
	}
}

// Severity - Severity of the result (Critical, Warning, Informational, Hidden). This answers how important the result is.
// Critical is the only update-blocking severity.
type Severity string

const (
	SeverityCritical      Severity = "Critical"
	SeverityHidden        Severity = "Hidden"
	SeverityInformational Severity = "Informational"
	SeverityWarning       Severity = "Warning"
)

// PossibleSeverityValues returns the possible values for the Severity const type.
func PossibleSeverityValues() []Severity {
	return []Severity{
		SeverityCritical,
		SeverityHidden,
		SeverityInformational,
		SeverityWarning,
	}
}

// SoftwareAssuranceIntent - Customer Intent for Software Assurance Benefit.
type SoftwareAssuranceIntent string

const (
	SoftwareAssuranceIntentDisable SoftwareAssuranceIntent = "Disable"
	SoftwareAssuranceIntentEnable  SoftwareAssuranceIntent = "Enable"
)

// PossibleSoftwareAssuranceIntentValues returns the possible values for the SoftwareAssuranceIntent const type.
func PossibleSoftwareAssuranceIntentValues() []SoftwareAssuranceIntent {
	return []SoftwareAssuranceIntent{
		SoftwareAssuranceIntentDisable,
		SoftwareAssuranceIntentEnable,
	}
}

// SoftwareAssuranceStatus - Status of the Software Assurance for the cluster.
type SoftwareAssuranceStatus string

const (
	SoftwareAssuranceStatusDisabled SoftwareAssuranceStatus = "Disabled"
	SoftwareAssuranceStatusEnabled  SoftwareAssuranceStatus = "Enabled"
)

// PossibleSoftwareAssuranceStatusValues returns the possible values for the SoftwareAssuranceStatus const type.
func PossibleSoftwareAssuranceStatusValues() []SoftwareAssuranceStatus {
	return []SoftwareAssuranceStatus{
		SoftwareAssuranceStatusDisabled,
		SoftwareAssuranceStatusEnabled,
	}
}

// State - State of the update as it relates to this stamp.
type State string

const (
	StateAdditionalContentRequired                     State = "AdditionalContentRequired"
	StateDownloadFailed                                State = "DownloadFailed"
	StateDownloading                                   State = "Downloading"
	StateHasPrerequisite                               State = "HasPrerequisite"
	StateHealthCheckFailed                             State = "HealthCheckFailed"
	StateHealthChecking                                State = "HealthChecking"
	StateInstallationFailed                            State = "InstallationFailed"
	StateInstalled                                     State = "Installed"
	StateInstalling                                    State = "Installing"
	StateInvalid                                       State = "Invalid"
	StateNotApplicableBecauseAnotherUpdateIsInProgress State = "NotApplicableBecauseAnotherUpdateIsInProgress"
	StateObsolete                                      State = "Obsolete"
	StatePreparationFailed                             State = "PreparationFailed"
	StatePreparing                                     State = "Preparing"
	StateReady                                         State = "Ready"
	StateReadyToInstall                                State = "ReadyToInstall"
	StateRecalled                                      State = "Recalled"
	StateScanFailed                                    State = "ScanFailed"
	StateScanInProgress                                State = "ScanInProgress"
)

// PossibleStateValues returns the possible values for the State const type.
func PossibleStateValues() []State {
	return []State{
		StateAdditionalContentRequired,
		StateDownloadFailed,
		StateDownloading,
		StateHasPrerequisite,
		StateHealthCheckFailed,
		StateHealthChecking,
		StateInstallationFailed,
		StateInstalled,
		StateInstalling,
		StateInvalid,
		StateNotApplicableBecauseAnotherUpdateIsInProgress,
		StateObsolete,
		StatePreparationFailed,
		StatePreparing,
		StateReady,
		StateReadyToInstall,
		StateRecalled,
		StateScanFailed,
		StateScanInProgress,
	}
}

// Status - Status of the cluster agent.
type Status string

const (
	StatusConnectedRecently    Status = "ConnectedRecently"
	StatusDeploymentFailed     Status = "DeploymentFailed"
	StatusDeploymentInProgress Status = "DeploymentInProgress"
	StatusDeploymentSuccess    Status = "DeploymentSuccess"
	StatusDisconnected         Status = "Disconnected"
	StatusError                Status = "Error"
	StatusFailed               Status = "Failed"
	StatusInProgress           Status = "InProgress"
	StatusNotConnectedRecently Status = "NotConnectedRecently"
	StatusNotSpecified         Status = "NotSpecified"
	StatusNotYetRegistered     Status = "NotYetRegistered"
	StatusSucceeded            Status = "Succeeded"
	StatusValidationFailed     Status = "ValidationFailed"
	StatusValidationInProgress Status = "ValidationInProgress"
	StatusValidationSuccess    Status = "ValidationSuccess"
)

// PossibleStatusValues returns the possible values for the Status const type.
func PossibleStatusValues() []Status {
	return []Status{
		StatusConnectedRecently,
		StatusDeploymentFailed,
		StatusDeploymentInProgress,
		StatusDeploymentSuccess,
		StatusDisconnected,
		StatusError,
		StatusFailed,
		StatusInProgress,
		StatusNotConnectedRecently,
		StatusNotSpecified,
		StatusNotYetRegistered,
		StatusSucceeded,
		StatusValidationFailed,
		StatusValidationInProgress,
		StatusValidationSuccess,
	}
}

// StatusLevelTypes - The level code.
type StatusLevelTypes string

const (
	StatusLevelTypesError   StatusLevelTypes = "Error"
	StatusLevelTypesInfo    StatusLevelTypes = "Info"
	StatusLevelTypesWarning StatusLevelTypes = "Warning"
)

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

// UpdateRunPropertiesState - State of the update run.
type UpdateRunPropertiesState string

const (
	UpdateRunPropertiesStateFailed     UpdateRunPropertiesState = "Failed"
	UpdateRunPropertiesStateInProgress UpdateRunPropertiesState = "InProgress"
	UpdateRunPropertiesStateSucceeded  UpdateRunPropertiesState = "Succeeded"
	UpdateRunPropertiesStateUnknown    UpdateRunPropertiesState = "Unknown"
)

// PossibleUpdateRunPropertiesStateValues returns the possible values for the UpdateRunPropertiesState const type.
func PossibleUpdateRunPropertiesStateValues() []UpdateRunPropertiesState {
	return []UpdateRunPropertiesState{
		UpdateRunPropertiesStateFailed,
		UpdateRunPropertiesStateInProgress,
		UpdateRunPropertiesStateSucceeded,
		UpdateRunPropertiesStateUnknown,
	}
}

// UpdateSummariesPropertiesState - Overall update state of the stamp.
type UpdateSummariesPropertiesState string

const (
	UpdateSummariesPropertiesStateAppliedSuccessfully   UpdateSummariesPropertiesState = "AppliedSuccessfully"
	UpdateSummariesPropertiesStateNeedsAttention        UpdateSummariesPropertiesState = "NeedsAttention"
	UpdateSummariesPropertiesStatePreparationFailed     UpdateSummariesPropertiesState = "PreparationFailed"
	UpdateSummariesPropertiesStatePreparationInProgress UpdateSummariesPropertiesState = "PreparationInProgress"
	UpdateSummariesPropertiesStateUnknown               UpdateSummariesPropertiesState = "Unknown"
	UpdateSummariesPropertiesStateUpdateAvailable       UpdateSummariesPropertiesState = "UpdateAvailable"
	UpdateSummariesPropertiesStateUpdateFailed          UpdateSummariesPropertiesState = "UpdateFailed"
	UpdateSummariesPropertiesStateUpdateInProgress      UpdateSummariesPropertiesState = "UpdateInProgress"
)

// PossibleUpdateSummariesPropertiesStateValues returns the possible values for the UpdateSummariesPropertiesState const type.
func PossibleUpdateSummariesPropertiesStateValues() []UpdateSummariesPropertiesState {
	return []UpdateSummariesPropertiesState{
		UpdateSummariesPropertiesStateAppliedSuccessfully,
		UpdateSummariesPropertiesStateNeedsAttention,
		UpdateSummariesPropertiesStatePreparationFailed,
		UpdateSummariesPropertiesStatePreparationInProgress,
		UpdateSummariesPropertiesStateUnknown,
		UpdateSummariesPropertiesStateUpdateAvailable,
		UpdateSummariesPropertiesStateUpdateFailed,
		UpdateSummariesPropertiesStateUpdateInProgress,
	}
}

// WindowsServerSubscription - Desired state of Windows Server Subscription.
type WindowsServerSubscription string

const (
	WindowsServerSubscriptionDisabled WindowsServerSubscription = "Disabled"
	WindowsServerSubscriptionEnabled  WindowsServerSubscription = "Enabled"
)

// PossibleWindowsServerSubscriptionValues returns the possible values for the WindowsServerSubscription const type.
func PossibleWindowsServerSubscriptionValues() []WindowsServerSubscription {
	return []WindowsServerSubscription{
		WindowsServerSubscriptionDisabled,
		WindowsServerSubscriptionEnabled,
	}
}
