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

const (
	version20260401Preview string = "2026-04-01-preview"
)

// ActionTask - An action task type indicates the type of action task.
type ActionTask string

const (
	// ActionTaskNone - No action task.
	ActionTaskNone ActionTask = "None"
	// ActionTaskPostActionTask - Post-action task.
	ActionTaskPostActionTask ActionTask = "PostActionTask"
	// ActionTaskPreActionTask - Pre-action task.
	ActionTaskPreActionTask ActionTask = "PreActionTask"
)

// PossibleActionTaskValues returns the possible values for the ActionTask const type.
func PossibleActionTaskValues() []ActionTask {
	return []ActionTask{
		ActionTaskNone,
		ActionTaskPostActionTask,
		ActionTaskPreActionTask,
	}
}

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

const (
	// ActionTypeInternal - Actions are for internal-only APIs.
	ActionTypeInternal ActionType = "Internal"
)

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

// AttestationState - Enum for the attestation status of the resource in the goal.
type AttestationState string

const (
	// AttestationStateManuallyAttested - Resource is manually attested.
	AttestationStateManuallyAttested AttestationState = "ManuallyAttested"
	// AttestationStateNotAttested - Resource is not manually attested.
	AttestationStateNotAttested AttestationState = "NotAttested"
)

// PossibleAttestationStateValues returns the possible values for the AttestationState const type.
func PossibleAttestationStateValues() []AttestationState {
	return []AttestationState{
		AttestationStateManuallyAttested,
		AttestationStateNotAttested,
	}
}

// AutoFailover - Enum for AutoFailover
type AutoFailover string

const (
	// AutoFailoverDisable - Disable AutoFailover.
	AutoFailoverDisable AutoFailover = "Disable"
	// AutoFailoverEnable - Enable AutoFailover.
	AutoFailoverEnable AutoFailover = "Enable"
)

// PossibleAutoFailoverValues returns the possible values for the AutoFailover const type.
func PossibleAutoFailoverValues() []AutoFailover {
	return []AutoFailover{
		AutoFailoverDisable,
		AutoFailoverEnable,
	}
}

// CommentType - The type of user comment.
type CommentType string

const (
	// CommentTypeDescription - A general description comment.
	CommentTypeDescription CommentType = "Description"
	// CommentTypeResumeReason - A comment indicating the reason for resuming a job.
	CommentTypeResumeReason CommentType = "ResumeReason"
)

// PossibleCommentTypeValues returns the possible values for the CommentType const type.
func PossibleCommentTypeValues() []CommentType {
	return []CommentType{
		CommentTypeDescription,
		CommentTypeResumeReason,
	}
}

// ConfirmationStatus - Enum for the confirmation status of a high availability solution.
type ConfirmationStatus string

const (
	// ConfirmationStatusApprovalNotNeeded - The high availability solution does not require user approval.
	ConfirmationStatusApprovalNotNeeded ConfirmationStatus = "ApprovalNotNeeded"
	// ConfirmationStatusApprovalPending - The high availability solution is pending approval from the user.
	ConfirmationStatusApprovalPending ConfirmationStatus = "ApprovalPending"
	// ConfirmationStatusApprovedByUser - The high availability solution has been approved by the user.
	ConfirmationStatusApprovedByUser ConfirmationStatus = "ApprovedByUser"
	// ConfirmationStatusRejectedByUser - The high availability solution has been rejected by the user.
	ConfirmationStatusRejectedByUser ConfirmationStatus = "RejectedByUser"
)

// PossibleConfirmationStatusValues returns the possible values for the ConfirmationStatus const type.
func PossibleConfirmationStatusValues() []ConfirmationStatus {
	return []ConfirmationStatus{
		ConfirmationStatusApprovalNotNeeded,
		ConfirmationStatusApprovalPending,
		ConfirmationStatusApprovedByUser,
		ConfirmationStatusRejectedByUser,
	}
}

// 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,
	}
}

// DrillAttestation - Drill Attestation status on terminating.
type DrillAttestation string

const (
	// DrillAttestationAttestedFailed - Drill Attestation failure.
	DrillAttestationAttestedFailed DrillAttestation = "Failed"
	// DrillAttestationAttestedSuccess - Drill Attestation success.
	DrillAttestationAttestedSuccess DrillAttestation = "Success"
)

// PossibleDrillAttestationValues returns the possible values for the DrillAttestation const type.
func PossibleDrillAttestationValues() []DrillAttestation {
	return []DrillAttestation{
		DrillAttestationAttestedFailed,
		DrillAttestationAttestedSuccess,
	}
}

// DrillMode - Start mode of Drill.
type DrillMode string

const (
	// DrillModeFailover - Failover mode.
	DrillModeFailover DrillMode = "Failover"
)

// PossibleDrillModeValues returns the possible values for the DrillMode const type.
func PossibleDrillModeValues() []DrillMode {
	return []DrillMode{
		DrillModeFailover,
	}
}

// DrillResourceFaultState - Drill Resource Fault State
type DrillResourceFaultState string

const (
	// DrillResourceFaultStateCustomScript - Custom script based fault associated with resource.
	DrillResourceFaultStateCustomScript DrillResourceFaultState = "CustomScript"
	// DrillResourceFaultStateNotDefined - No fault configured for this resource.
	DrillResourceFaultStateNotDefined DrillResourceFaultState = "NotDefined"
	// DrillResourceFaultStateSystemNative - Native fault available.
	DrillResourceFaultStateSystemNative DrillResourceFaultState = "SystemNative"
)

// PossibleDrillResourceFaultStateValues returns the possible values for the DrillResourceFaultState const type.
func PossibleDrillResourceFaultStateValues() []DrillResourceFaultState {
	return []DrillResourceFaultState{
		DrillResourceFaultStateCustomScript,
		DrillResourceFaultStateNotDefined,
		DrillResourceFaultStateSystemNative,
	}
}

// DrillResourceInclusionState - Drill Resource Inclusion State
type DrillResourceInclusionState string

const (
	// DrillResourceInclusionStateExcluded - Resource excluded from Drill.
	DrillResourceInclusionStateExcluded DrillResourceInclusionState = "Excluded"
	// DrillResourceInclusionStateIncluded - Resource included in Drill.
	DrillResourceInclusionStateIncluded DrillResourceInclusionState = "Included"
)

// PossibleDrillResourceInclusionStateValues returns the possible values for the DrillResourceInclusionState const type.
func PossibleDrillResourceInclusionStateValues() []DrillResourceInclusionState {
	return []DrillResourceInclusionState{
		DrillResourceInclusionStateExcluded,
		DrillResourceInclusionStateIncluded,
	}
}

// DrillResourceReadinessState - Drill Resource Readiness State
type DrillResourceReadinessState string

const (
	// DrillResourceReadinessStateNeedsAttention - Resource needs attention.
	DrillResourceReadinessStateNeedsAttention DrillResourceReadinessState = "NeedsAttention"
	// DrillResourceReadinessStateReady - Resource ready.
	DrillResourceReadinessStateReady DrillResourceReadinessState = "Ready"
)

// PossibleDrillResourceReadinessStateValues returns the possible values for the DrillResourceReadinessState const type.
func PossibleDrillResourceReadinessStateValues() []DrillResourceReadinessState {
	return []DrillResourceReadinessState{
		DrillResourceReadinessStateNeedsAttention,
		DrillResourceReadinessStateReady,
	}
}

// DrillResourceState - Drill Resource State (wrt SG and RO).
type DrillResourceState string

const (
	// DrillResourceStateInDrillNotInRecoveryPlan - Resource is in Drill but not part of the RecoveryPlan
	DrillResourceStateInDrillNotInRecoveryPlan DrillResourceState = "InDrillNotInRecoveryPlan"
	// DrillResourceStateInDrillNotInServiceGroup - Resource is in Drill but not part of the SG
	DrillResourceStateInDrillNotInServiceGroup DrillResourceState = "InDrillNotInServiceGroup"
	// DrillResourceStateInRecoveryPlanNotInDrill - Resource is in RecoveryPlan but not part of the Drill
	DrillResourceStateInRecoveryPlanNotInDrill DrillResourceState = "InRecoveryPlanNotInDrill"
	// DrillResourceStateInServiceGroupNotInDrill - Resource is in SG but not part of the Drill
	DrillResourceStateInServiceGroupNotInDrill DrillResourceState = "InServiceGroupNotInDrill"
	// DrillResourceStateResourceStateIncompatibleWithFault - Resource is not in a state where it can be faulted.
	DrillResourceStateResourceStateIncompatibleWithFault DrillResourceState = "ResourceStateIncompatibleWithFault"
)

// PossibleDrillResourceStateValues returns the possible values for the DrillResourceState const type.
func PossibleDrillResourceStateValues() []DrillResourceState {
	return []DrillResourceState{
		DrillResourceStateInDrillNotInRecoveryPlan,
		DrillResourceStateInDrillNotInServiceGroup,
		DrillResourceStateInRecoveryPlanNotInDrill,
		DrillResourceStateInServiceGroupNotInDrill,
		DrillResourceStateResourceStateIncompatibleWithFault,
	}
}

// DrillRunOperationVerbs - Enum for DrillRun operation actions.
type DrillRunOperationVerbs string

const (
	// DrillRunOperationVerbsCancel - Cancel Action.
	DrillRunOperationVerbsCancel DrillRunOperationVerbs = "Cancel"
	// DrillRunOperationVerbsMarkAsComplete - MarkAsComplete Action.
	DrillRunOperationVerbsMarkAsComplete DrillRunOperationVerbs = "MarkAsComplete"
	// DrillRunOperationVerbsRetry - Retry Action.
	DrillRunOperationVerbsRetry DrillRunOperationVerbs = "Retry"
	// DrillRunOperationVerbsStart - Start Action.
	DrillRunOperationVerbsStart DrillRunOperationVerbs = "Start"
)

// PossibleDrillRunOperationVerbsValues returns the possible values for the DrillRunOperationVerbs const type.
func PossibleDrillRunOperationVerbsValues() []DrillRunOperationVerbs {
	return []DrillRunOperationVerbs{
		DrillRunOperationVerbsCancel,
		DrillRunOperationVerbsMarkAsComplete,
		DrillRunOperationVerbsRetry,
		DrillRunOperationVerbsStart,
	}
}

// DrillRunSubtasks - Enum for Drill Run Subtasks.
type DrillRunSubtasks string

const (
	// DrillRunSubtasksFailover - Failover Subtasks.
	DrillRunSubtasksFailover DrillRunSubtasks = "Failover"
	// DrillRunSubtasksFailoverReverse - FailoverReverse Subtasks.
	DrillRunSubtasksFailoverReverse DrillRunSubtasks = "FailoverReverse"
	// DrillRunSubtasksFaultInjection - FaultInjection Subtasks.
	DrillRunSubtasksFaultInjection DrillRunSubtasks = "FaultInjection"
	// DrillRunSubtasksReprotect - Reprotect Subtasks.
	DrillRunSubtasksReprotect DrillRunSubtasks = "Reprotect"
	// DrillRunSubtasksReprotectReverse - ReprotectReverse Subtasks.
	DrillRunSubtasksReprotectReverse DrillRunSubtasks = "ReprotectReverse"
)

// PossibleDrillRunSubtasksValues returns the possible values for the DrillRunSubtasks const type.
func PossibleDrillRunSubtasksValues() []DrillRunSubtasks {
	return []DrillRunSubtasks{
		DrillRunSubtasksFailover,
		DrillRunSubtasksFailoverReverse,
		DrillRunSubtasksFaultInjection,
		DrillRunSubtasksReprotect,
		DrillRunSubtasksReprotectReverse,
	}
}

// DrillType - Enum for Drill type object hierarchy.
type DrillType string

const (
	// DrillTypeRegional - Regional Drill.
	DrillTypeRegional DrillType = "Regional"
	// DrillTypeZonal - Zonal Drill.
	DrillTypeZonal DrillType = "Zonal"
)

// PossibleDrillTypeValues returns the possible values for the DrillType const type.
func PossibleDrillTypeValues() []DrillType {
	return []DrillType{
		DrillTypeRegional,
		DrillTypeZonal,
	}
}

// ExclusionReason - Enum for the reason why a resource is excluded.
type ExclusionReason string

const (
	// ExclusionReasonFailedOverResource - The resource failed over and is excluded.
	ExclusionReasonFailedOverResource ExclusionReason = "FailedOverResource"
	// ExclusionReasonUnsupportedResource - The resource is unsupported and excluded.
	ExclusionReasonUnsupportedResource ExclusionReason = "UnsupportedResource"
	// ExclusionReasonUserSelectedExclusion - The resource was excluded by user selection.
	ExclusionReasonUserSelectedExclusion ExclusionReason = "UserSelectedExclusion"
)

// PossibleExclusionReasonValues returns the possible values for the ExclusionReason const type.
func PossibleExclusionReasonValues() []ExclusionReason {
	return []ExclusionReason{
		ExclusionReasonFailedOverResource,
		ExclusionReasonUnsupportedResource,
		ExclusionReasonUserSelectedExclusion,
	}
}

// ExclusionState - Enum for the status of the resource in the goal.
type ExclusionState string

const (
	// ExclusionStateExcluded - Resource is not included in the goals.
	ExclusionStateExcluded ExclusionState = "Excluded"
	// ExclusionStateIncluded - Resource is excluded from the goals.
	ExclusionStateIncluded ExclusionState = "Included"
)

// PossibleExclusionStateValues returns the possible values for the ExclusionState const type.
func PossibleExclusionStateValues() []ExclusionState {
	return []ExclusionState{
		ExclusionStateExcluded,
		ExclusionStateIncluded,
	}
}

// ExecutionReadinessState - Drill Execution Readiness State
type ExecutionReadinessState string

const (
	// ExecutionReadinessStateNeedsAttention - Drill is not ready to run. Details captured in AttentionReason field.
	ExecutionReadinessStateNeedsAttention ExecutionReadinessState = "NeedsAttention"
	// ExecutionReadinessStateReady - Drill is ready to run.
	ExecutionReadinessStateReady ExecutionReadinessState = "Ready"
)

// PossibleExecutionReadinessStateValues returns the possible values for the ExecutionReadinessState const type.
func PossibleExecutionReadinessStateValues() []ExecutionReadinessState {
	return []ExecutionReadinessState{
		ExecutionReadinessStateNeedsAttention,
		ExecutionReadinessStateReady,
	}
}

// ExecutionState - Drill Execution State
type ExecutionState string

const (
	// ExecutionStateNotRunning - Drill is not running currently.
	ExecutionStateNotRunning ExecutionState = "NotRunning"
	// ExecutionStatePaused - Drill is paused, waiting for manual resume.
	ExecutionStatePaused ExecutionState = "Paused"
	// ExecutionStateRunning - Drill is running currently.
	ExecutionStateRunning ExecutionState = "Running"
)

// PossibleExecutionStateValues returns the possible values for the ExecutionState const type.
func PossibleExecutionStateValues() []ExecutionState {
	return []ExecutionState{
		ExecutionStateNotRunning,
		ExecutionStatePaused,
		ExecutionStateRunning,
	}
}

// ExtensionObjectState - Enum for AttentionReason - Extension Object State.
type ExtensionObjectState string

const (
	// ExtensionObjectStateExists - Extension object exists.
	ExtensionObjectStateExists ExtensionObjectState = "Exists"
	// ExtensionObjectStateNotExists - Extension object not exists.
	ExtensionObjectStateNotExists ExtensionObjectState = "NotExists"
)

// PossibleExtensionObjectStateValues returns the possible values for the ExtensionObjectState const type.
func PossibleExtensionObjectStateValues() []ExtensionObjectState {
	return []ExtensionObjectState{
		ExtensionObjectStateExists,
		ExtensionObjectStateNotExists,
	}
}

// FailoverDirectionTypes - Types of Failover directions.
type FailoverDirectionTypes string

const (
	// FailoverDirectionTypesFromSpecificLocations - Failover resources from specific locations.
	FailoverDirectionTypesFromSpecificLocations FailoverDirectionTypes = "FromSpecificLocations"
)

// PossibleFailoverDirectionTypesValues returns the possible values for the FailoverDirectionTypes const type.
func PossibleFailoverDirectionTypesValues() []FailoverDirectionTypes {
	return []FailoverDirectionTypes{
		FailoverDirectionTypesFromSpecificLocations,
	}
}

// FailoverState - A state specific to the resource that helps identify its Failover state.
type FailoverState string

const (
	// FailoverStateFailedOver - The resource is in failed-over state.
	FailoverStateFailedOver FailoverState = "FailedOver"
	// FailoverStateFailedOverCommitPending - The resource is in failover commit pending state.
	FailoverStateFailedOverCommitPending FailoverState = "FailedOverCommitPending"
	// FailoverStateFailedOverReprotectPending - The resource is in reprotect pending state.
	FailoverStateFailedOverReprotectPending FailoverState = "FailedOverReprotectPending"
	// FailoverStateNone - The resource is Not in failedOver state.
	FailoverStateNone FailoverState = "None"
)

// PossibleFailoverStateValues returns the possible values for the FailoverState const type.
func PossibleFailoverStateValues() []FailoverState {
	return []FailoverState{
		FailoverStateFailedOver,
		FailoverStateFailedOverCommitPending,
		FailoverStateFailedOverReprotectPending,
		FailoverStateNone,
	}
}

// ForceInclusionAndUpdate - Enum for ForceInclusionAndUpdate
type ForceInclusionAndUpdate string

const (
	// ForceInclusionAndUpdateDisable - Disable ForceInclusionAndUpdate.
	ForceInclusionAndUpdateDisable ForceInclusionAndUpdate = "Disable"
	// ForceInclusionAndUpdateEnable - Enable ForceInclusionAndUpdate.
	ForceInclusionAndUpdateEnable ForceInclusionAndUpdate = "Enable"
)

// PossibleForceInclusionAndUpdateValues returns the possible values for the ForceInclusionAndUpdate const type.
func PossibleForceInclusionAndUpdateValues() []ForceInclusionAndUpdate {
	return []ForceInclusionAndUpdate{
		ForceInclusionAndUpdateDisable,
		ForceInclusionAndUpdateEnable,
	}
}

// GoalAssignmentType - Supported type of goal assignment.
type GoalAssignmentType string

const (
	// GoalAssignmentTypeResiliency - Resiliency goal assignment type.
	GoalAssignmentTypeResiliency GoalAssignmentType = "Resiliency"
)

// PossibleGoalAssignmentTypeValues returns the possible values for the GoalAssignmentType const type.
func PossibleGoalAssignmentTypeValues() []GoalAssignmentType {
	return []GoalAssignmentType{
		GoalAssignmentTypeResiliency,
	}
}

// GoalType - Supported type of goal.
type GoalType string

const (
	// GoalTypeResiliency - Resiliency goal type.
	GoalTypeResiliency GoalType = "Resiliency"
)

// PossibleGoalTypeValues returns the possible values for the GoalType const type.
func PossibleGoalTypeValues() []GoalType {
	return []GoalType{
		GoalTypeResiliency,
	}
}

// HAStatus - HA Status
type HAStatus string

const (
	// HAStatusEnabled - HA enabled.
	HAStatusEnabled HAStatus = "Enabled"
	// HAStatusNotEnabled - HA not enabled.
	HAStatusNotEnabled HAStatus = "NotEnabled"
)

// PossibleHAStatusValues returns the possible values for the HAStatus const type.
func PossibleHAStatusValues() []HAStatus {
	return []HAStatus{
		HAStatusEnabled,
		HAStatusNotEnabled,
	}
}

// InitialConfig - Enum for Initial config of Drill object.
type InitialConfig string

const (
	// InitialConfigComplete - Initial config complete.
	InitialConfigComplete InitialConfig = "Complete"
	// InitialConfigPending - Initial config pending.
	InitialConfigPending InitialConfig = "Pending"
)

// PossibleInitialConfigValues returns the possible values for the InitialConfig const type.
func PossibleInitialConfigValues() []InitialConfig {
	return []InitialConfig{
		InitialConfigComplete,
		InitialConfigPending,
	}
}

// IsoDuration - ISO 8601 duration formats.
type IsoDuration string

const (
	// IsoDurationPT15M - 15 minutes.
	IsoDurationPT15M IsoDuration = "PT15M"
	// IsoDurationPT1H - 1 hour.
	IsoDurationPT1H IsoDuration = "PT1H"
	// IsoDurationPT24H - 24 hours.
	IsoDurationPT24H IsoDuration = "PT24H"
	// IsoDurationPT4H - 4 hours.
	IsoDurationPT4H IsoDuration = "PT4H"
)

// PossibleIsoDurationValues returns the possible values for the IsoDuration const type.
func PossibleIsoDurationValues() []IsoDuration {
	return []IsoDuration{
		IsoDurationPT15M,
		IsoDurationPT1H,
		IsoDurationPT24H,
		IsoDurationPT4H,
	}
}

// JobResourceType - A job resource type indicates the kind of jobresource.
type JobResourceType string

const (
	// JobResourceTypeDrillRun - Drill Run job resource.
	JobResourceTypeDrillRun JobResourceType = "DrillRun"
	// JobResourceTypeInvalid - Abstract job resource - invalid.
	JobResourceTypeInvalid JobResourceType = "Invalid"
	// JobResourceTypeRecoveryPlan - Recovery Orchestration Plan created job resource.
	JobResourceTypeRecoveryPlan JobResourceType = "RecoveryPlan"
)

// PossibleJobResourceTypeValues returns the possible values for the JobResourceType const type.
func PossibleJobResourceTypeValues() []JobResourceType {
	return []JobResourceType{
		JobResourceTypeDrillRun,
		JobResourceTypeInvalid,
		JobResourceTypeRecoveryPlan,
	}
}

// JobStatus - Job Statuses
type JobStatus string

const (
	// JobStatusCancelled - The job has been cancelled.
	JobStatusCancelled JobStatus = "Cancelled"
	// JobStatusCancelling - The job is in the process of being cancelled.
	JobStatusCancelling JobStatus = "Cancelling"
	// JobStatusCompleted - The job has been completed successfully.
	JobStatusCompleted JobStatus = "Completed"
	// JobStatusCompletedWithWarnings - The job has been completed with warnings.
	JobStatusCompletedWithWarnings JobStatus = "CompletedWithWarnings"
	// JobStatusFailed - The job has failed.
	JobStatusFailed JobStatus = "Failed"
	// JobStatusInProgress - The job is currently in progress.
	JobStatusInProgress JobStatus = "InProgress"
	// JobStatusNotApplicable - The job status is not applicable.
	JobStatusNotApplicable JobStatus = "NotApplicable"
	// JobStatusNotStarted - The job has not started yet.
	JobStatusNotStarted JobStatus = "NotStarted"
	// JobStatusPaused - The job is currently paused.
	JobStatusPaused JobStatus = "Paused"
	// JobStatusPending - The job is pending execution, awaiting the completion of dependent stages.
	JobStatusPending JobStatus = "Pending"
	// JobStatusSkipped - The job skipped for the resource (resource not qualified or not applicable).
	JobStatusSkipped JobStatus = "Skipped"
)

// PossibleJobStatusValues returns the possible values for the JobStatus const type.
func PossibleJobStatusValues() []JobStatus {
	return []JobStatus{
		JobStatusCancelled,
		JobStatusCancelling,
		JobStatusCompleted,
		JobStatusCompletedWithWarnings,
		JobStatusFailed,
		JobStatusInProgress,
		JobStatusNotApplicable,
		JobStatusNotStarted,
		JobStatusPaused,
		JobStatusPending,
		JobStatusSkipped,
	}
}

// JobTriggeredBy - Job TriggeredBy
type JobTriggeredBy string

const (
	// JobTriggeredBySystem - Triggered by the system.
	JobTriggeredBySystem JobTriggeredBy = "System"
	// JobTriggeredByUser - Triggered by the user.
	JobTriggeredByUser JobTriggeredBy = "User"
)

// PossibleJobTriggeredByValues returns the possible values for the JobTriggeredBy const type.
func PossibleJobTriggeredByValues() []JobTriggeredBy {
	return []JobTriggeredBy{
		JobTriggeredBySystem,
		JobTriggeredByUser,
	}
}

// JobType - A job type indicates the kind of job.
type JobType string

const (
	// JobTypeDrillRun - Drill Oober job which represents a given instance of Drill.
	JobTypeDrillRun JobType = "DrillRun"
	// JobTypeInvalid - Abstract job - invalid.
	JobTypeInvalid JobType = "Invalid"
	// JobTypeRecoveryPlan - Recovery Orchestration Plan created job.
	JobTypeRecoveryPlan JobType = "RecoveryPlan"
)

// PossibleJobTypeValues returns the possible values for the JobType const type.
func PossibleJobTypeValues() []JobType {
	return []JobType{
		JobTypeDrillRun,
		JobTypeInvalid,
		JobTypeRecoveryPlan,
	}
}

// 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,
	}
}

// MembershipType - Membership type of the service group to resource.
type MembershipType string

const (
	// MembershipTypeDirect - Resource is direct member of service group.
	MembershipTypeDirect MembershipType = "Direct"
	// MembershipTypeThroughResourceGroup - Resource is member of service group through resource group.
	MembershipTypeThroughResourceGroup MembershipType = "ThroughResourceGroup"
	// MembershipTypeThroughSubscription - Resource is member of service group through subscription.
	MembershipTypeThroughSubscription MembershipType = "ThroughSubscription"
)

// PossibleMembershipTypeValues returns the possible values for the MembershipType const type.
func PossibleMembershipTypeValues() []MembershipType {
	return []MembershipType{
		MembershipTypeDirect,
		MembershipTypeThroughResourceGroup,
		MembershipTypeThroughSubscription,
	}
}

// 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 - Indicates the operation is initiated by a system.
	OriginSystem Origin = "system"
	// OriginUser - Indicates the operation is initiated by a user.
	OriginUser Origin = "user"
	// OriginUserSystem - Indicates the operation is initiated by a user or system.
	OriginUserSystem Origin = "user,system"
)

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

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

const (
	// ProvisioningStateAccepted - Change accepted for processing
	ProvisioningStateAccepted ProvisioningState = "Accepted"
	// ProvisioningStateCanceled - Resource creation was canceled.
	ProvisioningStateCanceled ProvisioningState = "Canceled"
	// ProvisioningStateDeleting - Deletion in progress
	ProvisioningStateDeleting ProvisioningState = "Deleting"
	// ProvisioningStateFailed - Resource creation failed.
	ProvisioningStateFailed ProvisioningState = "Failed"
	// ProvisioningStateProvisioning - Initial provisioning in progress
	ProvisioningStateProvisioning ProvisioningState = "Provisioning"
	// ProvisioningStateSucceeded - Resource has been created.
	ProvisioningStateSucceeded ProvisioningState = "Succeeded"
	// ProvisioningStateUpdating - Update in progress
	ProvisioningStateUpdating ProvisioningState = "Updating"
)

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

// QualificationState - A state type that indicates qualification of a resource for an operation.
type QualificationState string

const (
	// QualificationStateExcluded - A state that indicates the resource is excluded from the recovery plan itself.
	QualificationStateExcluded QualificationState = "Excluded"
	// QualificationStateNotQualified - A state that indicates the resource is not qualified for the operation.
	QualificationStateNotQualified QualificationState = "NotQualified"
	// QualificationStateQualified - A state that indicates the resource is qualified for the operation.
	QualificationStateQualified QualificationState = "Qualified"
	// QualificationStateUnknown - A state that indicates the qualification state is unknown.
	QualificationStateUnknown QualificationState = "Unknown"
)

// PossibleQualificationStateValues returns the possible values for the QualificationState const type.
func PossibleQualificationStateValues() []QualificationState {
	return []QualificationState{
		QualificationStateExcluded,
		QualificationStateNotQualified,
		QualificationStateQualified,
		QualificationStateUnknown,
	}
}

// RBACSetupMode - RBAC setup mode.
type RBACSetupMode string

const (
	// RBACSetupModeAutomatedBuiltinRoles - Automated-BuiltinRoles mode.
	RBACSetupModeAutomatedBuiltinRoles RBACSetupMode = "AutomatedBuiltinRoles"
	// RBACSetupModeAutomatedCustomRole - Automated-CustomRole mode.
	RBACSetupModeAutomatedCustomRole RBACSetupMode = "AutomatedCustomRole"
	// RBACSetupModeManual - Manual mode.
	RBACSetupModeManual RBACSetupMode = "Manual"
)

// PossibleRBACSetupModeValues returns the possible values for the RBACSetupMode const type.
func PossibleRBACSetupModeValues() []RBACSetupMode {
	return []RBACSetupMode{
		RBACSetupModeAutomatedBuiltinRoles,
		RBACSetupModeAutomatedCustomRole,
		RBACSetupModeManual,
	}
}

// RBACState - Enum for AttentionReason - RBAC state on a resource.
type RBACState string

const (
	// RBACStateNotSet - RBAC not set.
	RBACStateNotSet RBACState = "NotSet"
	// RBACStateSet - RBAC set.
	RBACStateSet RBACState = "Set"
)

// PossibleRBACStateValues returns the possible values for the RBACState const type.
func PossibleRBACStateValues() []RBACState {
	return []RBACState{
		RBACStateNotSet,
		RBACStateSet,
	}
}

// ReasonForRequestingConfirmation - Enum for the reason for requesting user confirmation for a high availability solution.
type ReasonForRequestingConfirmation string

const (
	// ReasonForRequestingConfirmationVMInMultiZoneScaleSetStatelessOnly - VM in multi-zone scale set stateless only.
	ReasonForRequestingConfirmationVMInMultiZoneScaleSetStatelessOnly ReasonForRequestingConfirmation = "VmInMultiZoneScaleSetStatelessOnly"
	// ReasonForRequestingConfirmationZonePinnedZrsDataDisksConditional - Zone pinned ZRS data disks conditional.
	ReasonForRequestingConfirmationZonePinnedZrsDataDisksConditional ReasonForRequestingConfirmation = "ZonePinnedZrsDataDisksConditional"
)

// PossibleReasonForRequestingConfirmationValues returns the possible values for the ReasonForRequestingConfirmation const type.
func PossibleReasonForRequestingConfirmationValues() []ReasonForRequestingConfirmation {
	return []ReasonForRequestingConfirmation{
		ReasonForRequestingConfirmationVMInMultiZoneScaleSetStatelessOnly,
		ReasonForRequestingConfirmationZonePinnedZrsDataDisksConditional,
	}
}

// RecoveryGroupActionType - Specifies the type of recovery orchestration group actions.
type RecoveryGroupActionType string

const (
	// RecoveryGroupActionTypeCustomRunbook - A custom runbook action type for the recovery orchestration group.
	RecoveryGroupActionTypeCustomRunbook RecoveryGroupActionType = "CustomRunbook"
	// RecoveryGroupActionTypeManualAction - A manual action type for the recovery orchestration group.
	RecoveryGroupActionTypeManualAction RecoveryGroupActionType = "ManualAction"
)

// PossibleRecoveryGroupActionTypeValues returns the possible values for the RecoveryGroupActionType const type.
func PossibleRecoveryGroupActionTypeValues() []RecoveryGroupActionType {
	return []RecoveryGroupActionType{
		RecoveryGroupActionTypeCustomRunbook,
		RecoveryGroupActionTypeManualAction,
	}
}

// RecoveryOperationNames - Defines the set of operations that can be executed on a Recovery Orchestration Plan. These operations
// are applicable only to resources that meet the qualification criteria.
type RecoveryOperationNames string

const (
	// RecoveryOperationNamesFailover - Initiates a failover process to recover eligible resources to the target location.
	RecoveryOperationNamesFailover RecoveryOperationNames = "Failover"
	// RecoveryOperationNamesFailoverCommit - Commits the failover for resources that require an explicit commit after recovery.
	RecoveryOperationNamesFailoverCommit RecoveryOperationNames = "FailoverCommit"
	// RecoveryOperationNamesReprotect - Performs re-protection or configuration changes for resources that have failed over,
	// as required.
	RecoveryOperationNamesReprotect RecoveryOperationNames = "Reprotect"
	// RecoveryOperationNamesTestFailover - Initiates a test failover process for qualified resources and those that support test
	// failover.
	RecoveryOperationNamesTestFailover RecoveryOperationNames = "TestFailover"
	// RecoveryOperationNamesTestFailoverCleanup - Cleans up resources and configurations created during a test failover, as required.
	RecoveryOperationNamesTestFailoverCleanup RecoveryOperationNames = "TestFailoverCleanup"
)

// PossibleRecoveryOperationNamesValues returns the possible values for the RecoveryOperationNames const type.
func PossibleRecoveryOperationNamesValues() []RecoveryOperationNames {
	return []RecoveryOperationNames{
		RecoveryOperationNamesFailover,
		RecoveryOperationNamesFailoverCommit,
		RecoveryOperationNamesReprotect,
		RecoveryOperationNamesTestFailover,
		RecoveryOperationNamesTestFailoverCleanup,
	}
}

// RecoveryOperationStatus - Specifies the operation status for failover and validation.
type RecoveryOperationStatus string

const (
	// RecoveryOperationStatusCanceled - Operation has been canceled by the user.
	RecoveryOperationStatusCanceled RecoveryOperationStatus = "Canceled"
	// RecoveryOperationStatusCompletedWithWarning - Operation has completed but ran into some warning state.
	RecoveryOperationStatusCompletedWithWarning RecoveryOperationStatus = "CompletedWithWarning"
	// RecoveryOperationStatusFailed - Operation has completed but ran into some error state.
	RecoveryOperationStatusFailed RecoveryOperationStatus = "Failed"
	// RecoveryOperationStatusInProgress - Operation is in progress.
	RecoveryOperationStatusInProgress RecoveryOperationStatus = "InProgress"
	// RecoveryOperationStatusNotStarted - Operation has not started or ran.
	RecoveryOperationStatusNotStarted RecoveryOperationStatus = "NotStarted"
	// RecoveryOperationStatusSucceeded - Operation has completed successfully.
	RecoveryOperationStatusSucceeded RecoveryOperationStatus = "Succeeded"
	// RecoveryOperationStatusValidationFailed - Operation has completed but ran into some validation error state.
	RecoveryOperationStatusValidationFailed RecoveryOperationStatus = "ValidationFailed"
	// RecoveryOperationStatusValidationInProgress - Operation is in the process of being validated.
	RecoveryOperationStatusValidationInProgress RecoveryOperationStatus = "ValidationInProgress"
)

// PossibleRecoveryOperationStatusValues returns the possible values for the RecoveryOperationStatus const type.
func PossibleRecoveryOperationStatusValues() []RecoveryOperationStatus {
	return []RecoveryOperationStatus{
		RecoveryOperationStatusCanceled,
		RecoveryOperationStatusCompletedWithWarning,
		RecoveryOperationStatusFailed,
		RecoveryOperationStatusInProgress,
		RecoveryOperationStatusNotStarted,
		RecoveryOperationStatusSucceeded,
		RecoveryOperationStatusValidationFailed,
		RecoveryOperationStatusValidationInProgress,
	}
}

// RecoveryPlanExclusionReason - Enum for RecoveryPlan Exclusion reason.
type RecoveryPlanExclusionReason string

const (
	// RecoveryPlanExclusionReasonExcludedFromRecoveryPlan - Excluded From RecoveryPlan by user.
	RecoveryPlanExclusionReasonExcludedFromRecoveryPlan RecoveryPlanExclusionReason = "ExcludedFromRecoveryPlan"
	// RecoveryPlanExclusionReasonProtectionStatus - Protection not configured.
	RecoveryPlanExclusionReasonProtectionStatus RecoveryPlanExclusionReason = "ProtectionStatus"
)

// PossibleRecoveryPlanExclusionReasonValues returns the possible values for the RecoveryPlanExclusionReason const type.
func PossibleRecoveryPlanExclusionReasonValues() []RecoveryPlanExclusionReason {
	return []RecoveryPlanExclusionReason{
		RecoveryPlanExclusionReasonExcludedFromRecoveryPlan,
		RecoveryPlanExclusionReasonProtectionStatus,
	}
}

// RecoveryPlanState - Specifies the state of the recovery orchestration plan.
type RecoveryPlanState string

const (
	// RecoveryPlanStateReady - The recovery orchestration plan is ready.
	RecoveryPlanStateReady RecoveryPlanState = "Ready"
	// RecoveryPlanStateUnderEdit - The recovery orchestration plan is currently being edited.
	RecoveryPlanStateUnderEdit RecoveryPlanState = "UnderEdit"
	// RecoveryPlanStateWarning - The recovery orchestration plan is in a warning state.
	RecoveryPlanStateWarning RecoveryPlanState = "Warning"
)

// PossibleRecoveryPlanStateValues returns the possible values for the RecoveryPlanState const type.
func PossibleRecoveryPlanStateValues() []RecoveryPlanState {
	return []RecoveryPlanState{
		RecoveryPlanStateReady,
		RecoveryPlanStateUnderEdit,
		RecoveryPlanStateWarning,
	}
}

// RecoveryPlanType - Specifies the type of recovery orchestration plan.
type RecoveryPlanType string

const (
	// RecoveryPlanTypeRegional - A recovery orchestration plan for regional resiliency.
	RecoveryPlanTypeRegional RecoveryPlanType = "Regional"
	// RecoveryPlanTypeZonal - A recovery orchestration plan for zonal resiliency.
	RecoveryPlanTypeZonal RecoveryPlanType = "Zonal"
)

// PossibleRecoveryPlanTypeValues returns the possible values for the RecoveryPlanType const type.
func PossibleRecoveryPlanTypeValues() []RecoveryPlanType {
	return []RecoveryPlanType{
		RecoveryPlanTypeRegional,
		RecoveryPlanTypeZonal,
	}
}

// RelativeResourceCompositionState - Enum for AttentionReason - Resource state sync between two objects.
type RelativeResourceCompositionState string

const (
	// RelativeResourceCompositionStateInSync - Resources in sync.
	RelativeResourceCompositionStateInSync RelativeResourceCompositionState = "InSync"
	// RelativeResourceCompositionStateOutOfSync - Resources out of sync.
	RelativeResourceCompositionStateOutOfSync RelativeResourceCompositionState = "OutOfSync"
)

// PossibleRelativeResourceCompositionStateValues returns the possible values for the RelativeResourceCompositionState const type.
func PossibleRelativeResourceCompositionStateValues() []RelativeResourceCompositionState {
	return []RelativeResourceCompositionState{
		RelativeResourceCompositionStateInSync,
		RelativeResourceCompositionStateOutOfSync,
	}
}

// RequirementSelected - Enum for the requirement status of the resource in the goal.
type RequirementSelected string

const (
	// RequirementSelectedNotRequired - The resource is not required for the specified goal.
	RequirementSelectedNotRequired RequirementSelected = "NotRequired"
	// RequirementSelectedRequired - The resource is required for the specified goal.
	RequirementSelectedRequired RequirementSelected = "Required"
)

// PossibleRequirementSelectedValues returns the possible values for the RequirementSelected const type.
func PossibleRequirementSelectedValues() []RequirementSelected {
	return []RequirementSelected{
		RequirementSelectedNotRequired,
		RequirementSelectedRequired,
	}
}

// ResilienceHealthStatus - enum for Resilience health status.
type ResilienceHealthStatus string

const (
	// ResilienceHealthStatusHealthy - Resource is Healthy.
	ResilienceHealthStatusHealthy ResilienceHealthStatus = "Healthy"
	// ResilienceHealthStatusNotEvaluated - Resource is not evaluated.
	ResilienceHealthStatusNotEvaluated ResilienceHealthStatus = "NotEvaluated"
	// ResilienceHealthStatusUnhealthy - Resource is Unhealthy.
	ResilienceHealthStatusUnhealthy ResilienceHealthStatus = "Unhealthy"
)

// PossibleResilienceHealthStatusValues returns the possible values for the ResilienceHealthStatus const type.
func PossibleResilienceHealthStatusValues() []ResilienceHealthStatus {
	return []ResilienceHealthStatus{
		ResilienceHealthStatusHealthy,
		ResilienceHealthStatusNotEvaluated,
		ResilienceHealthStatusUnhealthy,
	}
}

// ResourceInclusionState - A state type that indicates inclusion of the resource with respect to the resiliency support.
type ResourceInclusionState string

const (
	// ResourceInclusionStateExcluded - A state that indicates the resource is excluded.
	ResourceInclusionStateExcluded ResourceInclusionState = "Excluded"
	// ResourceInclusionStateIncluded - A state that indicates the resource is included.
	ResourceInclusionStateIncluded ResourceInclusionState = "Included"
)

// PossibleResourceInclusionStateValues returns the possible values for the ResourceInclusionState const type.
func PossibleResourceInclusionStateValues() []ResourceInclusionState {
	return []ResourceInclusionState{
		ResourceInclusionStateExcluded,
		ResourceInclusionStateIncluded,
	}
}

// ResourceProtectionSolutionType - Protection solution type for the resources by which recovery takes place
type ResourceProtectionSolutionType string

const (
	// ResourceProtectionSolutionTypeAzureNative - Resource is protected with the Azure native solution provided by the native
	// Azure service.
	ResourceProtectionSolutionTypeAzureNative ResourceProtectionSolutionType = "AzureNative"
	// ResourceProtectionSolutionTypeAzureSiteRecovery - Resource protected with the Azure solution provided by the native Azure
	// Site Service for Azure VMs.
	ResourceProtectionSolutionTypeAzureSiteRecovery ResourceProtectionSolutionType = "AzureSiteRecovery"
	// ResourceProtectionSolutionTypeCrossZoneVMRecovery - Cross zone recovery enabled Azure VMs.
	ResourceProtectionSolutionTypeCrossZoneVMRecovery ResourceProtectionSolutionType = "CrossZoneVMRecovery"
	// ResourceProtectionSolutionTypeCustomRunbook - Resource is not protected with native solution and using custom runbook automation
	// scripts for recovery verbs.
	ResourceProtectionSolutionTypeCustomRunbook ResourceProtectionSolutionType = "CustomRunbook"
	// ResourceProtectionSolutionTypeNone - Resource is not protected with any protection solution.
	ResourceProtectionSolutionTypeNone ResourceProtectionSolutionType = "None"
)

// PossibleResourceProtectionSolutionTypeValues returns the possible values for the ResourceProtectionSolutionType const type.
func PossibleResourceProtectionSolutionTypeValues() []ResourceProtectionSolutionType {
	return []ResourceProtectionSolutionType{
		ResourceProtectionSolutionTypeAzureNative,
		ResourceProtectionSolutionTypeAzureSiteRecovery,
		ResourceProtectionSolutionTypeCrossZoneVMRecovery,
		ResourceProtectionSolutionTypeCustomRunbook,
		ResourceProtectionSolutionTypeNone,
	}
}

// ResourceProtectionStatus - A state type that indicates the protection status of a resource with an Azure solution for regional
// or zonal recovery.
type ResourceProtectionStatus string

const (
	// ResourceProtectionStatusHighlyAvailable - A state indicating that the resource is protected by the highly available recovery
	// solution.
	ResourceProtectionStatusHighlyAvailable ResourceProtectionStatus = "HighlyAvailable"
	// ResourceProtectionStatusNotProtected - A state indicating that the resource is not protected by any recovery solution.
	ResourceProtectionStatusNotProtected ResourceProtectionStatus = "NotProtected"
	// ResourceProtectionStatusProtected - A state indicating that the resource is protected by the recovery solution.
	ResourceProtectionStatusProtected ResourceProtectionStatus = "Protected"
	// ResourceProtectionStatusUnknown - The protection status of the resource is unknown.
	ResourceProtectionStatusUnknown ResourceProtectionStatus = "Unknown"
)

// PossibleResourceProtectionStatusValues returns the possible values for the ResourceProtectionStatus const type.
func PossibleResourceProtectionStatusValues() []ResourceProtectionStatus {
	return []ResourceProtectionStatus{
		ResourceProtectionStatusHighlyAvailable,
		ResourceProtectionStatusNotProtected,
		ResourceProtectionStatusProtected,
		ResourceProtectionStatusUnknown,
	}
}

// ResourceReplicationRole - A state specific to the resource that helps identify its role in replication.
type ResourceReplicationRole string

const (
	// ResourceReplicationRolePrimary - A state indicating that the resource is primary and actively replicating data to other
	// replicas.
	ResourceReplicationRolePrimary ResourceReplicationRole = "Primary"
	// ResourceReplicationRoleReplica - A state indicating that the resource is a replica, receiving data from the primary.
	ResourceReplicationRoleReplica ResourceReplicationRole = "Replica"
	// ResourceReplicationRoleUnknown - The role of the resource is unknown.
	ResourceReplicationRoleUnknown ResourceReplicationRole = "Unknown"
)

// PossibleResourceReplicationRoleValues returns the possible values for the ResourceReplicationRole const type.
func PossibleResourceReplicationRoleValues() []ResourceReplicationRole {
	return []ResourceReplicationRole{
		ResourceReplicationRolePrimary,
		ResourceReplicationRoleReplica,
		ResourceReplicationRoleUnknown,
	}
}

// ResourceTypeCategories - A state type that indicates qualification of a resource for an operation.
type ResourceTypeCategories string

const (
	// ResourceTypeCategoriesAzureSiteRecoveryVMsPresent - Indicates that alteast one Azure Site Recovery VMs are present.
	ResourceTypeCategoriesAzureSiteRecoveryVMsPresent ResourceTypeCategories = "AzureSiteRecoveryVMsPresent"
)

// PossibleResourceTypeCategoriesValues returns the possible values for the ResourceTypeCategories const type.
func PossibleResourceTypeCategoriesValues() []ResourceTypeCategories {
	return []ResourceTypeCategories{
		ResourceTypeCategoriesAzureSiteRecoveryVMsPresent,
	}
}

// SolutionDisplayName - Identifies a high-availability solution that can be applied to a resource (for example, zone-pinned
// VM with ZRS disk).
type SolutionDisplayName string

const (
	// SolutionDisplayNameVMInMultiZoneVmss - VM in multi-zone VMSS.
	SolutionDisplayNameVMInMultiZoneVmss SolutionDisplayName = "VmInMultiZoneVmss"
	// SolutionDisplayNameZonePinnedVMWithZrsDisk - Zone pinned VM with ZRS disk.
	SolutionDisplayNameZonePinnedVMWithZrsDisk SolutionDisplayName = "ZonePinnedVmWithZrsDisk"
)

// PossibleSolutionDisplayNameValues returns the possible values for the SolutionDisplayName const type.
func PossibleSolutionDisplayNameValues() []SolutionDisplayName {
	return []SolutionDisplayName{
		SolutionDisplayNameVMInMultiZoneVmss,
		SolutionDisplayNameZonePinnedVMWithZrsDisk,
	}
}

// TestFailoverState - A state specific to the resource that helps identify its TestFailover state.
type TestFailoverState string

const (
	// TestFailoverStateNone - The resource is Not in TestFailedOver state (No test failover cleanup pending).
	TestFailoverStateNone TestFailoverState = "None"
	// TestFailoverStateTestFailoverCleanupPending - he resource is in test failover cleanup pending state.
	TestFailoverStateTestFailoverCleanupPending TestFailoverState = "TestFailoverCleanupPending"
)

// PossibleTestFailoverStateValues returns the possible values for the TestFailoverState const type.
func PossibleTestFailoverStateValues() []TestFailoverState {
	return []TestFailoverState{
		TestFailoverStateNone,
		TestFailoverStateTestFailoverCleanupPending,
	}
}

// UnifiedResilienceItemRequirementSelected - Enum for the requirement status of the resource in the goal.
type UnifiedResilienceItemRequirementSelected string

const (
	// UnifiedResilienceItemRequirementSelectedNotRequired - The resource is not required for the specified goal.
	UnifiedResilienceItemRequirementSelectedNotRequired UnifiedResilienceItemRequirementSelected = "NotRequired"
	// UnifiedResilienceItemRequirementSelectedNotSelected - The resource is not selected for the specified goal.
	UnifiedResilienceItemRequirementSelectedNotSelected UnifiedResilienceItemRequirementSelected = "NotSelected"
	// UnifiedResilienceItemRequirementSelectedRequired - The resource is required for the specified goal.
	UnifiedResilienceItemRequirementSelectedRequired UnifiedResilienceItemRequirementSelected = "Required"
)

// PossibleUnifiedResilienceItemRequirementSelectedValues returns the possible values for the UnifiedResilienceItemRequirementSelected const type.
func PossibleUnifiedResilienceItemRequirementSelectedValues() []UnifiedResilienceItemRequirementSelected {
	return []UnifiedResilienceItemRequirementSelected{
		UnifiedResilienceItemRequirementSelectedNotRequired,
		UnifiedResilienceItemRequirementSelectedNotSelected,
		UnifiedResilienceItemRequirementSelectedRequired,
	}
}

// UsagePlanType - The type of usage plan.
type UsagePlanType string

const (
	// UsagePlanTypeBasic - Basic usage plan with restricted functionality without any charges.
	UsagePlanTypeBasic UsagePlanType = "Basic"
	// UsagePlanTypeStandard - Standard usage plan with comprehensive functionality and usage based charges.
	UsagePlanTypeStandard UsagePlanType = "Standard"
)

// PossibleUsagePlanTypeValues returns the possible values for the UsagePlanType const type.
func PossibleUsagePlanTypeValues() []UsagePlanType {
	return []UsagePlanType{
		UsagePlanTypeBasic,
		UsagePlanTypeStandard,
	}
}

// UserConsent - User consent for performing recovery action.
type UserConsent string

const (
	// UserConsentAllowed - Action is allowed with user consent.
	UserConsentAllowed UserConsent = "Allowed"
	// UserConsentUnspecified - User consent is not specified for the operation.
	UserConsentUnspecified UserConsent = "Unspecified"
)

// PossibleUserConsentValues returns the possible values for the UserConsent const type.
func PossibleUserConsentValues() []UserConsent {
	return []UserConsent{
		UserConsentAllowed,
		UserConsentUnspecified,
	}
}

// VMPresent - Enum for VM presence.
type VMPresent string

const (
	// VMPresentAbsent - No VM present.
	VMPresentAbsent VMPresent = "Absent"
	// VMPresentPresent - Atleast one VM Present.
	VMPresentPresent VMPresent = "Present"
)

// PossibleVMPresentValues returns the possible values for the VMPresent const type.
func PossibleVMPresentValues() []VMPresent {
	return []VMPresent{
		VMPresentAbsent,
		VMPresentPresent,
	}
}
