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

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

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

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

// MatchedBlockName - Represents the condition block name that matched blob properties.
type MatchedBlockName string

const (
	MatchedBlockNameElse MatchedBlockName = "Else"
	MatchedBlockNameIf   MatchedBlockName = "If"
	MatchedBlockNameNone MatchedBlockName = "None"
)

// PossibleMatchedBlockNameValues returns the possible values for the MatchedBlockName const type.
func PossibleMatchedBlockNameValues() []MatchedBlockName {
	return []MatchedBlockName{
		MatchedBlockNameElse,
		MatchedBlockNameIf,
		MatchedBlockNameNone,
	}
}

// OnFailure - Action to be taken when the operation fails for a object.
type OnFailure string

const (
	OnFailureBreak OnFailure = "break"
)

// PossibleOnFailureValues returns the possible values for the OnFailure const type.
func PossibleOnFailureValues() []OnFailure {
	return []OnFailure{
		OnFailureBreak,
	}
}

// OnSuccess - Action to be taken when the operation is successful for a object.
type OnSuccess string

const (
	OnSuccessContinue OnSuccess = "continue"
)

// PossibleOnSuccessValues returns the possible values for the OnSuccess const type.
func PossibleOnSuccessValues() []OnSuccess {
	return []OnSuccess{
		OnSuccessContinue,
	}
}

// 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 - Represents the provisioning state of the storage task.
type ProvisioningState string

const (
	ProvisioningStateAccepted                       ProvisioningState = "Accepted"
	ProvisioningStateCanceled                       ProvisioningState = "Canceled"
	ProvisioningStateCreating                       ProvisioningState = "Creating"
	ProvisioningStateDeleting                       ProvisioningState = "Deleting"
	ProvisioningStateFailed                         ProvisioningState = "Failed"
	ProvisioningStateSucceeded                      ProvisioningState = "Succeeded"
	ProvisioningStateValidateSubscriptionQuotaBegin ProvisioningState = "ValidateSubscriptionQuotaBegin"
	ProvisioningStateValidateSubscriptionQuotaEnd   ProvisioningState = "ValidateSubscriptionQuotaEnd"
)

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

// RunResult - Represents the overall result of the execution for the run instance
type RunResult string

const (
	RunResultFailed    RunResult = "Failed"
	RunResultSucceeded RunResult = "Succeeded"
)

// PossibleRunResultValues returns the possible values for the RunResult const type.
func PossibleRunResultValues() []RunResult {
	return []RunResult{
		RunResultFailed,
		RunResultSucceeded,
	}
}

// RunStatusEnum - Represents the status of the execution.
type RunStatusEnum string

const (
	RunStatusEnumFinished   RunStatusEnum = "Finished"
	RunStatusEnumInProgress RunStatusEnum = "InProgress"
)

// PossibleRunStatusEnumValues returns the possible values for the RunStatusEnum const type.
func PossibleRunStatusEnumValues() []RunStatusEnum {
	return []RunStatusEnum{
		RunStatusEnumFinished,
		RunStatusEnumInProgress,
	}
}

// StorageTaskOperationName - The operation to be performed on the object.
type StorageTaskOperationName string

const (
	StorageTaskOperationNameDeleteBlob                StorageTaskOperationName = "DeleteBlob"
	StorageTaskOperationNameSetBlobExpiry             StorageTaskOperationName = "SetBlobExpiry"
	StorageTaskOperationNameSetBlobImmutabilityPolicy StorageTaskOperationName = "SetBlobImmutabilityPolicy"
	StorageTaskOperationNameSetBlobLegalHold          StorageTaskOperationName = "SetBlobLegalHold"
	StorageTaskOperationNameSetBlobTags               StorageTaskOperationName = "SetBlobTags"
	StorageTaskOperationNameSetBlobTier               StorageTaskOperationName = "SetBlobTier"
	StorageTaskOperationNameUndeleteBlob              StorageTaskOperationName = "UndeleteBlob"
)

// PossibleStorageTaskOperationNameValues returns the possible values for the StorageTaskOperationName const type.
func PossibleStorageTaskOperationNameValues() []StorageTaskOperationName {
	return []StorageTaskOperationName{
		StorageTaskOperationNameDeleteBlob,
		StorageTaskOperationNameSetBlobExpiry,
		StorageTaskOperationNameSetBlobImmutabilityPolicy,
		StorageTaskOperationNameSetBlobLegalHold,
		StorageTaskOperationNameSetBlobTags,
		StorageTaskOperationNameSetBlobTier,
		StorageTaskOperationNameUndeleteBlob,
	}
}
