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

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

// AgentStatus - The Agent status.
type AgentStatus string

const (
	AgentStatusExecuting         AgentStatus = "Executing"
	AgentStatusOffline           AgentStatus = "Offline"
	AgentStatusOnline            AgentStatus = "Online"
	AgentStatusRegistering       AgentStatus = "Registering"
	AgentStatusRequiresAttention AgentStatus = "RequiresAttention"
	AgentStatusUnregistering     AgentStatus = "Unregistering"
)

// PossibleAgentStatusValues returns the possible values for the AgentStatus const type.
func PossibleAgentStatusValues() []AgentStatus {
	return []AgentStatus{
		AgentStatusExecuting,
		AgentStatusOffline,
		AgentStatusOnline,
		AgentStatusRegistering,
		AgentStatusRequiresAttention,
		AgentStatusUnregistering,
	}
}

// CopyMode - Strategy to use for copy.
type CopyMode string

const (
	CopyModeAdditive CopyMode = "Additive"
	CopyModeMirror   CopyMode = "Mirror"
)

// PossibleCopyModeValues returns the possible values for the CopyMode const type.
func PossibleCopyModeValues() []CopyMode {
	return []CopyMode{
		CopyModeAdditive,
		CopyModeMirror,
	}
}

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

// CredentialType - The Credentials type.
type CredentialType string

const (
	CredentialTypeAzureKeyVaultSmb CredentialType = "AzureKeyVaultSmb"
)

// PossibleCredentialTypeValues returns the possible values for the CredentialType const type.
func PossibleCredentialTypeValues() []CredentialType {
	return []CredentialType{
		CredentialTypeAzureKeyVaultSmb,
	}
}

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

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

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

// EndpointType - The Endpoint resource type.
type EndpointType string

const (
	EndpointTypeAzureMultiCloudConnector  EndpointType = "AzureMultiCloudConnector"
	EndpointTypeAzureStorageBlobContainer EndpointType = "AzureStorageBlobContainer"
	EndpointTypeAzureStorageNfsFileShare  EndpointType = "AzureStorageNfsFileShare"
	EndpointTypeAzureStorageSmbFileShare  EndpointType = "AzureStorageSmbFileShare"
	EndpointTypeNfsMount                  EndpointType = "NfsMount"
	EndpointTypeSmbMount                  EndpointType = "SmbMount"
)

// PossibleEndpointTypeValues returns the possible values for the EndpointType const type.
func PossibleEndpointTypeValues() []EndpointType {
	return []EndpointType{
		EndpointTypeAzureMultiCloudConnector,
		EndpointTypeAzureStorageBlobContainer,
		EndpointTypeAzureStorageNfsFileShare,
		EndpointTypeAzureStorageSmbFileShare,
		EndpointTypeNfsMount,
		EndpointTypeSmbMount,
	}
}

// JobRunScanStatus - The status of Agent's scanning of source.
type JobRunScanStatus string

const (
	JobRunScanStatusCompleted  JobRunScanStatus = "Completed"
	JobRunScanStatusNotStarted JobRunScanStatus = "NotStarted"
	JobRunScanStatusScanning   JobRunScanStatus = "Scanning"
)

// PossibleJobRunScanStatusValues returns the possible values for the JobRunScanStatus const type.
func PossibleJobRunScanStatusValues() []JobRunScanStatus {
	return []JobRunScanStatus{
		JobRunScanStatusCompleted,
		JobRunScanStatusNotStarted,
		JobRunScanStatusScanning,
	}
}

// JobRunStatus - The current status of the Job Run in a non-terminal state, if exists.
type JobRunStatus string

const (
	JobRunStatusCancelRequested             JobRunStatus = "CancelRequested"
	JobRunStatusCanceled                    JobRunStatus = "Canceled"
	JobRunStatusCanceling                   JobRunStatus = "Canceling"
	JobRunStatusFailed                      JobRunStatus = "Failed"
	JobRunStatusPausedByBandwidthManagement JobRunStatus = "PausedByBandwidthManagement"
	JobRunStatusQueued                      JobRunStatus = "Queued"
	JobRunStatusRunning                     JobRunStatus = "Running"
	JobRunStatusStarted                     JobRunStatus = "Started"
	JobRunStatusSucceeded                   JobRunStatus = "Succeeded"
)

// PossibleJobRunStatusValues returns the possible values for the JobRunStatus const type.
func PossibleJobRunStatusValues() []JobRunStatus {
	return []JobRunStatus{
		JobRunStatusCancelRequested,
		JobRunStatusCanceled,
		JobRunStatusCanceling,
		JobRunStatusFailed,
		JobRunStatusPausedByBandwidthManagement,
		JobRunStatusQueued,
		JobRunStatusRunning,
		JobRunStatusStarted,
		JobRunStatusSucceeded,
	}
}

// JobType - The type of the Job.
type JobType string

const (
	JobTypeCloudToCloud  JobType = "CloudToCloud"
	JobTypeOnPremToCloud JobType = "OnPremToCloud"
)

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

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

// Minute - The minute element of the time. Allowed values are 0 and 30. If not specified, its value defaults to 0.
type Minute int32

const (
	MinuteThirty Minute = 30
	MinuteZero   Minute = 0
)

// PossibleMinuteValues returns the possible values for the Minute const type.
func PossibleMinuteValues() []Minute {
	return []Minute{
		MinuteThirty,
		MinuteZero,
	}
}

// NfsVersion - The NFS protocol version.
type NfsVersion string

const (
	NfsVersionNFSauto NfsVersion = "NFSauto"
	NfsVersionNFSv3   NfsVersion = "NFSv3"
	NfsVersionNFSv4   NfsVersion = "NFSv4"
)

// PossibleNfsVersionValues returns the possible values for the NfsVersion const type.
func PossibleNfsVersionValues() []NfsVersion {
	return []NfsVersion{
		NfsVersionNFSauto,
		NfsVersionNFSv3,
		NfsVersionNFSv4,
	}
}

// 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 provisioning state of a resource.
type ProvisioningState string

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

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