// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

type Deployment_STATUS struct {
	// Etag: Resource Etag.
	Etag *string `json:"etag,omitempty"`

	// Id: Fully qualified resource ID for the resource. Ex -
	// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	Id *string `json:"id,omitempty"`

	// Name: The name of the resource
	Name *string `json:"name,omitempty"`

	// Properties: Properties of Cognitive Services account deployment.
	Properties *DeploymentProperties_STATUS `json:"properties,omitempty"`

	// Sku: The resource model definition representing SKU
	Sku *Sku_STATUS `json:"sku,omitempty"`

	// SystemData: Metadata pertaining to creation and last modification of the resource.
	SystemData *SystemData_STATUS `json:"systemData,omitempty"`

	// Tags: Resource tags.
	Tags map[string]string `json:"tags,omitempty"`

	// Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string `json:"type,omitempty"`
}

// Properties of Cognitive Services account deployment.
type DeploymentProperties_STATUS struct {
	// CallRateLimit: The call rate limit Cognitive Services account.
	CallRateLimit *CallRateLimit_STATUS `json:"callRateLimit,omitempty"`

	// Capabilities: The capabilities.
	Capabilities map[string]string `json:"capabilities,omitempty"`

	// CapacitySettings: Internal use only.
	CapacitySettings *DeploymentCapacitySettings_STATUS `json:"capacitySettings,omitempty"`

	// CurrentCapacity: The current capacity.
	CurrentCapacity *int `json:"currentCapacity,omitempty"`

	// DynamicThrottlingEnabled: If the dynamic throttling is enabled.
	DynamicThrottlingEnabled *bool `json:"dynamicThrottlingEnabled,omitempty"`

	// Model: Properties of Cognitive Services account deployment model.
	Model *DeploymentModel_STATUS `json:"model,omitempty"`

	// ParentDeploymentName: The name of parent deployment.
	ParentDeploymentName *string `json:"parentDeploymentName,omitempty"`

	// ProvisioningState: Gets the status of the resource at the time the operation was called.
	ProvisioningState *DeploymentProperties_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// RaiPolicyName: The name of RAI policy.
	RaiPolicyName *string                 `json:"raiPolicyName,omitempty"`
	RateLimits    []ThrottlingRule_STATUS `json:"rateLimits,omitempty"`

	// ScaleSettings: Properties of Cognitive Services account deployment model. (Deprecated, please use Deployment.sku
	// instead.)
	ScaleSettings *DeploymentScaleSettings_STATUS `json:"scaleSettings,omitempty"`

	// SpilloverDeploymentName: Specifies the deployment name that should serve requests when the request would have otherwise
	// been throttled due to reaching current deployment throughput limit.
	SpilloverDeploymentName *string `json:"spilloverDeploymentName,omitempty"`

	// VersionUpgradeOption: Deployment model version upgrade option.
	VersionUpgradeOption *DeploymentProperties_VersionUpgradeOption_STATUS `json:"versionUpgradeOption,omitempty"`
}

// Internal use only.
type DeploymentCapacitySettings_STATUS struct {
	// DesignatedCapacity: The designated capacity.
	DesignatedCapacity *int `json:"designatedCapacity,omitempty"`

	// Priority: The priority of this capacity setting.
	Priority *int `json:"priority,omitempty"`
}

// Properties of Cognitive Services account deployment model.
type DeploymentModel_STATUS struct {
	// CallRateLimit: The call rate limit Cognitive Services account.
	CallRateLimit *CallRateLimit_STATUS `json:"callRateLimit,omitempty"`

	// Format: Deployment model format.
	Format *string `json:"format,omitempty"`

	// Name: Deployment model name.
	Name *string `json:"name,omitempty"`

	// Publisher: Deployment model publisher.
	Publisher *string `json:"publisher,omitempty"`

	// Source: Optional. Deployment model source ARM resource ID.
	Source *string `json:"source,omitempty"`

	// SourceAccount: Optional. Source of the model, another Microsoft.CognitiveServices accounts ARM resource ID.
	SourceAccount *string `json:"sourceAccount,omitempty"`

	// Version: Optional. Deployment model version. If version is not specified, a default version will be assigned. The
	// default version is different for different models and might change when there is new version available for a model.
	// Default version for a model could be found from list models API.
	Version *string `json:"version,omitempty"`
}

type DeploymentProperties_ProvisioningState_STATUS string

const (
	DeploymentProperties_ProvisioningState_STATUS_Accepted  = DeploymentProperties_ProvisioningState_STATUS("Accepted")
	DeploymentProperties_ProvisioningState_STATUS_Canceled  = DeploymentProperties_ProvisioningState_STATUS("Canceled")
	DeploymentProperties_ProvisioningState_STATUS_Creating  = DeploymentProperties_ProvisioningState_STATUS("Creating")
	DeploymentProperties_ProvisioningState_STATUS_Deleting  = DeploymentProperties_ProvisioningState_STATUS("Deleting")
	DeploymentProperties_ProvisioningState_STATUS_Disabled  = DeploymentProperties_ProvisioningState_STATUS("Disabled")
	DeploymentProperties_ProvisioningState_STATUS_Failed    = DeploymentProperties_ProvisioningState_STATUS("Failed")
	DeploymentProperties_ProvisioningState_STATUS_Moving    = DeploymentProperties_ProvisioningState_STATUS("Moving")
	DeploymentProperties_ProvisioningState_STATUS_Succeeded = DeploymentProperties_ProvisioningState_STATUS("Succeeded")
)

// Mapping from string to DeploymentProperties_ProvisioningState_STATUS
var deploymentProperties_ProvisioningState_STATUS_Values = map[string]DeploymentProperties_ProvisioningState_STATUS{
	"accepted":  DeploymentProperties_ProvisioningState_STATUS_Accepted,
	"canceled":  DeploymentProperties_ProvisioningState_STATUS_Canceled,
	"creating":  DeploymentProperties_ProvisioningState_STATUS_Creating,
	"deleting":  DeploymentProperties_ProvisioningState_STATUS_Deleting,
	"disabled":  DeploymentProperties_ProvisioningState_STATUS_Disabled,
	"failed":    DeploymentProperties_ProvisioningState_STATUS_Failed,
	"moving":    DeploymentProperties_ProvisioningState_STATUS_Moving,
	"succeeded": DeploymentProperties_ProvisioningState_STATUS_Succeeded,
}

type DeploymentProperties_VersionUpgradeOption_STATUS string

const (
	DeploymentProperties_VersionUpgradeOption_STATUS_NoAutoUpgrade                  = DeploymentProperties_VersionUpgradeOption_STATUS("NoAutoUpgrade")
	DeploymentProperties_VersionUpgradeOption_STATUS_OnceCurrentVersionExpired      = DeploymentProperties_VersionUpgradeOption_STATUS("OnceCurrentVersionExpired")
	DeploymentProperties_VersionUpgradeOption_STATUS_OnceNewDefaultVersionAvailable = DeploymentProperties_VersionUpgradeOption_STATUS("OnceNewDefaultVersionAvailable")
)

// Mapping from string to DeploymentProperties_VersionUpgradeOption_STATUS
var deploymentProperties_VersionUpgradeOption_STATUS_Values = map[string]DeploymentProperties_VersionUpgradeOption_STATUS{
	"noautoupgrade":                  DeploymentProperties_VersionUpgradeOption_STATUS_NoAutoUpgrade,
	"oncecurrentversionexpired":      DeploymentProperties_VersionUpgradeOption_STATUS_OnceCurrentVersionExpired,
	"oncenewdefaultversionavailable": DeploymentProperties_VersionUpgradeOption_STATUS_OnceNewDefaultVersionAvailable,
}

// Properties of Cognitive Services account deployment model. (Deprecated, please use Deployment.sku instead.)
type DeploymentScaleSettings_STATUS struct {
	// ActiveCapacity: Deployment active capacity. This value might be different from `capacity` if customer recently updated
	// `capacity`.
	ActiveCapacity *int `json:"activeCapacity,omitempty"`

	// Capacity: Deployment capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ScaleType: Deployment scale type.
	ScaleType *DeploymentScaleSettings_ScaleType_STATUS `json:"scaleType,omitempty"`
}

type ThrottlingRule_STATUS struct {
	Count                    *float64                     `json:"count,omitempty"`
	DynamicThrottlingEnabled *bool                        `json:"dynamicThrottlingEnabled,omitempty"`
	Key                      *string                      `json:"key,omitempty"`
	MatchPatterns            []RequestMatchPattern_STATUS `json:"matchPatterns,omitempty"`
	MinCount                 *float64                     `json:"minCount,omitempty"`
	RenewalPeriod            *float64                     `json:"renewalPeriod,omitempty"`
}

type DeploymentScaleSettings_ScaleType_STATUS string

const (
	DeploymentScaleSettings_ScaleType_STATUS_Manual   = DeploymentScaleSettings_ScaleType_STATUS("Manual")
	DeploymentScaleSettings_ScaleType_STATUS_Standard = DeploymentScaleSettings_ScaleType_STATUS("Standard")
)

// Mapping from string to DeploymentScaleSettings_ScaleType_STATUS
var deploymentScaleSettings_ScaleType_STATUS_Values = map[string]DeploymentScaleSettings_ScaleType_STATUS{
	"manual":   DeploymentScaleSettings_ScaleType_STATUS_Manual,
	"standard": DeploymentScaleSettings_ScaleType_STATUS_Standard,
}

type RequestMatchPattern_STATUS struct {
	Method *string `json:"method,omitempty"`
	Path   *string `json:"path,omitempty"`
}
