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

const (
	version20250701 string = "2025-07-01"
)

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

// DenySettingsMode - denySettings Mode that defines denied actions.
type DenySettingsMode string

const (
	// DenySettingsModeDenyDelete - Authorized users are able to read and modify the resources, but cannot delete.
	DenySettingsModeDenyDelete DenySettingsMode = "denyDelete"
	// DenySettingsModeDenyWriteAndDelete - Authorized users can read from a resource, but cannot modify or delete it.
	DenySettingsModeDenyWriteAndDelete DenySettingsMode = "denyWriteAndDelete"
	// DenySettingsModeNone - No denyAssignments have been applied.
	DenySettingsModeNone DenySettingsMode = "none"
)

// PossibleDenySettingsModeValues returns the possible values for the DenySettingsMode const type.
func PossibleDenySettingsModeValues() []DenySettingsMode {
	return []DenySettingsMode{
		DenySettingsModeDenyDelete,
		DenySettingsModeDenyWriteAndDelete,
		DenySettingsModeNone,
	}
}

// DenyStatusMode - denyAssignment settings applied to the resource.
type DenyStatusMode string

const (
	// DenyStatusModeDenyDelete - Authorized users are able to read and modify the resources, but cannot delete.
	DenyStatusModeDenyDelete DenyStatusMode = "denyDelete"
	// DenyStatusModeDenyWriteAndDelete - Authorized users can only read from a resource, but cannot modify or delete it.
	DenyStatusModeDenyWriteAndDelete DenyStatusMode = "denyWriteAndDelete"
	// DenyStatusModeInapplicable - denyAssignments are not supported on resources outside the scope of the deployment stack.
	DenyStatusModeInapplicable DenyStatusMode = "inapplicable"
	// DenyStatusModeNone - No denyAssignments have been applied.
	DenyStatusModeNone DenyStatusMode = "none"
	// DenyStatusModeNotSupported - Resource type does not support denyAssignments.
	DenyStatusModeNotSupported DenyStatusMode = "notSupported"
	// DenyStatusModeRemovedBySystem - Deny assignment has been removed by Azure due to a resource management change (management
	// group move, etc.)
	DenyStatusModeRemovedBySystem DenyStatusMode = "removedBySystem"
	// DenyStatusModeUnknown - The denyAssignment status is unknown.
	DenyStatusModeUnknown DenyStatusMode = "unknown"
)

// PossibleDenyStatusModeValues returns the possible values for the DenyStatusMode const type.
func PossibleDenyStatusModeValues() []DenyStatusMode {
	return []DenyStatusMode{
		DenyStatusModeDenyDelete,
		DenyStatusModeDenyWriteAndDelete,
		DenyStatusModeInapplicable,
		DenyStatusModeNone,
		DenyStatusModeNotSupported,
		DenyStatusModeRemovedBySystem,
		DenyStatusModeUnknown,
	}
}

// DeploymentStackProvisioningState - State of the deployment stack.
type DeploymentStackProvisioningState string

const (
	// DeploymentStackProvisioningStateCanceled - The deployment stack has been cancelled
	DeploymentStackProvisioningStateCanceled DeploymentStackProvisioningState = "canceled"
	// DeploymentStackProvisioningStateCanceling - The deployment stack is being cancelled
	DeploymentStackProvisioningStateCanceling DeploymentStackProvisioningState = "canceling"
	// DeploymentStackProvisioningStateCreating - The deployment stack is currently being created
	DeploymentStackProvisioningStateCreating DeploymentStackProvisioningState = "creating"
	// DeploymentStackProvisioningStateDeleting - The deployment stack is being deleted
	DeploymentStackProvisioningStateDeleting DeploymentStackProvisioningState = "deleting"
	// DeploymentStackProvisioningStateDeletingResources - The deployment stack is deleting resources
	DeploymentStackProvisioningStateDeletingResources DeploymentStackProvisioningState = "deletingResources"
	// DeploymentStackProvisioningStateDeploying - The deployment stack is currently deploying
	DeploymentStackProvisioningStateDeploying DeploymentStackProvisioningState = "deploying"
	// DeploymentStackProvisioningStateFailed - The deployment stack has failed
	DeploymentStackProvisioningStateFailed DeploymentStackProvisioningState = "failed"
	// DeploymentStackProvisioningStateInitializing - The deployment stack is currently being initialized
	DeploymentStackProvisioningStateInitializing DeploymentStackProvisioningState = "initializing"
	// DeploymentStackProvisioningStateRunning - The deployment stack is currently performing an operation
	DeploymentStackProvisioningStateRunning DeploymentStackProvisioningState = "running"
	// DeploymentStackProvisioningStateSucceeded - The deployment stack completed successfully
	DeploymentStackProvisioningStateSucceeded DeploymentStackProvisioningState = "succeeded"
	// DeploymentStackProvisioningStateUpdatingDenyAssignments - The deployment stack is updating deny assignments
	DeploymentStackProvisioningStateUpdatingDenyAssignments DeploymentStackProvisioningState = "updatingDenyAssignments"
	// DeploymentStackProvisioningStateValidating - The deployment stack is currently being validated
	DeploymentStackProvisioningStateValidating DeploymentStackProvisioningState = "validating"
	// DeploymentStackProvisioningStateWaiting - The deployment stack is currently waiting
	DeploymentStackProvisioningStateWaiting DeploymentStackProvisioningState = "waiting"
)

// PossibleDeploymentStackProvisioningStateValues returns the possible values for the DeploymentStackProvisioningState const type.
func PossibleDeploymentStackProvisioningStateValues() []DeploymentStackProvisioningState {
	return []DeploymentStackProvisioningState{
		DeploymentStackProvisioningStateCanceled,
		DeploymentStackProvisioningStateCanceling,
		DeploymentStackProvisioningStateCreating,
		DeploymentStackProvisioningStateDeleting,
		DeploymentStackProvisioningStateDeletingResources,
		DeploymentStackProvisioningStateDeploying,
		DeploymentStackProvisioningStateFailed,
		DeploymentStackProvisioningStateInitializing,
		DeploymentStackProvisioningStateRunning,
		DeploymentStackProvisioningStateSucceeded,
		DeploymentStackProvisioningStateUpdatingDenyAssignments,
		DeploymentStackProvisioningStateValidating,
		DeploymentStackProvisioningStateWaiting,
	}
}

// DeploymentStacksDiagnosticLevel - Denotes the additional response level.
type DeploymentStacksDiagnosticLevel string

const (
	// DeploymentStacksDiagnosticLevelError - Error message.
	DeploymentStacksDiagnosticLevelError DeploymentStacksDiagnosticLevel = "error"
	// DeploymentStacksDiagnosticLevelInfo - Informational message.
	DeploymentStacksDiagnosticLevelInfo DeploymentStacksDiagnosticLevel = "info"
	// DeploymentStacksDiagnosticLevelWarning - Warning message.
	DeploymentStacksDiagnosticLevelWarning DeploymentStacksDiagnosticLevel = "warning"
)

// PossibleDeploymentStacksDiagnosticLevelValues returns the possible values for the DeploymentStacksDiagnosticLevel const type.
func PossibleDeploymentStacksDiagnosticLevelValues() []DeploymentStacksDiagnosticLevel {
	return []DeploymentStacksDiagnosticLevel{
		DeploymentStacksDiagnosticLevelError,
		DeploymentStacksDiagnosticLevelInfo,
		DeploymentStacksDiagnosticLevelWarning,
	}
}

// DeploymentStacksManagementStatus - The management status of the deployment stack resource.
type DeploymentStacksManagementStatus string

const (
	// DeploymentStacksManagementStatusManaged - The resource is managed by the deployment stack.
	DeploymentStacksManagementStatusManaged DeploymentStacksManagementStatus = "managed"
	// DeploymentStacksManagementStatusUnknown - The management state of the resource could not be determined.
	DeploymentStacksManagementStatusUnknown DeploymentStacksManagementStatus = "unknown"
	// DeploymentStacksManagementStatusUnmanaged - The resource is not managed by the deployment stack.
	DeploymentStacksManagementStatusUnmanaged DeploymentStacksManagementStatus = "unmanaged"
)

// PossibleDeploymentStacksManagementStatusValues returns the possible values for the DeploymentStacksManagementStatus const type.
func PossibleDeploymentStacksManagementStatusValues() []DeploymentStacksManagementStatus {
	return []DeploymentStacksManagementStatus{
		DeploymentStacksManagementStatusManaged,
		DeploymentStacksManagementStatusUnknown,
		DeploymentStacksManagementStatusUnmanaged,
	}
}

// DeploymentStacksWhatIfChangeCertainty - Denotes the confidence level of the predicted change.
type DeploymentStacksWhatIfChangeCertainty string

const (
	// DeploymentStacksWhatIfChangeCertaintyDefinite - The change is definite.
	DeploymentStacksWhatIfChangeCertaintyDefinite DeploymentStacksWhatIfChangeCertainty = "definite"
	// DeploymentStacksWhatIfChangeCertaintyPotential - The change may or may not happen, based on deployment-time conditions.
	DeploymentStacksWhatIfChangeCertaintyPotential DeploymentStacksWhatIfChangeCertainty = "potential"
)

// PossibleDeploymentStacksWhatIfChangeCertaintyValues returns the possible values for the DeploymentStacksWhatIfChangeCertainty const type.
func PossibleDeploymentStacksWhatIfChangeCertaintyValues() []DeploymentStacksWhatIfChangeCertainty {
	return []DeploymentStacksWhatIfChangeCertainty{
		DeploymentStacksWhatIfChangeCertaintyDefinite,
		DeploymentStacksWhatIfChangeCertaintyPotential,
	}
}

// DeploymentStacksWhatIfChangeType - Type of change that will be made to the resource when the deployment is executed.
type DeploymentStacksWhatIfChangeType string

const (
	// DeploymentStacksWhatIfChangeTypeCreate - The resource does not exist in the current state but is present in the desired
	// state. The resource will be created when the deployment is executed.
	DeploymentStacksWhatIfChangeTypeCreate DeploymentStacksWhatIfChangeType = "create"
	// DeploymentStacksWhatIfChangeTypeDelete - The resource exists in the current state and is missing from the desired state.
	// The resource will be deleted from Azure after the deployment is executed.
	DeploymentStacksWhatIfChangeTypeDelete DeploymentStacksWhatIfChangeType = "delete"
	// DeploymentStacksWhatIfChangeTypeDetach - The resource exists in the current state and is missing from the desired state.
	// The resource will be removed from the deployment stack, but will remain in Azure, after the deployment is executed.
	DeploymentStacksWhatIfChangeTypeDetach DeploymentStacksWhatIfChangeType = "detach"
	// DeploymentStacksWhatIfChangeTypeModify - The resource exists in the current state and the desired state and will be redeployed
	// when the deployment is executed. The properties of the resource will change.
	DeploymentStacksWhatIfChangeTypeModify DeploymentStacksWhatIfChangeType = "modify"
	// DeploymentStacksWhatIfChangeTypeNoChange - The resource exists in the current state and the desired state and will be redeployed
	// when the deployment is executed. The properties of the resource will not change.
	DeploymentStacksWhatIfChangeTypeNoChange DeploymentStacksWhatIfChangeType = "noChange"
	// DeploymentStacksWhatIfChangeTypeUnsupported - The resource is not supported by What-If.
	DeploymentStacksWhatIfChangeTypeUnsupported DeploymentStacksWhatIfChangeType = "unsupported"
)

// PossibleDeploymentStacksWhatIfChangeTypeValues returns the possible values for the DeploymentStacksWhatIfChangeType const type.
func PossibleDeploymentStacksWhatIfChangeTypeValues() []DeploymentStacksWhatIfChangeType {
	return []DeploymentStacksWhatIfChangeType{
		DeploymentStacksWhatIfChangeTypeCreate,
		DeploymentStacksWhatIfChangeTypeDelete,
		DeploymentStacksWhatIfChangeTypeDetach,
		DeploymentStacksWhatIfChangeTypeModify,
		DeploymentStacksWhatIfChangeTypeNoChange,
		DeploymentStacksWhatIfChangeTypeUnsupported,
	}
}

// DeploymentStacksWhatIfPropertyChangeType - The type of property change.
type DeploymentStacksWhatIfPropertyChangeType string

const (
	// DeploymentStacksWhatIfPropertyChangeTypeArray - The property is an array and contains nested changes.
	DeploymentStacksWhatIfPropertyChangeTypeArray DeploymentStacksWhatIfPropertyChangeType = "array"
	// DeploymentStacksWhatIfPropertyChangeTypeCreate - The property does not exist in the current state but is present in the
	// desired state. The property will be created when the deployment is executed.
	DeploymentStacksWhatIfPropertyChangeTypeCreate DeploymentStacksWhatIfPropertyChangeType = "create"
	// DeploymentStacksWhatIfPropertyChangeTypeDelete - The property exists in the current state and is missing from the desired
	// state. It will be deleted when the deployment is executed.
	DeploymentStacksWhatIfPropertyChangeTypeDelete DeploymentStacksWhatIfPropertyChangeType = "delete"
	// DeploymentStacksWhatIfPropertyChangeTypeModify - The property exists in both current and desired state and is different.
	// The value of the property will change when the deployment is executed.
	DeploymentStacksWhatIfPropertyChangeTypeModify DeploymentStacksWhatIfPropertyChangeType = "modify"
	// DeploymentStacksWhatIfPropertyChangeTypeNoEffect - The property will not be set or updated.
	DeploymentStacksWhatIfPropertyChangeTypeNoEffect DeploymentStacksWhatIfPropertyChangeType = "noEffect"
)

// PossibleDeploymentStacksWhatIfPropertyChangeTypeValues returns the possible values for the DeploymentStacksWhatIfPropertyChangeType const type.
func PossibleDeploymentStacksWhatIfPropertyChangeTypeValues() []DeploymentStacksWhatIfPropertyChangeType {
	return []DeploymentStacksWhatIfPropertyChangeType{
		DeploymentStacksWhatIfPropertyChangeTypeArray,
		DeploymentStacksWhatIfPropertyChangeTypeCreate,
		DeploymentStacksWhatIfPropertyChangeTypeDelete,
		DeploymentStacksWhatIfPropertyChangeTypeModify,
		DeploymentStacksWhatIfPropertyChangeTypeNoEffect,
	}
}

// ResourceStatusMode - Current management state of the resource in the deployment stack.
type ResourceStatusMode string

const (
	// ResourceStatusModeDeleteFailed - Unable to delete the resource from Azure. The delete will be retried on the next stack
	// deployment, or can be deleted manually.
	ResourceStatusModeDeleteFailed ResourceStatusMode = "deleteFailed"
	// ResourceStatusModeManaged - This resource is managed by the deployment stack.
	ResourceStatusModeManaged ResourceStatusMode = "managed"
	// ResourceStatusModeRemoveDenyFailed - Unable to remove the deny assignment on resource.
	ResourceStatusModeRemoveDenyFailed ResourceStatusMode = "removeDenyFailed"
)

// PossibleResourceStatusModeValues returns the possible values for the ResourceStatusMode const type.
func PossibleResourceStatusModeValues() []ResourceStatusMode {
	return []ResourceStatusMode{
		ResourceStatusModeDeleteFailed,
		ResourceStatusModeManaged,
		ResourceStatusModeRemoveDenyFailed,
	}
}

// ResourcesWithoutDeleteSupportAction - Specifies an action for resources that do not support deletion.
type ResourcesWithoutDeleteSupportAction string

const (
	// ResourcesWithoutDeleteSupportActionDetach - Detach the specified resources from the deployment stack and continue.
	ResourcesWithoutDeleteSupportActionDetach ResourcesWithoutDeleteSupportAction = "detach"
	// ResourcesWithoutDeleteSupportActionFail - Fail the deployment stack if resources cannot be deleted.
	ResourcesWithoutDeleteSupportActionFail ResourcesWithoutDeleteSupportAction = "fail"
)

// PossibleResourcesWithoutDeleteSupportActionValues returns the possible values for the ResourcesWithoutDeleteSupportAction const type.
func PossibleResourcesWithoutDeleteSupportActionValues() []ResourcesWithoutDeleteSupportAction {
	return []ResourcesWithoutDeleteSupportAction{
		ResourcesWithoutDeleteSupportActionDetach,
		ResourcesWithoutDeleteSupportActionFail,
	}
}

// UnmanageActionManagementGroupMode - Specifies an action for a newly unmanaged resource.
type UnmanageActionManagementGroupMode string

const (
	// UnmanageActionManagementGroupModeDelete - Delete the management groups from Azure.
	UnmanageActionManagementGroupModeDelete UnmanageActionManagementGroupMode = "delete"
	// UnmanageActionManagementGroupModeDetach - Keep the management groups in Azure.
	UnmanageActionManagementGroupModeDetach UnmanageActionManagementGroupMode = "detach"
)

// PossibleUnmanageActionManagementGroupModeValues returns the possible values for the UnmanageActionManagementGroupMode const type.
func PossibleUnmanageActionManagementGroupModeValues() []UnmanageActionManagementGroupMode {
	return []UnmanageActionManagementGroupMode{
		UnmanageActionManagementGroupModeDelete,
		UnmanageActionManagementGroupModeDetach,
	}
}

// UnmanageActionResourceGroupMode - Specifies an action for a newly unmanaged resource group.
type UnmanageActionResourceGroupMode string

const (
	// UnmanageActionResourceGroupModeDelete - Delete the resource groups from Azure.
	UnmanageActionResourceGroupModeDelete UnmanageActionResourceGroupMode = "delete"
	// UnmanageActionResourceGroupModeDetach - Keep the resource groups in Azure.
	UnmanageActionResourceGroupModeDetach UnmanageActionResourceGroupMode = "detach"
)

// PossibleUnmanageActionResourceGroupModeValues returns the possible values for the UnmanageActionResourceGroupMode const type.
func PossibleUnmanageActionResourceGroupModeValues() []UnmanageActionResourceGroupMode {
	return []UnmanageActionResourceGroupMode{
		UnmanageActionResourceGroupModeDelete,
		UnmanageActionResourceGroupModeDetach,
	}
}

// UnmanageActionResourceMode - Specifies an action for a newly unmanaged resource.
type UnmanageActionResourceMode string

const (
	// UnmanageActionResourceModeDelete - Delete the resources from Azure
	UnmanageActionResourceModeDelete UnmanageActionResourceMode = "delete"
	// UnmanageActionResourceModeDetach - Keep the resources in Azure
	UnmanageActionResourceModeDetach UnmanageActionResourceMode = "detach"
)

// PossibleUnmanageActionResourceModeValues returns the possible values for the UnmanageActionResourceMode const type.
func PossibleUnmanageActionResourceModeValues() []UnmanageActionResourceMode {
	return []UnmanageActionResourceMode{
		UnmanageActionResourceModeDelete,
		UnmanageActionResourceModeDetach,
	}
}

// ValidationLevel - The level of validation performed on the deployment.
type ValidationLevel string

const (
	// ValidationLevelProvider - Static analysis of the template is performed and resource declarations are sent to resource providers
	// for semantic validation. Validates that the caller has RBAC write permissions on each resource.
	ValidationLevelProvider ValidationLevel = "Provider"
	// ValidationLevelProviderNoRbac - Static analysis of the template is performed and resource declarations are sent to resource
	// providers for semantic validation. Skips validating that the caller has RBAC write permissions on each resource.
	ValidationLevelProviderNoRbac ValidationLevel = "ProviderNoRbac"
	// ValidationLevelTemplate - Static analysis of the template is performed.
	ValidationLevelTemplate ValidationLevel = "Template"
)

// PossibleValidationLevelValues returns the possible values for the ValidationLevel const type.
func PossibleValidationLevelValues() []ValidationLevel {
	return []ValidationLevel{
		ValidationLevelProvider,
		ValidationLevelProviderNoRbac,
		ValidationLevelTemplate,
	}
}
