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

const (
	version20201025 string = "2020-10-25"
	version20221101 string = "2022-11-01"
)

// AppliedScopeType - Type of the Applied Scope.
type AppliedScopeType string

const (
	// AppliedScopeTypeManagementGroup - ManagementGroup
	AppliedScopeTypeManagementGroup AppliedScopeType = "ManagementGroup"
	// AppliedScopeTypeShared - Shared
	AppliedScopeTypeShared AppliedScopeType = "Shared"
	// AppliedScopeTypeSingle - Single
	AppliedScopeTypeSingle AppliedScopeType = "Single"
)

// PossibleAppliedScopeTypeValues returns the possible values for the AppliedScopeType const type.
func PossibleAppliedScopeTypeValues() []AppliedScopeType {
	return []AppliedScopeType{
		AppliedScopeTypeManagementGroup,
		AppliedScopeTypeShared,
		AppliedScopeTypeSingle,
	}
}

// BillingPlan - Represents the billing plan in ISO 8601 format. Required only for monthly billing plans.
type BillingPlan string

const (
	// BillingPlanP1M - P1M
	BillingPlanP1M BillingPlan = "P1M"
)

// PossibleBillingPlanValues returns the possible values for the BillingPlan const type.
func PossibleBillingPlanValues() []BillingPlan {
	return []BillingPlan{
		BillingPlanP1M,
	}
}

// CalculateExchangeOperationResultStatus - Status of the operation.
type CalculateExchangeOperationResultStatus string

const (
	// CalculateExchangeOperationResultStatusCancelled - Cancelled
	CalculateExchangeOperationResultStatusCancelled CalculateExchangeOperationResultStatus = "Cancelled"
	// CalculateExchangeOperationResultStatusFailed - Failed
	CalculateExchangeOperationResultStatusFailed CalculateExchangeOperationResultStatus = "Failed"
	// CalculateExchangeOperationResultStatusPending - Pending
	CalculateExchangeOperationResultStatusPending CalculateExchangeOperationResultStatus = "Pending"
	// CalculateExchangeOperationResultStatusSucceeded - Succeeded
	CalculateExchangeOperationResultStatusSucceeded CalculateExchangeOperationResultStatus = "Succeeded"
)

// PossibleCalculateExchangeOperationResultStatusValues returns the possible values for the CalculateExchangeOperationResultStatus const type.
func PossibleCalculateExchangeOperationResultStatusValues() []CalculateExchangeOperationResultStatus {
	return []CalculateExchangeOperationResultStatus{
		CalculateExchangeOperationResultStatusCancelled,
		CalculateExchangeOperationResultStatusFailed,
		CalculateExchangeOperationResultStatusPending,
		CalculateExchangeOperationResultStatusSucceeded,
	}
}

// CommitmentGrain - Commitment grain.
type CommitmentGrain string

const (
	// CommitmentGrainHourly - Hourly
	CommitmentGrainHourly CommitmentGrain = "Hourly"
)

// PossibleCommitmentGrainValues returns the possible values for the CommitmentGrain const type.
func PossibleCommitmentGrainValues() []CommitmentGrain {
	return []CommitmentGrain{
		CommitmentGrainHourly,
	}
}

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

// ErrorResponseCode - Error code describing the reason that service is not able to process the incoming request
type ErrorResponseCode string

const (
	// ErrorResponseCodeActivateQuoteFailed - ActivateQuoteFailed
	ErrorResponseCodeActivateQuoteFailed ErrorResponseCode = "ActivateQuoteFailed"
	// ErrorResponseCodeAppliedScopesNotAssociatedWithCommerceAccount - AppliedScopesNotAssociatedWithCommerceAccount
	ErrorResponseCodeAppliedScopesNotAssociatedWithCommerceAccount ErrorResponseCode = "AppliedScopesNotAssociatedWithCommerceAccount"
	// ErrorResponseCodeAppliedScopesSameAsExisting - AppliedScopesSameAsExisting
	ErrorResponseCodeAppliedScopesSameAsExisting ErrorResponseCode = "AppliedScopesSameAsExisting"
	// ErrorResponseCodeAuthorizationFailed - AuthorizationFailed
	ErrorResponseCodeAuthorizationFailed ErrorResponseCode = "AuthorizationFailed"
	// ErrorResponseCodeBadRequest - BadRequest
	ErrorResponseCodeBadRequest ErrorResponseCode = "BadRequest"
	// ErrorResponseCodeBillingCustomerInputError - BillingCustomerInputError
	ErrorResponseCodeBillingCustomerInputError ErrorResponseCode = "BillingCustomerInputError"
	// ErrorResponseCodeBillingError - BillingError
	ErrorResponseCodeBillingError ErrorResponseCode = "BillingError"
	// ErrorResponseCodeBillingPaymentInstrumentHardError - BillingPaymentInstrumentHardError
	ErrorResponseCodeBillingPaymentInstrumentHardError ErrorResponseCode = "BillingPaymentInstrumentHardError"
	// ErrorResponseCodeBillingPaymentInstrumentSoftError - BillingPaymentInstrumentSoftError
	ErrorResponseCodeBillingPaymentInstrumentSoftError ErrorResponseCode = "BillingPaymentInstrumentSoftError"
	// ErrorResponseCodeBillingScopeIDCannotBeChanged - BillingScopeIdCannotBeChanged
	ErrorResponseCodeBillingScopeIDCannotBeChanged ErrorResponseCode = "BillingScopeIdCannotBeChanged"
	// ErrorResponseCodeBillingTransientError - BillingTransientError
	ErrorResponseCodeBillingTransientError ErrorResponseCode = "BillingTransientError"
	// ErrorResponseCodeCalculatePriceFailed - CalculatePriceFailed
	ErrorResponseCodeCalculatePriceFailed ErrorResponseCode = "CalculatePriceFailed"
	// ErrorResponseCodeCapacityUpdateScopesFailed - CapacityUpdateScopesFailed
	ErrorResponseCodeCapacityUpdateScopesFailed ErrorResponseCode = "CapacityUpdateScopesFailed"
	// ErrorResponseCodeClientCertificateThumbprintNotSet - ClientCertificateThumbprintNotSet
	ErrorResponseCodeClientCertificateThumbprintNotSet ErrorResponseCode = "ClientCertificateThumbprintNotSet"
	// ErrorResponseCodeCreateQuoteFailed - CreateQuoteFailed
	ErrorResponseCodeCreateQuoteFailed ErrorResponseCode = "CreateQuoteFailed"
	// ErrorResponseCodeForbidden - Forbidden
	ErrorResponseCodeForbidden ErrorResponseCode = "Forbidden"
	// ErrorResponseCodeFulfillmentConfigurationError - FulfillmentConfigurationError
	ErrorResponseCodeFulfillmentConfigurationError ErrorResponseCode = "FulfillmentConfigurationError"
	// ErrorResponseCodeFulfillmentError - FulfillmentError
	ErrorResponseCodeFulfillmentError ErrorResponseCode = "FulfillmentError"
	// ErrorResponseCodeFulfillmentOutOfStockError - FulfillmentOutOfStockError
	ErrorResponseCodeFulfillmentOutOfStockError ErrorResponseCode = "FulfillmentOutOfStockError"
	// ErrorResponseCodeFulfillmentTransientError - FulfillmentTransientError
	ErrorResponseCodeFulfillmentTransientError ErrorResponseCode = "FulfillmentTransientError"
	// ErrorResponseCodeHTTPMethodNotSupported - HttpMethodNotSupported
	ErrorResponseCodeHTTPMethodNotSupported ErrorResponseCode = "HttpMethodNotSupported"
	// ErrorResponseCodeInternalServerError - InternalServerError
	ErrorResponseCodeInternalServerError ErrorResponseCode = "InternalServerError"
	// ErrorResponseCodeInvalidAccessToken - InvalidAccessToken
	ErrorResponseCodeInvalidAccessToken ErrorResponseCode = "InvalidAccessToken"
	// ErrorResponseCodeInvalidFulfillmentRequestParameters - InvalidFulfillmentRequestParameters
	ErrorResponseCodeInvalidFulfillmentRequestParameters ErrorResponseCode = "InvalidFulfillmentRequestParameters"
	// ErrorResponseCodeInvalidHealthCheckType - InvalidHealthCheckType
	ErrorResponseCodeInvalidHealthCheckType ErrorResponseCode = "InvalidHealthCheckType"
	// ErrorResponseCodeInvalidLocationID - InvalidLocationId
	ErrorResponseCodeInvalidLocationID ErrorResponseCode = "InvalidLocationId"
	// ErrorResponseCodeInvalidRefundQuantity - InvalidRefundQuantity
	ErrorResponseCodeInvalidRefundQuantity ErrorResponseCode = "InvalidRefundQuantity"
	// ErrorResponseCodeInvalidRequestContent - InvalidRequestContent
	ErrorResponseCodeInvalidRequestContent ErrorResponseCode = "InvalidRequestContent"
	// ErrorResponseCodeInvalidRequestURI - InvalidRequestUri
	ErrorResponseCodeInvalidRequestURI ErrorResponseCode = "InvalidRequestUri"
	// ErrorResponseCodeInvalidReservationID - InvalidReservationId
	ErrorResponseCodeInvalidReservationID ErrorResponseCode = "InvalidReservationId"
	// ErrorResponseCodeInvalidReservationOrderID - InvalidReservationOrderId
	ErrorResponseCodeInvalidReservationOrderID ErrorResponseCode = "InvalidReservationOrderId"
	// ErrorResponseCodeInvalidSingleAppliedScopesCount - InvalidSingleAppliedScopesCount
	ErrorResponseCodeInvalidSingleAppliedScopesCount ErrorResponseCode = "InvalidSingleAppliedScopesCount"
	// ErrorResponseCodeInvalidSubscriptionID - InvalidSubscriptionId
	ErrorResponseCodeInvalidSubscriptionID ErrorResponseCode = "InvalidSubscriptionId"
	// ErrorResponseCodeInvalidTenantID - InvalidTenantId
	ErrorResponseCodeInvalidTenantID ErrorResponseCode = "InvalidTenantId"
	// ErrorResponseCodeMissingAppliedScopesForSingle - MissingAppliedScopesForSingle
	ErrorResponseCodeMissingAppliedScopesForSingle ErrorResponseCode = "MissingAppliedScopesForSingle"
	// ErrorResponseCodeMissingTenantID - MissingTenantId
	ErrorResponseCodeMissingTenantID ErrorResponseCode = "MissingTenantId"
	// ErrorResponseCodeNoValidReservationsToReRate - NoValidReservationsToReRate
	ErrorResponseCodeNoValidReservationsToReRate ErrorResponseCode = "NoValidReservationsToReRate"
	// ErrorResponseCodeNonsupportedAccountID - NonsupportedAccountId
	ErrorResponseCodeNonsupportedAccountID ErrorResponseCode = "NonsupportedAccountId"
	// ErrorResponseCodeNotSpecified - NotSpecified
	ErrorResponseCodeNotSpecified ErrorResponseCode = "NotSpecified"
	// ErrorResponseCodeNotSupportedCountry - NotSupportedCountry
	ErrorResponseCodeNotSupportedCountry ErrorResponseCode = "NotSupportedCountry"
	// ErrorResponseCodeOperationCannotBePerformedInCurrentState - OperationCannotBePerformedInCurrentState
	ErrorResponseCodeOperationCannotBePerformedInCurrentState ErrorResponseCode = "OperationCannotBePerformedInCurrentState"
	// ErrorResponseCodeOperationFailed - OperationFailed
	ErrorResponseCodeOperationFailed ErrorResponseCode = "OperationFailed"
	// ErrorResponseCodePatchValuesSameAsExisting - PatchValuesSameAsExisting
	ErrorResponseCodePatchValuesSameAsExisting ErrorResponseCode = "PatchValuesSameAsExisting"
	// ErrorResponseCodePaymentInstrumentNotFound - PaymentInstrumentNotFound
	ErrorResponseCodePaymentInstrumentNotFound ErrorResponseCode = "PaymentInstrumentNotFound"
	// ErrorResponseCodePurchaseError - PurchaseError
	ErrorResponseCodePurchaseError ErrorResponseCode = "PurchaseError"
	// ErrorResponseCodeReRateOnlyAllowedForEA - ReRateOnlyAllowedForEA
	ErrorResponseCodeReRateOnlyAllowedForEA ErrorResponseCode = "ReRateOnlyAllowedForEA"
	// ErrorResponseCodeRefundLimitExceeded - RefundLimitExceeded
	ErrorResponseCodeRefundLimitExceeded ErrorResponseCode = "RefundLimitExceeded"
	// ErrorResponseCodeReservationIDNotInReservationOrder - ReservationIdNotInReservationOrder
	ErrorResponseCodeReservationIDNotInReservationOrder ErrorResponseCode = "ReservationIdNotInReservationOrder"
	// ErrorResponseCodeReservationOrderCreationFailed - ReservationOrderCreationFailed
	ErrorResponseCodeReservationOrderCreationFailed ErrorResponseCode = "ReservationOrderCreationFailed"
	// ErrorResponseCodeReservationOrderIDAlreadyExists - ReservationOrderIdAlreadyExists
	ErrorResponseCodeReservationOrderIDAlreadyExists ErrorResponseCode = "ReservationOrderIdAlreadyExists"
	// ErrorResponseCodeReservationOrderNotEnabled - ReservationOrderNotEnabled
	ErrorResponseCodeReservationOrderNotEnabled ErrorResponseCode = "ReservationOrderNotEnabled"
	// ErrorResponseCodeReservationOrderNotFound - ReservationOrderNotFound
	ErrorResponseCodeReservationOrderNotFound ErrorResponseCode = "ReservationOrderNotFound"
	// ErrorResponseCodeRiskCheckFailed - RiskCheckFailed
	ErrorResponseCodeRiskCheckFailed ErrorResponseCode = "RiskCheckFailed"
	// ErrorResponseCodeRoleAssignmentCreationFailed - RoleAssignmentCreationFailed
	ErrorResponseCodeRoleAssignmentCreationFailed ErrorResponseCode = "RoleAssignmentCreationFailed"
	// ErrorResponseCodeSelfServiceRefundNotSupported - SelfServiceRefundNotSupported
	ErrorResponseCodeSelfServiceRefundNotSupported ErrorResponseCode = "SelfServiceRefundNotSupported"
	// ErrorResponseCodeServerTimeout - ServerTimeout
	ErrorResponseCodeServerTimeout ErrorResponseCode = "ServerTimeout"
	// ErrorResponseCodeUnauthenticatedRequestsThrottled - UnauthenticatedRequestsThrottled
	ErrorResponseCodeUnauthenticatedRequestsThrottled ErrorResponseCode = "UnauthenticatedRequestsThrottled"
	// ErrorResponseCodeUnsupportedReservationTerm - UnsupportedReservationTerm
	ErrorResponseCodeUnsupportedReservationTerm ErrorResponseCode = "UnsupportedReservationTerm"
)

// PossibleErrorResponseCodeValues returns the possible values for the ErrorResponseCode const type.
func PossibleErrorResponseCodeValues() []ErrorResponseCode {
	return []ErrorResponseCode{
		ErrorResponseCodeActivateQuoteFailed,
		ErrorResponseCodeAppliedScopesNotAssociatedWithCommerceAccount,
		ErrorResponseCodeAppliedScopesSameAsExisting,
		ErrorResponseCodeAuthorizationFailed,
		ErrorResponseCodeBadRequest,
		ErrorResponseCodeBillingCustomerInputError,
		ErrorResponseCodeBillingError,
		ErrorResponseCodeBillingPaymentInstrumentHardError,
		ErrorResponseCodeBillingPaymentInstrumentSoftError,
		ErrorResponseCodeBillingScopeIDCannotBeChanged,
		ErrorResponseCodeBillingTransientError,
		ErrorResponseCodeCalculatePriceFailed,
		ErrorResponseCodeCapacityUpdateScopesFailed,
		ErrorResponseCodeClientCertificateThumbprintNotSet,
		ErrorResponseCodeCreateQuoteFailed,
		ErrorResponseCodeForbidden,
		ErrorResponseCodeFulfillmentConfigurationError,
		ErrorResponseCodeFulfillmentError,
		ErrorResponseCodeFulfillmentOutOfStockError,
		ErrorResponseCodeFulfillmentTransientError,
		ErrorResponseCodeHTTPMethodNotSupported,
		ErrorResponseCodeInternalServerError,
		ErrorResponseCodeInvalidAccessToken,
		ErrorResponseCodeInvalidFulfillmentRequestParameters,
		ErrorResponseCodeInvalidHealthCheckType,
		ErrorResponseCodeInvalidLocationID,
		ErrorResponseCodeInvalidRefundQuantity,
		ErrorResponseCodeInvalidRequestContent,
		ErrorResponseCodeInvalidRequestURI,
		ErrorResponseCodeInvalidReservationID,
		ErrorResponseCodeInvalidReservationOrderID,
		ErrorResponseCodeInvalidSingleAppliedScopesCount,
		ErrorResponseCodeInvalidSubscriptionID,
		ErrorResponseCodeInvalidTenantID,
		ErrorResponseCodeMissingAppliedScopesForSingle,
		ErrorResponseCodeMissingTenantID,
		ErrorResponseCodeNoValidReservationsToReRate,
		ErrorResponseCodeNonsupportedAccountID,
		ErrorResponseCodeNotSpecified,
		ErrorResponseCodeNotSupportedCountry,
		ErrorResponseCodeOperationCannotBePerformedInCurrentState,
		ErrorResponseCodeOperationFailed,
		ErrorResponseCodePatchValuesSameAsExisting,
		ErrorResponseCodePaymentInstrumentNotFound,
		ErrorResponseCodePurchaseError,
		ErrorResponseCodeReRateOnlyAllowedForEA,
		ErrorResponseCodeRefundLimitExceeded,
		ErrorResponseCodeReservationIDNotInReservationOrder,
		ErrorResponseCodeReservationOrderCreationFailed,
		ErrorResponseCodeReservationOrderIDAlreadyExists,
		ErrorResponseCodeReservationOrderNotEnabled,
		ErrorResponseCodeReservationOrderNotFound,
		ErrorResponseCodeRiskCheckFailed,
		ErrorResponseCodeRoleAssignmentCreationFailed,
		ErrorResponseCodeSelfServiceRefundNotSupported,
		ErrorResponseCodeServerTimeout,
		ErrorResponseCodeUnauthenticatedRequestsThrottled,
		ErrorResponseCodeUnsupportedReservationTerm,
	}
}

// ExchangeOperationResultStatus - Status of the operation.
type ExchangeOperationResultStatus string

const (
	// ExchangeOperationResultStatusCancelled - Cancelled
	ExchangeOperationResultStatusCancelled ExchangeOperationResultStatus = "Cancelled"
	// ExchangeOperationResultStatusFailed - Failed
	ExchangeOperationResultStatusFailed ExchangeOperationResultStatus = "Failed"
	// ExchangeOperationResultStatusPendingPurchases - PendingPurchases
	ExchangeOperationResultStatusPendingPurchases ExchangeOperationResultStatus = "PendingPurchases"
	// ExchangeOperationResultStatusPendingRefunds - PendingRefunds
	ExchangeOperationResultStatusPendingRefunds ExchangeOperationResultStatus = "PendingRefunds"
	// ExchangeOperationResultStatusSucceeded - Succeeded
	ExchangeOperationResultStatusSucceeded ExchangeOperationResultStatus = "Succeeded"
)

// PossibleExchangeOperationResultStatusValues returns the possible values for the ExchangeOperationResultStatus const type.
func PossibleExchangeOperationResultStatusValues() []ExchangeOperationResultStatus {
	return []ExchangeOperationResultStatus{
		ExchangeOperationResultStatusCancelled,
		ExchangeOperationResultStatusFailed,
		ExchangeOperationResultStatusPendingPurchases,
		ExchangeOperationResultStatusPendingRefunds,
		ExchangeOperationResultStatusSucceeded,
	}
}

// InstanceFlexibility - Turning this on will apply the reservation discount to other VMs in the same VM size group. Only
// specify for VirtualMachines reserved resource type.
type InstanceFlexibility string

const (
	// InstanceFlexibilityOff - Off
	InstanceFlexibilityOff InstanceFlexibility = "Off"
	// InstanceFlexibilityOn - On
	InstanceFlexibilityOn InstanceFlexibility = "On"
)

// PossibleInstanceFlexibilityValues returns the possible values for the InstanceFlexibility const type.
func PossibleInstanceFlexibilityValues() []InstanceFlexibility {
	return []InstanceFlexibility{
		InstanceFlexibilityOff,
		InstanceFlexibilityOn,
	}
}

// OperationStatus - Status of the individual operation.
type OperationStatus string

const (
	// OperationStatusCancelled - Cancelled
	OperationStatusCancelled OperationStatus = "Cancelled"
	// OperationStatusFailed - Failed
	OperationStatusFailed OperationStatus = "Failed"
	// OperationStatusPending - Pending
	OperationStatusPending OperationStatus = "Pending"
	// OperationStatusSucceeded - Succeeded
	OperationStatusSucceeded OperationStatus = "Succeeded"
)

// PossibleOperationStatusValues returns the possible values for the OperationStatus const type.
func PossibleOperationStatusValues() []OperationStatus {
	return []OperationStatus{
		OperationStatusCancelled,
		OperationStatusFailed,
		OperationStatusPending,
		OperationStatusSucceeded,
	}
}

// PaymentStatus - Describes whether the payment is completed, failed, cancelled or scheduled in the future.
type PaymentStatus string

const (
	// PaymentStatusCancelled - Cancelled
	PaymentStatusCancelled PaymentStatus = "Cancelled"
	// PaymentStatusFailed - Failed
	PaymentStatusFailed PaymentStatus = "Failed"
	// PaymentStatusScheduled - Scheduled
	PaymentStatusScheduled PaymentStatus = "Scheduled"
	// PaymentStatusSucceeded - Succeeded
	PaymentStatusSucceeded PaymentStatus = "Succeeded"
)

// PossiblePaymentStatusValues returns the possible values for the PaymentStatus const type.
func PossiblePaymentStatusValues() []PaymentStatus {
	return []PaymentStatus{
		PaymentStatusCancelled,
		PaymentStatusFailed,
		PaymentStatusScheduled,
		PaymentStatusSucceeded,
	}
}

// ProvisioningState - Represent the current state of the Reservation.
type ProvisioningState string

const (
	// ProvisioningStateBillingFailed - BillingFailed
	ProvisioningStateBillingFailed ProvisioningState = "BillingFailed"
	// ProvisioningStateCancelled - Cancelled
	ProvisioningStateCancelled ProvisioningState = "Cancelled"
	// ProvisioningStateConfirmedBilling - ConfirmedBilling
	ProvisioningStateConfirmedBilling ProvisioningState = "ConfirmedBilling"
	// ProvisioningStateConfirmedResourceHold - ConfirmedResourceHold
	ProvisioningStateConfirmedResourceHold ProvisioningState = "ConfirmedResourceHold"
	// ProvisioningStateCreated - Created
	ProvisioningStateCreated ProvisioningState = "Created"
	// ProvisioningStateCreating - Creating
	ProvisioningStateCreating ProvisioningState = "Creating"
	// ProvisioningStateExpired - Expired
	ProvisioningStateExpired ProvisioningState = "Expired"
	// ProvisioningStateFailed - Failed
	ProvisioningStateFailed ProvisioningState = "Failed"
	// ProvisioningStateMerged - Merged
	ProvisioningStateMerged ProvisioningState = "Merged"
	// ProvisioningStatePendingBilling - PendingBilling
	ProvisioningStatePendingBilling ProvisioningState = "PendingBilling"
	// ProvisioningStatePendingResourceHold - PendingResourceHold
	ProvisioningStatePendingResourceHold ProvisioningState = "PendingResourceHold"
	// ProvisioningStateSplit - Split
	ProvisioningStateSplit ProvisioningState = "Split"
	// ProvisioningStateSucceeded - Succeeded
	ProvisioningStateSucceeded ProvisioningState = "Succeeded"
)

// PossibleProvisioningStateValues returns the possible values for the ProvisioningState const type.
func PossibleProvisioningStateValues() []ProvisioningState {
	return []ProvisioningState{
		ProvisioningStateBillingFailed,
		ProvisioningStateCancelled,
		ProvisioningStateConfirmedBilling,
		ProvisioningStateConfirmedResourceHold,
		ProvisioningStateCreated,
		ProvisioningStateCreating,
		ProvisioningStateExpired,
		ProvisioningStateFailed,
		ProvisioningStateMerged,
		ProvisioningStatePendingBilling,
		ProvisioningStatePendingResourceHold,
		ProvisioningStateSplit,
		ProvisioningStateSucceeded,
	}
}

// QuotaRequestState - The quota request status.
type QuotaRequestState string

const (
	// QuotaRequestStateAccepted - Accepted
	QuotaRequestStateAccepted QuotaRequestState = "Accepted"
	// QuotaRequestStateFailed - Failed
	QuotaRequestStateFailed QuotaRequestState = "Failed"
	// QuotaRequestStateInProgress - InProgress
	QuotaRequestStateInProgress QuotaRequestState = "InProgress"
	// QuotaRequestStateInvalid - Invalid
	QuotaRequestStateInvalid QuotaRequestState = "Invalid"
	// QuotaRequestStateSucceeded - Succeeded
	QuotaRequestStateSucceeded QuotaRequestState = "Succeeded"
)

// PossibleQuotaRequestStateValues returns the possible values for the QuotaRequestState const type.
func PossibleQuotaRequestStateValues() []QuotaRequestState {
	return []QuotaRequestState{
		QuotaRequestStateAccepted,
		QuotaRequestStateFailed,
		QuotaRequestStateInProgress,
		QuotaRequestStateInvalid,
		QuotaRequestStateSucceeded,
	}
}

// ReservationBillingPlan - Represent the billing plans.
type ReservationBillingPlan string

const (
	// ReservationBillingPlanMonthly - Monthly
	ReservationBillingPlanMonthly ReservationBillingPlan = "Monthly"
	// ReservationBillingPlanUpfront - Upfront
	ReservationBillingPlanUpfront ReservationBillingPlan = "Upfront"
)

// PossibleReservationBillingPlanValues returns the possible values for the ReservationBillingPlan const type.
func PossibleReservationBillingPlanValues() []ReservationBillingPlan {
	return []ReservationBillingPlan{
		ReservationBillingPlanMonthly,
		ReservationBillingPlanUpfront,
	}
}

type ReservationStatusCode string

const (
	// ReservationStatusCodeActive - Active
	ReservationStatusCodeActive ReservationStatusCode = "Active"
	// ReservationStatusCodeExpired - Expired
	ReservationStatusCodeExpired ReservationStatusCode = "Expired"
	// ReservationStatusCodeMerged - Merged
	ReservationStatusCodeMerged ReservationStatusCode = "Merged"
	// ReservationStatusCodeNone - None
	ReservationStatusCodeNone ReservationStatusCode = "None"
	// ReservationStatusCodePaymentInstrumentError - PaymentInstrumentError
	ReservationStatusCodePaymentInstrumentError ReservationStatusCode = "PaymentInstrumentError"
	// ReservationStatusCodePending - Pending
	ReservationStatusCodePending ReservationStatusCode = "Pending"
	// ReservationStatusCodeProcessing - Processing
	ReservationStatusCodeProcessing ReservationStatusCode = "Processing"
	// ReservationStatusCodePurchaseError - PurchaseError
	ReservationStatusCodePurchaseError ReservationStatusCode = "PurchaseError"
	// ReservationStatusCodeSplit - Split
	ReservationStatusCodeSplit ReservationStatusCode = "Split"
	// ReservationStatusCodeSucceeded - Succeeded
	ReservationStatusCodeSucceeded ReservationStatusCode = "Succeeded"
)

// PossibleReservationStatusCodeValues returns the possible values for the ReservationStatusCode const type.
func PossibleReservationStatusCodeValues() []ReservationStatusCode {
	return []ReservationStatusCode{
		ReservationStatusCodeActive,
		ReservationStatusCodeExpired,
		ReservationStatusCodeMerged,
		ReservationStatusCodeNone,
		ReservationStatusCodePaymentInstrumentError,
		ReservationStatusCodePending,
		ReservationStatusCodeProcessing,
		ReservationStatusCodePurchaseError,
		ReservationStatusCodeSplit,
		ReservationStatusCodeSucceeded,
	}
}

// ReservationTerm - Represent the term of reservation.
type ReservationTerm string

const (
	// ReservationTermP1Y - P1Y
	ReservationTermP1Y ReservationTerm = "P1Y"
	// ReservationTermP3Y - P3Y
	ReservationTermP3Y ReservationTerm = "P3Y"
	// ReservationTermP5Y - P5Y
	ReservationTermP5Y ReservationTerm = "P5Y"
)

// PossibleReservationTermValues returns the possible values for the ReservationTerm const type.
func PossibleReservationTermValues() []ReservationTerm {
	return []ReservationTerm{
		ReservationTermP1Y,
		ReservationTermP3Y,
		ReservationTermP5Y,
	}
}

// ReservedResourceType - The type of the resource that is being reserved. In addition to below types we have also added the
// following: OpenAIPTU, MDC, Sentinel.
type ReservedResourceType string

const (
	// ReservedResourceTypeAVS - AVS
	ReservedResourceTypeAVS ReservedResourceType = "AVS"
	// ReservedResourceTypeAppService - AppService
	ReservedResourceTypeAppService ReservedResourceType = "AppService"
	// ReservedResourceTypeAzureDataExplorer - AzureDataExplorer
	ReservedResourceTypeAzureDataExplorer ReservedResourceType = "AzureDataExplorer"
	// ReservedResourceTypeAzureFiles - AzureFiles
	ReservedResourceTypeAzureFiles ReservedResourceType = "AzureFiles"
	// ReservedResourceTypeBlockBlob - BlockBlob
	ReservedResourceTypeBlockBlob ReservedResourceType = "BlockBlob"
	// ReservedResourceTypeCosmosDb - CosmosDb
	ReservedResourceTypeCosmosDb ReservedResourceType = "CosmosDb"
	// ReservedResourceTypeDataFactory - DataFactory
	ReservedResourceTypeDataFactory ReservedResourceType = "DataFactory"
	// ReservedResourceTypeDatabricks - Databricks
	ReservedResourceTypeDatabricks ReservedResourceType = "Databricks"
	// ReservedResourceTypeDedicatedHost - DedicatedHost
	ReservedResourceTypeDedicatedHost ReservedResourceType = "DedicatedHost"
	// ReservedResourceTypeManagedDisk - ManagedDisk
	ReservedResourceTypeManagedDisk ReservedResourceType = "ManagedDisk"
	// ReservedResourceTypeMariaDb - MariaDb
	ReservedResourceTypeMariaDb ReservedResourceType = "MariaDb"
	// ReservedResourceTypeMySQL - MySql
	ReservedResourceTypeMySQL ReservedResourceType = "MySql"
	// ReservedResourceTypeNetAppStorage - NetAppStorage
	ReservedResourceTypeNetAppStorage ReservedResourceType = "NetAppStorage"
	// ReservedResourceTypePostgreSQL - PostgreSql
	ReservedResourceTypePostgreSQL ReservedResourceType = "PostgreSql"
	// ReservedResourceTypeRedHat - RedHat
	ReservedResourceTypeRedHat ReservedResourceType = "RedHat"
	// ReservedResourceTypeRedHatOsa - RedHatOsa
	ReservedResourceTypeRedHatOsa ReservedResourceType = "RedHatOsa"
	// ReservedResourceTypeRedisCache - RedisCache
	ReservedResourceTypeRedisCache ReservedResourceType = "RedisCache"
	// ReservedResourceTypeSQLAzureHybridBenefit - SqlAzureHybridBenefit
	ReservedResourceTypeSQLAzureHybridBenefit ReservedResourceType = "SqlAzureHybridBenefit"
	// ReservedResourceTypeSQLDataWarehouse - SqlDataWarehouse
	ReservedResourceTypeSQLDataWarehouse ReservedResourceType = "SqlDataWarehouse"
	// ReservedResourceTypeSQLDatabases - SqlDatabases
	ReservedResourceTypeSQLDatabases ReservedResourceType = "SqlDatabases"
	// ReservedResourceTypeSQLEdge - SqlEdge
	ReservedResourceTypeSQLEdge ReservedResourceType = "SqlEdge"
	// ReservedResourceTypeSapHana - SapHana
	ReservedResourceTypeSapHana ReservedResourceType = "SapHana"
	// ReservedResourceTypeSuseLinux - SuseLinux
	ReservedResourceTypeSuseLinux ReservedResourceType = "SuseLinux"
	// ReservedResourceTypeVMwareCloudSimple - VMwareCloudSimple
	ReservedResourceTypeVMwareCloudSimple ReservedResourceType = "VMwareCloudSimple"
	// ReservedResourceTypeVirtualMachineSoftware - VirtualMachineSoftware
	ReservedResourceTypeVirtualMachineSoftware ReservedResourceType = "VirtualMachineSoftware"
	// ReservedResourceTypeVirtualMachines - VirtualMachines
	ReservedResourceTypeVirtualMachines ReservedResourceType = "VirtualMachines"
)

// PossibleReservedResourceTypeValues returns the possible values for the ReservedResourceType const type.
func PossibleReservedResourceTypeValues() []ReservedResourceType {
	return []ReservedResourceType{
		ReservedResourceTypeAVS,
		ReservedResourceTypeAppService,
		ReservedResourceTypeAzureDataExplorer,
		ReservedResourceTypeAzureFiles,
		ReservedResourceTypeBlockBlob,
		ReservedResourceTypeCosmosDb,
		ReservedResourceTypeDataFactory,
		ReservedResourceTypeDatabricks,
		ReservedResourceTypeDedicatedHost,
		ReservedResourceTypeManagedDisk,
		ReservedResourceTypeMariaDb,
		ReservedResourceTypeMySQL,
		ReservedResourceTypeNetAppStorage,
		ReservedResourceTypePostgreSQL,
		ReservedResourceTypeRedHat,
		ReservedResourceTypeRedHatOsa,
		ReservedResourceTypeRedisCache,
		ReservedResourceTypeSQLAzureHybridBenefit,
		ReservedResourceTypeSQLDataWarehouse,
		ReservedResourceTypeSQLDatabases,
		ReservedResourceTypeSQLEdge,
		ReservedResourceTypeSapHana,
		ReservedResourceTypeSuseLinux,
		ReservedResourceTypeVMwareCloudSimple,
		ReservedResourceTypeVirtualMachineSoftware,
		ReservedResourceTypeVirtualMachines,
	}
}

// ResourceType - The resource types.
type ResourceType string

const (
	// ResourceTypeDedicated - dedicated
	ResourceTypeDedicated ResourceType = "dedicated"
	// ResourceTypeLowPriority - lowPriority
	ResourceTypeLowPriority ResourceType = "lowPriority"
	// ResourceTypeServiceSpecific - serviceSpecific
	ResourceTypeServiceSpecific ResourceType = "serviceSpecific"
	// ResourceTypeShared - shared
	ResourceTypeShared ResourceType = "shared"
	// ResourceTypeStandard - standard
	ResourceTypeStandard ResourceType = "standard"
)

// PossibleResourceTypeValues returns the possible values for the ResourceType const type.
func PossibleResourceTypeValues() []ResourceType {
	return []ResourceType{
		ResourceTypeDedicated,
		ResourceTypeLowPriority,
		ResourceTypeServiceSpecific,
		ResourceTypeShared,
		ResourceTypeStandard,
	}
}

// SavingsPlanTerm - Represent savings plan term in ISO 8601 format.
type SavingsPlanTerm string

const (
	// SavingsPlanTermP1Y - P1Y
	SavingsPlanTermP1Y SavingsPlanTerm = "P1Y"
	// SavingsPlanTermP3Y - P3Y
	SavingsPlanTermP3Y SavingsPlanTerm = "P3Y"
)

// PossibleSavingsPlanTermValues returns the possible values for the SavingsPlanTerm const type.
func PossibleSavingsPlanTermValues() []SavingsPlanTerm {
	return []SavingsPlanTerm{
		SavingsPlanTermP1Y,
		SavingsPlanTermP3Y,
	}
}
