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

const (
	moduleName    = "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/devopsinfrastructure/armdevopsinfrastructure"
	moduleVersion = "v1.0.0"
)

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

// AzureDevOpsPermissionType - Determines who has admin permissions to the Azure DevOps pool.
type AzureDevOpsPermissionType string

const (
	// AzureDevOpsPermissionTypeCreatorOnly - Only the pool creator will be an admin of the pool.
	AzureDevOpsPermissionTypeCreatorOnly AzureDevOpsPermissionType = "CreatorOnly"
	// AzureDevOpsPermissionTypeInherit - Pool will inherit permissions from the project or organization.
	AzureDevOpsPermissionTypeInherit AzureDevOpsPermissionType = "Inherit"
	// AzureDevOpsPermissionTypeSpecificAccounts - Only the specified accounts will be admins of the pool.
	AzureDevOpsPermissionTypeSpecificAccounts AzureDevOpsPermissionType = "SpecificAccounts"
)

// PossibleAzureDevOpsPermissionTypeValues returns the possible values for the AzureDevOpsPermissionType const type.
func PossibleAzureDevOpsPermissionTypeValues() []AzureDevOpsPermissionType {
	return []AzureDevOpsPermissionType{
		AzureDevOpsPermissionTypeCreatorOnly,
		AzureDevOpsPermissionTypeInherit,
		AzureDevOpsPermissionTypeSpecificAccounts,
	}
}

// CachingType - The type of caching in a data disk.
type CachingType string

const (
	// CachingTypeNone - Don't use host caching.
	CachingTypeNone CachingType = "None"
	// CachingTypeReadOnly - For workloads that only do read operations.
	CachingTypeReadOnly CachingType = "ReadOnly"
	// CachingTypeReadWrite - For workloads that do a balance of read and write operations.
	CachingTypeReadWrite CachingType = "ReadWrite"
)

// PossibleCachingTypeValues returns the possible values for the CachingType const type.
func PossibleCachingTypeValues() []CachingType {
	return []CachingType{
		CachingTypeNone,
		CachingTypeReadOnly,
		CachingTypeReadWrite,
	}
}

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

// LogonType - Determines how the service should be run.
type LogonType string

const (
	// LogonTypeInteractive - Run in interactive mode.
	LogonTypeInteractive LogonType = "Interactive"
	// LogonTypeService - Run as a service.
	LogonTypeService LogonType = "Service"
)

// PossibleLogonTypeValues returns the possible values for the LogonType const type.
func PossibleLogonTypeValues() []LogonType {
	return []LogonType{
		LogonTypeInteractive,
		LogonTypeService,
	}
}

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

// OsDiskStorageAccountType - The storage account type of the OS disk.
type OsDiskStorageAccountType string

const (
	// OsDiskStorageAccountTypePremium - Premium OS disk type.
	OsDiskStorageAccountTypePremium OsDiskStorageAccountType = "Premium"
	// OsDiskStorageAccountTypeStandard - Standard OS disk type.
	OsDiskStorageAccountTypeStandard OsDiskStorageAccountType = "Standard"
	// OsDiskStorageAccountTypeStandardSSD - Standard SSD OS disk type.
	OsDiskStorageAccountTypeStandardSSD OsDiskStorageAccountType = "StandardSSD"
)

// PossibleOsDiskStorageAccountTypeValues returns the possible values for the OsDiskStorageAccountType const type.
func PossibleOsDiskStorageAccountTypeValues() []OsDiskStorageAccountType {
	return []OsDiskStorageAccountType{
		OsDiskStorageAccountTypePremium,
		OsDiskStorageAccountTypeStandard,
		OsDiskStorageAccountTypeStandardSSD,
	}
}

// PredictionPreference - Determines the balance between cost and performance.
type PredictionPreference string

const (
	// PredictionPreferenceBalanced - Balance between cost and performance.
	PredictionPreferenceBalanced PredictionPreference = "Balanced"
	// PredictionPreferenceBestPerformance - Optimizes for performance over cost.
	PredictionPreferenceBestPerformance PredictionPreference = "BestPerformance"
	// PredictionPreferenceMoreCostEffective - Halfway through cost and balanced.
	PredictionPreferenceMoreCostEffective PredictionPreference = "MoreCostEffective"
	// PredictionPreferenceMorePerformance - Halfway through balanced and performance.
	PredictionPreferenceMorePerformance PredictionPreference = "MorePerformance"
	// PredictionPreferenceMostCostEffective - Optimizes for cost over performance.
	PredictionPreferenceMostCostEffective PredictionPreference = "MostCostEffective"
)

// PossiblePredictionPreferenceValues returns the possible values for the PredictionPreference const type.
func PossiblePredictionPreferenceValues() []PredictionPreference {
	return []PredictionPreference{
		PredictionPreferenceBalanced,
		PredictionPreferenceBestPerformance,
		PredictionPreferenceMoreCostEffective,
		PredictionPreferenceMorePerformance,
		PredictionPreferenceMostCostEffective,
	}
}

// ProvisioningState - The status of the current operation.
type ProvisioningState string

const (
	// ProvisioningStateAccepted - Represents an accepted operation.
	ProvisioningStateAccepted ProvisioningState = "Accepted"
	// ProvisioningStateCanceled - Represents a canceled operation.
	ProvisioningStateCanceled ProvisioningState = "Canceled"
	// ProvisioningStateDeleting - Represents an operation under deletion.
	ProvisioningStateDeleting ProvisioningState = "Deleting"
	// ProvisioningStateFailed - Represents a failed operation.
	ProvisioningStateFailed ProvisioningState = "Failed"
	// ProvisioningStateProvisioning - Represents a pending operation.
	ProvisioningStateProvisioning ProvisioningState = "Provisioning"
	// ProvisioningStateSucceeded - Represents a succeeded operation.
	ProvisioningStateSucceeded ProvisioningState = "Succeeded"
	// ProvisioningStateUpdating - Represents a pending operation.
	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,
	}
}

// ResourcePredictionsProfileType - Determines how the stand-by scheme should be provided.
type ResourcePredictionsProfileType string

const (
	// ResourcePredictionsProfileTypeAutomatic - The stand-by agent scheme is determined based on historical demand.
	ResourcePredictionsProfileTypeAutomatic ResourcePredictionsProfileType = "Automatic"
	// ResourcePredictionsProfileTypeManual - Customer provides the stand-by agent scheme.
	ResourcePredictionsProfileTypeManual ResourcePredictionsProfileType = "Manual"
)

// PossibleResourcePredictionsProfileTypeValues returns the possible values for the ResourcePredictionsProfileType const type.
func PossibleResourcePredictionsProfileTypeValues() []ResourcePredictionsProfileType {
	return []ResourcePredictionsProfileType{
		ResourcePredictionsProfileTypeAutomatic,
		ResourcePredictionsProfileTypeManual,
	}
}

// ResourceSKURestrictionsReasonCode - Describes the reason for SKU restriction.
type ResourceSKURestrictionsReasonCode string

const (
	// ResourceSKURestrictionsReasonCodeNotAvailableForSubscription - The restriction is not available for this subscription.
	ResourceSKURestrictionsReasonCodeNotAvailableForSubscription ResourceSKURestrictionsReasonCode = "NotAvailableForSubscription"
	// ResourceSKURestrictionsReasonCodeQuotaID - The restriction is due to exceeding a quota limitation.
	ResourceSKURestrictionsReasonCodeQuotaID ResourceSKURestrictionsReasonCode = "QuotaId"
)

// PossibleResourceSKURestrictionsReasonCodeValues returns the possible values for the ResourceSKURestrictionsReasonCode const type.
func PossibleResourceSKURestrictionsReasonCodeValues() []ResourceSKURestrictionsReasonCode {
	return []ResourceSKURestrictionsReasonCode{
		ResourceSKURestrictionsReasonCodeNotAvailableForSubscription,
		ResourceSKURestrictionsReasonCodeQuotaID,
	}
}

// ResourceSKURestrictionsType - Describes the kind of SKU restrictions that can exist
type ResourceSKURestrictionsType string

const (
	// ResourceSKURestrictionsTypeLocation - SKU restricted by location.
	ResourceSKURestrictionsTypeLocation ResourceSKURestrictionsType = "Location"
	// ResourceSKURestrictionsTypeZone - SKU restricted by availability zone.
	ResourceSKURestrictionsTypeZone ResourceSKURestrictionsType = "Zone"
)

// PossibleResourceSKURestrictionsTypeValues returns the possible values for the ResourceSKURestrictionsType const type.
func PossibleResourceSKURestrictionsTypeValues() []ResourceSKURestrictionsType {
	return []ResourceSKURestrictionsType{
		ResourceSKURestrictionsTypeLocation,
		ResourceSKURestrictionsTypeZone,
	}
}

// ResourceStatus - The status of the machine resource.
type ResourceStatus string

const (
	// ResourceStatusAllocated - Represents a machine resource that is allocated.
	ResourceStatusAllocated ResourceStatus = "Allocated"
	// ResourceStatusLeased - Represents a machine resource that is leased.
	ResourceStatusLeased ResourceStatus = "Leased"
	// ResourceStatusNotReady - Represents a machine resource that is not ready.
	ResourceStatusNotReady ResourceStatus = "NotReady"
	// ResourceStatusPendingReimage - Represents a machine resource that is pending reimage.
	ResourceStatusPendingReimage ResourceStatus = "PendingReimage"
	// ResourceStatusPendingReturn - Represents a machine resource that is pending return.
	ResourceStatusPendingReturn ResourceStatus = "PendingReturn"
	// ResourceStatusProvisioning - Represents a machine resource that is provisioning.
	ResourceStatusProvisioning ResourceStatus = "Provisioning"
	// ResourceStatusReady - Represents a machine resource that is ready.
	ResourceStatusReady ResourceStatus = "Ready"
	// ResourceStatusReimaging - Represents a machine resource that is reimaging.
	ResourceStatusReimaging ResourceStatus = "Reimaging"
	// ResourceStatusReturned - Represents a machine resource that is returned.
	ResourceStatusReturned ResourceStatus = "Returned"
	// ResourceStatusStarting - Represents a machine resource that is starting.
	ResourceStatusStarting ResourceStatus = "Starting"
	// ResourceStatusUpdating - Represents a machine resource that is updating.
	ResourceStatusUpdating ResourceStatus = "Updating"
)

// PossibleResourceStatusValues returns the possible values for the ResourceStatus const type.
func PossibleResourceStatusValues() []ResourceStatus {
	return []ResourceStatus{
		ResourceStatusAllocated,
		ResourceStatusLeased,
		ResourceStatusNotReady,
		ResourceStatusPendingReimage,
		ResourceStatusPendingReturn,
		ResourceStatusProvisioning,
		ResourceStatusReady,
		ResourceStatusReimaging,
		ResourceStatusReturned,
		ResourceStatusStarting,
		ResourceStatusUpdating,
	}
}

// StorageAccountType - StorageAccountType enums
type StorageAccountType string

const (
	// StorageAccountTypePremiumLRS - The data disk should use premium locally redundant storage.
	StorageAccountTypePremiumLRS StorageAccountType = "Premium_LRS"
	// StorageAccountTypePremiumZRS - The data disk should use premium SSD zonal redundant storage.
	StorageAccountTypePremiumZRS StorageAccountType = "Premium_ZRS"
	// StorageAccountTypeStandardLRS - The data disk should use standard locally redundant storage.
	StorageAccountTypeStandardLRS StorageAccountType = "Standard_LRS"
	// StorageAccountTypeStandardSSDLRS - The data disk should use standard SSD locally redundant storage.
	StorageAccountTypeStandardSSDLRS StorageAccountType = "StandardSSD_LRS"
	// StorageAccountTypeStandardSSDZRS - The data disk should use standard SSD zonal redundant storage.
	StorageAccountTypeStandardSSDZRS StorageAccountType = "StandardSSD_ZRS"
)

// PossibleStorageAccountTypeValues returns the possible values for the StorageAccountType const type.
func PossibleStorageAccountTypeValues() []StorageAccountType {
	return []StorageAccountType{
		StorageAccountTypePremiumLRS,
		StorageAccountTypePremiumZRS,
		StorageAccountTypeStandardLRS,
		StorageAccountTypeStandardSSDLRS,
		StorageAccountTypeStandardSSDZRS,
	}
}
