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

type MongodbDatabaseCollection_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 MongoDB collection
	Properties *MongoDBCollectionGetProperties_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 MongoDB collection
type MongoDBCollectionGetProperties_STATUS struct {
	// Options: Cosmos DB options resource object
	Options  *OptionsResource_STATUS                         `json:"options,omitempty"`
	Resource *MongoDBCollectionGetProperties_Resource_STATUS `json:"resource,omitempty"`
}

type MongoDBCollectionGetProperties_Resource_STATUS struct {
	// AnalyticalStorageTtl: Analytical TTL.
	AnalyticalStorageTtl *int `json:"analyticalStorageTtl,omitempty"`

	// CreateMode: Enum to indicate the mode of resource creation.
	CreateMode *CreateMode_STATUS `json:"createMode,omitempty"`

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

	// Id: Name of the Cosmos DB MongoDB collection
	Id *string `json:"id,omitempty"`

	// Indexes: List of index keys
	Indexes []MongoIndex_STATUS `json:"indexes,omitempty"`

	// RestoreParameters: Parameters to indicate the information about the restore
	RestoreParameters *RestoreParametersBase_STATUS `json:"restoreParameters,omitempty"`

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

	// ShardKey: A key-value pair of shard keys to be applied for the request.
	ShardKey map[string]string `json:"shardKey,omitempty"`

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

// Cosmos DB options resource object
type OptionsResource_STATUS struct {
	// AutoscaleSettings: Specifies the Autoscale settings.
	AutoscaleSettings *AutoscaleSettings_STATUS `json:"autoscaleSettings,omitempty"`

	// Throughput: Value of the Cosmos DB resource throughput or autoscaleSettings. Use the ThroughputSetting resource when
	// retrieving offer details.
	Throughput *int `json:"throughput,omitempty"`
}

type AutoscaleSettings_STATUS struct {
	// MaxThroughput: Represents maximum throughput, the resource can scale up to.
	MaxThroughput *int `json:"maxThroughput,omitempty"`
}

// Cosmos DB MongoDB collection index key
type MongoIndex_STATUS struct {
	// Key: Cosmos DB MongoDB collection index keys
	Key *MongoIndexKeys_STATUS `json:"key,omitempty"`

	// Options: Cosmos DB MongoDB collection index key options
	Options *MongoIndexOptions_STATUS `json:"options,omitempty"`
}

// Parameters to indicate the information about the restore.
type RestoreParametersBase_STATUS struct {
	// RestoreSource: The id of the restorable database account from which the restore has to be initiated. For example:
	// /subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{restorableDatabaseAccountName}
	RestoreSource *string `json:"restoreSource,omitempty"`

	// RestoreTimestampInUtc: Time to which the account has to be restored (ISO-8601 format).
	RestoreTimestampInUtc *string `json:"restoreTimestampInUtc,omitempty"`

	// RestoreWithTtlDisabled: Specifies whether the restored account will have Time-To-Live disabled upon the successful
	// restore.
	RestoreWithTtlDisabled *bool `json:"restoreWithTtlDisabled,omitempty"`
}

// Cosmos DB MongoDB collection resource object
type MongoIndexKeys_STATUS struct {
	// Keys: List of keys for each MongoDB collection in the Azure Cosmos DB service
	Keys []string `json:"keys,omitempty"`
}

// Cosmos DB MongoDB collection index options
type MongoIndexOptions_STATUS struct {
	// ExpireAfterSeconds: Expire after seconds
	ExpireAfterSeconds *int `json:"expireAfterSeconds,omitempty"`

	// Unique: Is unique or not
	Unique *bool `json:"unique,omitempty"`
}
