diff --git a/sdk/cosmos/mgmt-v2019_12_12/pom.xml b/sdk/cosmos/mgmt-v2019_12_12/pom.xml
new file mode 100644
index 0000000000000..c314cc1c0c305
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.cosmosdb.v2019_12_12
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-cosmosdb
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for CosmosDB Management
+ This package contains Microsoft CosmosDB Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ARMProxyResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ARMProxyResource.java
new file mode 100644
index 0000000000000..9cf7b28067148
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ARMProxyResource.java
@@ -0,0 +1,18 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * The resource model definition for a ARM proxy resource. It will have
+ * everything other than required location and tags.
+ */
+public class ARMProxyResource extends ProxyResource {
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ARMResourceProperties.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ARMResourceProperties.java
new file mode 100644
index 0000000000000..dcf4de6fd8086
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ARMResourceProperties.java
@@ -0,0 +1,17 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.Resource;
+
+/**
+ * The core properties of ARM resources.
+ */
+public class ARMResourceProperties extends Resource {
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AutoUpgradePolicyResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AutoUpgradePolicyResource.java
new file mode 100644
index 0000000000000..7c88507d6176a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AutoUpgradePolicyResource.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB resource auto-upgrade policy.
+ */
+public class AutoUpgradePolicyResource {
+ /**
+ * Represents throughput policy which service must adhere to for
+ * auto-upgrade.
+ */
+ @JsonProperty(value = "throughputPolicy")
+ private ThroughputPolicyResource throughputPolicy;
+
+ /**
+ * Get represents throughput policy which service must adhere to for auto-upgrade.
+ *
+ * @return the throughputPolicy value
+ */
+ public ThroughputPolicyResource throughputPolicy() {
+ return this.throughputPolicy;
+ }
+
+ /**
+ * Set represents throughput policy which service must adhere to for auto-upgrade.
+ *
+ * @param throughputPolicy the throughputPolicy value to set
+ * @return the AutoUpgradePolicyResource object itself.
+ */
+ public AutoUpgradePolicyResource withThroughputPolicy(ThroughputPolicyResource throughputPolicy) {
+ this.throughputPolicy = throughputPolicy;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AutopilotSettingsResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AutopilotSettingsResource.java
new file mode 100644
index 0000000000000..e737fb8929ca6
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AutopilotSettingsResource.java
@@ -0,0 +1,85 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB autopilot settings object.
+ */
+public class AutopilotSettingsResource {
+ /**
+ * Represents max throughput an autopilot container can operate at.
+ */
+ @JsonProperty(value = "maxThroughput", required = true)
+ private int maxThroughput;
+
+ /**
+ * Cosmos DB resource auto-upgrade policy.
+ */
+ @JsonProperty(value = "autoUpgradePolicy")
+ private AutoUpgradePolicyResource autoUpgradePolicy;
+
+ /**
+ * Represents target max throughput an autopilot container should operate
+ * at once offer is no longer in pending state.
+ */
+ @JsonProperty(value = "targetMaxThroughput", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer targetMaxThroughput;
+
+ /**
+ * Get represents max throughput an autopilot container can operate at.
+ *
+ * @return the maxThroughput value
+ */
+ public int maxThroughput() {
+ return this.maxThroughput;
+ }
+
+ /**
+ * Set represents max throughput an autopilot container can operate at.
+ *
+ * @param maxThroughput the maxThroughput value to set
+ * @return the AutopilotSettingsResource object itself.
+ */
+ public AutopilotSettingsResource withMaxThroughput(int maxThroughput) {
+ this.maxThroughput = maxThroughput;
+ return this;
+ }
+
+ /**
+ * Get cosmos DB resource auto-upgrade policy.
+ *
+ * @return the autoUpgradePolicy value
+ */
+ public AutoUpgradePolicyResource autoUpgradePolicy() {
+ return this.autoUpgradePolicy;
+ }
+
+ /**
+ * Set cosmos DB resource auto-upgrade policy.
+ *
+ * @param autoUpgradePolicy the autoUpgradePolicy value to set
+ * @return the AutopilotSettingsResource object itself.
+ */
+ public AutopilotSettingsResource withAutoUpgradePolicy(AutoUpgradePolicyResource autoUpgradePolicy) {
+ this.autoUpgradePolicy = autoUpgradePolicy;
+ return this;
+ }
+
+ /**
+ * Get represents target max throughput an autopilot container should operate at once offer is no longer in pending state.
+ *
+ * @return the targetMaxThroughput value
+ */
+ public Integer targetMaxThroughput() {
+ return this.targetMaxThroughput;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AzureEntityResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AzureEntityResource.java
new file mode 100644
index 0000000000000..8c52362b1a32c
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/AzureEntityResource.java
@@ -0,0 +1,34 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * The resource model definition for a Azure Resource Manager resource with an
+ * etag.
+ */
+public class AzureEntityResource extends ProxyResource {
+ /**
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get resource Etag.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Capability.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Capability.java
new file mode 100644
index 0000000000000..8c767267cff09
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Capability.java
@@ -0,0 +1,45 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB capability object.
+ */
+public class Capability {
+ /**
+ * Name of the Cosmos DB capability. For example, "name":
+ * "EnableCassandra". Current values also include "EnableTable" and
+ * "EnableGremlin".
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Get name of the Cosmos DB capability. For example, "name": "EnableCassandra". Current values also include "EnableTable" and "EnableGremlin".
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the Cosmos DB capability. For example, "name": "EnableCassandra". Current values also include "EnableTable" and "EnableGremlin".
+ *
+ * @param name the name value to set
+ * @return the Capability object itself.
+ */
+ public Capability withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceCreateUpdateParameters.java
new file mode 100644
index 0000000000000..b1784b49b3133
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceCreateUpdateParameters.java
@@ -0,0 +1,72 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to create and update Cosmos DB Cassandra keyspace.
+ */
+@JsonFlatten
+public class CassandraKeyspaceCreateUpdateParameters extends ARMResourceProperties {
+ /**
+ * The standard JSON format of a Cassandra keyspace.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private CassandraKeyspaceResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private CreateUpdateOptions options;
+
+ /**
+ * Get the standard JSON format of a Cassandra keyspace.
+ *
+ * @return the resource value
+ */
+ public CassandraKeyspaceResource resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the standard JSON format of a Cassandra keyspace.
+ *
+ * @param resource the resource value to set
+ * @return the CassandraKeyspaceCreateUpdateParameters object itself.
+ */
+ public CassandraKeyspaceCreateUpdateParameters withResource(CassandraKeyspaceResource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @return the options value
+ */
+ public CreateUpdateOptions options() {
+ return this.options;
+ }
+
+ /**
+ * Set a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @param options the options value to set
+ * @return the CassandraKeyspaceCreateUpdateParameters object itself.
+ */
+ public CassandraKeyspaceCreateUpdateParameters withOptions(CreateUpdateOptions options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceGetPropertiesResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceGetPropertiesResource.java
new file mode 100644
index 0000000000000..42e5e45e2775c
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceGetPropertiesResource.java
@@ -0,0 +1,90 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The CassandraKeyspaceGetPropertiesResource model.
+ */
+public class CassandraKeyspaceGetPropertiesResource {
+ /**
+ * Name of the Cosmos DB Cassandra keyspace.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * A system generated property. A unique identifier.
+ */
+ @JsonProperty(value = "_rid", access = JsonProperty.Access.WRITE_ONLY)
+ private String _rid;
+
+ /**
+ * A system generated property that denotes the last updated timestamp of
+ * the resource.
+ */
+ @JsonProperty(value = "_ts", access = JsonProperty.Access.WRITE_ONLY)
+ private Object _ts;
+
+ /**
+ * A system generated property representing the resource etag required for
+ * optimistic concurrency control.
+ */
+ @JsonProperty(value = "_etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String _etag;
+
+ /**
+ * Get name of the Cosmos DB Cassandra keyspace.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Cassandra keyspace.
+ *
+ * @param id the id value to set
+ * @return the CassandraKeyspaceGetPropertiesResource object itself.
+ */
+ public CassandraKeyspaceGetPropertiesResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get a system generated property. A unique identifier.
+ *
+ * @return the _rid value
+ */
+ public String _rid() {
+ return this._rid;
+ }
+
+ /**
+ * Get a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @return the _ts value
+ */
+ public Object _ts() {
+ return this._ts;
+ }
+
+ /**
+ * Get a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @return the _etag value
+ */
+ public String _etag() {
+ return this._etag;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceGetResults.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceGetResults.java
new file mode 100644
index 0000000000000..dc85bea72e475
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceGetResults.java
@@ -0,0 +1,164 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CassandraKeyspaceGetResultsInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.Map;
+
+/**
+ * Type representing CassandraKeyspaceGetResults.
+ */
+public interface CassandraKeyspaceGetResults extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resource value.
+ */
+ CassandraKeyspaceGetPropertiesResource resource();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the CassandraKeyspaceGetResults definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabaseAccount, DefinitionStages.WithLocation, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of CassandraKeyspaceGetResults definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a CassandraKeyspaceGetResults definition.
+ */
+ interface Blank extends WithDatabaseAccount {
+ }
+
+ /**
+ * The stage of the cassandrakeyspacegetresults definition allowing to specify DatabaseAccount.
+ */
+ interface WithDatabaseAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @return the next definition stage
+ */
+ WithLocation withExistingDatabaseAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the cassandrakeyspacegetresults definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithOptions withLocation(String location);
+ }
+
+ /**
+ * The stage of the cassandrakeyspacegetresults definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * The stage of the cassandrakeyspacegetresults definition allowing to specify Resource.
+ */
+ interface WithResource {
+ /**
+ * Specifies resource.
+ * @param resource The standard JSON format of a Cassandra keyspace
+ * @return the next definition stage
+ */
+ WithCreate withResource(CassandraKeyspaceResource resource);
+ }
+
+ /**
+ * The stage of the cassandrakeyspacegetresults definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a CassandraKeyspaceGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of CassandraKeyspaceGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the cassandrakeyspacegetresults update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceResource.java
new file mode 100644
index 0000000000000..811dcda94e593
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraKeyspaceResource.java
@@ -0,0 +1,43 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Cassandra keyspace resource object.
+ */
+public class CassandraKeyspaceResource {
+ /**
+ * Name of the Cosmos DB Cassandra keyspace.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Get name of the Cosmos DB Cassandra keyspace.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Cassandra keyspace.
+ *
+ * @param id the id value to set
+ * @return the CassandraKeyspaceResource object itself.
+ */
+ public CassandraKeyspaceResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraPartitionKey.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraPartitionKey.java
new file mode 100644
index 0000000000000..565f810da2c6a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraPartitionKey.java
@@ -0,0 +1,43 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Cassandra table partition key.
+ */
+public class CassandraPartitionKey {
+ /**
+ * Name of the Cosmos DB Cassandra table partition key.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Get name of the Cosmos DB Cassandra table partition key.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the Cosmos DB Cassandra table partition key.
+ *
+ * @param name the name value to set
+ * @return the CassandraPartitionKey object itself.
+ */
+ public CassandraPartitionKey withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraResources.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraResources.java
new file mode 100644
index 0000000000000..814efc8e704d1
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraResources.java
@@ -0,0 +1,149 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.CassandraKeyspaceGetResults;
+import rx.Completable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.CassandraTableGetResults;
+
+/**
+ * Type representing CassandraResources.
+ */
+public interface CassandraResources {
+ /**
+ * Begins definition for a new CassandraKeyspace resource.
+ * @param name resource name.
+ * @return the first stage of the new CassandraKeyspace definition.
+ */
+ CassandraKeyspaceGetResults.DefinitionStages.Blank defineCassandraKeyspace(String name);
+
+ /**
+ * Begins definition for a new Table resource.
+ * @param name resource name.
+ * @return the first stage of the new Table definition.
+ */
+ CassandraTableGetResults.DefinitionStages.Blank defineTable(String name);
+
+ /**
+ * Gets the Cassandra keyspaces under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCassandraKeyspaceAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Lists the Cassandra keyspaces under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listCassandraKeyspacesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Cassandra keyspace.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteCassandraKeyspaceAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Gets the RUs per second of the Cassandra Keyspace under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCassandraKeyspaceThroughputAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Cassandra Keyspace.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param updateThroughputParameters The RUs per second of the parameters to provide for the current Cassandra Keyspace.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateCassandraKeyspaceThroughputAsync(String resourceGroupName, String accountName, String keyspaceName, ThroughputSettingsUpdateParameters updateThroughputParameters);
+
+ /**
+ * Gets the RUs per second of the Cassandra table under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCassandraTableThroughputAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Cassandra table.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @param updateThroughputParameters The RUs per second of the parameters to provide for the current Cassandra table.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateCassandraTableThroughputAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName, ThroughputSettingsUpdateParameters updateThroughputParameters);
+
+ /**
+ * Gets the Cassandra table under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCassandraTableAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName);
+
+ /**
+ * Lists the Cassandra table under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listCassandraTablesAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Cassandra table.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteCassandraTableAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraSchema.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraSchema.java
new file mode 100644
index 0000000000000..a1386a7b52419
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraSchema.java
@@ -0,0 +1,96 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Cassandra table schema.
+ */
+public class CassandraSchema {
+ /**
+ * List of Cassandra table columns.
+ */
+ @JsonProperty(value = "columns")
+ private List columns;
+
+ /**
+ * List of partition key.
+ */
+ @JsonProperty(value = "partitionKeys")
+ private List partitionKeys;
+
+ /**
+ * List of cluster key.
+ */
+ @JsonProperty(value = "clusterKeys")
+ private List clusterKeys;
+
+ /**
+ * Get list of Cassandra table columns.
+ *
+ * @return the columns value
+ */
+ public List columns() {
+ return this.columns;
+ }
+
+ /**
+ * Set list of Cassandra table columns.
+ *
+ * @param columns the columns value to set
+ * @return the CassandraSchema object itself.
+ */
+ public CassandraSchema withColumns(List columns) {
+ this.columns = columns;
+ return this;
+ }
+
+ /**
+ * Get list of partition key.
+ *
+ * @return the partitionKeys value
+ */
+ public List partitionKeys() {
+ return this.partitionKeys;
+ }
+
+ /**
+ * Set list of partition key.
+ *
+ * @param partitionKeys the partitionKeys value to set
+ * @return the CassandraSchema object itself.
+ */
+ public CassandraSchema withPartitionKeys(List partitionKeys) {
+ this.partitionKeys = partitionKeys;
+ return this;
+ }
+
+ /**
+ * Get list of cluster key.
+ *
+ * @return the clusterKeys value
+ */
+ public List clusterKeys() {
+ return this.clusterKeys;
+ }
+
+ /**
+ * Set list of cluster key.
+ *
+ * @param clusterKeys the clusterKeys value to set
+ * @return the CassandraSchema object itself.
+ */
+ public CassandraSchema withClusterKeys(List clusterKeys) {
+ this.clusterKeys = clusterKeys;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableCreateUpdateParameters.java
new file mode 100644
index 0000000000000..f64841f603b63
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableCreateUpdateParameters.java
@@ -0,0 +1,72 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to create and update Cosmos DB Cassandra table.
+ */
+@JsonFlatten
+public class CassandraTableCreateUpdateParameters extends ARMResourceProperties {
+ /**
+ * The standard JSON format of a Cassandra table.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private CassandraTableResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private CreateUpdateOptions options;
+
+ /**
+ * Get the standard JSON format of a Cassandra table.
+ *
+ * @return the resource value
+ */
+ public CassandraTableResource resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the standard JSON format of a Cassandra table.
+ *
+ * @param resource the resource value to set
+ * @return the CassandraTableCreateUpdateParameters object itself.
+ */
+ public CassandraTableCreateUpdateParameters withResource(CassandraTableResource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @return the options value
+ */
+ public CreateUpdateOptions options() {
+ return this.options;
+ }
+
+ /**
+ * Set a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @param options the options value to set
+ * @return the CassandraTableCreateUpdateParameters object itself.
+ */
+ public CassandraTableCreateUpdateParameters withOptions(CreateUpdateOptions options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableGetPropertiesResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableGetPropertiesResource.java
new file mode 100644
index 0000000000000..126c498696858
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableGetPropertiesResource.java
@@ -0,0 +1,142 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The CassandraTableGetPropertiesResource model.
+ */
+public class CassandraTableGetPropertiesResource {
+ /**
+ * Name of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Time to live of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "defaultTtl")
+ private Integer defaultTtl;
+
+ /**
+ * Schema of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "schema")
+ private CassandraSchema schema;
+
+ /**
+ * A system generated property. A unique identifier.
+ */
+ @JsonProperty(value = "_rid", access = JsonProperty.Access.WRITE_ONLY)
+ private String _rid;
+
+ /**
+ * A system generated property that denotes the last updated timestamp of
+ * the resource.
+ */
+ @JsonProperty(value = "_ts", access = JsonProperty.Access.WRITE_ONLY)
+ private Object _ts;
+
+ /**
+ * A system generated property representing the resource etag required for
+ * optimistic concurrency control.
+ */
+ @JsonProperty(value = "_etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String _etag;
+
+ /**
+ * Get name of the Cosmos DB Cassandra table.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Cassandra table.
+ *
+ * @param id the id value to set
+ * @return the CassandraTableGetPropertiesResource object itself.
+ */
+ public CassandraTableGetPropertiesResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get time to live of the Cosmos DB Cassandra table.
+ *
+ * @return the defaultTtl value
+ */
+ public Integer defaultTtl() {
+ return this.defaultTtl;
+ }
+
+ /**
+ * Set time to live of the Cosmos DB Cassandra table.
+ *
+ * @param defaultTtl the defaultTtl value to set
+ * @return the CassandraTableGetPropertiesResource object itself.
+ */
+ public CassandraTableGetPropertiesResource withDefaultTtl(Integer defaultTtl) {
+ this.defaultTtl = defaultTtl;
+ return this;
+ }
+
+ /**
+ * Get schema of the Cosmos DB Cassandra table.
+ *
+ * @return the schema value
+ */
+ public CassandraSchema schema() {
+ return this.schema;
+ }
+
+ /**
+ * Set schema of the Cosmos DB Cassandra table.
+ *
+ * @param schema the schema value to set
+ * @return the CassandraTableGetPropertiesResource object itself.
+ */
+ public CassandraTableGetPropertiesResource withSchema(CassandraSchema schema) {
+ this.schema = schema;
+ return this;
+ }
+
+ /**
+ * Get a system generated property. A unique identifier.
+ *
+ * @return the _rid value
+ */
+ public String _rid() {
+ return this._rid;
+ }
+
+ /**
+ * Get a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @return the _ts value
+ */
+ public Object _ts() {
+ return this._ts;
+ }
+
+ /**
+ * Get a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @return the _etag value
+ */
+ public String _etag() {
+ return this._etag;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableGetResults.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableGetResults.java
new file mode 100644
index 0000000000000..c9ee4742b738e
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableGetResults.java
@@ -0,0 +1,165 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CassandraTableGetResultsInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.Map;
+
+/**
+ * Type representing CassandraTableGetResults.
+ */
+public interface CassandraTableGetResults extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resource value.
+ */
+ CassandraTableGetPropertiesResource resource();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the CassandraTableGetResults definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithCassandraKeyspace, DefinitionStages.WithLocation, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of CassandraTableGetResults definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a CassandraTableGetResults definition.
+ */
+ interface Blank extends WithCassandraKeyspace {
+ }
+
+ /**
+ * The stage of the cassandratablegetresults definition allowing to specify CassandraKeyspace.
+ */
+ interface WithCassandraKeyspace {
+ /**
+ * Specifies resourceGroupName, accountName, keyspaceName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @param keyspaceName Cosmos DB keyspace name
+ * @return the next definition stage
+ */
+ WithLocation withExistingCassandraKeyspace(String resourceGroupName, String accountName, String keyspaceName);
+ }
+
+ /**
+ * The stage of the cassandratablegetresults definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithOptions withLocation(String location);
+ }
+
+ /**
+ * The stage of the cassandratablegetresults definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * The stage of the cassandratablegetresults definition allowing to specify Resource.
+ */
+ interface WithResource {
+ /**
+ * Specifies resource.
+ * @param resource The standard JSON format of a Cassandra table
+ * @return the next definition stage
+ */
+ WithCreate withResource(CassandraTableResource resource);
+ }
+
+ /**
+ * The stage of the cassandratablegetresults definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a CassandraTableGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of CassandraTableGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the cassandratablegetresults update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableResource.java
new file mode 100644
index 0000000000000..e65c7e7f1e0ba
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CassandraTableResource.java
@@ -0,0 +1,95 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Cassandra table resource object.
+ */
+public class CassandraTableResource {
+ /**
+ * Name of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Time to live of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "defaultTtl")
+ private Integer defaultTtl;
+
+ /**
+ * Schema of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "schema")
+ private CassandraSchema schema;
+
+ /**
+ * Get name of the Cosmos DB Cassandra table.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Cassandra table.
+ *
+ * @param id the id value to set
+ * @return the CassandraTableResource object itself.
+ */
+ public CassandraTableResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get time to live of the Cosmos DB Cassandra table.
+ *
+ * @return the defaultTtl value
+ */
+ public Integer defaultTtl() {
+ return this.defaultTtl;
+ }
+
+ /**
+ * Set time to live of the Cosmos DB Cassandra table.
+ *
+ * @param defaultTtl the defaultTtl value to set
+ * @return the CassandraTableResource object itself.
+ */
+ public CassandraTableResource withDefaultTtl(Integer defaultTtl) {
+ this.defaultTtl = defaultTtl;
+ return this;
+ }
+
+ /**
+ * Get schema of the Cosmos DB Cassandra table.
+ *
+ * @return the schema value
+ */
+ public CassandraSchema schema() {
+ return this.schema;
+ }
+
+ /**
+ * Set schema of the Cosmos DB Cassandra table.
+ *
+ * @param schema the schema value to set
+ * @return the CassandraTableResource object itself.
+ */
+ public CassandraTableResource withSchema(CassandraSchema schema) {
+ this.schema = schema;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ClusterKey.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ClusterKey.java
new file mode 100644
index 0000000000000..39120993b25a0
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ClusterKey.java
@@ -0,0 +1,70 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Cassandra table cluster key.
+ */
+public class ClusterKey {
+ /**
+ * Name of the Cosmos DB Cassandra table cluster key.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Order of the Cosmos DB Cassandra table cluster key, only support "Asc"
+ * and "Desc".
+ */
+ @JsonProperty(value = "orderBy")
+ private String orderBy;
+
+ /**
+ * Get name of the Cosmos DB Cassandra table cluster key.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the Cosmos DB Cassandra table cluster key.
+ *
+ * @param name the name value to set
+ * @return the ClusterKey object itself.
+ */
+ public ClusterKey withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get order of the Cosmos DB Cassandra table cluster key, only support "Asc" and "Desc".
+ *
+ * @return the orderBy value
+ */
+ public String orderBy() {
+ return this.orderBy;
+ }
+
+ /**
+ * Set order of the Cosmos DB Cassandra table cluster key, only support "Asc" and "Desc".
+ *
+ * @param orderBy the orderBy value to set
+ * @return the ClusterKey object itself.
+ */
+ public ClusterKey withOrderBy(String orderBy) {
+ this.orderBy = orderBy;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetric.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetric.java
new file mode 100644
index 0000000000000..d46a12a61cf19
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetric.java
@@ -0,0 +1,52 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing CollectionDatabasisDatabaseAccountMetric.
+ */
+public interface CollectionDatabasisDatabaseAccountMetric extends HasInner, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the metricValues value.
+ */
+ List metricValues();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the timeGrain value.
+ */
+ String timeGrain();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetricDefinition.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetricDefinition.java
new file mode 100644
index 0000000000000..693cc6d8b949b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetricDefinition.java
@@ -0,0 +1,46 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.List;
+
+/**
+ * Type representing CollectionDatabasisDatabaseAccountMetricDefinition.
+ */
+public interface CollectionDatabasisDatabaseAccountMetricDefinition extends HasInner, HasManager {
+ /**
+ * @return the metricAvailabilities value.
+ */
+ List metricAvailabilities();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the primaryAggregationType value.
+ */
+ PrimaryAggregationType primaryAggregationType();
+
+ /**
+ * @return the resourceUri value.
+ */
+ String resourceUri();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetricModel.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetricModel.java
new file mode 100644
index 0000000000000..d428c69601934
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountMetricModel.java
@@ -0,0 +1,52 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing CollectionDatabasisDatabaseAccountMetricModel.
+ */
+public interface CollectionDatabasisDatabaseAccountMetricModel extends HasInner, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the metricValues value.
+ */
+ List metricValues();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the timeGrain value.
+ */
+ String timeGrain();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountUsage.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountUsage.java
new file mode 100644
index 0000000000000..fe8b141064fd3
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionDatabasisDatabaseAccountUsage.java
@@ -0,0 +1,45 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+
+/**
+ * Type representing CollectionDatabasisDatabaseAccountUsage.
+ */
+public interface CollectionDatabasisDatabaseAccountUsage extends HasInner, HasManager {
+ /**
+ * @return the currentValue value.
+ */
+ Long currentValue();
+
+ /**
+ * @return the limit value.
+ */
+ Long limit();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the quotaPeriod value.
+ */
+ String quotaPeriod();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionPartitionRegions.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionPartitionRegions.java
new file mode 100644
index 0000000000000..0a9e5a6a3adab
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionPartitionRegions.java
@@ -0,0 +1,31 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+
+/**
+ * Type representing CollectionPartitionRegions.
+ */
+public interface CollectionPartitionRegions {
+ /**
+ * Retrieves the metrics determined by the given filter for the given collection and region, split by partition.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String region, String databaseRid, String collectionRid, String filter);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionPartitions.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionPartitions.java
new file mode 100644
index 0000000000000..b066c0fb34518
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionPartitions.java
@@ -0,0 +1,42 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+
+/**
+ * Type representing CollectionPartitions.
+ */
+public interface CollectionPartitions {
+ /**
+ * Retrieves the metrics determined by the given filter for the given collection, split by partition.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid, String filter);
+
+ /**
+ * Retrieves the usages (most recent storage data) for the given collection, split by partition.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionRegions.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionRegions.java
new file mode 100644
index 0000000000000..5b41dc51ee08a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CollectionRegions.java
@@ -0,0 +1,32 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.CollectionDatabasisDatabaseAccountMetricModel;
+
+/**
+ * Type representing CollectionRegions.
+ */
+public interface CollectionRegions {
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account, collection and region.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String region, String databaseRid, String collectionRid, String filter);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Collections.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Collections.java
new file mode 100644
index 0000000000000..3a12b8a2c1d86
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Collections.java
@@ -0,0 +1,57 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.CollectionDatabasisDatabaseAccountMetricDefinition;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.CollectionDatabasisDatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.CollectionDatabasisDatabaseAccountUsage;
+
+/**
+ * Type representing Collections.
+ */
+public interface Collections {
+ /**
+ * Retrieves metric definitions for the given collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricDefinitionsAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid);
+
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account and collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid, String filter);
+
+ /**
+ * Retrieves the usages (most recent storage data) for the given collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Column.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Column.java
new file mode 100644
index 0000000000000..1a6d309ea889b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Column.java
@@ -0,0 +1,69 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Cassandra table column.
+ */
+public class Column {
+ /**
+ * Name of the Cosmos DB Cassandra table column.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Type of the Cosmos DB Cassandra table column.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get name of the Cosmos DB Cassandra table column.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the Cosmos DB Cassandra table column.
+ *
+ * @param name the name value to set
+ * @return the Column object itself.
+ */
+ public Column withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get type of the Cosmos DB Cassandra table column.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the Cosmos DB Cassandra table column.
+ *
+ * @param type the type value to set
+ * @return the Column object itself.
+ */
+ public Column withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CompositePath.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CompositePath.java
new file mode 100644
index 0000000000000..ae3d3e7bc4dc2
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CompositePath.java
@@ -0,0 +1,71 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The CompositePath model.
+ */
+public class CompositePath {
+ /**
+ * The path for which the indexing behavior applies to. Index paths
+ * typically start with root and end with wildcard (/path/*).
+ */
+ @JsonProperty(value = "path")
+ private String path;
+
+ /**
+ * Sort order for composite paths. Possible values include: 'Ascending',
+ * 'Descending'.
+ */
+ @JsonProperty(value = "order")
+ private CompositePathSortOrder order;
+
+ /**
+ * Get the path for which the indexing behavior applies to. Index paths typically start with root and end with wildcard (/path/*).
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set the path for which the indexing behavior applies to. Index paths typically start with root and end with wildcard (/path/*).
+ *
+ * @param path the path value to set
+ * @return the CompositePath object itself.
+ */
+ public CompositePath withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get sort order for composite paths. Possible values include: 'Ascending', 'Descending'.
+ *
+ * @return the order value
+ */
+ public CompositePathSortOrder order() {
+ return this.order;
+ }
+
+ /**
+ * Set sort order for composite paths. Possible values include: 'Ascending', 'Descending'.
+ *
+ * @param order the order value to set
+ * @return the CompositePath object itself.
+ */
+ public CompositePath withOrder(CompositePathSortOrder order) {
+ this.order = order;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CompositePathSortOrder.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CompositePathSortOrder.java
new file mode 100644
index 0000000000000..554e850ca092d
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CompositePathSortOrder.java
@@ -0,0 +1,41 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CompositePathSortOrder.
+ */
+public final class CompositePathSortOrder extends ExpandableStringEnum {
+ /** Static value Ascending for CompositePathSortOrder. */
+ public static final CompositePathSortOrder ASCENDING = fromString("Ascending");
+
+ /** Static value Descending for CompositePathSortOrder. */
+ public static final CompositePathSortOrder DESCENDING = fromString("Descending");
+
+ /**
+ * Creates or finds a CompositePathSortOrder from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CompositePathSortOrder
+ */
+ @JsonCreator
+ public static CompositePathSortOrder fromString(String name) {
+ return fromString(name, CompositePathSortOrder.class);
+ }
+
+ /**
+ * @return known CompositePathSortOrder values
+ */
+ public static Collection values() {
+ return values(CompositePathSortOrder.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConflictResolutionMode.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConflictResolutionMode.java
new file mode 100644
index 0000000000000..1a75627ac8bac
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConflictResolutionMode.java
@@ -0,0 +1,41 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ConflictResolutionMode.
+ */
+public final class ConflictResolutionMode extends ExpandableStringEnum {
+ /** Static value LastWriterWins for ConflictResolutionMode. */
+ public static final ConflictResolutionMode LAST_WRITER_WINS = fromString("LastWriterWins");
+
+ /** Static value Custom for ConflictResolutionMode. */
+ public static final ConflictResolutionMode CUSTOM = fromString("Custom");
+
+ /**
+ * Creates or finds a ConflictResolutionMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ConflictResolutionMode
+ */
+ @JsonCreator
+ public static ConflictResolutionMode fromString(String name) {
+ return fromString(name, ConflictResolutionMode.class);
+ }
+
+ /**
+ * @return known ConflictResolutionMode values
+ */
+ public static Collection values() {
+ return values(ConflictResolutionMode.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConflictResolutionPolicy.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConflictResolutionPolicy.java
new file mode 100644
index 0000000000000..9757b313db289
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConflictResolutionPolicy.java
@@ -0,0 +1,96 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The conflict resolution policy for the container.
+ */
+public class ConflictResolutionPolicy {
+ /**
+ * Indicates the conflict resolution mode. Possible values include:
+ * 'LastWriterWins', 'Custom'.
+ */
+ @JsonProperty(value = "mode")
+ private ConflictResolutionMode mode;
+
+ /**
+ * The conflict resolution path in the case of LastWriterWins mode.
+ */
+ @JsonProperty(value = "conflictResolutionPath")
+ private String conflictResolutionPath;
+
+ /**
+ * The procedure to resolve conflicts in the case of custom mode.
+ */
+ @JsonProperty(value = "conflictResolutionProcedure")
+ private String conflictResolutionProcedure;
+
+ /**
+ * Get indicates the conflict resolution mode. Possible values include: 'LastWriterWins', 'Custom'.
+ *
+ * @return the mode value
+ */
+ public ConflictResolutionMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set indicates the conflict resolution mode. Possible values include: 'LastWriterWins', 'Custom'.
+ *
+ * @param mode the mode value to set
+ * @return the ConflictResolutionPolicy object itself.
+ */
+ public ConflictResolutionPolicy withMode(ConflictResolutionMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+ /**
+ * Get the conflict resolution path in the case of LastWriterWins mode.
+ *
+ * @return the conflictResolutionPath value
+ */
+ public String conflictResolutionPath() {
+ return this.conflictResolutionPath;
+ }
+
+ /**
+ * Set the conflict resolution path in the case of LastWriterWins mode.
+ *
+ * @param conflictResolutionPath the conflictResolutionPath value to set
+ * @return the ConflictResolutionPolicy object itself.
+ */
+ public ConflictResolutionPolicy withConflictResolutionPath(String conflictResolutionPath) {
+ this.conflictResolutionPath = conflictResolutionPath;
+ return this;
+ }
+
+ /**
+ * Get the procedure to resolve conflicts in the case of custom mode.
+ *
+ * @return the conflictResolutionProcedure value
+ */
+ public String conflictResolutionProcedure() {
+ return this.conflictResolutionProcedure;
+ }
+
+ /**
+ * Set the procedure to resolve conflicts in the case of custom mode.
+ *
+ * @param conflictResolutionProcedure the conflictResolutionProcedure value to set
+ * @return the ConflictResolutionPolicy object itself.
+ */
+ public ConflictResolutionPolicy withConflictResolutionProcedure(String conflictResolutionProcedure) {
+ this.conflictResolutionProcedure = conflictResolutionProcedure;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConnectorOffer.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConnectorOffer.java
new file mode 100644
index 0000000000000..cadde4759aed9
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConnectorOffer.java
@@ -0,0 +1,38 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ConnectorOffer.
+ */
+public final class ConnectorOffer extends ExpandableStringEnum {
+ /** Static value Small for ConnectorOffer. */
+ public static final ConnectorOffer SMALL = fromString("Small");
+
+ /**
+ * Creates or finds a ConnectorOffer from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ConnectorOffer
+ */
+ @JsonCreator
+ public static ConnectorOffer fromString(String name) {
+ return fromString(name, ConnectorOffer.class);
+ }
+
+ /**
+ * @return known ConnectorOffer values
+ */
+ public static Collection values() {
+ return values(ConnectorOffer.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConsistencyPolicy.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConsistencyPolicy.java
new file mode 100644
index 0000000000000..bb7ee6a73abb3
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ConsistencyPolicy.java
@@ -0,0 +1,103 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The consistency policy for the Cosmos DB database account.
+ */
+public class ConsistencyPolicy {
+ /**
+ * The default consistency level and configuration settings of the Cosmos
+ * DB account. Possible values include: 'Eventual', 'Session',
+ * 'BoundedStaleness', 'Strong', 'ConsistentPrefix'.
+ */
+ @JsonProperty(value = "defaultConsistencyLevel", required = true)
+ private DefaultConsistencyLevel defaultConsistencyLevel;
+
+ /**
+ * When used with the Bounded Staleness consistency level, this value
+ * represents the number of stale requests tolerated. Accepted range for
+ * this value is 1 – 2,147,483,647. Required when defaultConsistencyPolicy
+ * is set to 'BoundedStaleness'.
+ */
+ @JsonProperty(value = "maxStalenessPrefix")
+ private Long maxStalenessPrefix;
+
+ /**
+ * When used with the Bounded Staleness consistency level, this value
+ * represents the time amount of staleness (in seconds) tolerated. Accepted
+ * range for this value is 5 - 86400. Required when
+ * defaultConsistencyPolicy is set to 'BoundedStaleness'.
+ */
+ @JsonProperty(value = "maxIntervalInSeconds")
+ private Integer maxIntervalInSeconds;
+
+ /**
+ * Get the default consistency level and configuration settings of the Cosmos DB account. Possible values include: 'Eventual', 'Session', 'BoundedStaleness', 'Strong', 'ConsistentPrefix'.
+ *
+ * @return the defaultConsistencyLevel value
+ */
+ public DefaultConsistencyLevel defaultConsistencyLevel() {
+ return this.defaultConsistencyLevel;
+ }
+
+ /**
+ * Set the default consistency level and configuration settings of the Cosmos DB account. Possible values include: 'Eventual', 'Session', 'BoundedStaleness', 'Strong', 'ConsistentPrefix'.
+ *
+ * @param defaultConsistencyLevel the defaultConsistencyLevel value to set
+ * @return the ConsistencyPolicy object itself.
+ */
+ public ConsistencyPolicy withDefaultConsistencyLevel(DefaultConsistencyLevel defaultConsistencyLevel) {
+ this.defaultConsistencyLevel = defaultConsistencyLevel;
+ return this;
+ }
+
+ /**
+ * Get when used with the Bounded Staleness consistency level, this value represents the number of stale requests tolerated. Accepted range for this value is 1 – 2,147,483,647. Required when defaultConsistencyPolicy is set to 'BoundedStaleness'.
+ *
+ * @return the maxStalenessPrefix value
+ */
+ public Long maxStalenessPrefix() {
+ return this.maxStalenessPrefix;
+ }
+
+ /**
+ * Set when used with the Bounded Staleness consistency level, this value represents the number of stale requests tolerated. Accepted range for this value is 1 – 2,147,483,647. Required when defaultConsistencyPolicy is set to 'BoundedStaleness'.
+ *
+ * @param maxStalenessPrefix the maxStalenessPrefix value to set
+ * @return the ConsistencyPolicy object itself.
+ */
+ public ConsistencyPolicy withMaxStalenessPrefix(Long maxStalenessPrefix) {
+ this.maxStalenessPrefix = maxStalenessPrefix;
+ return this;
+ }
+
+ /**
+ * Get when used with the Bounded Staleness consistency level, this value represents the time amount of staleness (in seconds) tolerated. Accepted range for this value is 5 - 86400. Required when defaultConsistencyPolicy is set to 'BoundedStaleness'.
+ *
+ * @return the maxIntervalInSeconds value
+ */
+ public Integer maxIntervalInSeconds() {
+ return this.maxIntervalInSeconds;
+ }
+
+ /**
+ * Set when used with the Bounded Staleness consistency level, this value represents the time amount of staleness (in seconds) tolerated. Accepted range for this value is 5 - 86400. Required when defaultConsistencyPolicy is set to 'BoundedStaleness'.
+ *
+ * @param maxIntervalInSeconds the maxIntervalInSeconds value to set
+ * @return the ConsistencyPolicy object itself.
+ */
+ public ConsistencyPolicy withMaxIntervalInSeconds(Integer maxIntervalInSeconds) {
+ this.maxIntervalInSeconds = maxIntervalInSeconds;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ContainerPartitionKey.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ContainerPartitionKey.java
new file mode 100644
index 0000000000000..456fd4669af3e
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ContainerPartitionKey.java
@@ -0,0 +1,98 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The configuration of the partition key to be used for partitioning data into
+ * multiple partitions.
+ */
+public class ContainerPartitionKey {
+ /**
+ * List of paths using which data within the container can be partitioned.
+ */
+ @JsonProperty(value = "paths")
+ private List paths;
+
+ /**
+ * Indicates the kind of algorithm used for partitioning. Possible values
+ * include: 'Hash', 'Range'.
+ */
+ @JsonProperty(value = "kind")
+ private PartitionKind kind;
+
+ /**
+ * Indicates the version of the partition key definition.
+ */
+ @JsonProperty(value = "version")
+ private Integer version;
+
+ /**
+ * Get list of paths using which data within the container can be partitioned.
+ *
+ * @return the paths value
+ */
+ public List paths() {
+ return this.paths;
+ }
+
+ /**
+ * Set list of paths using which data within the container can be partitioned.
+ *
+ * @param paths the paths value to set
+ * @return the ContainerPartitionKey object itself.
+ */
+ public ContainerPartitionKey withPaths(List paths) {
+ this.paths = paths;
+ return this;
+ }
+
+ /**
+ * Get indicates the kind of algorithm used for partitioning. Possible values include: 'Hash', 'Range'.
+ *
+ * @return the kind value
+ */
+ public PartitionKind kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set indicates the kind of algorithm used for partitioning. Possible values include: 'Hash', 'Range'.
+ *
+ * @param kind the kind value to set
+ * @return the ContainerPartitionKey object itself.
+ */
+ public ContainerPartitionKey withKind(PartitionKind kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get indicates the version of the partition key definition.
+ *
+ * @return the version value
+ */
+ public Integer version() {
+ return this.version;
+ }
+
+ /**
+ * Set indicates the version of the partition key definition.
+ *
+ * @param version the version value to set
+ * @return the ContainerPartitionKey object itself.
+ */
+ public ContainerPartitionKey withVersion(Integer version) {
+ this.version = version;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CreateUpdateOptions.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CreateUpdateOptions.java
new file mode 100644
index 0000000000000..6b967dc767162
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/CreateUpdateOptions.java
@@ -0,0 +1,72 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * CreateUpdateOptions are a list of key-value pairs that describe the
+ * resource. Supported keys are "If-Match", "If-None-Match", "Session-Token"
+ * and "Throughput".
+ */
+public class CreateUpdateOptions {
+ /**
+ * Unmatched properties from the message are deserialized this collection.
+ */
+ @JsonProperty(value = "")
+ private Map additionalProperties;
+
+ /**
+ * Request Units per second. For example, "throughput": "10000".
+ */
+ @JsonProperty(value = "throughput")
+ private String throughput;
+
+ /**
+ * Get unmatched properties from the message are deserialized this collection.
+ *
+ * @return the additionalProperties value
+ */
+ public Map additionalProperties() {
+ return this.additionalProperties;
+ }
+
+ /**
+ * Set unmatched properties from the message are deserialized this collection.
+ *
+ * @param additionalProperties the additionalProperties value to set
+ * @return the CreateUpdateOptions object itself.
+ */
+ public CreateUpdateOptions withAdditionalProperties(Map additionalProperties) {
+ this.additionalProperties = additionalProperties;
+ return this;
+ }
+
+ /**
+ * Get request Units per second. For example, "throughput": "10000".
+ *
+ * @return the throughput value
+ */
+ public String throughput() {
+ return this.throughput;
+ }
+
+ /**
+ * Set request Units per second. For example, "throughput": "10000".
+ *
+ * @param throughput the throughput value to set
+ * @return the CreateUpdateOptions object itself.
+ */
+ public CreateUpdateOptions withThroughput(String throughput) {
+ this.throughput = throughput;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DataType.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DataType.java
new file mode 100644
index 0000000000000..cea4037c86438
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DataType.java
@@ -0,0 +1,53 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DataType.
+ */
+public final class DataType extends ExpandableStringEnum {
+ /** Static value String for DataType. */
+ public static final DataType STRING = fromString("String");
+
+ /** Static value Number for DataType. */
+ public static final DataType NUMBER = fromString("Number");
+
+ /** Static value Point for DataType. */
+ public static final DataType POINT = fromString("Point");
+
+ /** Static value Polygon for DataType. */
+ public static final DataType POLYGON = fromString("Polygon");
+
+ /** Static value LineString for DataType. */
+ public static final DataType LINE_STRING = fromString("LineString");
+
+ /** Static value MultiPolygon for DataType. */
+ public static final DataType MULTI_POLYGON = fromString("MultiPolygon");
+
+ /**
+ * Creates or finds a DataType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DataType
+ */
+ @JsonCreator
+ public static DataType fromString(String name) {
+ return fromString(name, DataType.class);
+ }
+
+ /**
+ * @return known DataType values
+ */
+ public static Collection values() {
+ return values(DataType.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountConnectionString.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountConnectionString.java
new file mode 100644
index 0000000000000..a1059720ceb1b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountConnectionString.java
@@ -0,0 +1,47 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Connection string for the Cosmos DB account.
+ */
+public class DatabaseAccountConnectionString {
+ /**
+ * Value of the connection string.
+ */
+ @JsonProperty(value = "connectionString", access = JsonProperty.Access.WRITE_ONLY)
+ private String connectionString;
+
+ /**
+ * Description of the connection string.
+ */
+ @JsonProperty(value = "description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /**
+ * Get value of the connection string.
+ *
+ * @return the connectionString value
+ */
+ public String connectionString() {
+ return this.connectionString;
+ }
+
+ /**
+ * Get description of the connection string.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountCreateUpdateParameters.java
new file mode 100644
index 0000000000000..97eef12f0ba28
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountCreateUpdateParameters.java
@@ -0,0 +1,403 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to create and update Cosmos DB database accounts.
+ */
+@JsonFlatten
+public class DatabaseAccountCreateUpdateParameters extends ARMResourceProperties {
+ /**
+ * Indicates the type of database account. This can only be set at database
+ * account creation. Possible values include: 'GlobalDocumentDB',
+ * 'MongoDB', 'Parse'.
+ */
+ @JsonProperty(value = "kind")
+ private DatabaseAccountKind kind;
+
+ /**
+ * The consistency policy for the Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.consistencyPolicy")
+ private ConsistencyPolicy consistencyPolicy;
+
+ /**
+ * An array that contains the georeplication locations enabled for the
+ * Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.locations", required = true)
+ private List locations;
+
+ /**
+ * The offer type for the database.
+ */
+ @JsonProperty(value = "properties.databaseAccountOfferType", required = true)
+ private String databaseAccountOfferType;
+
+ /**
+ * Cosmos DB Firewall Support: This value specifies the set of IP addresses
+ * or IP address ranges in CIDR form to be included as the allowed list of
+ * client IPs for a given database account. IP addresses/ranges must be
+ * comma separated and must not contain any spaces.
+ */
+ @JsonProperty(value = "properties.ipRangeFilter")
+ private String ipRangeFilter;
+
+ /**
+ * Flag to indicate whether to enable/disable Virtual Network ACL rules.
+ */
+ @JsonProperty(value = "properties.isVirtualNetworkFilterEnabled")
+ private Boolean isVirtualNetworkFilterEnabled;
+
+ /**
+ * Enables automatic failover of the write region in the rare event that
+ * the region is unavailable due to an outage. Automatic failover will
+ * result in a new write region for the account and is chosen based on the
+ * failover priorities configured for the account.
+ */
+ @JsonProperty(value = "properties.enableAutomaticFailover")
+ private Boolean enableAutomaticFailover;
+
+ /**
+ * List of Cosmos DB capabilities for the account.
+ */
+ @JsonProperty(value = "properties.capabilities")
+ private List capabilities;
+
+ /**
+ * List of Virtual Network ACL rules configured for the Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.virtualNetworkRules")
+ private List virtualNetworkRules;
+
+ /**
+ * Enables the account to write in multiple locations.
+ */
+ @JsonProperty(value = "properties.enableMultipleWriteLocations")
+ private Boolean enableMultipleWriteLocations;
+
+ /**
+ * Enables the cassandra connector on the Cosmos DB C* account.
+ */
+ @JsonProperty(value = "properties.enableCassandraConnector")
+ private Boolean enableCassandraConnector;
+
+ /**
+ * The cassandra connector offer type for the Cosmos DB database C*
+ * account. Possible values include: 'Small'.
+ */
+ @JsonProperty(value = "properties.connectorOffer")
+ private ConnectorOffer connectorOffer;
+
+ /**
+ * Disable write operations on metadata resources (databases, containers,
+ * throughput) via account keys.
+ */
+ @JsonProperty(value = "properties.disableKeyBasedMetadataWriteAccess")
+ private Boolean disableKeyBasedMetadataWriteAccess;
+
+ /**
+ * The URI of the key vault.
+ */
+ @JsonProperty(value = "properties.keyVaultKeyUri")
+ private String keyVaultKeyUri;
+
+ /**
+ * Creates an instance of DatabaseAccountCreateUpdateParameters class.
+ * @param locations an array that contains the georeplication locations enabled for the Cosmos DB account.
+ */
+ public DatabaseAccountCreateUpdateParameters() {
+ databaseAccountOfferType = "Standard";
+ }
+
+ /**
+ * Get indicates the type of database account. This can only be set at database account creation. Possible values include: 'GlobalDocumentDB', 'MongoDB', 'Parse'.
+ *
+ * @return the kind value
+ */
+ public DatabaseAccountKind kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set indicates the type of database account. This can only be set at database account creation. Possible values include: 'GlobalDocumentDB', 'MongoDB', 'Parse'.
+ *
+ * @param kind the kind value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withKind(DatabaseAccountKind kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the consistency policy for the Cosmos DB account.
+ *
+ * @return the consistencyPolicy value
+ */
+ public ConsistencyPolicy consistencyPolicy() {
+ return this.consistencyPolicy;
+ }
+
+ /**
+ * Set the consistency policy for the Cosmos DB account.
+ *
+ * @param consistencyPolicy the consistencyPolicy value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withConsistencyPolicy(ConsistencyPolicy consistencyPolicy) {
+ this.consistencyPolicy = consistencyPolicy;
+ return this;
+ }
+
+ /**
+ * Get an array that contains the georeplication locations enabled for the Cosmos DB account.
+ *
+ * @return the locations value
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Set an array that contains the georeplication locations enabled for the Cosmos DB account.
+ *
+ * @param locations the locations value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withLocations(List locations) {
+ this.locations = locations;
+ return this;
+ }
+
+ /**
+ * Get the offer type for the database.
+ *
+ * @return the databaseAccountOfferType value
+ */
+ public String databaseAccountOfferType() {
+ return this.databaseAccountOfferType;
+ }
+
+ /**
+ * Set the offer type for the database.
+ *
+ * @param databaseAccountOfferType the databaseAccountOfferType value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withDatabaseAccountOfferType(String databaseAccountOfferType) {
+ this.databaseAccountOfferType = databaseAccountOfferType;
+ return this;
+ }
+
+ /**
+ * Get cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.
+ *
+ * @return the ipRangeFilter value
+ */
+ public String ipRangeFilter() {
+ return this.ipRangeFilter;
+ }
+
+ /**
+ * Set cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.
+ *
+ * @param ipRangeFilter the ipRangeFilter value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withIpRangeFilter(String ipRangeFilter) {
+ this.ipRangeFilter = ipRangeFilter;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether to enable/disable Virtual Network ACL rules.
+ *
+ * @return the isVirtualNetworkFilterEnabled value
+ */
+ public Boolean isVirtualNetworkFilterEnabled() {
+ return this.isVirtualNetworkFilterEnabled;
+ }
+
+ /**
+ * Set flag to indicate whether to enable/disable Virtual Network ACL rules.
+ *
+ * @param isVirtualNetworkFilterEnabled the isVirtualNetworkFilterEnabled value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withIsVirtualNetworkFilterEnabled(Boolean isVirtualNetworkFilterEnabled) {
+ this.isVirtualNetworkFilterEnabled = isVirtualNetworkFilterEnabled;
+ return this;
+ }
+
+ /**
+ * Get enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account.
+ *
+ * @return the enableAutomaticFailover value
+ */
+ public Boolean enableAutomaticFailover() {
+ return this.enableAutomaticFailover;
+ }
+
+ /**
+ * Set enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account.
+ *
+ * @param enableAutomaticFailover the enableAutomaticFailover value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withEnableAutomaticFailover(Boolean enableAutomaticFailover) {
+ this.enableAutomaticFailover = enableAutomaticFailover;
+ return this;
+ }
+
+ /**
+ * Get list of Cosmos DB capabilities for the account.
+ *
+ * @return the capabilities value
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /**
+ * Set list of Cosmos DB capabilities for the account.
+ *
+ * @param capabilities the capabilities value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withCapabilities(List capabilities) {
+ this.capabilities = capabilities;
+ return this;
+ }
+
+ /**
+ * Get list of Virtual Network ACL rules configured for the Cosmos DB account.
+ *
+ * @return the virtualNetworkRules value
+ */
+ public List virtualNetworkRules() {
+ return this.virtualNetworkRules;
+ }
+
+ /**
+ * Set list of Virtual Network ACL rules configured for the Cosmos DB account.
+ *
+ * @param virtualNetworkRules the virtualNetworkRules value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withVirtualNetworkRules(List virtualNetworkRules) {
+ this.virtualNetworkRules = virtualNetworkRules;
+ return this;
+ }
+
+ /**
+ * Get enables the account to write in multiple locations.
+ *
+ * @return the enableMultipleWriteLocations value
+ */
+ public Boolean enableMultipleWriteLocations() {
+ return this.enableMultipleWriteLocations;
+ }
+
+ /**
+ * Set enables the account to write in multiple locations.
+ *
+ * @param enableMultipleWriteLocations the enableMultipleWriteLocations value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withEnableMultipleWriteLocations(Boolean enableMultipleWriteLocations) {
+ this.enableMultipleWriteLocations = enableMultipleWriteLocations;
+ return this;
+ }
+
+ /**
+ * Get enables the cassandra connector on the Cosmos DB C* account.
+ *
+ * @return the enableCassandraConnector value
+ */
+ public Boolean enableCassandraConnector() {
+ return this.enableCassandraConnector;
+ }
+
+ /**
+ * Set enables the cassandra connector on the Cosmos DB C* account.
+ *
+ * @param enableCassandraConnector the enableCassandraConnector value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withEnableCassandraConnector(Boolean enableCassandraConnector) {
+ this.enableCassandraConnector = enableCassandraConnector;
+ return this;
+ }
+
+ /**
+ * Get the cassandra connector offer type for the Cosmos DB database C* account. Possible values include: 'Small'.
+ *
+ * @return the connectorOffer value
+ */
+ public ConnectorOffer connectorOffer() {
+ return this.connectorOffer;
+ }
+
+ /**
+ * Set the cassandra connector offer type for the Cosmos DB database C* account. Possible values include: 'Small'.
+ *
+ * @param connectorOffer the connectorOffer value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withConnectorOffer(ConnectorOffer connectorOffer) {
+ this.connectorOffer = connectorOffer;
+ return this;
+ }
+
+ /**
+ * Get disable write operations on metadata resources (databases, containers, throughput) via account keys.
+ *
+ * @return the disableKeyBasedMetadataWriteAccess value
+ */
+ public Boolean disableKeyBasedMetadataWriteAccess() {
+ return this.disableKeyBasedMetadataWriteAccess;
+ }
+
+ /**
+ * Set disable write operations on metadata resources (databases, containers, throughput) via account keys.
+ *
+ * @param disableKeyBasedMetadataWriteAccess the disableKeyBasedMetadataWriteAccess value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withDisableKeyBasedMetadataWriteAccess(Boolean disableKeyBasedMetadataWriteAccess) {
+ this.disableKeyBasedMetadataWriteAccess = disableKeyBasedMetadataWriteAccess;
+ return this;
+ }
+
+ /**
+ * Get the URI of the key vault.
+ *
+ * @return the keyVaultKeyUri value
+ */
+ public String keyVaultKeyUri() {
+ return this.keyVaultKeyUri;
+ }
+
+ /**
+ * Set the URI of the key vault.
+ *
+ * @param keyVaultKeyUri the keyVaultKeyUri value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withKeyVaultKeyUri(String keyVaultKeyUri) {
+ this.keyVaultKeyUri = keyVaultKeyUri;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountGetResults.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountGetResults.java
new file mode 100644
index 0000000000000..378f4d433a102
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountGetResults.java
@@ -0,0 +1,476 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.List;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.DatabaseAccountGetResultsInner;
+
+/**
+ * Type representing DatabaseAccountGetResults.
+ */
+public interface DatabaseAccountGetResults extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the capabilities value.
+ */
+ List capabilities();
+
+ /**
+ * @return the connectorOffer value.
+ */
+ ConnectorOffer connectorOffer();
+
+ /**
+ * @return the consistencyPolicy value.
+ */
+ ConsistencyPolicy consistencyPolicy();
+
+ /**
+ * @return the databaseAccountOfferType value.
+ */
+ DatabaseAccountOfferType databaseAccountOfferType();
+
+ /**
+ * @return the disableKeyBasedMetadataWriteAccess value.
+ */
+ Boolean disableKeyBasedMetadataWriteAccess();
+
+ /**
+ * @return the documentEndpoint value.
+ */
+ String documentEndpoint();
+
+ /**
+ * @return the enableAutomaticFailover value.
+ */
+ Boolean enableAutomaticFailover();
+
+ /**
+ * @return the enableCassandraConnector value.
+ */
+ Boolean enableCassandraConnector();
+
+ /**
+ * @return the enableMultipleWriteLocations value.
+ */
+ Boolean enableMultipleWriteLocations();
+
+ /**
+ * @return the failoverPolicies value.
+ */
+ List failoverPolicies();
+
+ /**
+ * @return the ipRangeFilter value.
+ */
+ String ipRangeFilter();
+
+ /**
+ * @return the isVirtualNetworkFilterEnabled value.
+ */
+ Boolean isVirtualNetworkFilterEnabled();
+
+ /**
+ * @return the keyVaultKeyUri value.
+ */
+ String keyVaultKeyUri();
+
+ /**
+ * @return the kind value.
+ */
+ DatabaseAccountKind kind();
+
+ /**
+ * @return the locations value.
+ */
+ List locations();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the readLocations value.
+ */
+ List readLocations();
+
+ /**
+ * @return the virtualNetworkRules value.
+ */
+ List virtualNetworkRules();
+
+ /**
+ * @return the writeLocations value.
+ */
+ List writeLocations();
+
+ /**
+ * The entirety of the DatabaseAccountGetResults definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithDatabaseAccountOfferType, DefinitionStages.WithLocations, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DatabaseAccountGetResults definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DatabaseAccountGetResults definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the DatabaseAccountGetResults definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify DatabaseAccountOfferType.
+ */
+ interface WithDatabaseAccountOfferType {
+ /**
+ * Specifies databaseAccountOfferType.
+ * @param databaseAccountOfferType The offer type for the database
+ * @return the next definition stage
+*/
+ WithLocations withDatabaseAccountOfferType(String databaseAccountOfferType);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify Locations.
+ */
+ interface WithLocations {
+ /**
+ * Specifies locations.
+ * @param locations An array that contains the georeplication locations enabled for the Cosmos DB account
+ * @return the next definition stage
+*/
+ WithCreate withLocations(List locations);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify Capabilities.
+ */
+ interface WithCapabilities {
+ /**
+ * Specifies capabilities.
+ * @param capabilities List of Cosmos DB capabilities for the account
+ * @return the next definition stage
+ */
+ WithCreate withCapabilities(List capabilities);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify ConnectorOffer.
+ */
+ interface WithConnectorOffer {
+ /**
+ * Specifies connectorOffer.
+ * @param connectorOffer The cassandra connector offer type for the Cosmos DB database C* account. Possible values include: 'Small'
+ * @return the next definition stage
+ */
+ WithCreate withConnectorOffer(ConnectorOffer connectorOffer);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify ConsistencyPolicy.
+ */
+ interface WithConsistencyPolicy {
+ /**
+ * Specifies consistencyPolicy.
+ * @param consistencyPolicy The consistency policy for the Cosmos DB account
+ * @return the next definition stage
+ */
+ WithCreate withConsistencyPolicy(ConsistencyPolicy consistencyPolicy);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify DisableKeyBasedMetadataWriteAccess.
+ */
+ interface WithDisableKeyBasedMetadataWriteAccess {
+ /**
+ * Specifies disableKeyBasedMetadataWriteAccess.
+ * @param disableKeyBasedMetadataWriteAccess Disable write operations on metadata resources (databases, containers, throughput) via account keys
+ * @return the next definition stage
+ */
+ WithCreate withDisableKeyBasedMetadataWriteAccess(Boolean disableKeyBasedMetadataWriteAccess);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify EnableAutomaticFailover.
+ */
+ interface WithEnableAutomaticFailover {
+ /**
+ * Specifies enableAutomaticFailover.
+ * @param enableAutomaticFailover Enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account
+ * @return the next definition stage
+ */
+ WithCreate withEnableAutomaticFailover(Boolean enableAutomaticFailover);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify EnableCassandraConnector.
+ */
+ interface WithEnableCassandraConnector {
+ /**
+ * Specifies enableCassandraConnector.
+ * @param enableCassandraConnector Enables the cassandra connector on the Cosmos DB C* account
+ * @return the next definition stage
+ */
+ WithCreate withEnableCassandraConnector(Boolean enableCassandraConnector);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify EnableMultipleWriteLocations.
+ */
+ interface WithEnableMultipleWriteLocations {
+ /**
+ * Specifies enableMultipleWriteLocations.
+ * @param enableMultipleWriteLocations Enables the account to write in multiple locations
+ * @return the next definition stage
+ */
+ WithCreate withEnableMultipleWriteLocations(Boolean enableMultipleWriteLocations);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify IpRangeFilter.
+ */
+ interface WithIpRangeFilter {
+ /**
+ * Specifies ipRangeFilter.
+ * @param ipRangeFilter Cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces
+ * @return the next definition stage
+ */
+ WithCreate withIpRangeFilter(String ipRangeFilter);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify IsVirtualNetworkFilterEnabled.
+ */
+ interface WithIsVirtualNetworkFilterEnabled {
+ /**
+ * Specifies isVirtualNetworkFilterEnabled.
+ * @param isVirtualNetworkFilterEnabled Flag to indicate whether to enable/disable Virtual Network ACL rules
+ * @return the next definition stage
+ */
+ WithCreate withIsVirtualNetworkFilterEnabled(Boolean isVirtualNetworkFilterEnabled);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify KeyVaultKeyUri.
+ */
+ interface WithKeyVaultKeyUri {
+ /**
+ * Specifies keyVaultKeyUri.
+ * @param keyVaultKeyUri The URI of the key vault
+ * @return the next definition stage
+ */
+ WithCreate withKeyVaultKeyUri(String keyVaultKeyUri);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Indicates the type of database account. This can only be set at database account creation. Possible values include: 'GlobalDocumentDB', 'MongoDB', 'Parse'
+ * @return the next definition stage
+ */
+ WithCreate withKind(DatabaseAccountKind kind);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify VirtualNetworkRules.
+ */
+ interface WithVirtualNetworkRules {
+ /**
+ * Specifies virtualNetworkRules.
+ * @param virtualNetworkRules List of Virtual Network ACL rules configured for the Cosmos DB account
+ * @return the next definition stage
+ */
+ WithCreate withVirtualNetworkRules(List virtualNetworkRules);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithCapabilities, DefinitionStages.WithConnectorOffer, DefinitionStages.WithConsistencyPolicy, DefinitionStages.WithDisableKeyBasedMetadataWriteAccess, DefinitionStages.WithEnableAutomaticFailover, DefinitionStages.WithEnableCassandraConnector, DefinitionStages.WithEnableMultipleWriteLocations, DefinitionStages.WithIpRangeFilter, DefinitionStages.WithIsVirtualNetworkFilterEnabled, DefinitionStages.WithKeyVaultKeyUri, DefinitionStages.WithKind, DefinitionStages.WithVirtualNetworkRules {
+ }
+ }
+ /**
+ * The template for a DatabaseAccountGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithCapabilities, UpdateStages.WithConnectorOffer, UpdateStages.WithConsistencyPolicy, UpdateStages.WithDisableKeyBasedMetadataWriteAccess, UpdateStages.WithEnableAutomaticFailover, UpdateStages.WithEnableCassandraConnector, UpdateStages.WithEnableMultipleWriteLocations, UpdateStages.WithIpRangeFilter, UpdateStages.WithIsVirtualNetworkFilterEnabled, UpdateStages.WithKeyVaultKeyUri, UpdateStages.WithLocations, UpdateStages.WithVirtualNetworkRules {
+ }
+
+ /**
+ * Grouping of DatabaseAccountGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify Capabilities.
+ */
+ interface WithCapabilities {
+ /**
+ * Specifies capabilities.
+ * @param capabilities List of Cosmos DB capabilities for the account
+ * @return the next update stage
+ */
+ Update withCapabilities(List capabilities);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify ConnectorOffer.
+ */
+ interface WithConnectorOffer {
+ /**
+ * Specifies connectorOffer.
+ * @param connectorOffer The cassandra connector offer type for the Cosmos DB database C* account. Possible values include: 'Small'
+ * @return the next update stage
+ */
+ Update withConnectorOffer(ConnectorOffer connectorOffer);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify ConsistencyPolicy.
+ */
+ interface WithConsistencyPolicy {
+ /**
+ * Specifies consistencyPolicy.
+ * @param consistencyPolicy The consistency policy for the Cosmos DB account
+ * @return the next update stage
+ */
+ Update withConsistencyPolicy(ConsistencyPolicy consistencyPolicy);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify DisableKeyBasedMetadataWriteAccess.
+ */
+ interface WithDisableKeyBasedMetadataWriteAccess {
+ /**
+ * Specifies disableKeyBasedMetadataWriteAccess.
+ * @param disableKeyBasedMetadataWriteAccess Disable write operations on metadata resources (databases, containers, throughput) via account keys
+ * @return the next update stage
+ */
+ Update withDisableKeyBasedMetadataWriteAccess(Boolean disableKeyBasedMetadataWriteAccess);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify EnableAutomaticFailover.
+ */
+ interface WithEnableAutomaticFailover {
+ /**
+ * Specifies enableAutomaticFailover.
+ * @param enableAutomaticFailover Enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account
+ * @return the next update stage
+ */
+ Update withEnableAutomaticFailover(Boolean enableAutomaticFailover);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify EnableCassandraConnector.
+ */
+ interface WithEnableCassandraConnector {
+ /**
+ * Specifies enableCassandraConnector.
+ * @param enableCassandraConnector Enables the cassandra connector on the Cosmos DB C* account
+ * @return the next update stage
+ */
+ Update withEnableCassandraConnector(Boolean enableCassandraConnector);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify EnableMultipleWriteLocations.
+ */
+ interface WithEnableMultipleWriteLocations {
+ /**
+ * Specifies enableMultipleWriteLocations.
+ * @param enableMultipleWriteLocations Enables the account to write in multiple locations
+ * @return the next update stage
+ */
+ Update withEnableMultipleWriteLocations(Boolean enableMultipleWriteLocations);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify IpRangeFilter.
+ */
+ interface WithIpRangeFilter {
+ /**
+ * Specifies ipRangeFilter.
+ * @param ipRangeFilter Cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces
+ * @return the next update stage
+ */
+ Update withIpRangeFilter(String ipRangeFilter);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify IsVirtualNetworkFilterEnabled.
+ */
+ interface WithIsVirtualNetworkFilterEnabled {
+ /**
+ * Specifies isVirtualNetworkFilterEnabled.
+ * @param isVirtualNetworkFilterEnabled Flag to indicate whether to enable/disable Virtual Network ACL rules
+ * @return the next update stage
+ */
+ Update withIsVirtualNetworkFilterEnabled(Boolean isVirtualNetworkFilterEnabled);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify KeyVaultKeyUri.
+ */
+ interface WithKeyVaultKeyUri {
+ /**
+ * Specifies keyVaultKeyUri.
+ * @param keyVaultKeyUri The URI of the key vault
+ * @return the next update stage
+ */
+ Update withKeyVaultKeyUri(String keyVaultKeyUri);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify Locations.
+ */
+ interface WithLocations {
+ /**
+ * Specifies locations.
+ * @param locations An array that contains the georeplication locations enabled for the Cosmos DB account
+ * @return the next update stage
+ */
+ Update withLocations(List locations);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify VirtualNetworkRules.
+ */
+ interface WithVirtualNetworkRules {
+ /**
+ * Specifies virtualNetworkRules.
+ * @param virtualNetworkRules List of Virtual Network ACL rules configured for the Cosmos DB account
+ * @return the next update stage
+ */
+ Update withVirtualNetworkRules(List virtualNetworkRules);
+ }
+
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountKind.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountKind.java
new file mode 100644
index 0000000000000..9376b4db5519a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountKind.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DatabaseAccountKind.
+ */
+public final class DatabaseAccountKind extends ExpandableStringEnum {
+ /** Static value GlobalDocumentDB for DatabaseAccountKind. */
+ public static final DatabaseAccountKind GLOBAL_DOCUMENT_DB = fromString("GlobalDocumentDB");
+
+ /** Static value MongoDB for DatabaseAccountKind. */
+ public static final DatabaseAccountKind MONGO_DB = fromString("MongoDB");
+
+ /** Static value Parse for DatabaseAccountKind. */
+ public static final DatabaseAccountKind PARSE = fromString("Parse");
+
+ /**
+ * Creates or finds a DatabaseAccountKind from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DatabaseAccountKind
+ */
+ @JsonCreator
+ public static DatabaseAccountKind fromString(String name) {
+ return fromString(name, DatabaseAccountKind.class);
+ }
+
+ /**
+ * @return known DatabaseAccountKind values
+ */
+ public static Collection values() {
+ return values(DatabaseAccountKind.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListConnectionStringsResult.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListConnectionStringsResult.java
new file mode 100644
index 0000000000000..38c3ecc922f36
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListConnectionStringsResult.java
@@ -0,0 +1,26 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.DatabaseAccountListConnectionStringsResultInner;
+import java.util.List;
+
+/**
+ * Type representing DatabaseAccountListConnectionStringsResult.
+ */
+public interface DatabaseAccountListConnectionStringsResult extends HasInner, HasManager {
+ /**
+ * @return the connectionStrings value.
+ */
+ List connectionStrings();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListKeysResult.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListKeysResult.java
new file mode 100644
index 0000000000000..ec88c5bc43471
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListKeysResult.java
@@ -0,0 +1,40 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.DatabaseAccountListKeysResultInner;
+
+/**
+ * Type representing DatabaseAccountListKeysResult.
+ */
+public interface DatabaseAccountListKeysResult extends HasInner, HasManager {
+ /**
+ * @return the primaryMasterKey value.
+ */
+ String primaryMasterKey();
+
+ /**
+ * @return the primaryReadonlyMasterKey value.
+ */
+ String primaryReadonlyMasterKey();
+
+ /**
+ * @return the secondaryMasterKey value.
+ */
+ String secondaryMasterKey();
+
+ /**
+ * @return the secondaryReadonlyMasterKey value.
+ */
+ String secondaryReadonlyMasterKey();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListReadOnlyKeysResult.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListReadOnlyKeysResult.java
new file mode 100644
index 0000000000000..be27de369817f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountListReadOnlyKeysResult.java
@@ -0,0 +1,30 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.DatabaseAccountListReadOnlyKeysResultInner;
+
+/**
+ * Type representing DatabaseAccountListReadOnlyKeysResult.
+ */
+public interface DatabaseAccountListReadOnlyKeysResult extends HasInner, HasManager {
+ /**
+ * @return the primaryReadonlyMasterKey value.
+ */
+ String primaryReadonlyMasterKey();
+
+ /**
+ * @return the secondaryReadonlyMasterKey value.
+ */
+ String secondaryReadonlyMasterKey();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountMetric.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountMetric.java
new file mode 100644
index 0000000000000..da0e33d14ee00
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountMetric.java
@@ -0,0 +1,52 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing DatabaseAccountMetric.
+ */
+public interface DatabaseAccountMetric extends HasInner, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the metricValues value.
+ */
+ List metricValues();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the timeGrain value.
+ */
+ String timeGrain();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountMetricDefinition.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountMetricDefinition.java
new file mode 100644
index 0000000000000..f845fe52891ed
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountMetricDefinition.java
@@ -0,0 +1,46 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.List;
+
+/**
+ * Type representing DatabaseAccountMetricDefinition.
+ */
+public interface DatabaseAccountMetricDefinition extends HasInner, HasManager {
+ /**
+ * @return the metricAvailabilities value.
+ */
+ List metricAvailabilities();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the primaryAggregationType value.
+ */
+ PrimaryAggregationType primaryAggregationType();
+
+ /**
+ * @return the resourceUri value.
+ */
+ String resourceUri();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountOfferType.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountOfferType.java
new file mode 100644
index 0000000000000..f4b702350c33a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountOfferType.java
@@ -0,0 +1,50 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DatabaseAccountOfferType.
+ */
+public enum DatabaseAccountOfferType {
+ /** Enum value Standard. */
+ STANDARD("Standard");
+
+ /** The actual serialized value for a DatabaseAccountOfferType instance. */
+ private String value;
+
+ DatabaseAccountOfferType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DatabaseAccountOfferType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DatabaseAccountOfferType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DatabaseAccountOfferType fromString(String value) {
+ DatabaseAccountOfferType[] items = DatabaseAccountOfferType.values();
+ for (DatabaseAccountOfferType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountRegenerateKeyParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountRegenerateKeyParameters.java
new file mode 100644
index 0000000000000..8b79b583d1849
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountRegenerateKeyParameters.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Parameters to regenerate the keys within the database account.
+ */
+public class DatabaseAccountRegenerateKeyParameters {
+ /**
+ * The access key to regenerate. Possible values include: 'primary',
+ * 'secondary', 'primaryReadonly', 'secondaryReadonly'.
+ */
+ @JsonProperty(value = "keyKind", required = true)
+ private KeyKind keyKind;
+
+ /**
+ * Get the access key to regenerate. Possible values include: 'primary', 'secondary', 'primaryReadonly', 'secondaryReadonly'.
+ *
+ * @return the keyKind value
+ */
+ public KeyKind keyKind() {
+ return this.keyKind;
+ }
+
+ /**
+ * Set the access key to regenerate. Possible values include: 'primary', 'secondary', 'primaryReadonly', 'secondaryReadonly'.
+ *
+ * @param keyKind the keyKind value to set
+ * @return the DatabaseAccountRegenerateKeyParameters object itself.
+ */
+ public DatabaseAccountRegenerateKeyParameters withKeyKind(KeyKind keyKind) {
+ this.keyKind = keyKind;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountRegions.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountRegions.java
new file mode 100644
index 0000000000000..3d2e22b0f1228
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountRegions.java
@@ -0,0 +1,31 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.DatabaseAccountRegionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DatabaseAccountRegions.
+ */
+public interface DatabaseAccountRegions extends HasInner {
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account and region.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String region, String filter);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountUpdateParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountUpdateParameters.java
new file mode 100644
index 0000000000000..da2979040ff05
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountUpdateParameters.java
@@ -0,0 +1,394 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters for patching Azure Cosmos DB database account properties.
+ */
+@JsonFlatten
+public class DatabaseAccountUpdateParameters {
+ /**
+ * The tags property.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The location of the resource group to which the resource belongs.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * The consistency policy for the Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.consistencyPolicy")
+ private ConsistencyPolicy consistencyPolicy;
+
+ /**
+ * An array that contains the georeplication locations enabled for the
+ * Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.locations")
+ private List locations;
+
+ /**
+ * Cosmos DB Firewall Support: This value specifies the set of IP addresses
+ * or IP address ranges in CIDR form to be included as the allowed list of
+ * client IPs for a given database account. IP addresses/ranges must be
+ * comma separated and must not contain any spaces.
+ */
+ @JsonProperty(value = "properties.ipRangeFilter")
+ private String ipRangeFilter;
+
+ /**
+ * Flag to indicate whether to enable/disable Virtual Network ACL rules.
+ */
+ @JsonProperty(value = "properties.isVirtualNetworkFilterEnabled")
+ private Boolean isVirtualNetworkFilterEnabled;
+
+ /**
+ * Enables automatic failover of the write region in the rare event that
+ * the region is unavailable due to an outage. Automatic failover will
+ * result in a new write region for the account and is chosen based on the
+ * failover priorities configured for the account.
+ */
+ @JsonProperty(value = "properties.enableAutomaticFailover")
+ private Boolean enableAutomaticFailover;
+
+ /**
+ * List of Cosmos DB capabilities for the account.
+ */
+ @JsonProperty(value = "properties.capabilities")
+ private List capabilities;
+
+ /**
+ * List of Virtual Network ACL rules configured for the Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.virtualNetworkRules")
+ private List virtualNetworkRules;
+
+ /**
+ * Enables the account to write in multiple locations.
+ */
+ @JsonProperty(value = "properties.enableMultipleWriteLocations")
+ private Boolean enableMultipleWriteLocations;
+
+ /**
+ * Enables the cassandra connector on the Cosmos DB C* account.
+ */
+ @JsonProperty(value = "properties.enableCassandraConnector")
+ private Boolean enableCassandraConnector;
+
+ /**
+ * The cassandra connector offer type for the Cosmos DB database C*
+ * account. Possible values include: 'Small'.
+ */
+ @JsonProperty(value = "properties.connectorOffer")
+ private ConnectorOffer connectorOffer;
+
+ /**
+ * Disable write operations on metadata resources (databases, containers,
+ * throughput) via account keys.
+ */
+ @JsonProperty(value = "properties.disableKeyBasedMetadataWriteAccess")
+ private Boolean disableKeyBasedMetadataWriteAccess;
+
+ /**
+ * The URI of the key vault.
+ */
+ @JsonProperty(value = "properties.keyVaultKeyUri")
+ private String keyVaultKeyUri;
+
+ /**
+ * Get the tags value.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags value.
+ *
+ * @param tags the tags value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the location of the resource group to which the resource belongs.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location of the resource group to which the resource belongs.
+ *
+ * @param location the location value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the consistency policy for the Cosmos DB account.
+ *
+ * @return the consistencyPolicy value
+ */
+ public ConsistencyPolicy consistencyPolicy() {
+ return this.consistencyPolicy;
+ }
+
+ /**
+ * Set the consistency policy for the Cosmos DB account.
+ *
+ * @param consistencyPolicy the consistencyPolicy value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withConsistencyPolicy(ConsistencyPolicy consistencyPolicy) {
+ this.consistencyPolicy = consistencyPolicy;
+ return this;
+ }
+
+ /**
+ * Get an array that contains the georeplication locations enabled for the Cosmos DB account.
+ *
+ * @return the locations value
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Set an array that contains the georeplication locations enabled for the Cosmos DB account.
+ *
+ * @param locations the locations value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withLocations(List locations) {
+ this.locations = locations;
+ return this;
+ }
+
+ /**
+ * Get cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.
+ *
+ * @return the ipRangeFilter value
+ */
+ public String ipRangeFilter() {
+ return this.ipRangeFilter;
+ }
+
+ /**
+ * Set cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.
+ *
+ * @param ipRangeFilter the ipRangeFilter value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withIpRangeFilter(String ipRangeFilter) {
+ this.ipRangeFilter = ipRangeFilter;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether to enable/disable Virtual Network ACL rules.
+ *
+ * @return the isVirtualNetworkFilterEnabled value
+ */
+ public Boolean isVirtualNetworkFilterEnabled() {
+ return this.isVirtualNetworkFilterEnabled;
+ }
+
+ /**
+ * Set flag to indicate whether to enable/disable Virtual Network ACL rules.
+ *
+ * @param isVirtualNetworkFilterEnabled the isVirtualNetworkFilterEnabled value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withIsVirtualNetworkFilterEnabled(Boolean isVirtualNetworkFilterEnabled) {
+ this.isVirtualNetworkFilterEnabled = isVirtualNetworkFilterEnabled;
+ return this;
+ }
+
+ /**
+ * Get enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account.
+ *
+ * @return the enableAutomaticFailover value
+ */
+ public Boolean enableAutomaticFailover() {
+ return this.enableAutomaticFailover;
+ }
+
+ /**
+ * Set enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account.
+ *
+ * @param enableAutomaticFailover the enableAutomaticFailover value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withEnableAutomaticFailover(Boolean enableAutomaticFailover) {
+ this.enableAutomaticFailover = enableAutomaticFailover;
+ return this;
+ }
+
+ /**
+ * Get list of Cosmos DB capabilities for the account.
+ *
+ * @return the capabilities value
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /**
+ * Set list of Cosmos DB capabilities for the account.
+ *
+ * @param capabilities the capabilities value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withCapabilities(List capabilities) {
+ this.capabilities = capabilities;
+ return this;
+ }
+
+ /**
+ * Get list of Virtual Network ACL rules configured for the Cosmos DB account.
+ *
+ * @return the virtualNetworkRules value
+ */
+ public List virtualNetworkRules() {
+ return this.virtualNetworkRules;
+ }
+
+ /**
+ * Set list of Virtual Network ACL rules configured for the Cosmos DB account.
+ *
+ * @param virtualNetworkRules the virtualNetworkRules value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withVirtualNetworkRules(List virtualNetworkRules) {
+ this.virtualNetworkRules = virtualNetworkRules;
+ return this;
+ }
+
+ /**
+ * Get enables the account to write in multiple locations.
+ *
+ * @return the enableMultipleWriteLocations value
+ */
+ public Boolean enableMultipleWriteLocations() {
+ return this.enableMultipleWriteLocations;
+ }
+
+ /**
+ * Set enables the account to write in multiple locations.
+ *
+ * @param enableMultipleWriteLocations the enableMultipleWriteLocations value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withEnableMultipleWriteLocations(Boolean enableMultipleWriteLocations) {
+ this.enableMultipleWriteLocations = enableMultipleWriteLocations;
+ return this;
+ }
+
+ /**
+ * Get enables the cassandra connector on the Cosmos DB C* account.
+ *
+ * @return the enableCassandraConnector value
+ */
+ public Boolean enableCassandraConnector() {
+ return this.enableCassandraConnector;
+ }
+
+ /**
+ * Set enables the cassandra connector on the Cosmos DB C* account.
+ *
+ * @param enableCassandraConnector the enableCassandraConnector value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withEnableCassandraConnector(Boolean enableCassandraConnector) {
+ this.enableCassandraConnector = enableCassandraConnector;
+ return this;
+ }
+
+ /**
+ * Get the cassandra connector offer type for the Cosmos DB database C* account. Possible values include: 'Small'.
+ *
+ * @return the connectorOffer value
+ */
+ public ConnectorOffer connectorOffer() {
+ return this.connectorOffer;
+ }
+
+ /**
+ * Set the cassandra connector offer type for the Cosmos DB database C* account. Possible values include: 'Small'.
+ *
+ * @param connectorOffer the connectorOffer value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withConnectorOffer(ConnectorOffer connectorOffer) {
+ this.connectorOffer = connectorOffer;
+ return this;
+ }
+
+ /**
+ * Get disable write operations on metadata resources (databases, containers, throughput) via account keys.
+ *
+ * @return the disableKeyBasedMetadataWriteAccess value
+ */
+ public Boolean disableKeyBasedMetadataWriteAccess() {
+ return this.disableKeyBasedMetadataWriteAccess;
+ }
+
+ /**
+ * Set disable write operations on metadata resources (databases, containers, throughput) via account keys.
+ *
+ * @param disableKeyBasedMetadataWriteAccess the disableKeyBasedMetadataWriteAccess value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withDisableKeyBasedMetadataWriteAccess(Boolean disableKeyBasedMetadataWriteAccess) {
+ this.disableKeyBasedMetadataWriteAccess = disableKeyBasedMetadataWriteAccess;
+ return this;
+ }
+
+ /**
+ * Get the URI of the key vault.
+ *
+ * @return the keyVaultKeyUri value
+ */
+ public String keyVaultKeyUri() {
+ return this.keyVaultKeyUri;
+ }
+
+ /**
+ * Set the URI of the key vault.
+ *
+ * @param keyVaultKeyUri the keyVaultKeyUri value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withKeyVaultKeyUri(String keyVaultKeyUri) {
+ this.keyVaultKeyUri = keyVaultKeyUri;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountUsage.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountUsage.java
new file mode 100644
index 0000000000000..4da1d0ddc317a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccountUsage.java
@@ -0,0 +1,45 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+
+/**
+ * Type representing DatabaseAccountUsage.
+ */
+public interface DatabaseAccountUsage extends HasInner, HasManager {
+ /**
+ * @return the currentValue value.
+ */
+ Long currentValue();
+
+ /**
+ * @return the limit value.
+ */
+ Long limit();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the quotaPeriod value.
+ */
+ String quotaPeriod();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccounts.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccounts.java
new file mode 100644
index 0000000000000..f7e21454e65dc
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabaseAccounts.java
@@ -0,0 +1,154 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import java.util.List;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.DatabaseAccountsInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.DatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.DatabaseAccountUsage;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.DatabaseAccountMetricDefinition;
+
+/**
+ * Type representing DatabaseAccounts.
+ */
+public interface DatabaseAccounts extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Changes the failover priority for the Azure Cosmos DB database account. A failover priority of 0 indicates a write region. The maximum value for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the regions in which the database account exists.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param failoverPolicies List of failover policies.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable failoverPriorityChangeAsync(String resourceGroupName, String accountName, List failoverPolicies);
+
+ /**
+ * Lists the access keys for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listKeysAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Lists the connection strings for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listConnectionStringsAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Offline the specified region for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable offlineRegionAsync(String resourceGroupName, String accountName, String region);
+
+ /**
+ * Online the specified region for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable onlineRegionAsync(String resourceGroupName, String accountName, String region);
+
+ /**
+ * Lists the read-only access keys for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listReadOnlyKeysAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Regenerates an access key for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyKind The access key to regenerate. Possible values include: 'primary', 'secondary', 'primaryReadonly', 'secondaryReadonly'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable regenerateKeyAsync(String resourceGroupName, String accountName, KeyKind keyKind);
+
+ /**
+ * Lists the read-only access keys for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getReadOnlyKeysAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Checks that the Azure Cosmos DB account name already exists. A valid account name may contain only lowercase letters, numbers, and the '-' character, and must be between 3 and 50 characters.
+ *
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameExistsAsync(String accountName);
+
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String filter);
+
+ /**
+ * Retrieves the usages (most recent data) for the given database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Retrieves metric definitions for the given database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricDefinitionsAsync(String resourceGroupName, String accountName);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Databases.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Databases.java
new file mode 100644
index 0000000000000..9330f88cca655
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Databases.java
@@ -0,0 +1,54 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.DatabasisDatabaseAccountMetricDefinition;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.DatabasisDatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.DatabasisDatabaseAccountUsage;
+
+/**
+ * Type representing Databases.
+ */
+public interface Databases {
+ /**
+ * Retrieves metric definitions for the given database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricDefinitionsAsync(String resourceGroupName, String accountName, String databaseRid);
+
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account and database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String databaseRid, String filter);
+
+ /**
+ * Retrieves the usages (most recent data) for the given database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String accountName, String databaseRid);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountMetric.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountMetric.java
new file mode 100644
index 0000000000000..7699931604406
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountMetric.java
@@ -0,0 +1,52 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing DatabasisDatabaseAccountMetric.
+ */
+public interface DatabasisDatabaseAccountMetric extends HasInner, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the metricValues value.
+ */
+ List metricValues();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the timeGrain value.
+ */
+ String timeGrain();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountMetricDefinition.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountMetricDefinition.java
new file mode 100644
index 0000000000000..5a2726ec28671
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountMetricDefinition.java
@@ -0,0 +1,46 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.List;
+
+/**
+ * Type representing DatabasisDatabaseAccountMetricDefinition.
+ */
+public interface DatabasisDatabaseAccountMetricDefinition extends HasInner, HasManager {
+ /**
+ * @return the metricAvailabilities value.
+ */
+ List metricAvailabilities();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the primaryAggregationType value.
+ */
+ PrimaryAggregationType primaryAggregationType();
+
+ /**
+ * @return the resourceUri value.
+ */
+ String resourceUri();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountUsage.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountUsage.java
new file mode 100644
index 0000000000000..7e38067822662
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DatabasisDatabaseAccountUsage.java
@@ -0,0 +1,45 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+
+/**
+ * Type representing DatabasisDatabaseAccountUsage.
+ */
+public interface DatabasisDatabaseAccountUsage extends HasInner, HasManager {
+ /**
+ * @return the currentValue value.
+ */
+ Long currentValue();
+
+ /**
+ * @return the limit value.
+ */
+ Long limit();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the quotaPeriod value.
+ */
+ String quotaPeriod();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DefaultConsistencyLevel.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DefaultConsistencyLevel.java
new file mode 100644
index 0000000000000..815c47baf8000
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/DefaultConsistencyLevel.java
@@ -0,0 +1,62 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DefaultConsistencyLevel.
+ */
+public enum DefaultConsistencyLevel {
+ /** Enum value Eventual. */
+ EVENTUAL("Eventual"),
+
+ /** Enum value Session. */
+ SESSION("Session"),
+
+ /** Enum value BoundedStaleness. */
+ BOUNDED_STALENESS("BoundedStaleness"),
+
+ /** Enum value Strong. */
+ STRONG("Strong"),
+
+ /** Enum value ConsistentPrefix. */
+ CONSISTENT_PREFIX("ConsistentPrefix");
+
+ /** The actual serialized value for a DefaultConsistencyLevel instance. */
+ private String value;
+
+ DefaultConsistencyLevel(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DefaultConsistencyLevel instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DefaultConsistencyLevel object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DefaultConsistencyLevel fromString(String value) {
+ DefaultConsistencyLevel[] items = DefaultConsistencyLevel.values();
+ for (DefaultConsistencyLevel item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ErrorResponse.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ErrorResponse.java
new file mode 100644
index 0000000000000..f07417df240d0
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ErrorResponse.java
@@ -0,0 +1,69 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error Response.
+ */
+public class ErrorResponse {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "code")
+ private String code;
+
+ /**
+ * Error message indicating why the operation failed.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Get error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Set error code.
+ *
+ * @param code the code value to set
+ * @return the ErrorResponse object itself.
+ */
+ public ErrorResponse withCode(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get error message indicating why the operation failed.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set error message indicating why the operation failed.
+ *
+ * @param message the message value to set
+ * @return the ErrorResponse object itself.
+ */
+ public ErrorResponse withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ErrorResponseException.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ErrorResponseException.java
new file mode 100644
index 0000000000000..08b328d3f9ee8
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ErrorResponseException.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ErrorResponse information.
+ */
+public class ErrorResponseException extends RestException {
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ErrorResponseException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ * @param body the deserialized response body
+ */
+ public ErrorResponseException(final String message, final Response response, final ErrorResponse body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ErrorResponse body() {
+ return (ErrorResponse) super.body();
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ExcludedPath.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ExcludedPath.java
new file mode 100644
index 0000000000000..033a6d474b167
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ExcludedPath.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ExcludedPath model.
+ */
+public class ExcludedPath {
+ /**
+ * The path for which the indexing behavior applies to. Index paths
+ * typically start with root and end with wildcard (/path/*).
+ */
+ @JsonProperty(value = "path")
+ private String path;
+
+ /**
+ * Get the path for which the indexing behavior applies to. Index paths typically start with root and end with wildcard (/path/*).
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set the path for which the indexing behavior applies to. Index paths typically start with root and end with wildcard (/path/*).
+ *
+ * @param path the path value to set
+ * @return the ExcludedPath object itself.
+ */
+ public ExcludedPath withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ExtendedResourceProperties.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ExtendedResourceProperties.java
new file mode 100644
index 0000000000000..285982fcfe037
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/ExtendedResourceProperties.java
@@ -0,0 +1,65 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The system generated resource properties associated with SQL databases, SQL
+ * containers, Gremlin databases and Gremlin graphs.
+ */
+public class ExtendedResourceProperties {
+ /**
+ * A system generated property. A unique identifier.
+ */
+ @JsonProperty(value = "_rid", access = JsonProperty.Access.WRITE_ONLY)
+ private String _rid;
+
+ /**
+ * A system generated property that denotes the last updated timestamp of
+ * the resource.
+ */
+ @JsonProperty(value = "_ts", access = JsonProperty.Access.WRITE_ONLY)
+ private Object _ts;
+
+ /**
+ * A system generated property representing the resource etag required for
+ * optimistic concurrency control.
+ */
+ @JsonProperty(value = "_etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String _etag;
+
+ /**
+ * Get a system generated property. A unique identifier.
+ *
+ * @return the _rid value
+ */
+ public String _rid() {
+ return this._rid;
+ }
+
+ /**
+ * Get a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @return the _ts value
+ */
+ public Object _ts() {
+ return this._ts;
+ }
+
+ /**
+ * Get a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @return the _etag value
+ */
+ public String _etag() {
+ return this._etag;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/FailoverPolicies.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/FailoverPolicies.java
new file mode 100644
index 0000000000000..d170df68d136f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/FailoverPolicies.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The list of new failover policies for the failover priority change.
+ */
+public class FailoverPolicies {
+ /**
+ * List of failover policies.
+ */
+ @JsonProperty(value = "failoverPolicies", required = true)
+ private List failoverPolicies;
+
+ /**
+ * Get list of failover policies.
+ *
+ * @return the failoverPolicies value
+ */
+ public List failoverPolicies() {
+ return this.failoverPolicies;
+ }
+
+ /**
+ * Set list of failover policies.
+ *
+ * @param failoverPolicies the failoverPolicies value to set
+ * @return the FailoverPolicies object itself.
+ */
+ public FailoverPolicies withFailoverPolicies(List failoverPolicies) {
+ this.failoverPolicies = failoverPolicies;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/FailoverPolicy.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/FailoverPolicy.java
new file mode 100644
index 0000000000000..2283f239429cb
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/FailoverPolicy.java
@@ -0,0 +1,89 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The failover policy for a given region of a database account.
+ */
+public class FailoverPolicy {
+ /**
+ * The unique identifier of the region in which the database account
+ * replicates to. Example:
+ * <accountName>-<locationName>.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * The name of the region in which the database account exists.
+ */
+ @JsonProperty(value = "locationName")
+ private String locationName;
+
+ /**
+ * The failover priority of the region. A failover priority of 0 indicates
+ * a write region. The maximum value for a failover priority = (total
+ * number of regions - 1). Failover priority values must be unique for each
+ * of the regions in which the database account exists.
+ */
+ @JsonProperty(value = "failoverPriority")
+ private Integer failoverPriority;
+
+ /**
+ * Get the unique identifier of the region in which the database account replicates to. Example: <accountName>-<locationName>.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name of the region in which the database account exists.
+ *
+ * @return the locationName value
+ */
+ public String locationName() {
+ return this.locationName;
+ }
+
+ /**
+ * Set the name of the region in which the database account exists.
+ *
+ * @param locationName the locationName value to set
+ * @return the FailoverPolicy object itself.
+ */
+ public FailoverPolicy withLocationName(String locationName) {
+ this.locationName = locationName;
+ return this;
+ }
+
+ /**
+ * Get the failover priority of the region. A failover priority of 0 indicates a write region. The maximum value for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the regions in which the database account exists.
+ *
+ * @return the failoverPriority value
+ */
+ public Integer failoverPriority() {
+ return this.failoverPriority;
+ }
+
+ /**
+ * Set the failover priority of the region. A failover priority of 0 indicates a write region. The maximum value for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the regions in which the database account exists.
+ *
+ * @param failoverPriority the failoverPriority value to set
+ * @return the FailoverPolicy object itself.
+ */
+ public FailoverPolicy withFailoverPriority(Integer failoverPriority) {
+ this.failoverPriority = failoverPriority;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseCreateUpdateParameters.java
new file mode 100644
index 0000000000000..697bf477563a7
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseCreateUpdateParameters.java
@@ -0,0 +1,72 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to create and update Cosmos DB Gremlin database.
+ */
+@JsonFlatten
+public class GremlinDatabaseCreateUpdateParameters extends ARMResourceProperties {
+ /**
+ * The standard JSON format of a Gremlin database.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private GremlinDatabaseResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private CreateUpdateOptions options;
+
+ /**
+ * Get the standard JSON format of a Gremlin database.
+ *
+ * @return the resource value
+ */
+ public GremlinDatabaseResource resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the standard JSON format of a Gremlin database.
+ *
+ * @param resource the resource value to set
+ * @return the GremlinDatabaseCreateUpdateParameters object itself.
+ */
+ public GremlinDatabaseCreateUpdateParameters withResource(GremlinDatabaseResource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @return the options value
+ */
+ public CreateUpdateOptions options() {
+ return this.options;
+ }
+
+ /**
+ * Set a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @param options the options value to set
+ * @return the GremlinDatabaseCreateUpdateParameters object itself.
+ */
+ public GremlinDatabaseCreateUpdateParameters withOptions(CreateUpdateOptions options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseGetPropertiesResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseGetPropertiesResource.java
new file mode 100644
index 0000000000000..97579578dd05b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseGetPropertiesResource.java
@@ -0,0 +1,90 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The GremlinDatabaseGetPropertiesResource model.
+ */
+public class GremlinDatabaseGetPropertiesResource {
+ /**
+ * Name of the Cosmos DB Gremlin database.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * A system generated property. A unique identifier.
+ */
+ @JsonProperty(value = "_rid", access = JsonProperty.Access.WRITE_ONLY)
+ private String _rid;
+
+ /**
+ * A system generated property that denotes the last updated timestamp of
+ * the resource.
+ */
+ @JsonProperty(value = "_ts", access = JsonProperty.Access.WRITE_ONLY)
+ private Object _ts;
+
+ /**
+ * A system generated property representing the resource etag required for
+ * optimistic concurrency control.
+ */
+ @JsonProperty(value = "_etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String _etag;
+
+ /**
+ * Get name of the Cosmos DB Gremlin database.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Gremlin database.
+ *
+ * @param id the id value to set
+ * @return the GremlinDatabaseGetPropertiesResource object itself.
+ */
+ public GremlinDatabaseGetPropertiesResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get a system generated property. A unique identifier.
+ *
+ * @return the _rid value
+ */
+ public String _rid() {
+ return this._rid;
+ }
+
+ /**
+ * Get a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @return the _ts value
+ */
+ public Object _ts() {
+ return this._ts;
+ }
+
+ /**
+ * Get a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @return the _etag value
+ */
+ public String _etag() {
+ return this._etag;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseGetResults.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseGetResults.java
new file mode 100644
index 0000000000000..61b50688b61b8
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseGetResults.java
@@ -0,0 +1,164 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.GremlinDatabaseGetResultsInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.Map;
+
+/**
+ * Type representing GremlinDatabaseGetResults.
+ */
+public interface GremlinDatabaseGetResults extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resource value.
+ */
+ GremlinDatabaseGetPropertiesResource resource();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the GremlinDatabaseGetResults definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabaseAccount, DefinitionStages.WithLocation, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of GremlinDatabaseGetResults definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a GremlinDatabaseGetResults definition.
+ */
+ interface Blank extends WithDatabaseAccount {
+ }
+
+ /**
+ * The stage of the gremlindatabasegetresults definition allowing to specify DatabaseAccount.
+ */
+ interface WithDatabaseAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @return the next definition stage
+ */
+ WithLocation withExistingDatabaseAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the gremlindatabasegetresults definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithOptions withLocation(String location);
+ }
+
+ /**
+ * The stage of the gremlindatabasegetresults definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * The stage of the gremlindatabasegetresults definition allowing to specify Resource.
+ */
+ interface WithResource {
+ /**
+ * Specifies resource.
+ * @param resource The standard JSON format of a Gremlin database
+ * @return the next definition stage
+ */
+ WithCreate withResource(GremlinDatabaseResource resource);
+ }
+
+ /**
+ * The stage of the gremlindatabasegetresults definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a GremlinDatabaseGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of GremlinDatabaseGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the gremlindatabasegetresults update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseResource.java
new file mode 100644
index 0000000000000..9b3213db9ca77
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinDatabaseResource.java
@@ -0,0 +1,43 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Gremlin database resource object.
+ */
+public class GremlinDatabaseResource {
+ /**
+ * Name of the Cosmos DB Gremlin database.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Get name of the Cosmos DB Gremlin database.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Gremlin database.
+ *
+ * @param id the id value to set
+ * @return the GremlinDatabaseResource object itself.
+ */
+ public GremlinDatabaseResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphCreateUpdateParameters.java
new file mode 100644
index 0000000000000..178d4b1bfa4f7
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphCreateUpdateParameters.java
@@ -0,0 +1,72 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to create and update Cosmos DB Gremlin graph.
+ */
+@JsonFlatten
+public class GremlinGraphCreateUpdateParameters extends ARMResourceProperties {
+ /**
+ * The standard JSON format of a Gremlin graph.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private GremlinGraphResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private CreateUpdateOptions options;
+
+ /**
+ * Get the standard JSON format of a Gremlin graph.
+ *
+ * @return the resource value
+ */
+ public GremlinGraphResource resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the standard JSON format of a Gremlin graph.
+ *
+ * @param resource the resource value to set
+ * @return the GremlinGraphCreateUpdateParameters object itself.
+ */
+ public GremlinGraphCreateUpdateParameters withResource(GremlinGraphResource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @return the options value
+ */
+ public CreateUpdateOptions options() {
+ return this.options;
+ }
+
+ /**
+ * Set a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @param options the options value to set
+ * @return the GremlinGraphCreateUpdateParameters object itself.
+ */
+ public GremlinGraphCreateUpdateParameters withOptions(CreateUpdateOptions options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphGetPropertiesResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphGetPropertiesResource.java
new file mode 100644
index 0000000000000..3a15d7103970f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphGetPropertiesResource.java
@@ -0,0 +1,224 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The GremlinGraphGetPropertiesResource model.
+ */
+public class GremlinGraphGetPropertiesResource {
+ /**
+ * Name of the Cosmos DB Gremlin graph.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * The configuration of the indexing policy. By default, the indexing is
+ * automatic for all document paths within the graph.
+ */
+ @JsonProperty(value = "indexingPolicy")
+ private IndexingPolicy indexingPolicy;
+
+ /**
+ * The configuration of the partition key to be used for partitioning data
+ * into multiple partitions.
+ */
+ @JsonProperty(value = "partitionKey")
+ private ContainerPartitionKey partitionKey;
+
+ /**
+ * Default time to live.
+ */
+ @JsonProperty(value = "defaultTtl")
+ private Integer defaultTtl;
+
+ /**
+ * The unique key policy configuration for specifying uniqueness
+ * constraints on documents in the collection in the Azure Cosmos DB
+ * service.
+ */
+ @JsonProperty(value = "uniqueKeyPolicy")
+ private UniqueKeyPolicy uniqueKeyPolicy;
+
+ /**
+ * The conflict resolution policy for the graph.
+ */
+ @JsonProperty(value = "conflictResolutionPolicy")
+ private ConflictResolutionPolicy conflictResolutionPolicy;
+
+ /**
+ * A system generated property. A unique identifier.
+ */
+ @JsonProperty(value = "_rid", access = JsonProperty.Access.WRITE_ONLY)
+ private String _rid;
+
+ /**
+ * A system generated property that denotes the last updated timestamp of
+ * the resource.
+ */
+ @JsonProperty(value = "_ts", access = JsonProperty.Access.WRITE_ONLY)
+ private Object _ts;
+
+ /**
+ * A system generated property representing the resource etag required for
+ * optimistic concurrency control.
+ */
+ @JsonProperty(value = "_etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String _etag;
+
+ /**
+ * Get name of the Cosmos DB Gremlin graph.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Gremlin graph.
+ *
+ * @param id the id value to set
+ * @return the GremlinGraphGetPropertiesResource object itself.
+ */
+ public GremlinGraphGetPropertiesResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the configuration of the indexing policy. By default, the indexing is automatic for all document paths within the graph.
+ *
+ * @return the indexingPolicy value
+ */
+ public IndexingPolicy indexingPolicy() {
+ return this.indexingPolicy;
+ }
+
+ /**
+ * Set the configuration of the indexing policy. By default, the indexing is automatic for all document paths within the graph.
+ *
+ * @param indexingPolicy the indexingPolicy value to set
+ * @return the GremlinGraphGetPropertiesResource object itself.
+ */
+ public GremlinGraphGetPropertiesResource withIndexingPolicy(IndexingPolicy indexingPolicy) {
+ this.indexingPolicy = indexingPolicy;
+ return this;
+ }
+
+ /**
+ * Get the configuration of the partition key to be used for partitioning data into multiple partitions.
+ *
+ * @return the partitionKey value
+ */
+ public ContainerPartitionKey partitionKey() {
+ return this.partitionKey;
+ }
+
+ /**
+ * Set the configuration of the partition key to be used for partitioning data into multiple partitions.
+ *
+ * @param partitionKey the partitionKey value to set
+ * @return the GremlinGraphGetPropertiesResource object itself.
+ */
+ public GremlinGraphGetPropertiesResource withPartitionKey(ContainerPartitionKey partitionKey) {
+ this.partitionKey = partitionKey;
+ return this;
+ }
+
+ /**
+ * Get default time to live.
+ *
+ * @return the defaultTtl value
+ */
+ public Integer defaultTtl() {
+ return this.defaultTtl;
+ }
+
+ /**
+ * Set default time to live.
+ *
+ * @param defaultTtl the defaultTtl value to set
+ * @return the GremlinGraphGetPropertiesResource object itself.
+ */
+ public GremlinGraphGetPropertiesResource withDefaultTtl(Integer defaultTtl) {
+ this.defaultTtl = defaultTtl;
+ return this;
+ }
+
+ /**
+ * Get the unique key policy configuration for specifying uniqueness constraints on documents in the collection in the Azure Cosmos DB service.
+ *
+ * @return the uniqueKeyPolicy value
+ */
+ public UniqueKeyPolicy uniqueKeyPolicy() {
+ return this.uniqueKeyPolicy;
+ }
+
+ /**
+ * Set the unique key policy configuration for specifying uniqueness constraints on documents in the collection in the Azure Cosmos DB service.
+ *
+ * @param uniqueKeyPolicy the uniqueKeyPolicy value to set
+ * @return the GremlinGraphGetPropertiesResource object itself.
+ */
+ public GremlinGraphGetPropertiesResource withUniqueKeyPolicy(UniqueKeyPolicy uniqueKeyPolicy) {
+ this.uniqueKeyPolicy = uniqueKeyPolicy;
+ return this;
+ }
+
+ /**
+ * Get the conflict resolution policy for the graph.
+ *
+ * @return the conflictResolutionPolicy value
+ */
+ public ConflictResolutionPolicy conflictResolutionPolicy() {
+ return this.conflictResolutionPolicy;
+ }
+
+ /**
+ * Set the conflict resolution policy for the graph.
+ *
+ * @param conflictResolutionPolicy the conflictResolutionPolicy value to set
+ * @return the GremlinGraphGetPropertiesResource object itself.
+ */
+ public GremlinGraphGetPropertiesResource withConflictResolutionPolicy(ConflictResolutionPolicy conflictResolutionPolicy) {
+ this.conflictResolutionPolicy = conflictResolutionPolicy;
+ return this;
+ }
+
+ /**
+ * Get a system generated property. A unique identifier.
+ *
+ * @return the _rid value
+ */
+ public String _rid() {
+ return this._rid;
+ }
+
+ /**
+ * Get a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @return the _ts value
+ */
+ public Object _ts() {
+ return this._ts;
+ }
+
+ /**
+ * Get a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @return the _etag value
+ */
+ public String _etag() {
+ return this._etag;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphGetResults.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphGetResults.java
new file mode 100644
index 0000000000000..c4a81b9fd1219
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphGetResults.java
@@ -0,0 +1,165 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.GremlinGraphGetResultsInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.Map;
+
+/**
+ * Type representing GremlinGraphGetResults.
+ */
+public interface GremlinGraphGetResults extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resource value.
+ */
+ GremlinGraphGetPropertiesResource resource();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the GremlinGraphGetResults definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGremlinDatabasis, DefinitionStages.WithLocation, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of GremlinGraphGetResults definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a GremlinGraphGetResults definition.
+ */
+ interface Blank extends WithGremlinDatabasis {
+ }
+
+ /**
+ * The stage of the gremlingraphgetresults definition allowing to specify GremlinDatabasis.
+ */
+ interface WithGremlinDatabasis {
+ /**
+ * Specifies resourceGroupName, accountName, databaseName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @param databaseName Cosmos DB database name
+ * @return the next definition stage
+ */
+ WithLocation withExistingGremlinDatabasis(String resourceGroupName, String accountName, String databaseName);
+ }
+
+ /**
+ * The stage of the gremlingraphgetresults definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithOptions withLocation(String location);
+ }
+
+ /**
+ * The stage of the gremlingraphgetresults definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * The stage of the gremlingraphgetresults definition allowing to specify Resource.
+ */
+ interface WithResource {
+ /**
+ * Specifies resource.
+ * @param resource The standard JSON format of a Gremlin graph
+ * @return the next definition stage
+ */
+ WithCreate withResource(GremlinGraphResource resource);
+ }
+
+ /**
+ * The stage of the gremlingraphgetresults definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a GremlinGraphGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of GremlinGraphGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the gremlingraphgetresults update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphResource.java
new file mode 100644
index 0000000000000..d8d29097ae32f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinGraphResource.java
@@ -0,0 +1,177 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Gremlin graph resource object.
+ */
+public class GremlinGraphResource {
+ /**
+ * Name of the Cosmos DB Gremlin graph.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * The configuration of the indexing policy. By default, the indexing is
+ * automatic for all document paths within the graph.
+ */
+ @JsonProperty(value = "indexingPolicy")
+ private IndexingPolicy indexingPolicy;
+
+ /**
+ * The configuration of the partition key to be used for partitioning data
+ * into multiple partitions.
+ */
+ @JsonProperty(value = "partitionKey")
+ private ContainerPartitionKey partitionKey;
+
+ /**
+ * Default time to live.
+ */
+ @JsonProperty(value = "defaultTtl")
+ private Integer defaultTtl;
+
+ /**
+ * The unique key policy configuration for specifying uniqueness
+ * constraints on documents in the collection in the Azure Cosmos DB
+ * service.
+ */
+ @JsonProperty(value = "uniqueKeyPolicy")
+ private UniqueKeyPolicy uniqueKeyPolicy;
+
+ /**
+ * The conflict resolution policy for the graph.
+ */
+ @JsonProperty(value = "conflictResolutionPolicy")
+ private ConflictResolutionPolicy conflictResolutionPolicy;
+
+ /**
+ * Get name of the Cosmos DB Gremlin graph.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Gremlin graph.
+ *
+ * @param id the id value to set
+ * @return the GremlinGraphResource object itself.
+ */
+ public GremlinGraphResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the configuration of the indexing policy. By default, the indexing is automatic for all document paths within the graph.
+ *
+ * @return the indexingPolicy value
+ */
+ public IndexingPolicy indexingPolicy() {
+ return this.indexingPolicy;
+ }
+
+ /**
+ * Set the configuration of the indexing policy. By default, the indexing is automatic for all document paths within the graph.
+ *
+ * @param indexingPolicy the indexingPolicy value to set
+ * @return the GremlinGraphResource object itself.
+ */
+ public GremlinGraphResource withIndexingPolicy(IndexingPolicy indexingPolicy) {
+ this.indexingPolicy = indexingPolicy;
+ return this;
+ }
+
+ /**
+ * Get the configuration of the partition key to be used for partitioning data into multiple partitions.
+ *
+ * @return the partitionKey value
+ */
+ public ContainerPartitionKey partitionKey() {
+ return this.partitionKey;
+ }
+
+ /**
+ * Set the configuration of the partition key to be used for partitioning data into multiple partitions.
+ *
+ * @param partitionKey the partitionKey value to set
+ * @return the GremlinGraphResource object itself.
+ */
+ public GremlinGraphResource withPartitionKey(ContainerPartitionKey partitionKey) {
+ this.partitionKey = partitionKey;
+ return this;
+ }
+
+ /**
+ * Get default time to live.
+ *
+ * @return the defaultTtl value
+ */
+ public Integer defaultTtl() {
+ return this.defaultTtl;
+ }
+
+ /**
+ * Set default time to live.
+ *
+ * @param defaultTtl the defaultTtl value to set
+ * @return the GremlinGraphResource object itself.
+ */
+ public GremlinGraphResource withDefaultTtl(Integer defaultTtl) {
+ this.defaultTtl = defaultTtl;
+ return this;
+ }
+
+ /**
+ * Get the unique key policy configuration for specifying uniqueness constraints on documents in the collection in the Azure Cosmos DB service.
+ *
+ * @return the uniqueKeyPolicy value
+ */
+ public UniqueKeyPolicy uniqueKeyPolicy() {
+ return this.uniqueKeyPolicy;
+ }
+
+ /**
+ * Set the unique key policy configuration for specifying uniqueness constraints on documents in the collection in the Azure Cosmos DB service.
+ *
+ * @param uniqueKeyPolicy the uniqueKeyPolicy value to set
+ * @return the GremlinGraphResource object itself.
+ */
+ public GremlinGraphResource withUniqueKeyPolicy(UniqueKeyPolicy uniqueKeyPolicy) {
+ this.uniqueKeyPolicy = uniqueKeyPolicy;
+ return this;
+ }
+
+ /**
+ * Get the conflict resolution policy for the graph.
+ *
+ * @return the conflictResolutionPolicy value
+ */
+ public ConflictResolutionPolicy conflictResolutionPolicy() {
+ return this.conflictResolutionPolicy;
+ }
+
+ /**
+ * Set the conflict resolution policy for the graph.
+ *
+ * @param conflictResolutionPolicy the conflictResolutionPolicy value to set
+ * @return the GremlinGraphResource object itself.
+ */
+ public GremlinGraphResource withConflictResolutionPolicy(ConflictResolutionPolicy conflictResolutionPolicy) {
+ this.conflictResolutionPolicy = conflictResolutionPolicy;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinResources.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinResources.java
new file mode 100644
index 0000000000000..98c55076b37d2
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/GremlinResources.java
@@ -0,0 +1,149 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.GremlinDatabaseGetResults;
+import rx.Completable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.GremlinGraphGetResults;
+
+/**
+ * Type representing GremlinResources.
+ */
+public interface GremlinResources {
+ /**
+ * Begins definition for a new GremlinDatabasis resource.
+ * @param name resource name.
+ * @return the first stage of the new GremlinDatabasis definition.
+ */
+ GremlinDatabaseGetResults.DefinitionStages.Blank defineGremlinDatabasis(String name);
+
+ /**
+ * Begins definition for a new Graph resource.
+ * @param name resource name.
+ * @return the first stage of the new Graph definition.
+ */
+ GremlinGraphGetResults.DefinitionStages.Blank defineGraph(String name);
+
+ /**
+ * Gets the Gremlin databases under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGremlinDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Lists the Gremlin databases under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listGremlinDatabasesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Gremlin database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteGremlinDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Gets the RUs per second of the Gremlin database under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGremlinDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Gremlin database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param updateThroughputParameters The RUs per second of the parameters to provide for the current Gremlin database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateGremlinDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName, ThroughputSettingsUpdateParameters updateThroughputParameters);
+
+ /**
+ * Gets the Gremlin graph throughput under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param graphName Cosmos DB graph name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGremlinGraphThroughputAsync(String resourceGroupName, String accountName, String databaseName, String graphName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Gremlin graph.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param graphName Cosmos DB graph name.
+ * @param updateThroughputParameters The RUs per second of the parameters to provide for the current Gremlin graph.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateGremlinGraphThroughputAsync(String resourceGroupName, String accountName, String databaseName, String graphName, ThroughputSettingsUpdateParameters updateThroughputParameters);
+
+ /**
+ * Gets the Gremlin graph under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param graphName Cosmos DB graph name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGremlinGraphAsync(String resourceGroupName, String accountName, String databaseName, String graphName);
+
+ /**
+ * Lists the Gremlin graph under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listGremlinGraphsAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Gremlin graph.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param graphName Cosmos DB graph name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteGremlinGraphAsync(String resourceGroupName, String accountName, String databaseName, String graphName);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IncludedPath.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IncludedPath.java
new file mode 100644
index 0000000000000..3d20b4633b55e
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IncludedPath.java
@@ -0,0 +1,71 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The paths that are included in indexing.
+ */
+public class IncludedPath {
+ /**
+ * The path for which the indexing behavior applies to. Index paths
+ * typically start with root and end with wildcard (/path/*).
+ */
+ @JsonProperty(value = "path")
+ private String path;
+
+ /**
+ * List of indexes for this path.
+ */
+ @JsonProperty(value = "indexes")
+ private List indexes;
+
+ /**
+ * Get the path for which the indexing behavior applies to. Index paths typically start with root and end with wildcard (/path/*).
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set the path for which the indexing behavior applies to. Index paths typically start with root and end with wildcard (/path/*).
+ *
+ * @param path the path value to set
+ * @return the IncludedPath object itself.
+ */
+ public IncludedPath withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get list of indexes for this path.
+ *
+ * @return the indexes value
+ */
+ public List indexes() {
+ return this.indexes;
+ }
+
+ /**
+ * Set list of indexes for this path.
+ *
+ * @param indexes the indexes value to set
+ * @return the IncludedPath object itself.
+ */
+ public IncludedPath withIndexes(List indexes) {
+ this.indexes = indexes;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexKind.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexKind.java
new file mode 100644
index 0000000000000..b1092324dd735
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexKind.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for IndexKind.
+ */
+public final class IndexKind extends ExpandableStringEnum {
+ /** Static value Hash for IndexKind. */
+ public static final IndexKind HASH = fromString("Hash");
+
+ /** Static value Range for IndexKind. */
+ public static final IndexKind RANGE = fromString("Range");
+
+ /** Static value Spatial for IndexKind. */
+ public static final IndexKind SPATIAL = fromString("Spatial");
+
+ /**
+ * Creates or finds a IndexKind from its string representation.
+ * @param name a name to look for
+ * @return the corresponding IndexKind
+ */
+ @JsonCreator
+ public static IndexKind fromString(String name) {
+ return fromString(name, IndexKind.class);
+ }
+
+ /**
+ * @return known IndexKind values
+ */
+ public static Collection values() {
+ return values(IndexKind.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Indexes.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Indexes.java
new file mode 100644
index 0000000000000..ab88bae82a4dd
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Indexes.java
@@ -0,0 +1,98 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The indexes for the path.
+ */
+public class Indexes {
+ /**
+ * The datatype for which the indexing behavior is applied to. Possible
+ * values include: 'String', 'Number', 'Point', 'Polygon', 'LineString',
+ * 'MultiPolygon'.
+ */
+ @JsonProperty(value = "dataType")
+ private DataType dataType;
+
+ /**
+ * The precision of the index. -1 is maximum precision.
+ */
+ @JsonProperty(value = "precision")
+ private Integer precision;
+
+ /**
+ * Indicates the type of index. Possible values include: 'Hash', 'Range',
+ * 'Spatial'.
+ */
+ @JsonProperty(value = "kind")
+ private IndexKind kind;
+
+ /**
+ * Get the datatype for which the indexing behavior is applied to. Possible values include: 'String', 'Number', 'Point', 'Polygon', 'LineString', 'MultiPolygon'.
+ *
+ * @return the dataType value
+ */
+ public DataType dataType() {
+ return this.dataType;
+ }
+
+ /**
+ * Set the datatype for which the indexing behavior is applied to. Possible values include: 'String', 'Number', 'Point', 'Polygon', 'LineString', 'MultiPolygon'.
+ *
+ * @param dataType the dataType value to set
+ * @return the Indexes object itself.
+ */
+ public Indexes withDataType(DataType dataType) {
+ this.dataType = dataType;
+ return this;
+ }
+
+ /**
+ * Get the precision of the index. -1 is maximum precision.
+ *
+ * @return the precision value
+ */
+ public Integer precision() {
+ return this.precision;
+ }
+
+ /**
+ * Set the precision of the index. -1 is maximum precision.
+ *
+ * @param precision the precision value to set
+ * @return the Indexes object itself.
+ */
+ public Indexes withPrecision(Integer precision) {
+ this.precision = precision;
+ return this;
+ }
+
+ /**
+ * Get indicates the type of index. Possible values include: 'Hash', 'Range', 'Spatial'.
+ *
+ * @return the kind value
+ */
+ public IndexKind kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set indicates the type of index. Possible values include: 'Hash', 'Range', 'Spatial'.
+ *
+ * @param kind the kind value to set
+ * @return the Indexes object itself.
+ */
+ public Indexes withKind(IndexKind kind) {
+ this.kind = kind;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexingMode.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexingMode.java
new file mode 100644
index 0000000000000..e189e465eebd5
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexingMode.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for IndexingMode.
+ */
+public final class IndexingMode extends ExpandableStringEnum {
+ /** Static value Consistent for IndexingMode. */
+ public static final IndexingMode CONSISTENT = fromString("Consistent");
+
+ /** Static value Lazy for IndexingMode. */
+ public static final IndexingMode LAZY = fromString("Lazy");
+
+ /** Static value None for IndexingMode. */
+ public static final IndexingMode NONE = fromString("None");
+
+ /**
+ * Creates or finds a IndexingMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding IndexingMode
+ */
+ @JsonCreator
+ public static IndexingMode fromString(String name) {
+ return fromString(name, IndexingMode.class);
+ }
+
+ /**
+ * @return known IndexingMode values
+ */
+ public static Collection values() {
+ return values(IndexingMode.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexingPolicy.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexingPolicy.java
new file mode 100644
index 0000000000000..5cf994b24a229
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/IndexingPolicy.java
@@ -0,0 +1,175 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB indexing policy.
+ */
+public class IndexingPolicy {
+ /**
+ * Indicates if the indexing policy is automatic.
+ */
+ @JsonProperty(value = "automatic")
+ private Boolean automatic;
+
+ /**
+ * Indicates the indexing mode. Possible values include: 'Consistent',
+ * 'Lazy', 'None'.
+ */
+ @JsonProperty(value = "indexingMode")
+ private IndexingMode indexingMode;
+
+ /**
+ * List of paths to include in the indexing.
+ */
+ @JsonProperty(value = "includedPaths")
+ private List includedPaths;
+
+ /**
+ * List of paths to exclude from indexing.
+ */
+ @JsonProperty(value = "excludedPaths")
+ private List excludedPaths;
+
+ /**
+ * List of composite path list.
+ */
+ @JsonProperty(value = "compositeIndexes")
+ private List> compositeIndexes;
+
+ /**
+ * List of spatial specifics.
+ */
+ @JsonProperty(value = "spatialIndexes")
+ private List spatialIndexes;
+
+ /**
+ * Get indicates if the indexing policy is automatic.
+ *
+ * @return the automatic value
+ */
+ public Boolean automatic() {
+ return this.automatic;
+ }
+
+ /**
+ * Set indicates if the indexing policy is automatic.
+ *
+ * @param automatic the automatic value to set
+ * @return the IndexingPolicy object itself.
+ */
+ public IndexingPolicy withAutomatic(Boolean automatic) {
+ this.automatic = automatic;
+ return this;
+ }
+
+ /**
+ * Get indicates the indexing mode. Possible values include: 'Consistent', 'Lazy', 'None'.
+ *
+ * @return the indexingMode value
+ */
+ public IndexingMode indexingMode() {
+ return this.indexingMode;
+ }
+
+ /**
+ * Set indicates the indexing mode. Possible values include: 'Consistent', 'Lazy', 'None'.
+ *
+ * @param indexingMode the indexingMode value to set
+ * @return the IndexingPolicy object itself.
+ */
+ public IndexingPolicy withIndexingMode(IndexingMode indexingMode) {
+ this.indexingMode = indexingMode;
+ return this;
+ }
+
+ /**
+ * Get list of paths to include in the indexing.
+ *
+ * @return the includedPaths value
+ */
+ public List includedPaths() {
+ return this.includedPaths;
+ }
+
+ /**
+ * Set list of paths to include in the indexing.
+ *
+ * @param includedPaths the includedPaths value to set
+ * @return the IndexingPolicy object itself.
+ */
+ public IndexingPolicy withIncludedPaths(List includedPaths) {
+ this.includedPaths = includedPaths;
+ return this;
+ }
+
+ /**
+ * Get list of paths to exclude from indexing.
+ *
+ * @return the excludedPaths value
+ */
+ public List excludedPaths() {
+ return this.excludedPaths;
+ }
+
+ /**
+ * Set list of paths to exclude from indexing.
+ *
+ * @param excludedPaths the excludedPaths value to set
+ * @return the IndexingPolicy object itself.
+ */
+ public IndexingPolicy withExcludedPaths(List excludedPaths) {
+ this.excludedPaths = excludedPaths;
+ return this;
+ }
+
+ /**
+ * Get list of composite path list.
+ *
+ * @return the compositeIndexes value
+ */
+ public List> compositeIndexes() {
+ return this.compositeIndexes;
+ }
+
+ /**
+ * Set list of composite path list.
+ *
+ * @param compositeIndexes the compositeIndexes value to set
+ * @return the IndexingPolicy object itself.
+ */
+ public IndexingPolicy withCompositeIndexes(List> compositeIndexes) {
+ this.compositeIndexes = compositeIndexes;
+ return this;
+ }
+
+ /**
+ * Get list of spatial specifics.
+ *
+ * @return the spatialIndexes value
+ */
+ public List spatialIndexes() {
+ return this.spatialIndexes;
+ }
+
+ /**
+ * Set list of spatial specifics.
+ *
+ * @param spatialIndexes the spatialIndexes value to set
+ * @return the IndexingPolicy object itself.
+ */
+ public IndexingPolicy withSpatialIndexes(List spatialIndexes) {
+ this.spatialIndexes = spatialIndexes;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/KeyKind.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/KeyKind.java
new file mode 100644
index 0000000000000..32b18b1ef42c4
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/KeyKind.java
@@ -0,0 +1,47 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for KeyKind.
+ */
+public final class KeyKind extends ExpandableStringEnum {
+ /** Static value primary for KeyKind. */
+ public static final KeyKind PRIMARY = fromString("primary");
+
+ /** Static value secondary for KeyKind. */
+ public static final KeyKind SECONDARY = fromString("secondary");
+
+ /** Static value primaryReadonly for KeyKind. */
+ public static final KeyKind PRIMARY_READONLY = fromString("primaryReadonly");
+
+ /** Static value secondaryReadonly for KeyKind. */
+ public static final KeyKind SECONDARY_READONLY = fromString("secondaryReadonly");
+
+ /**
+ * Creates or finds a KeyKind from its string representation.
+ * @param name a name to look for
+ * @return the corresponding KeyKind
+ */
+ @JsonCreator
+ public static KeyKind fromString(String name) {
+ return fromString(name, KeyKind.class);
+ }
+
+ /**
+ * @return known KeyKind values
+ */
+ public static Collection values() {
+ return values(KeyKind.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Location.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Location.java
new file mode 100644
index 0000000000000..eda7e45540035
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Location.java
@@ -0,0 +1,157 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A region in which the Azure Cosmos DB database account is deployed.
+ */
+public class Location {
+ /**
+ * The unique identifier of the region within the database account.
+ * Example: <accountName>-<locationName>.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * The name of the region.
+ */
+ @JsonProperty(value = "locationName")
+ private String locationName;
+
+ /**
+ * The connection endpoint for the specific region. Example:
+ * https://<accountName>-<locationName>.documents.azure.com:443/.
+ */
+ @JsonProperty(value = "documentEndpoint", access = JsonProperty.Access.WRITE_ONLY)
+ private String documentEndpoint;
+
+ /**
+ * The provisioningState property.
+ */
+ @JsonProperty(value = "provisioningState")
+ private String provisioningState;
+
+ /**
+ * The failover priority of the region. A failover priority of 0 indicates
+ * a write region. The maximum value for a failover priority = (total
+ * number of regions - 1). Failover priority values must be unique for each
+ * of the regions in which the database account exists.
+ */
+ @JsonProperty(value = "failoverPriority")
+ private Integer failoverPriority;
+
+ /**
+ * Flag to indicate whether or not this region is an AvailabilityZone
+ * region.
+ */
+ @JsonProperty(value = "isZoneRedundant")
+ private Boolean isZoneRedundant;
+
+ /**
+ * Get the unique identifier of the region within the database account. Example: <accountName>-<locationName>.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name of the region.
+ *
+ * @return the locationName value
+ */
+ public String locationName() {
+ return this.locationName;
+ }
+
+ /**
+ * Set the name of the region.
+ *
+ * @param locationName the locationName value to set
+ * @return the Location object itself.
+ */
+ public Location withLocationName(String locationName) {
+ this.locationName = locationName;
+ return this;
+ }
+
+ /**
+ * Get the connection endpoint for the specific region. Example: https://<accountName>-<locationName>.documents.azure.com:443/.
+ *
+ * @return the documentEndpoint value
+ */
+ public String documentEndpoint() {
+ return this.documentEndpoint;
+ }
+
+ /**
+ * Get the provisioningState value.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set the provisioningState value.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the Location object itself.
+ */
+ public Location withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get the failover priority of the region. A failover priority of 0 indicates a write region. The maximum value for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the regions in which the database account exists.
+ *
+ * @return the failoverPriority value
+ */
+ public Integer failoverPriority() {
+ return this.failoverPriority;
+ }
+
+ /**
+ * Set the failover priority of the region. A failover priority of 0 indicates a write region. The maximum value for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the regions in which the database account exists.
+ *
+ * @param failoverPriority the failoverPriority value to set
+ * @return the Location object itself.
+ */
+ public Location withFailoverPriority(Integer failoverPriority) {
+ this.failoverPriority = failoverPriority;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether or not this region is an AvailabilityZone region.
+ *
+ * @return the isZoneRedundant value
+ */
+ public Boolean isZoneRedundant() {
+ return this.isZoneRedundant;
+ }
+
+ /**
+ * Set flag to indicate whether or not this region is an AvailabilityZone region.
+ *
+ * @param isZoneRedundant the isZoneRedundant value to set
+ * @return the Location object itself.
+ */
+ public Location withIsZoneRedundant(Boolean isZoneRedundant) {
+ this.isZoneRedundant = isZoneRedundant;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricAvailability.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricAvailability.java
new file mode 100644
index 0000000000000..af4e750d1f97d
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricAvailability.java
@@ -0,0 +1,47 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The availability of the metric.
+ */
+public class MetricAvailability {
+ /**
+ * The time grain to be used to summarize the metric values.
+ */
+ @JsonProperty(value = "timeGrain", access = JsonProperty.Access.WRITE_ONLY)
+ private String timeGrain;
+
+ /**
+ * The retention for the metric values.
+ */
+ @JsonProperty(value = "retention", access = JsonProperty.Access.WRITE_ONLY)
+ private String retention;
+
+ /**
+ * Get the time grain to be used to summarize the metric values.
+ *
+ * @return the timeGrain value
+ */
+ public String timeGrain() {
+ return this.timeGrain;
+ }
+
+ /**
+ * Get the retention for the metric values.
+ *
+ * @return the retention value
+ */
+ public String retention() {
+ return this.retention;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricName.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricName.java
new file mode 100644
index 0000000000000..4e7386b8d698a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricName.java
@@ -0,0 +1,47 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A metric name.
+ */
+public class MetricName {
+ /**
+ * The name of the metric.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private String value;
+
+ /**
+ * The friendly name of the metric.
+ */
+ @JsonProperty(value = "localizedValue", access = JsonProperty.Access.WRITE_ONLY)
+ private String localizedValue;
+
+ /**
+ * Get the name of the metric.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Get the friendly name of the metric.
+ *
+ * @return the localizedValue value
+ */
+ public String localizedValue() {
+ return this.localizedValue;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricValue.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricValue.java
new file mode 100644
index 0000000000000..2e68fcea56eb7
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MetricValue.java
@@ -0,0 +1,108 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents metrics values.
+ */
+public class MetricValue {
+ /**
+ * The number of values for the metric.
+ */
+ @JsonProperty(value = "_count", access = JsonProperty.Access.WRITE_ONLY)
+ private Double _count;
+
+ /**
+ * The average value of the metric.
+ */
+ @JsonProperty(value = "average", access = JsonProperty.Access.WRITE_ONLY)
+ private Double average;
+
+ /**
+ * The max value of the metric.
+ */
+ @JsonProperty(value = "maximum", access = JsonProperty.Access.WRITE_ONLY)
+ private Double maximum;
+
+ /**
+ * The min value of the metric.
+ */
+ @JsonProperty(value = "minimum", access = JsonProperty.Access.WRITE_ONLY)
+ private Double minimum;
+
+ /**
+ * The metric timestamp (ISO-8601 format).
+ */
+ @JsonProperty(value = "timestamp", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime timestamp;
+
+ /**
+ * The total value of the metric.
+ */
+ @JsonProperty(value = "total", access = JsonProperty.Access.WRITE_ONLY)
+ private Double total;
+
+ /**
+ * Get the number of values for the metric.
+ *
+ * @return the _count value
+ */
+ public Double _count() {
+ return this._count;
+ }
+
+ /**
+ * Get the average value of the metric.
+ *
+ * @return the average value
+ */
+ public Double average() {
+ return this.average;
+ }
+
+ /**
+ * Get the max value of the metric.
+ *
+ * @return the maximum value
+ */
+ public Double maximum() {
+ return this.maximum;
+ }
+
+ /**
+ * Get the min value of the metric.
+ *
+ * @return the minimum value
+ */
+ public Double minimum() {
+ return this.minimum;
+ }
+
+ /**
+ * Get the metric timestamp (ISO-8601 format).
+ *
+ * @return the timestamp value
+ */
+ public DateTime timestamp() {
+ return this.timestamp;
+ }
+
+ /**
+ * Get the total value of the metric.
+ *
+ * @return the total value
+ */
+ public Double total() {
+ return this.total;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionCreateUpdateParameters.java
new file mode 100644
index 0000000000000..cfb5ba7236ad3
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionCreateUpdateParameters.java
@@ -0,0 +1,72 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to create and update Cosmos DB MongoDB collection.
+ */
+@JsonFlatten
+public class MongoDBCollectionCreateUpdateParameters extends ARMResourceProperties {
+ /**
+ * The standard JSON format of a MongoDB collection.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private MongoDBCollectionResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private CreateUpdateOptions options;
+
+ /**
+ * Get the standard JSON format of a MongoDB collection.
+ *
+ * @return the resource value
+ */
+ public MongoDBCollectionResource resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the standard JSON format of a MongoDB collection.
+ *
+ * @param resource the resource value to set
+ * @return the MongoDBCollectionCreateUpdateParameters object itself.
+ */
+ public MongoDBCollectionCreateUpdateParameters withResource(MongoDBCollectionResource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @return the options value
+ */
+ public CreateUpdateOptions options() {
+ return this.options;
+ }
+
+ /**
+ * Set a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @param options the options value to set
+ * @return the MongoDBCollectionCreateUpdateParameters object itself.
+ */
+ public MongoDBCollectionCreateUpdateParameters withOptions(CreateUpdateOptions options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionGetPropertiesResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionGetPropertiesResource.java
new file mode 100644
index 0000000000000..b6880010e65b3
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionGetPropertiesResource.java
@@ -0,0 +1,144 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The MongoDBCollectionGetPropertiesResource model.
+ */
+public class MongoDBCollectionGetPropertiesResource {
+ /**
+ * Name of the Cosmos DB MongoDB collection.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * A key-value pair of shard keys to be applied for the request.
+ */
+ @JsonProperty(value = "shardKey")
+ private Map shardKey;
+
+ /**
+ * List of index keys.
+ */
+ @JsonProperty(value = "indexes")
+ private List indexes;
+
+ /**
+ * A system generated property. A unique identifier.
+ */
+ @JsonProperty(value = "_rid", access = JsonProperty.Access.WRITE_ONLY)
+ private String _rid;
+
+ /**
+ * A system generated property that denotes the last updated timestamp of
+ * the resource.
+ */
+ @JsonProperty(value = "_ts", access = JsonProperty.Access.WRITE_ONLY)
+ private Object _ts;
+
+ /**
+ * A system generated property representing the resource etag required for
+ * optimistic concurrency control.
+ */
+ @JsonProperty(value = "_etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String _etag;
+
+ /**
+ * Get name of the Cosmos DB MongoDB collection.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB MongoDB collection.
+ *
+ * @param id the id value to set
+ * @return the MongoDBCollectionGetPropertiesResource object itself.
+ */
+ public MongoDBCollectionGetPropertiesResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of shard keys to be applied for the request.
+ *
+ * @return the shardKey value
+ */
+ public Map shardKey() {
+ return this.shardKey;
+ }
+
+ /**
+ * Set a key-value pair of shard keys to be applied for the request.
+ *
+ * @param shardKey the shardKey value to set
+ * @return the MongoDBCollectionGetPropertiesResource object itself.
+ */
+ public MongoDBCollectionGetPropertiesResource withShardKey(Map shardKey) {
+ this.shardKey = shardKey;
+ return this;
+ }
+
+ /**
+ * Get list of index keys.
+ *
+ * @return the indexes value
+ */
+ public List indexes() {
+ return this.indexes;
+ }
+
+ /**
+ * Set list of index keys.
+ *
+ * @param indexes the indexes value to set
+ * @return the MongoDBCollectionGetPropertiesResource object itself.
+ */
+ public MongoDBCollectionGetPropertiesResource withIndexes(List indexes) {
+ this.indexes = indexes;
+ return this;
+ }
+
+ /**
+ * Get a system generated property. A unique identifier.
+ *
+ * @return the _rid value
+ */
+ public String _rid() {
+ return this._rid;
+ }
+
+ /**
+ * Get a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @return the _ts value
+ */
+ public Object _ts() {
+ return this._ts;
+ }
+
+ /**
+ * Get a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @return the _etag value
+ */
+ public String _etag() {
+ return this._etag;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionGetResults.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionGetResults.java
new file mode 100644
index 0000000000000..7adfc851e5d21
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionGetResults.java
@@ -0,0 +1,165 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MongoDBCollectionGetResultsInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.Map;
+
+/**
+ * Type representing MongoDBCollectionGetResults.
+ */
+public interface MongoDBCollectionGetResults extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resource value.
+ */
+ MongoDBCollectionGetPropertiesResource resource();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the MongoDBCollectionGetResults definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithMongodbDatabasis, DefinitionStages.WithLocation, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of MongoDBCollectionGetResults definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a MongoDBCollectionGetResults definition.
+ */
+ interface Blank extends WithMongodbDatabasis {
+ }
+
+ /**
+ * The stage of the mongodbcollectiongetresults definition allowing to specify MongodbDatabasis.
+ */
+ interface WithMongodbDatabasis {
+ /**
+ * Specifies resourceGroupName, accountName, databaseName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @param databaseName Cosmos DB database name
+ * @return the next definition stage
+ */
+ WithLocation withExistingMongodbDatabasis(String resourceGroupName, String accountName, String databaseName);
+ }
+
+ /**
+ * The stage of the mongodbcollectiongetresults definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithOptions withLocation(String location);
+ }
+
+ /**
+ * The stage of the mongodbcollectiongetresults definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * The stage of the mongodbcollectiongetresults definition allowing to specify Resource.
+ */
+ interface WithResource {
+ /**
+ * Specifies resource.
+ * @param resource The standard JSON format of a MongoDB collection
+ * @return the next definition stage
+ */
+ WithCreate withResource(MongoDBCollectionResource resource);
+ }
+
+ /**
+ * The stage of the mongodbcollectiongetresults definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a MongoDBCollectionGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of MongoDBCollectionGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the mongodbcollectiongetresults update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionResource.java
new file mode 100644
index 0000000000000..fcd0809b50ced
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBCollectionResource.java
@@ -0,0 +1,97 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB collection resource object.
+ */
+public class MongoDBCollectionResource {
+ /**
+ * Name of the Cosmos DB MongoDB collection.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * A key-value pair of shard keys to be applied for the request.
+ */
+ @JsonProperty(value = "shardKey")
+ private Map shardKey;
+
+ /**
+ * List of index keys.
+ */
+ @JsonProperty(value = "indexes")
+ private List indexes;
+
+ /**
+ * Get name of the Cosmos DB MongoDB collection.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB MongoDB collection.
+ *
+ * @param id the id value to set
+ * @return the MongoDBCollectionResource object itself.
+ */
+ public MongoDBCollectionResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of shard keys to be applied for the request.
+ *
+ * @return the shardKey value
+ */
+ public Map shardKey() {
+ return this.shardKey;
+ }
+
+ /**
+ * Set a key-value pair of shard keys to be applied for the request.
+ *
+ * @param shardKey the shardKey value to set
+ * @return the MongoDBCollectionResource object itself.
+ */
+ public MongoDBCollectionResource withShardKey(Map shardKey) {
+ this.shardKey = shardKey;
+ return this;
+ }
+
+ /**
+ * Get list of index keys.
+ *
+ * @return the indexes value
+ */
+ public List indexes() {
+ return this.indexes;
+ }
+
+ /**
+ * Set list of index keys.
+ *
+ * @param indexes the indexes value to set
+ * @return the MongoDBCollectionResource object itself.
+ */
+ public MongoDBCollectionResource withIndexes(List indexes) {
+ this.indexes = indexes;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseCreateUpdateParameters.java
new file mode 100644
index 0000000000000..84fe83178413d
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseCreateUpdateParameters.java
@@ -0,0 +1,72 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to create and update Cosmos DB MongoDB database.
+ */
+@JsonFlatten
+public class MongoDBDatabaseCreateUpdateParameters extends ARMResourceProperties {
+ /**
+ * The standard JSON format of a MongoDB database.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private MongoDBDatabaseResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private CreateUpdateOptions options;
+
+ /**
+ * Get the standard JSON format of a MongoDB database.
+ *
+ * @return the resource value
+ */
+ public MongoDBDatabaseResource resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the standard JSON format of a MongoDB database.
+ *
+ * @param resource the resource value to set
+ * @return the MongoDBDatabaseCreateUpdateParameters object itself.
+ */
+ public MongoDBDatabaseCreateUpdateParameters withResource(MongoDBDatabaseResource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @return the options value
+ */
+ public CreateUpdateOptions options() {
+ return this.options;
+ }
+
+ /**
+ * Set a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @param options the options value to set
+ * @return the MongoDBDatabaseCreateUpdateParameters object itself.
+ */
+ public MongoDBDatabaseCreateUpdateParameters withOptions(CreateUpdateOptions options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseGetPropertiesResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseGetPropertiesResource.java
new file mode 100644
index 0000000000000..0f737965803b1
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseGetPropertiesResource.java
@@ -0,0 +1,90 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The MongoDBDatabaseGetPropertiesResource model.
+ */
+public class MongoDBDatabaseGetPropertiesResource {
+ /**
+ * Name of the Cosmos DB MongoDB database.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * A system generated property. A unique identifier.
+ */
+ @JsonProperty(value = "_rid", access = JsonProperty.Access.WRITE_ONLY)
+ private String _rid;
+
+ /**
+ * A system generated property that denotes the last updated timestamp of
+ * the resource.
+ */
+ @JsonProperty(value = "_ts", access = JsonProperty.Access.WRITE_ONLY)
+ private Object _ts;
+
+ /**
+ * A system generated property representing the resource etag required for
+ * optimistic concurrency control.
+ */
+ @JsonProperty(value = "_etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String _etag;
+
+ /**
+ * Get name of the Cosmos DB MongoDB database.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB MongoDB database.
+ *
+ * @param id the id value to set
+ * @return the MongoDBDatabaseGetPropertiesResource object itself.
+ */
+ public MongoDBDatabaseGetPropertiesResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get a system generated property. A unique identifier.
+ *
+ * @return the _rid value
+ */
+ public String _rid() {
+ return this._rid;
+ }
+
+ /**
+ * Get a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @return the _ts value
+ */
+ public Object _ts() {
+ return this._ts;
+ }
+
+ /**
+ * Get a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @return the _etag value
+ */
+ public String _etag() {
+ return this._etag;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseGetResults.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseGetResults.java
new file mode 100644
index 0000000000000..de8b6a3834830
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseGetResults.java
@@ -0,0 +1,164 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.MongoDBDatabaseGetResultsInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import java.util.Map;
+
+/**
+ * Type representing MongoDBDatabaseGetResults.
+ */
+public interface MongoDBDatabaseGetResults extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resource value.
+ */
+ MongoDBDatabaseGetPropertiesResource resource();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the MongoDBDatabaseGetResults definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabaseAccount, DefinitionStages.WithLocation, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of MongoDBDatabaseGetResults definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a MongoDBDatabaseGetResults definition.
+ */
+ interface Blank extends WithDatabaseAccount {
+ }
+
+ /**
+ * The stage of the mongodbdatabasegetresults definition allowing to specify DatabaseAccount.
+ */
+ interface WithDatabaseAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @return the next definition stage
+ */
+ WithLocation withExistingDatabaseAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the mongodbdatabasegetresults definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithOptions withLocation(String location);
+ }
+
+ /**
+ * The stage of the mongodbdatabasegetresults definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * The stage of the mongodbdatabasegetresults definition allowing to specify Resource.
+ */
+ interface WithResource {
+ /**
+ * Specifies resource.
+ * @param resource The standard JSON format of a MongoDB database
+ * @return the next definition stage
+ */
+ WithCreate withResource(MongoDBDatabaseResource resource);
+ }
+
+ /**
+ * The stage of the mongodbdatabasegetresults definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a MongoDBDatabaseGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of MongoDBDatabaseGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the mongodbdatabasegetresults update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseResource.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseResource.java
new file mode 100644
index 0000000000000..50652318a8fb1
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBDatabaseResource.java
@@ -0,0 +1,43 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB database resource object.
+ */
+public class MongoDBDatabaseResource {
+ /**
+ * Name of the Cosmos DB MongoDB database.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Get name of the Cosmos DB MongoDB database.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB MongoDB database.
+ *
+ * @param id the id value to set
+ * @return the MongoDBDatabaseResource object itself.
+ */
+ public MongoDBDatabaseResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBResources.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBResources.java
new file mode 100644
index 0000000000000..24322a31f5d79
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoDBResources.java
@@ -0,0 +1,149 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.MongoDBDatabaseGetResults;
+import rx.Completable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.MongoDBCollectionGetResults;
+
+/**
+ * Type representing MongoDBResources.
+ */
+public interface MongoDBResources {
+ /**
+ * Begins definition for a new MongodbDatabasis resource.
+ * @param name resource name.
+ * @return the first stage of the new MongodbDatabasis definition.
+ */
+ MongoDBDatabaseGetResults.DefinitionStages.Blank defineMongodbDatabasis(String name);
+
+ /**
+ * Begins definition for a new Collection resource.
+ * @param name resource name.
+ * @return the first stage of the new Collection definition.
+ */
+ MongoDBCollectionGetResults.DefinitionStages.Blank defineCollection(String name);
+
+ /**
+ * Gets the MongoDB databases under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMongoDBDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Lists the MongoDB databases under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMongoDBDatabasesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB MongoDB database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteMongoDBDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Gets the RUs per second of the MongoDB database under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMongoDBDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Update RUs per second of the an Azure Cosmos DB MongoDB database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param updateThroughputParameters The RUs per second of the parameters to provide for the current MongoDB database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateMongoDBDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName, ThroughputSettingsUpdateParameters updateThroughputParameters);
+
+ /**
+ * Gets the RUs per second of the MongoDB collection under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param collectionName Cosmos DB collection name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMongoDBCollectionThroughputAsync(String resourceGroupName, String accountName, String databaseName, String collectionName);
+
+ /**
+ * Update the RUs per second of an Azure Cosmos DB MongoDB collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param collectionName Cosmos DB collection name.
+ * @param updateThroughputParameters The RUs per second of the parameters to provide for the current MongoDB collection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateMongoDBCollectionThroughputAsync(String resourceGroupName, String accountName, String databaseName, String collectionName, ThroughputSettingsUpdateParameters updateThroughputParameters);
+
+ /**
+ * Gets the MongoDB collection under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param collectionName Cosmos DB collection name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMongoDBCollectionAsync(String resourceGroupName, String accountName, String databaseName, String collectionName);
+
+ /**
+ * Lists the MongoDB collection under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMongoDBCollectionsAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB MongoDB Collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param collectionName Cosmos DB collection name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteMongoDBCollectionAsync(String resourceGroupName, String accountName, String databaseName, String collectionName);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndex.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndex.java
new file mode 100644
index 0000000000000..ba56e3a332f8b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndex.java
@@ -0,0 +1,69 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB collection index key.
+ */
+public class MongoIndex {
+ /**
+ * Cosmos DB MongoDB collection index keys.
+ */
+ @JsonProperty(value = "key")
+ private MongoIndexKeys key;
+
+ /**
+ * Cosmos DB MongoDB collection index key options.
+ */
+ @JsonProperty(value = "options")
+ private MongoIndexOptions options;
+
+ /**
+ * Get cosmos DB MongoDB collection index keys.
+ *
+ * @return the key value
+ */
+ public MongoIndexKeys key() {
+ return this.key;
+ }
+
+ /**
+ * Set cosmos DB MongoDB collection index keys.
+ *
+ * @param key the key value to set
+ * @return the MongoIndex object itself.
+ */
+ public MongoIndex withKey(MongoIndexKeys key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Get cosmos DB MongoDB collection index key options.
+ *
+ * @return the options value
+ */
+ public MongoIndexOptions options() {
+ return this.options;
+ }
+
+ /**
+ * Set cosmos DB MongoDB collection index key options.
+ *
+ * @param options the options value to set
+ * @return the MongoIndex object itself.
+ */
+ public MongoIndex withOptions(MongoIndexOptions options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndexKeys.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndexKeys.java
new file mode 100644
index 0000000000000..1005bf9103871
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndexKeys.java
@@ -0,0 +1,44 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB collection resource object.
+ */
+public class MongoIndexKeys {
+ /**
+ * List of keys for each MongoDB collection in the Azure Cosmos DB service.
+ */
+ @JsonProperty(value = "keys")
+ private List keys;
+
+ /**
+ * Get list of keys for each MongoDB collection in the Azure Cosmos DB service.
+ *
+ * @return the keys value
+ */
+ public List keys() {
+ return this.keys;
+ }
+
+ /**
+ * Set list of keys for each MongoDB collection in the Azure Cosmos DB service.
+ *
+ * @param keys the keys value to set
+ * @return the MongoIndexKeys object itself.
+ */
+ public MongoIndexKeys withKeys(List keys) {
+ this.keys = keys;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndexOptions.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndexOptions.java
new file mode 100644
index 0000000000000..b84bcf60b032f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/MongoIndexOptions.java
@@ -0,0 +1,69 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB collection index options.
+ */
+public class MongoIndexOptions {
+ /**
+ * Expire after seconds.
+ */
+ @JsonProperty(value = "expireAfterSeconds")
+ private Integer expireAfterSeconds;
+
+ /**
+ * Is unique or not.
+ */
+ @JsonProperty(value = "unique")
+ private Boolean unique;
+
+ /**
+ * Get expire after seconds.
+ *
+ * @return the expireAfterSeconds value
+ */
+ public Integer expireAfterSeconds() {
+ return this.expireAfterSeconds;
+ }
+
+ /**
+ * Set expire after seconds.
+ *
+ * @param expireAfterSeconds the expireAfterSeconds value to set
+ * @return the MongoIndexOptions object itself.
+ */
+ public MongoIndexOptions withExpireAfterSeconds(Integer expireAfterSeconds) {
+ this.expireAfterSeconds = expireAfterSeconds;
+ return this;
+ }
+
+ /**
+ * Get is unique or not.
+ *
+ * @return the unique value
+ */
+ public Boolean unique() {
+ return this.unique;
+ }
+
+ /**
+ * Set is unique or not.
+ *
+ * @param unique the unique value to set
+ * @return the MongoIndexOptions object itself.
+ */
+ public MongoIndexOptions withUnique(Boolean unique) {
+ this.unique = unique;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Operation.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Operation.java
new file mode 100644
index 0000000000000..576519ddf2c61
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Operation.java
@@ -0,0 +1,30 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/OperationDisplay.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/OperationDisplay.java
new file mode 100644
index 0000000000000..20007e56869e3
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/OperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft.ResourceProvider.
+ */
+ @JsonProperty(value = "Provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Profile, endpoint, etc.
+ */
+ @JsonProperty(value = "Resource")
+ private String resource;
+
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "Operation")
+ private String operation;
+
+ /**
+ * Description of operation.
+ */
+ @JsonProperty(value = "Description")
+ private String description;
+
+ /**
+ * Get service provider: Microsoft.ResourceProvider.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft.ResourceProvider.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Profile, endpoint, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed: Profile, endpoint, etc.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set operation type: Read, write, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get description of operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of operation.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Operations.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Operations.java
new file mode 100644
index 0000000000000..5660621ca5f23
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2019_12_12.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available Cosmos DB Resource Provider operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKeyRangeIdRegions.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKeyRangeIdRegions.java
new file mode 100644
index 0000000000000..dd00ee5a52d42
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKeyRangeIdRegions.java
@@ -0,0 +1,32 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+
+/**
+ * Type representing PartitionKeyRangeIdRegions.
+ */
+public interface PartitionKeyRangeIdRegions {
+ /**
+ * Retrieves the metrics determined by the given filter for the given partition key range id and region.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param partitionKeyRangeId Partition Key Range Id for which to get data.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String region, String databaseRid, String collectionRid, String partitionKeyRangeId, String filter);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKeyRangeIds.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKeyRangeIds.java
new file mode 100644
index 0000000000000..e554c814d2934
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKeyRangeIds.java
@@ -0,0 +1,31 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import rx.Observable;
+
+/**
+ * Type representing PartitionKeyRangeIds.
+ */
+public interface PartitionKeyRangeIds {
+ /**
+ * Retrieves the metrics determined by the given filter for the given partition key range id.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param partitionKeyRangeId Partition Key Range Id for which to get data.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid, String partitionKeyRangeId, String filter);
+
+}
diff --git a/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKind.java b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKind.java
new file mode 100644
index 0000000000000..69dbaa532fbba
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2019_12_12/src/main/java/com/microsoft/azure/management/cosmosdb/v2019_12_12/PartitionKind.java
@@ -0,0 +1,41 @@
+/**
+ * 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) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2019_12_12;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PartitionKind.
+ */
+public final class PartitionKind extends ExpandableStringEnum