// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.8, generator: @autorest/go@4.0.0-preview.74)
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
// Code generated by @autorest/go. DO NOT EDIT.

package armredhatopenshifthcp

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

const (
	ActionTypeInternal ActionType = "Internal"
)

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

// ClusterImageRegistryState - state indicates the desired ImageStream-backed cluster image registry installation mode.
// This can only be set during cluster creation and cannot be changed after cluster creation. Enabled means the
// ImageStream-backed image registry will be run as pods on worker nodes in the cluster. Disabled means the ImageStream-backed
// image registry will not be present in the cluster. The default is Enabled.
type ClusterImageRegistryState string

const (
	ClusterImageRegistryStateDisabled ClusterImageRegistryState = "Disabled"
	ClusterImageRegistryStateEnabled  ClusterImageRegistryState = "Enabled"
)

// PossibleClusterImageRegistryStateValues returns the possible values for the ClusterImageRegistryState const type.
func PossibleClusterImageRegistryStateValues() []ClusterImageRegistryState {
	return []ClusterImageRegistryState{
		ClusterImageRegistryStateDisabled,
		ClusterImageRegistryStateEnabled,
	}
}

// CreatedByType - The type of identity that created the resource.
type CreatedByType string

const (
	CreatedByTypeApplication     CreatedByType = "Application"
	CreatedByTypeKey             CreatedByType = "Key"
	CreatedByTypeManagedIdentity CreatedByType = "ManagedIdentity"
	CreatedByTypeUser            CreatedByType = "User"
)

// PossibleCreatedByTypeValues returns the possible values for the CreatedByType const type.
func PossibleCreatedByTypeValues() []CreatedByType {
	return []CreatedByType{
		CreatedByTypeApplication,
		CreatedByTypeKey,
		CreatedByTypeManagedIdentity,
		CreatedByTypeUser,
	}
}

// CustomerManagedEncryptionType - The encryption type used. By default, "KMS" is used.
type CustomerManagedEncryptionType string

const (
	// CustomerManagedEncryptionTypeKms - KMS encryption type.
	CustomerManagedEncryptionTypeKms CustomerManagedEncryptionType = "KMS"
)

// PossibleCustomerManagedEncryptionTypeValues returns the possible values for the CustomerManagedEncryptionType const type.
func PossibleCustomerManagedEncryptionTypeValues() []CustomerManagedEncryptionType {
	return []CustomerManagedEncryptionType{
		CustomerManagedEncryptionTypeKms,
	}
}

// DiskStorageAccountType - The type of the disk storage account
// * https://learn.microsoft.com/en-us/azure/virtual-machines/disks-types
type DiskStorageAccountType string

const (
	// DiskStorageAccountTypePremiumLRS - Premium SSD with Locally Redundant Storage (LRS)
	DiskStorageAccountTypePremiumLRS DiskStorageAccountType = "Premium_LRS"
	// DiskStorageAccountTypeStandardLRS - Standard HDD with Locally Redundant Storage (LRS)
	DiskStorageAccountTypeStandardLRS DiskStorageAccountType = "Standard_LRS"
	// DiskStorageAccountTypeStandardSSDLRS - Standard SSD with Locally Redundant Storage (LRS)
	DiskStorageAccountTypeStandardSSDLRS DiskStorageAccountType = "StandardSSD_LRS"
)

// PossibleDiskStorageAccountTypeValues returns the possible values for the DiskStorageAccountType const type.
func PossibleDiskStorageAccountTypeValues() []DiskStorageAccountType {
	return []DiskStorageAccountType{
		DiskStorageAccountTypePremiumLRS,
		DiskStorageAccountTypeStandardLRS,
		DiskStorageAccountTypeStandardSSDLRS,
	}
}

// Effect - The taint effect the same as in Kubernetes
type Effect string

const (
	// EffectNoExecute - NoExecute taint effect
	EffectNoExecute Effect = "NoExecute"
	// EffectNoSchedule - NoSchedule taint effect
	EffectNoSchedule Effect = "NoSchedule"
	// EffectPreferNoSchedule - PreferNoSchedule taint effect
	EffectPreferNoSchedule Effect = "PreferNoSchedule"
)

// PossibleEffectValues returns the possible values for the Effect const type.
func PossibleEffectValues() []Effect {
	return []Effect{
		EffectNoExecute,
		EffectNoSchedule,
		EffectPreferNoSchedule,
	}
}

// EtcdDataEncryptionKeyManagementModeType - Specify the key management strategy used for the encryption key that encrypts
// the ETCD data. By default, "PlatformManaged" is used.
type EtcdDataEncryptionKeyManagementModeType string

const (
	// EtcdDataEncryptionKeyManagementModeTypeCustomerManaged - Customer managed encryption key management mode type.
	EtcdDataEncryptionKeyManagementModeTypeCustomerManaged EtcdDataEncryptionKeyManagementModeType = "CustomerManaged"
	// EtcdDataEncryptionKeyManagementModeTypePlatformManaged - Platform managed encryption key management mode type.
	EtcdDataEncryptionKeyManagementModeTypePlatformManaged EtcdDataEncryptionKeyManagementModeType = "PlatformManaged"
)

// PossibleEtcdDataEncryptionKeyManagementModeTypeValues returns the possible values for the EtcdDataEncryptionKeyManagementModeType const type.
func PossibleEtcdDataEncryptionKeyManagementModeTypeValues() []EtcdDataEncryptionKeyManagementModeType {
	return []EtcdDataEncryptionKeyManagementModeType{
		EtcdDataEncryptionKeyManagementModeTypeCustomerManaged,
		EtcdDataEncryptionKeyManagementModeTypePlatformManaged,
	}
}

// ExternalAuthClientType - Representation of the possible values of an external authentication client's type
type ExternalAuthClientType string

const (
	// ExternalAuthClientTypeConfidential - Indicates that the client is confidential.
	// Confidential clients must provide a client secret.
	// The secret should be provided within the cluster itself.
	ExternalAuthClientTypeConfidential ExternalAuthClientType = "Confidential"
	// ExternalAuthClientTypePublic - Indicates that the client is public.
	// Public clients must not provide a client secret.
	ExternalAuthClientTypePublic ExternalAuthClientType = "Public"
)

// PossibleExternalAuthClientTypeValues returns the possible values for the ExternalAuthClientType const type.
func PossibleExternalAuthClientTypeValues() []ExternalAuthClientType {
	return []ExternalAuthClientType{
		ExternalAuthClientTypeConfidential,
		ExternalAuthClientTypePublic,
	}
}

// ExternalAuthConditionType - Representation of the possible types of a external auths condition.
type ExternalAuthConditionType string

const (
	// ExternalAuthConditionTypeAvailable - Indicates that the external auth resource is available.
	ExternalAuthConditionTypeAvailable ExternalAuthConditionType = "Available"
	// ExternalAuthConditionTypeDegraded - Indicates that the external auth resource is in a degraded state.
	ExternalAuthConditionTypeDegraded ExternalAuthConditionType = "Degraded"
	// ExternalAuthConditionTypeProgressing - Indicates that the external auth resource is in a progressing state.
	ExternalAuthConditionTypeProgressing ExternalAuthConditionType = "Progressing"
)

// PossibleExternalAuthConditionTypeValues returns the possible values for the ExternalAuthConditionType const type.
func PossibleExternalAuthConditionTypeValues() []ExternalAuthConditionType {
	return []ExternalAuthConditionType{
		ExternalAuthConditionTypeAvailable,
		ExternalAuthConditionTypeDegraded,
		ExternalAuthConditionTypeProgressing,
	}
}

// ExternalAuthProvisioningState - The resource provisioning state.
type ExternalAuthProvisioningState string

const (
	// ExternalAuthProvisioningStateAccepted - Non-terminal state indicating the resource has been accepted
	ExternalAuthProvisioningStateAccepted ExternalAuthProvisioningState = "Accepted"
	// ExternalAuthProvisioningStateAwaitingSecret - Non-terminal state indicating the resource is awaiting secret
	ExternalAuthProvisioningStateAwaitingSecret ExternalAuthProvisioningState = "AwaitingSecret"
	// ExternalAuthProvisioningStateCanceled - Resource creation was canceled.
	ExternalAuthProvisioningStateCanceled ExternalAuthProvisioningState = "Canceled"
	// ExternalAuthProvisioningStateDeleting - Non-terminal state indicating the resource is deleting
	ExternalAuthProvisioningStateDeleting ExternalAuthProvisioningState = "Deleting"
	// ExternalAuthProvisioningStateFailed - Resource creation failed.
	ExternalAuthProvisioningStateFailed ExternalAuthProvisioningState = "Failed"
	// ExternalAuthProvisioningStateProvisioning - Non-terminal state indicating the resource is provisioning
	ExternalAuthProvisioningStateProvisioning ExternalAuthProvisioningState = "Provisioning"
	// ExternalAuthProvisioningStateSucceeded - Resource has been created.
	ExternalAuthProvisioningStateSucceeded ExternalAuthProvisioningState = "Succeeded"
	// ExternalAuthProvisioningStateUpdating - Non-terminal state indicating the resource is updating
	ExternalAuthProvisioningStateUpdating ExternalAuthProvisioningState = "Updating"
)

// PossibleExternalAuthProvisioningStateValues returns the possible values for the ExternalAuthProvisioningState const type.
func PossibleExternalAuthProvisioningStateValues() []ExternalAuthProvisioningState {
	return []ExternalAuthProvisioningState{
		ExternalAuthProvisioningStateAccepted,
		ExternalAuthProvisioningStateAwaitingSecret,
		ExternalAuthProvisioningStateCanceled,
		ExternalAuthProvisioningStateDeleting,
		ExternalAuthProvisioningStateFailed,
		ExternalAuthProvisioningStateProvisioning,
		ExternalAuthProvisioningStateSucceeded,
		ExternalAuthProvisioningStateUpdating,
	}
}

// ManagedServiceIdentityType - Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
type ManagedServiceIdentityType string

const (
	ManagedServiceIdentityTypeNone                       ManagedServiceIdentityType = "None"
	ManagedServiceIdentityTypeSystemAssigned             ManagedServiceIdentityType = "SystemAssigned"
	ManagedServiceIdentityTypeSystemAssignedUserAssigned ManagedServiceIdentityType = "SystemAssigned,UserAssigned"
	ManagedServiceIdentityTypeUserAssigned               ManagedServiceIdentityType = "UserAssigned"
)

// PossibleManagedServiceIdentityTypeValues returns the possible values for the ManagedServiceIdentityType const type.
func PossibleManagedServiceIdentityTypeValues() []ManagedServiceIdentityType {
	return []ManagedServiceIdentityType{
		ManagedServiceIdentityTypeNone,
		ManagedServiceIdentityTypeSystemAssigned,
		ManagedServiceIdentityTypeSystemAssignedUserAssigned,
		ManagedServiceIdentityTypeUserAssigned,
	}
}

// NetworkType - The main controller responsible for rendering the core networking components
type NetworkType string

const (
	// NetworkTypeOVNKubernetes - The OVN network plugin for the OpenShift cluster
	NetworkTypeOVNKubernetes NetworkType = "OVNKubernetes"
	// NetworkTypeOther - Other network plugins
	NetworkTypeOther NetworkType = "Other"
)

// PossibleNetworkTypeValues returns the possible values for the NetworkType const type.
func PossibleNetworkTypeValues() []NetworkType {
	return []NetworkType{
		NetworkTypeOVNKubernetes,
		NetworkTypeOther,
	}
}

// OperatorIdentityRequired - Indicates if the identity is required
type OperatorIdentityRequired string

const (
	// OperatorIdentityRequiredAlways - Indicates the identity is always required.
	OperatorIdentityRequiredAlways OperatorIdentityRequired = "Always"
	// OperatorIdentityRequiredOnEnablement - Indicates the identity is only required when a functionality that leverages the
	// operator is enabled.
	OperatorIdentityRequiredOnEnablement OperatorIdentityRequired = "OnEnablement"
)

// PossibleOperatorIdentityRequiredValues returns the possible values for the OperatorIdentityRequired const type.
func PossibleOperatorIdentityRequiredValues() []OperatorIdentityRequired {
	return []OperatorIdentityRequired{
		OperatorIdentityRequiredAlways,
		OperatorIdentityRequiredOnEnablement,
	}
}

// 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     Origin = "system"
	OriginUser       Origin = "user"
	OriginUserSystem Origin = "user,system"
)

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

// OutboundType - The core outgoing configuration
type OutboundType string

const (
	// OutboundTypeLoadBalancer - The load balancer configuration
	OutboundTypeLoadBalancer OutboundType = "LoadBalancer"
)

// PossibleOutboundTypeValues returns the possible values for the OutboundType const type.
func PossibleOutboundTypeValues() []OutboundType {
	return []OutboundType{
		OutboundTypeLoadBalancer,
	}
}

// ProvisioningState - The resource provisioning state.
type ProvisioningState string

const (
	// ProvisioningStateAccepted - Non-terminal state indicating the resource has been accepted
	ProvisioningStateAccepted ProvisioningState = "Accepted"
	// ProvisioningStateCanceled - Resource creation was canceled.
	ProvisioningStateCanceled ProvisioningState = "Canceled"
	// ProvisioningStateDeleting - Non-terminal state indicating the resource is deleting
	ProvisioningStateDeleting ProvisioningState = "Deleting"
	// ProvisioningStateFailed - Resource creation failed.
	ProvisioningStateFailed ProvisioningState = "Failed"
	// ProvisioningStateProvisioning - Non-terminal state indicating the resource is provisioning
	ProvisioningStateProvisioning ProvisioningState = "Provisioning"
	// ProvisioningStateSucceeded - Resource has been created.
	ProvisioningStateSucceeded ProvisioningState = "Succeeded"
	// ProvisioningStateUpdating - Non-terminal state indicating the resource is updating
	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,
	}
}

// StatusType - Representation of the possible values of a external auths condition status.
type StatusType string

const (
	// StatusTypeFalse - Indicates that the condition status is False.
	StatusTypeFalse StatusType = "False"
	// StatusTypeTrue - Indicates that the condition status is True.
	StatusTypeTrue StatusType = "True"
	// StatusTypeUnknown - Indicates that the condition status is unknown.
	StatusTypeUnknown StatusType = "Unknown"
)

// PossibleStatusTypeValues returns the possible values for the StatusType const type.
func PossibleStatusTypeValues() []StatusType {
	return []StatusType{
		StatusTypeFalse,
		StatusTypeTrue,
		StatusTypeUnknown,
	}
}

// TokenValidationRuleType - This configures the type of the validation rule. It defaults to "RequiredClaim"
type TokenValidationRuleType string

const (
	// TokenValidationRuleTypeRequiredClaim - Indicates that a Required Claim validation rule.
	// When set to 'RequiredClaim', the Kubernetes API server will be configured to validate that the incoming JWT
	// contains the required claim and that its value matches the required value.
	TokenValidationRuleTypeRequiredClaim TokenValidationRuleType = "RequiredClaim"
)

// PossibleTokenValidationRuleTypeValues returns the possible values for the TokenValidationRuleType const type.
func PossibleTokenValidationRuleTypeValues() []TokenValidationRuleType {
	return []TokenValidationRuleType{
		TokenValidationRuleTypeRequiredClaim,
	}
}

// UsernameClaimPrefixPolicy - UsernameClaimPrefixPolicy configures whether to add a prefix to a JWT claim.
type UsernameClaimPrefixPolicy string

const (
	// UsernameClaimPrefixPolicyNoPrefix - Do not add a prefix to the JWT claim
	UsernameClaimPrefixPolicyNoPrefix UsernameClaimPrefixPolicy = "NoPrefix"
	// UsernameClaimPrefixPolicyNone - No opinion; the platform is left to choose a prefix for the JWT claim
	UsernameClaimPrefixPolicyNone UsernameClaimPrefixPolicy = "None"
	// UsernameClaimPrefixPolicyPrefix - Add a user-provided prefix to the JWT claim
	UsernameClaimPrefixPolicyPrefix UsernameClaimPrefixPolicy = "Prefix"
)

// PossibleUsernameClaimPrefixPolicyValues returns the possible values for the UsernameClaimPrefixPolicy const type.
func PossibleUsernameClaimPrefixPolicyValues() []UsernameClaimPrefixPolicy {
	return []UsernameClaimPrefixPolicy{
		UsernameClaimPrefixPolicyNoPrefix,
		UsernameClaimPrefixPolicyNone,
		UsernameClaimPrefixPolicyPrefix,
	}
}

// Visibility - The internet visibility of the OpenShift API server
type Visibility string

const (
	// VisibilityPrivate - The API server is not visible from the internet.
	VisibilityPrivate Visibility = "Private"
	// VisibilityPublic - The API server is visible from the internet.
	VisibilityPublic Visibility = "Public"
)

// PossibleVisibilityValues returns the possible values for the Visibility const type.
func PossibleVisibilityValues() []Visibility {
	return []Visibility{
		VisibilityPrivate,
		VisibilityPublic,
	}
}
