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

type MongodbDatabaseCollectionThroughputSetting_STATUS struct {
	// Id: The unique resource identifier of the ARM resource.
	Id *string `json:"id,omitempty"`

	// Location: The location of the resource group to which the resource belongs.
	Location *string `json:"location,omitempty"`

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

	// Properties: The properties of an Azure Cosmos DB resource throughput
	Properties *ThroughputSettingsGetProperties_STATUS `json:"properties,omitempty"`
	Tags       map[string]string                       `json:"tags,omitempty"`

	// Type: The type of Azure resource.
	Type *string `json:"type,omitempty"`
}

// The properties of an Azure Cosmos DB resource throughput
type ThroughputSettingsGetProperties_STATUS struct {
	Resource *ThroughputSettingsGetProperties_Resource_STATUS `json:"resource,omitempty"`
}

type ThroughputSettingsGetProperties_Resource_STATUS struct {
	// AutoscaleSettings: Cosmos DB resource for autoscale settings. Either throughput is required or autoscaleSettings is
	// required, but not both.
	AutoscaleSettings *AutoscaleSettingsResource_STATUS `json:"autoscaleSettings,omitempty"`

	// Etag: A system generated property representing the resource etag required for optimistic concurrency control.
	Etag *string `json:"_etag,omitempty"`

	// InstantMaximumThroughput: The offer throughput value to instantly scale up without triggering splits
	InstantMaximumThroughput *string `json:"instantMaximumThroughput,omitempty"`

	// MinimumThroughput: The minimum throughput of the resource
	MinimumThroughput *string `json:"minimumThroughput,omitempty"`

	// OfferReplacePending: The throughput replace is pending
	OfferReplacePending *string `json:"offerReplacePending,omitempty"`

	// Rid: A system generated property. A unique identifier.
	Rid *string `json:"_rid,omitempty"`

	// SoftAllowedMaximumThroughput: The maximum throughput value or the maximum maxThroughput value (for autoscale) that can
	// be specified
	SoftAllowedMaximumThroughput *string `json:"softAllowedMaximumThroughput,omitempty"`

	// Throughput: Value of the Cosmos DB resource throughput. Either throughput is required or autoscaleSettings is required,
	// but not both.
	Throughput *int `json:"throughput,omitempty"`

	// Ts: A system generated property that denotes the last updated timestamp of the resource.
	Ts *float64 `json:"_ts,omitempty"`
}

// Cosmos DB provisioned throughput settings object
type AutoscaleSettingsResource_STATUS struct {
	// AutoUpgradePolicy: Cosmos DB resource auto-upgrade policy
	AutoUpgradePolicy *AutoUpgradePolicyResource_STATUS `json:"autoUpgradePolicy,omitempty"`

	// MaxThroughput: Represents maximum throughput container can scale up to.
	MaxThroughput *int `json:"maxThroughput,omitempty"`

	// TargetMaxThroughput: Represents target maximum throughput container can scale up to once offer is no longer in pending
	// state.
	TargetMaxThroughput *int `json:"targetMaxThroughput,omitempty"`
}

// Cosmos DB resource auto-upgrade policy
type AutoUpgradePolicyResource_STATUS struct {
	// ThroughputPolicy: Represents throughput policy which service must adhere to for auto-upgrade
	ThroughputPolicy *ThroughputPolicyResource_STATUS `json:"throughputPolicy,omitempty"`
}

// Cosmos DB resource throughput policy
type ThroughputPolicyResource_STATUS struct {
	// IncrementPercent: Represents the percentage by which throughput can increase every time throughput policy kicks in.
	IncrementPercent *int `json:"incrementPercent,omitempty"`

	// IsEnabled: Determines whether the ThroughputPolicy is active or not
	IsEnabled *bool `json:"isEnabled,omitempty"`
}
