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

const (
	version20250531Preview string = "2025-05-31-preview"
)

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

// KeyEncryptionKeyIdentityType - The type of identity to use.
type KeyEncryptionKeyIdentityType string

const (
	// KeyEncryptionKeyIdentityTypeSystemAssignedIdentity - System assigned identity
	KeyEncryptionKeyIdentityTypeSystemAssignedIdentity KeyEncryptionKeyIdentityType = "SystemAssignedIdentity"
	// KeyEncryptionKeyIdentityTypeUserAssignedIdentity - User assigned identity
	KeyEncryptionKeyIdentityTypeUserAssignedIdentity KeyEncryptionKeyIdentityType = "UserAssignedIdentity"
)

// PossibleKeyEncryptionKeyIdentityTypeValues returns the possible values for the KeyEncryptionKeyIdentityType const type.
func PossibleKeyEncryptionKeyIdentityTypeValues() []KeyEncryptionKeyIdentityType {
	return []KeyEncryptionKeyIdentityType{
		KeyEncryptionKeyIdentityTypeSystemAssignedIdentity,
		KeyEncryptionKeyIdentityTypeUserAssignedIdentity,
	}
}

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

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

// ResourceProvisioningState - The provisioning state of a resource type.
type ResourceProvisioningState string

const (
	// ResourceProvisioningStateCanceled - Resource creation was canceled.
	ResourceProvisioningStateCanceled ResourceProvisioningState = "Canceled"
	// ResourceProvisioningStateFailed - Resource creation failed.
	ResourceProvisioningStateFailed ResourceProvisioningState = "Failed"
	// ResourceProvisioningStateSucceeded - Resource has been created.
	ResourceProvisioningStateSucceeded ResourceProvisioningState = "Succeeded"
)

// PossibleResourceProvisioningStateValues returns the possible values for the ResourceProvisioningState const type.
func PossibleResourceProvisioningStateValues() []ResourceProvisioningState {
	return []ResourceProvisioningState{
		ResourceProvisioningStateCanceled,
		ResourceProvisioningStateFailed,
		ResourceProvisioningStateSucceeded,
	}
}

// WorkspaceSKUName - The allowed SKU names for the online experimentation workspace.
type WorkspaceSKUName string

const (
	// WorkspaceSKUNameD0 - The Developer service sku name.
	WorkspaceSKUNameD0 WorkspaceSKUName = "D0"
	// WorkspaceSKUNameF0 - The Free service sku name.
	WorkspaceSKUNameF0 WorkspaceSKUName = "F0"
	// WorkspaceSKUNameP0 - The Premium service sku name.
	WorkspaceSKUNameP0 WorkspaceSKUName = "P0"
	// WorkspaceSKUNameS0 - The Standard service sku name.
	WorkspaceSKUNameS0 WorkspaceSKUName = "S0"
)

// PossibleWorkspaceSKUNameValues returns the possible values for the WorkspaceSKUName const type.
func PossibleWorkspaceSKUNameValues() []WorkspaceSKUName {
	return []WorkspaceSKUName{
		WorkspaceSKUNameD0,
		WorkspaceSKUNameF0,
		WorkspaceSKUNameP0,
		WorkspaceSKUNameS0,
	}
}

// WorkspaceSKUTier - The allowed SKU tiers for the online experimentation workspace.
type WorkspaceSKUTier string

const (
	// WorkspaceSKUTierDeveloper - The Developer service tier.
	WorkspaceSKUTierDeveloper WorkspaceSKUTier = "Developer"
	// WorkspaceSKUTierFree - The Free service tier.
	WorkspaceSKUTierFree WorkspaceSKUTier = "Free"
	// WorkspaceSKUTierPremium - The Premium service tier.
	WorkspaceSKUTierPremium WorkspaceSKUTier = "Premium"
	// WorkspaceSKUTierStandard - The Standard service tier.
	WorkspaceSKUTierStandard WorkspaceSKUTier = "Standard"
)

// PossibleWorkspaceSKUTierValues returns the possible values for the WorkspaceSKUTier const type.
func PossibleWorkspaceSKUTierValues() []WorkspaceSKUTier {
	return []WorkspaceSKUTier{
		WorkspaceSKUTierDeveloper,
		WorkspaceSKUTierFree,
		WorkspaceSKUTierPremium,
		WorkspaceSKUTierStandard,
	}
}
