diff --git a/sdk/cosmos/mgmt-v2020_09_01/pom.xml b/sdk/cosmos/mgmt-v2020_09_01/pom.xml
new file mode 100644
index 000000000000..b8bfb5e1275b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.cosmosdb.v2020_09_01
+
+ 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
+ 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ARMProxyResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ARMProxyResource.java
new file mode 100644
index 000000000000..8acdd15a4392
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ARMResourceProperties.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ARMResourceProperties.java
new file mode 100644
index 000000000000..2a8c8ada249b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.Resource;
+
+/**
+ * The core properties of ARM resources.
+ */
+public class ARMResourceProperties extends Resource {
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ApiProperties.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ApiProperties.java
new file mode 100644
index 000000000000..ecbbc6835990
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ApiProperties.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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ApiProperties model.
+ */
+public class ApiProperties {
+ /**
+ * Describes the ServerVersion of an a MongoDB account. Possible values
+ * include: '3.2', '3.6'.
+ */
+ @JsonProperty(value = "serverVersion")
+ private ServerVersion serverVersion;
+
+ /**
+ * Get describes the ServerVersion of an a MongoDB account. Possible values include: '3.2', '3.6'.
+ *
+ * @return the serverVersion value
+ */
+ public ServerVersion serverVersion() {
+ return this.serverVersion;
+ }
+
+ /**
+ * Set describes the ServerVersion of an a MongoDB account. Possible values include: '3.2', '3.6'.
+ *
+ * @param serverVersion the serverVersion value to set
+ * @return the ApiProperties object itself.
+ */
+ public ApiProperties withServerVersion(ServerVersion serverVersion) {
+ this.serverVersion = serverVersion;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AutoUpgradePolicyResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AutoUpgradePolicyResource.java
new file mode 100644
index 000000000000..a1e9e59fb409
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AutoscaleSettings.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AutoscaleSettings.java
new file mode 100644
index 000000000000..cbfac4fbeedc
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AutoscaleSettings.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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The AutoscaleSettings model.
+ */
+public class AutoscaleSettings {
+ /**
+ * Represents maximum throughput, the resource can scale up to.
+ */
+ @JsonProperty(value = "maxThroughput")
+ private Integer maxThroughput;
+
+ /**
+ * Get represents maximum throughput, the resource can scale up to.
+ *
+ * @return the maxThroughput value
+ */
+ public Integer maxThroughput() {
+ return this.maxThroughput;
+ }
+
+ /**
+ * Set represents maximum throughput, the resource can scale up to.
+ *
+ * @param maxThroughput the maxThroughput value to set
+ * @return the AutoscaleSettings object itself.
+ */
+ public AutoscaleSettings withMaxThroughput(Integer maxThroughput) {
+ this.maxThroughput = maxThroughput;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AutoscaleSettingsResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AutoscaleSettingsResource.java
new file mode 100644
index 000000000000..314336a43010
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AutoscaleSettingsResource.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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB provisioned throughput settings object.
+ */
+public class AutoscaleSettingsResource {
+ /**
+ * Represents maximum throughput container can scale up to.
+ */
+ @JsonProperty(value = "maxThroughput", required = true)
+ private int maxThroughput;
+
+ /**
+ * Cosmos DB resource auto-upgrade policy.
+ */
+ @JsonProperty(value = "autoUpgradePolicy")
+ private AutoUpgradePolicyResource autoUpgradePolicy;
+
+ /**
+ * Represents target maximum throughput container can scale up to once
+ * offer is no longer in pending state.
+ */
+ @JsonProperty(value = "targetMaxThroughput", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer targetMaxThroughput;
+
+ /**
+ * Get represents maximum throughput container can scale up to.
+ *
+ * @return the maxThroughput value
+ */
+ public int maxThroughput() {
+ return this.maxThroughput;
+ }
+
+ /**
+ * Set represents maximum throughput container can scale up to.
+ *
+ * @param maxThroughput the maxThroughput value to set
+ * @return the AutoscaleSettingsResource object itself.
+ */
+ public AutoscaleSettingsResource 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 AutoscaleSettingsResource object itself.
+ */
+ public AutoscaleSettingsResource withAutoUpgradePolicy(AutoUpgradePolicyResource autoUpgradePolicy) {
+ this.autoUpgradePolicy = autoUpgradePolicy;
+ return this;
+ }
+
+ /**
+ * Get represents target maximum throughput container can scale up to once offer is no longer in pending state.
+ *
+ * @return the targetMaxThroughput value
+ */
+ public Integer targetMaxThroughput() {
+ return this.targetMaxThroughput;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AzureEntityResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AzureEntityResource.java
new file mode 100644
index 000000000000..67f7ee396e4a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/AzureEntityResource.java
@@ -0,0 +1,35 @@
+/**
+ * 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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Entity Resource.
+ * The resource model definition for an 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/BackupPolicy.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/BackupPolicy.java
new file mode 100644
index 000000000000..7aca9bed9625
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/BackupPolicy.java
@@ -0,0 +1,25 @@
+/**
+ * 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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * The object representing the policy for taking backups on an account.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = BackupPolicy.class)
+@JsonTypeName("BackupPolicy")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Periodic", value = PeriodicModeBackupPolicy.class),
+ @JsonSubTypes.Type(name = "Continuous", value = ContinuousModeBackupPolicy.class)
+})
+public class BackupPolicy {
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/BackupPolicyType.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/BackupPolicyType.java
new file mode 100644
index 000000000000..599d2e93f848
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/BackupPolicyType.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.v2020_09_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BackupPolicyType.
+ */
+public final class BackupPolicyType extends ExpandableStringEnum {
+ /** Static value Periodic for BackupPolicyType. */
+ public static final BackupPolicyType PERIODIC = fromString("Periodic");
+
+ /** Static value Continuous for BackupPolicyType. */
+ public static final BackupPolicyType CONTINUOUS = fromString("Continuous");
+
+ /**
+ * Creates or finds a BackupPolicyType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BackupPolicyType
+ */
+ @JsonCreator
+ public static BackupPolicyType fromString(String name) {
+ return fromString(name, BackupPolicyType.class);
+ }
+
+ /**
+ * @return known BackupPolicyType values
+ */
+ public static Collection values() {
+ return values(BackupPolicyType.class);
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Capability.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Capability.java
new file mode 100644
index 000000000000..99a6f42ec698
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceCreateUpdateParameters.java
new file mode 100644
index 000000000000..22379195f540
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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")
+ 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceGetPropertiesOptions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceGetPropertiesOptions.java
new file mode 100644
index 000000000000..7ec647be76de
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceGetPropertiesOptions.java
@@ -0,0 +1,16 @@
+/**
+ * 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.v2020_09_01;
+
+
+/**
+ * The CassandraKeyspaceGetPropertiesOptions model.
+ */
+public class CassandraKeyspaceGetPropertiesOptions extends OptionsResource {
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceGetPropertiesResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceGetPropertiesResource.java
new file mode 100644
index 000000000000..2a1ccd283a65
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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 Double _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 Double _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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceGetResults.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceGetResults.java
new file mode 100644
index 000000000000..7c8f55a09706
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceGetResults.java
@@ -0,0 +1,181 @@
+/**
+ * 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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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.v2020_09_01.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 options value.
+ */
+ CassandraKeyspaceGetPropertiesOptions options();
+
+ /**
+ * @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.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 The name of the resource group. The name is case insensitive
+ * @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
+ */
+ WithResource withLocation(String location);
+ }
+
+ /**
+ * 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 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
+ */
+ WithCreate withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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.WithOptions, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a CassandraKeyspaceGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithOptions, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of CassandraKeyspaceGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the cassandrakeyspacegetresults update 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 update stage
+ */
+ Update withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraKeyspaceResource.java
new file mode 100644
index 000000000000..7ab058776ec2
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraPartitionKey.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraPartitionKey.java
new file mode 100644
index 000000000000..a34146a1216c
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraResources.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraResources.java
new file mode 100644
index 000000000000..c5b4149d5a2d
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraResources.java
@@ -0,0 +1,195 @@
+/**
+ * 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.v2020_09_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.CassandraKeyspaceGetResults;
+import rx.Completable;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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);
+
+ /**
+ * Migrate an Azure Cosmos DB Cassandra Keyspace from manual throughput to autoscale.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 migrateCassandraKeyspaceToAutoscaleAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Migrate an Azure Cosmos DB Cassandra Keyspace from autoscale to manual throughput.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 migrateCassandraKeyspaceToManualThroughputAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Gets the RUs per second of the Cassandra table under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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);
+
+ /**
+ * Migrate an Azure Cosmos DB Cassandra table from manual throughput to autoscale.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 migrateCassandraTableToAutoscaleAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName);
+
+ /**
+ * Migrate an Azure Cosmos DB Cassandra table from autoscale to manual throughput.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 migrateCassandraTableToManualThroughputAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName);
+
+ /**
+ * Gets the Cassandra table under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraSchema.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraSchema.java
new file mode 100644
index 000000000000..114e97374d64
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableCreateUpdateParameters.java
new file mode 100644
index 000000000000..4b93529a9b80
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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")
+ 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetPropertiesOptions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetPropertiesOptions.java
new file mode 100644
index 000000000000..248925902487
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetPropertiesOptions.java
@@ -0,0 +1,16 @@
+/**
+ * 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.v2020_09_01;
+
+
+/**
+ * The CassandraTableGetPropertiesOptions model.
+ */
+public class CassandraTableGetPropertiesOptions extends OptionsResource {
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetPropertiesResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetPropertiesResource.java
new file mode 100644
index 000000000000..81250dad0fbd
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetPropertiesResource.java
@@ -0,0 +1,168 @@
+/**
+ * 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.v2020_09_01;
+
+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;
+
+ /**
+ * Analytical TTL.
+ */
+ @JsonProperty(value = "analyticalStorageTtl")
+ private Integer analyticalStorageTtl;
+
+ /**
+ * 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 Double _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 analytical TTL.
+ *
+ * @return the analyticalStorageTtl value
+ */
+ public Integer analyticalStorageTtl() {
+ return this.analyticalStorageTtl;
+ }
+
+ /**
+ * Set analytical TTL.
+ *
+ * @param analyticalStorageTtl the analyticalStorageTtl value to set
+ * @return the CassandraTableGetPropertiesResource object itself.
+ */
+ public CassandraTableGetPropertiesResource withAnalyticalStorageTtl(Integer analyticalStorageTtl) {
+ this.analyticalStorageTtl = analyticalStorageTtl;
+ 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 Double _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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetResults.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetResults.java
new file mode 100644
index 000000000000..a2c458728ffe
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableGetResults.java
@@ -0,0 +1,182 @@
+/**
+ * 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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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.v2020_09_01.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 options value.
+ */
+ CassandraTableGetPropertiesOptions options();
+
+ /**
+ * @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.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 The name of the resource group. The name is case insensitive
+ * @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
+ */
+ WithResource withLocation(String location);
+ }
+
+ /**
+ * 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 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
+ */
+ WithCreate withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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.WithOptions, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a CassandraTableGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithOptions, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of CassandraTableGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the cassandratablegetresults update 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 update stage
+ */
+ Update withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableResource.java
new file mode 100644
index 000000000000..4979c028838f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CassandraTableResource.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.v2020_09_01;
+
+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;
+
+ /**
+ * Analytical TTL.
+ */
+ @JsonProperty(value = "analyticalStorageTtl")
+ private Integer analyticalStorageTtl;
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get analytical TTL.
+ *
+ * @return the analyticalStorageTtl value
+ */
+ public Integer analyticalStorageTtl() {
+ return this.analyticalStorageTtl;
+ }
+
+ /**
+ * Set analytical TTL.
+ *
+ * @param analyticalStorageTtl the analyticalStorageTtl value to set
+ * @return the CassandraTableResource object itself.
+ */
+ public CassandraTableResource withAnalyticalStorageTtl(Integer analyticalStorageTtl) {
+ this.analyticalStorageTtl = analyticalStorageTtl;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ClusterKey.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ClusterKey.java
new file mode 100644
index 000000000000..fb81c437d07b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionDatabasisDatabaseAccountMetric.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionDatabasisDatabaseAccountMetric.java
new file mode 100644
index 000000000000..5260439ca7c5
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionDatabasisDatabaseAccountMetricDefinition.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionDatabasisDatabaseAccountMetricDefinition.java
new file mode 100644
index 000000000000..70af163c47b3
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionDatabasisDatabaseAccountMetricModel.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionDatabasisDatabaseAccountMetricModel.java
new file mode 100644
index 000000000000..07e88f53d140
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionDatabasisDatabaseAccountUsage.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionDatabasisDatabaseAccountUsage.java
new file mode 100644
index 000000000000..d5b02156c0d4
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionPartitionRegions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionPartitionRegions.java
new file mode 100644
index 000000000000..02b120000d14
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionPartitions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionPartitions.java
new file mode 100644
index 000000000000..cab7b3b11089
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionRegions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CollectionRegions.java
new file mode 100644
index 000000000000..2f9a9d3cbde2
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Collections.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Collections.java
new file mode 100644
index 000000000000..bc8b69b5f54c
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.CollectionDatabasisDatabaseAccountMetricDefinition;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.CollectionDatabasisDatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.CollectionDatabasisDatabaseAccountUsage;
+
+/**
+ * Type representing Collections.
+ */
+public interface Collections {
+ /**
+ * Retrieves metric definitions for the given collection.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Column.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Column.java
new file mode 100644
index 000000000000..b8400136391e
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CompositePath.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CompositePath.java
new file mode 100644
index 000000000000..64ef024e8f3d
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CompositePathSortOrder.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CompositePathSortOrder.java
new file mode 100644
index 000000000000..deba35d7fdac
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ConflictResolutionMode.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ConflictResolutionMode.java
new file mode 100644
index 000000000000..5d9bef06182b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ConflictResolutionPolicy.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ConflictResolutionPolicy.java
new file mode 100644
index 000000000000..d879f278a515
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ConnectorOffer.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ConnectorOffer.java
new file mode 100644
index 000000000000..70811f689733
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ConsistencyPolicy.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ConsistencyPolicy.java
new file mode 100644
index 000000000000..7b23dbd7dd53
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ContainerPartitionKey.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ContainerPartitionKey.java
new file mode 100644
index 000000000000..d08dd73c7720
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ContinuousModeBackupPolicy.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ContinuousModeBackupPolicy.java
new file mode 100644
index 000000000000..6b0722a07b35
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ContinuousModeBackupPolicy.java
@@ -0,0 +1,20 @@
+/**
+ * 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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The object representing continuous mode backup policy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = ContinuousModeBackupPolicy.class)
+@JsonTypeName("Continuous")
+public class ContinuousModeBackupPolicy extends BackupPolicy {
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CorsPolicy.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CorsPolicy.java
new file mode 100644
index 000000000000..472809e79971
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CorsPolicy.java
@@ -0,0 +1,152 @@
+/**
+ * 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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The CORS policy for the Cosmos DB database account.
+ */
+public class CorsPolicy {
+ /**
+ * The origin domains that are permitted to make a request against the
+ * service via CORS.
+ */
+ @JsonProperty(value = "allowedOrigins", required = true)
+ private String allowedOrigins;
+
+ /**
+ * The methods (HTTP request verbs) that the origin domain may use for a
+ * CORS request.
+ */
+ @JsonProperty(value = "allowedMethods")
+ private String allowedMethods;
+
+ /**
+ * The request headers that the origin domain may specify on the CORS
+ * request.
+ */
+ @JsonProperty(value = "allowedHeaders")
+ private String allowedHeaders;
+
+ /**
+ * The response headers that may be sent in the response to the CORS
+ * request and exposed by the browser to the request issuer.
+ */
+ @JsonProperty(value = "exposedHeaders")
+ private String exposedHeaders;
+
+ /**
+ * The maximum amount time that a browser should cache the preflight
+ * OPTIONS request.
+ */
+ @JsonProperty(value = "maxAgeInSeconds")
+ private Long maxAgeInSeconds;
+
+ /**
+ * Get the origin domains that are permitted to make a request against the service via CORS.
+ *
+ * @return the allowedOrigins value
+ */
+ public String allowedOrigins() {
+ return this.allowedOrigins;
+ }
+
+ /**
+ * Set the origin domains that are permitted to make a request against the service via CORS.
+ *
+ * @param allowedOrigins the allowedOrigins value to set
+ * @return the CorsPolicy object itself.
+ */
+ public CorsPolicy withAllowedOrigins(String allowedOrigins) {
+ this.allowedOrigins = allowedOrigins;
+ return this;
+ }
+
+ /**
+ * Get the methods (HTTP request verbs) that the origin domain may use for a CORS request.
+ *
+ * @return the allowedMethods value
+ */
+ public String allowedMethods() {
+ return this.allowedMethods;
+ }
+
+ /**
+ * Set the methods (HTTP request verbs) that the origin domain may use for a CORS request.
+ *
+ * @param allowedMethods the allowedMethods value to set
+ * @return the CorsPolicy object itself.
+ */
+ public CorsPolicy withAllowedMethods(String allowedMethods) {
+ this.allowedMethods = allowedMethods;
+ return this;
+ }
+
+ /**
+ * Get the request headers that the origin domain may specify on the CORS request.
+ *
+ * @return the allowedHeaders value
+ */
+ public String allowedHeaders() {
+ return this.allowedHeaders;
+ }
+
+ /**
+ * Set the request headers that the origin domain may specify on the CORS request.
+ *
+ * @param allowedHeaders the allowedHeaders value to set
+ * @return the CorsPolicy object itself.
+ */
+ public CorsPolicy withAllowedHeaders(String allowedHeaders) {
+ this.allowedHeaders = allowedHeaders;
+ return this;
+ }
+
+ /**
+ * Get the response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer.
+ *
+ * @return the exposedHeaders value
+ */
+ public String exposedHeaders() {
+ return this.exposedHeaders;
+ }
+
+ /**
+ * Set the response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer.
+ *
+ * @param exposedHeaders the exposedHeaders value to set
+ * @return the CorsPolicy object itself.
+ */
+ public CorsPolicy withExposedHeaders(String exposedHeaders) {
+ this.exposedHeaders = exposedHeaders;
+ return this;
+ }
+
+ /**
+ * Get the maximum amount time that a browser should cache the preflight OPTIONS request.
+ *
+ * @return the maxAgeInSeconds value
+ */
+ public Long maxAgeInSeconds() {
+ return this.maxAgeInSeconds;
+ }
+
+ /**
+ * Set the maximum amount time that a browser should cache the preflight OPTIONS request.
+ *
+ * @param maxAgeInSeconds the maxAgeInSeconds value to set
+ * @return the CorsPolicy object itself.
+ */
+ public CorsPolicy withMaxAgeInSeconds(Long maxAgeInSeconds) {
+ this.maxAgeInSeconds = maxAgeInSeconds;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CreateUpdateOptions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CreateUpdateOptions.java
new file mode 100644
index 000000000000..6a5e5a3d3a11
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/CreateUpdateOptions.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.v2020_09_01;
+
+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 {
+ /**
+ * Request Units per second. For example, "throughput": 10000.
+ */
+ @JsonProperty(value = "throughput")
+ private Integer throughput;
+
+ /**
+ * Specifies the Autoscale settings.
+ */
+ @JsonProperty(value = "autoscaleSettings")
+ private AutoscaleSettings autoscaleSettings;
+
+ /**
+ * Get request Units per second. For example, "throughput": 10000.
+ *
+ * @return the throughput value
+ */
+ public Integer 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(Integer throughput) {
+ this.throughput = throughput;
+ return this;
+ }
+
+ /**
+ * Get specifies the Autoscale settings.
+ *
+ * @return the autoscaleSettings value
+ */
+ public AutoscaleSettings autoscaleSettings() {
+ return this.autoscaleSettings;
+ }
+
+ /**
+ * Set specifies the Autoscale settings.
+ *
+ * @param autoscaleSettings the autoscaleSettings value to set
+ * @return the CreateUpdateOptions object itself.
+ */
+ public CreateUpdateOptions withAutoscaleSettings(AutoscaleSettings autoscaleSettings) {
+ this.autoscaleSettings = autoscaleSettings;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DataType.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DataType.java
new file mode 100644
index 000000000000..4f6af8c16989
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountConnectionString.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountConnectionString.java
new file mode 100644
index 000000000000..110dee912d7f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountCreateUpdateParameters.java
new file mode 100644
index 000000000000..1acde4995e9a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountCreateUpdateParameters.java
@@ -0,0 +1,557 @@
+/**
+ * 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.v2020_09_01;
+
+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;
+
+ /**
+ * List of IpRules.
+ */
+ @JsonProperty(value = "properties.ipRules")
+ private List ipRules;
+
+ /**
+ * 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;
+
+ /**
+ * Whether requests from Public Network are allowed. Possible values
+ * include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /**
+ * Flag to indicate whether Free Tier is enabled.
+ */
+ @JsonProperty(value = "properties.enableFreeTier")
+ private Boolean enableFreeTier;
+
+ /**
+ * API specific properties. Currently, supported only for MongoDB API.
+ */
+ @JsonProperty(value = "properties.apiProperties")
+ private ApiProperties apiProperties;
+
+ /**
+ * Flag to indicate whether to enable storage analytics.
+ */
+ @JsonProperty(value = "properties.enableAnalyticalStorage")
+ private Boolean enableAnalyticalStorage;
+
+ /**
+ * The object representing the policy for taking backups on an account.
+ */
+ @JsonProperty(value = "properties.backupPolicy")
+ private BackupPolicy backupPolicy;
+
+ /**
+ * The CORS policy for the Cosmos DB database account.
+ */
+ @JsonProperty(value = "properties.cors")
+ private List cors;
+
+ /**
+ * 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 list of IpRules.
+ *
+ * @return the ipRules value
+ */
+ public List ipRules() {
+ return this.ipRules;
+ }
+
+ /**
+ * Set list of IpRules.
+ *
+ * @param ipRules the ipRules value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withIpRules(List ipRules) {
+ this.ipRules = ipRules;
+ 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;
+ }
+
+ /**
+ * Get whether requests from Public Network are allowed. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the publicNetworkAccess value
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set whether requests from Public Network are allowed. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether Free Tier is enabled.
+ *
+ * @return the enableFreeTier value
+ */
+ public Boolean enableFreeTier() {
+ return this.enableFreeTier;
+ }
+
+ /**
+ * Set flag to indicate whether Free Tier is enabled.
+ *
+ * @param enableFreeTier the enableFreeTier value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withEnableFreeTier(Boolean enableFreeTier) {
+ this.enableFreeTier = enableFreeTier;
+ return this;
+ }
+
+ /**
+ * Get aPI specific properties. Currently, supported only for MongoDB API.
+ *
+ * @return the apiProperties value
+ */
+ public ApiProperties apiProperties() {
+ return this.apiProperties;
+ }
+
+ /**
+ * Set aPI specific properties. Currently, supported only for MongoDB API.
+ *
+ * @param apiProperties the apiProperties value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withApiProperties(ApiProperties apiProperties) {
+ this.apiProperties = apiProperties;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether to enable storage analytics.
+ *
+ * @return the enableAnalyticalStorage value
+ */
+ public Boolean enableAnalyticalStorage() {
+ return this.enableAnalyticalStorage;
+ }
+
+ /**
+ * Set flag to indicate whether to enable storage analytics.
+ *
+ * @param enableAnalyticalStorage the enableAnalyticalStorage value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withEnableAnalyticalStorage(Boolean enableAnalyticalStorage) {
+ this.enableAnalyticalStorage = enableAnalyticalStorage;
+ return this;
+ }
+
+ /**
+ * Get the object representing the policy for taking backups on an account.
+ *
+ * @return the backupPolicy value
+ */
+ public BackupPolicy backupPolicy() {
+ return this.backupPolicy;
+ }
+
+ /**
+ * Set the object representing the policy for taking backups on an account.
+ *
+ * @param backupPolicy the backupPolicy value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withBackupPolicy(BackupPolicy backupPolicy) {
+ this.backupPolicy = backupPolicy;
+ return this;
+ }
+
+ /**
+ * Get the CORS policy for the Cosmos DB database account.
+ *
+ * @return the cors value
+ */
+ public List cors() {
+ return this.cors;
+ }
+
+ /**
+ * Set the CORS policy for the Cosmos DB database account.
+ *
+ * @param cors the cors value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withCors(List cors) {
+ this.cors = cors;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountGetResults.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountGetResults.java
new file mode 100644
index 000000000000..1666cbc0e11f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountGetResults.java
@@ -0,0 +1,655 @@
+/**
+ * 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.v2020_09_01;
+
+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.v2020_09_01.implementation.CosmosDBManager;
+import java.util.List;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.DatabaseAccountGetResultsInner;
+
+/**
+ * Type representing DatabaseAccountGetResults.
+ */
+public interface DatabaseAccountGetResults extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the apiProperties value.
+ */
+ ApiProperties apiProperties();
+
+ /**
+ * @return the backupPolicy value.
+ */
+ BackupPolicy backupPolicy();
+
+ /**
+ * @return the capabilities value.
+ */
+ List capabilities();
+
+ /**
+ * @return the connectorOffer value.
+ */
+ ConnectorOffer connectorOffer();
+
+ /**
+ * @return the consistencyPolicy value.
+ */
+ ConsistencyPolicy consistencyPolicy();
+
+ /**
+ * @return the cors value.
+ */
+ List cors();
+
+ /**
+ * @return the databaseAccountOfferType value.
+ */
+ DatabaseAccountOfferType databaseAccountOfferType();
+
+ /**
+ * @return the disableKeyBasedMetadataWriteAccess value.
+ */
+ Boolean disableKeyBasedMetadataWriteAccess();
+
+ /**
+ * @return the documentEndpoint value.
+ */
+ String documentEndpoint();
+
+ /**
+ * @return the enableAnalyticalStorage value.
+ */
+ Boolean enableAnalyticalStorage();
+
+ /**
+ * @return the enableAutomaticFailover value.
+ */
+ Boolean enableAutomaticFailover();
+
+ /**
+ * @return the enableCassandraConnector value.
+ */
+ Boolean enableCassandraConnector();
+
+ /**
+ * @return the enableFreeTier value.
+ */
+ Boolean enableFreeTier();
+
+ /**
+ * @return the enableMultipleWriteLocations value.
+ */
+ Boolean enableMultipleWriteLocations();
+
+ /**
+ * @return the failoverPolicies value.
+ */
+ List failoverPolicies();
+
+ /**
+ * @return the ipRules value.
+ */
+ List ipRules();
+
+ /**
+ * @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 privateEndpointConnections value.
+ */
+ List privateEndpointConnections();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the publicNetworkAccess value.
+ */
+ PublicNetworkAccess publicNetworkAccess();
+
+ /**
+ * @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 ApiProperties.
+ */
+ interface WithApiProperties {
+ /**
+ * Specifies apiProperties.
+ * @param apiProperties API specific properties. Currently, supported only for MongoDB API
+ * @return the next definition stage
+ */
+ WithCreate withApiProperties(ApiProperties apiProperties);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults definition allowing to specify BackupPolicy.
+ */
+ interface WithBackupPolicy {
+ /**
+ * Specifies backupPolicy.
+ * @param backupPolicy The object representing the policy for taking backups on an account
+ * @return the next definition stage
+ */
+ WithCreate withBackupPolicy(BackupPolicy backupPolicy);
+ }
+
+ /**
+ * 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 Cors.
+ */
+ interface WithCors {
+ /**
+ * Specifies cors.
+ * @param cors The CORS policy for the Cosmos DB database account
+ * @return the next definition stage
+ */
+ WithCreate withCors(List cors);
+ }
+
+ /**
+ * 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 EnableAnalyticalStorage.
+ */
+ interface WithEnableAnalyticalStorage {
+ /**
+ * Specifies enableAnalyticalStorage.
+ * @param enableAnalyticalStorage Flag to indicate whether to enable storage analytics
+ * @return the next definition stage
+ */
+ WithCreate withEnableAnalyticalStorage(Boolean enableAnalyticalStorage);
+ }
+
+ /**
+ * 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 EnableFreeTier.
+ */
+ interface WithEnableFreeTier {
+ /**
+ * Specifies enableFreeTier.
+ * @param enableFreeTier Flag to indicate whether Free Tier is enabled
+ * @return the next definition stage
+ */
+ WithCreate withEnableFreeTier(Boolean enableFreeTier);
+ }
+
+ /**
+ * 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 IpRules.
+ */
+ interface WithIpRules {
+ /**
+ * Specifies ipRules.
+ * @param ipRules List of IpRules
+ * @return the next definition stage
+ */
+ WithCreate withIpRules(List ipRules);
+ }
+
+ /**
+ * 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 PublicNetworkAccess.
+ */
+ interface WithPublicNetworkAccess {
+ /**
+ * Specifies publicNetworkAccess.
+ * @param publicNetworkAccess Whether requests from Public Network are allowed. Possible values include: 'Enabled', 'Disabled'
+ * @return the next definition stage
+ */
+ WithCreate withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess);
+ }
+
+ /**
+ * 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.WithApiProperties, DefinitionStages.WithBackupPolicy, DefinitionStages.WithCapabilities, DefinitionStages.WithConnectorOffer, DefinitionStages.WithConsistencyPolicy, DefinitionStages.WithCors, DefinitionStages.WithDisableKeyBasedMetadataWriteAccess, DefinitionStages.WithEnableAnalyticalStorage, DefinitionStages.WithEnableAutomaticFailover, DefinitionStages.WithEnableCassandraConnector, DefinitionStages.WithEnableFreeTier, DefinitionStages.WithEnableMultipleWriteLocations, DefinitionStages.WithIpRules, DefinitionStages.WithIsVirtualNetworkFilterEnabled, DefinitionStages.WithKeyVaultKeyUri, DefinitionStages.WithKind, DefinitionStages.WithPublicNetworkAccess, DefinitionStages.WithVirtualNetworkRules {
+ }
+ }
+ /**
+ * The template for a DatabaseAccountGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithApiProperties, UpdateStages.WithBackupPolicy, UpdateStages.WithCapabilities, UpdateStages.WithConnectorOffer, UpdateStages.WithConsistencyPolicy, UpdateStages.WithCors, UpdateStages.WithDisableKeyBasedMetadataWriteAccess, UpdateStages.WithEnableAnalyticalStorage, UpdateStages.WithEnableAutomaticFailover, UpdateStages.WithEnableCassandraConnector, UpdateStages.WithEnableFreeTier, UpdateStages.WithEnableMultipleWriteLocations, UpdateStages.WithIpRules, UpdateStages.WithIsVirtualNetworkFilterEnabled, UpdateStages.WithKeyVaultKeyUri, UpdateStages.WithLocations, UpdateStages.WithPublicNetworkAccess, UpdateStages.WithVirtualNetworkRules {
+ }
+
+ /**
+ * Grouping of DatabaseAccountGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify ApiProperties.
+ */
+ interface WithApiProperties {
+ /**
+ * Specifies apiProperties.
+ * @param apiProperties API specific properties. Currently, supported only for MongoDB API
+ * @return the next update stage
+ */
+ Update withApiProperties(ApiProperties apiProperties);
+ }
+
+ /**
+ * The stage of the databaseaccountgetresults update allowing to specify BackupPolicy.
+ */
+ interface WithBackupPolicy {
+ /**
+ * Specifies backupPolicy.
+ * @param backupPolicy The object representing the policy for taking backups on an account
+ * @return the next update stage
+ */
+ Update withBackupPolicy(BackupPolicy backupPolicy);
+ }
+
+ /**
+ * 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 Cors.
+ */
+ interface WithCors {
+ /**
+ * Specifies cors.
+ * @param cors The CORS policy for the Cosmos DB database account
+ * @return the next update stage
+ */
+ Update withCors(List cors);
+ }
+
+ /**
+ * 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 EnableAnalyticalStorage.
+ */
+ interface WithEnableAnalyticalStorage {
+ /**
+ * Specifies enableAnalyticalStorage.
+ * @param enableAnalyticalStorage Flag to indicate whether to enable storage analytics
+ * @return the next update stage
+ */
+ Update withEnableAnalyticalStorage(Boolean enableAnalyticalStorage);
+ }
+
+ /**
+ * 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 EnableFreeTier.
+ */
+ interface WithEnableFreeTier {
+ /**
+ * Specifies enableFreeTier.
+ * @param enableFreeTier Flag to indicate whether Free Tier is enabled
+ * @return the next update stage
+ */
+ Update withEnableFreeTier(Boolean enableFreeTier);
+ }
+
+ /**
+ * 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 IpRules.
+ */
+ interface WithIpRules {
+ /**
+ * Specifies ipRules.
+ * @param ipRules List of IpRules
+ * @return the next update stage
+ */
+ Update withIpRules(List ipRules);
+ }
+
+ /**
+ * 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 PublicNetworkAccess.
+ */
+ interface WithPublicNetworkAccess {
+ /**
+ * Specifies publicNetworkAccess.
+ * @param publicNetworkAccess Whether requests from Public Network are allowed. Possible values include: 'Enabled', 'Disabled'
+ * @return the next update stage
+ */
+ Update withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess);
+ }
+
+ /**
+ * 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountKind.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountKind.java
new file mode 100644
index 000000000000..ac4b23bde9c6
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountListConnectionStringsResult.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountListConnectionStringsResult.java
new file mode 100644
index 000000000000..04c5710b5258
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountListKeysResult.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountListKeysResult.java
new file mode 100644
index 000000000000..e47bf823d7a3
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountListReadOnlyKeysResult.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountListReadOnlyKeysResult.java
new file mode 100644
index 000000000000..911417c4ee1b
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountMetric.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountMetric.java
new file mode 100644
index 000000000000..852d3f0bd5d6
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountMetricDefinition.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountMetricDefinition.java
new file mode 100644
index 000000000000..9cd24aea523c
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountOfferType.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountOfferType.java
new file mode 100644
index 000000000000..007ef0af1e81
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountRegenerateKeyParameters.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountRegenerateKeyParameters.java
new file mode 100644
index 000000000000..d882ad64655c
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountRegions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountRegions.java
new file mode 100644
index 000000000000..d676e6218340
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountUpdateParameters.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountUpdateParameters.java
new file mode 100644
index 000000000000..a18347dadc34
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountUpdateParameters.java
@@ -0,0 +1,548 @@
+/**
+ * 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.v2020_09_01;
+
+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;
+
+ /**
+ * List of IpRules.
+ */
+ @JsonProperty(value = "properties.ipRules")
+ private List ipRules;
+
+ /**
+ * 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;
+
+ /**
+ * Whether requests from Public Network are allowed. Possible values
+ * include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /**
+ * Flag to indicate whether Free Tier is enabled.
+ */
+ @JsonProperty(value = "properties.enableFreeTier")
+ private Boolean enableFreeTier;
+
+ /**
+ * API specific properties. Currently, supported only for MongoDB API.
+ */
+ @JsonProperty(value = "properties.apiProperties")
+ private ApiProperties apiProperties;
+
+ /**
+ * Flag to indicate whether to enable storage analytics.
+ */
+ @JsonProperty(value = "properties.enableAnalyticalStorage")
+ private Boolean enableAnalyticalStorage;
+
+ /**
+ * The object representing the policy for taking backups on an account.
+ */
+ @JsonProperty(value = "properties.backupPolicy")
+ private BackupPolicy backupPolicy;
+
+ /**
+ * The CORS policy for the Cosmos DB database account.
+ */
+ @JsonProperty(value = "properties.cors")
+ private List cors;
+
+ /**
+ * 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 list of IpRules.
+ *
+ * @return the ipRules value
+ */
+ public List ipRules() {
+ return this.ipRules;
+ }
+
+ /**
+ * Set list of IpRules.
+ *
+ * @param ipRules the ipRules value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withIpRules(List ipRules) {
+ this.ipRules = ipRules;
+ 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;
+ }
+
+ /**
+ * Get whether requests from Public Network are allowed. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the publicNetworkAccess value
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set whether requests from Public Network are allowed. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether Free Tier is enabled.
+ *
+ * @return the enableFreeTier value
+ */
+ public Boolean enableFreeTier() {
+ return this.enableFreeTier;
+ }
+
+ /**
+ * Set flag to indicate whether Free Tier is enabled.
+ *
+ * @param enableFreeTier the enableFreeTier value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withEnableFreeTier(Boolean enableFreeTier) {
+ this.enableFreeTier = enableFreeTier;
+ return this;
+ }
+
+ /**
+ * Get aPI specific properties. Currently, supported only for MongoDB API.
+ *
+ * @return the apiProperties value
+ */
+ public ApiProperties apiProperties() {
+ return this.apiProperties;
+ }
+
+ /**
+ * Set aPI specific properties. Currently, supported only for MongoDB API.
+ *
+ * @param apiProperties the apiProperties value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withApiProperties(ApiProperties apiProperties) {
+ this.apiProperties = apiProperties;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether to enable storage analytics.
+ *
+ * @return the enableAnalyticalStorage value
+ */
+ public Boolean enableAnalyticalStorage() {
+ return this.enableAnalyticalStorage;
+ }
+
+ /**
+ * Set flag to indicate whether to enable storage analytics.
+ *
+ * @param enableAnalyticalStorage the enableAnalyticalStorage value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withEnableAnalyticalStorage(Boolean enableAnalyticalStorage) {
+ this.enableAnalyticalStorage = enableAnalyticalStorage;
+ return this;
+ }
+
+ /**
+ * Get the object representing the policy for taking backups on an account.
+ *
+ * @return the backupPolicy value
+ */
+ public BackupPolicy backupPolicy() {
+ return this.backupPolicy;
+ }
+
+ /**
+ * Set the object representing the policy for taking backups on an account.
+ *
+ * @param backupPolicy the backupPolicy value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withBackupPolicy(BackupPolicy backupPolicy) {
+ this.backupPolicy = backupPolicy;
+ return this;
+ }
+
+ /**
+ * Get the CORS policy for the Cosmos DB database account.
+ *
+ * @return the cors value
+ */
+ public List cors() {
+ return this.cors;
+ }
+
+ /**
+ * Set the CORS policy for the Cosmos DB database account.
+ *
+ * @param cors the cors value to set
+ * @return the DatabaseAccountUpdateParameters object itself.
+ */
+ public DatabaseAccountUpdateParameters withCors(List cors) {
+ this.cors = cors;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountUsage.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccountUsage.java
new file mode 100644
index 000000000000..b0ff27c41265
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccounts.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabaseAccounts.java
new file mode 100644
index 000000000000..49c8a5089d89
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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.v2020_09_01.implementation.DatabaseAccountsInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.DatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.DatabaseAccountUsage;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Databases.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Databases.java
new file mode 100644
index 000000000000..7ad51794c1a7
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.DatabasisDatabaseAccountMetricDefinition;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.DatabasisDatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.DatabasisDatabaseAccountUsage;
+
+/**
+ * Type representing Databases.
+ */
+public interface Databases {
+ /**
+ * Retrieves metric definitions for the given database.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabasisDatabaseAccountMetric.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabasisDatabaseAccountMetric.java
new file mode 100644
index 000000000000..40866c515a4d
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabasisDatabaseAccountMetricDefinition.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabasisDatabaseAccountMetricDefinition.java
new file mode 100644
index 000000000000..c6d1f2f00021
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabasisDatabaseAccountUsage.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DatabasisDatabaseAccountUsage.java
new file mode 100644
index 000000000000..79bcc68edb64
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DefaultConsistencyLevel.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/DefaultConsistencyLevel.java
new file mode 100644
index 000000000000..419aea5cb97c
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponse.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponse.java
new file mode 100644
index 000000000000..e537eb05f7cb
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponseException.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponseException.java
new file mode 100644
index 000000000000..7d47dd5c381e
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponseUpdatedFormat.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponseUpdatedFormat.java
new file mode 100644
index 000000000000..ec69725c167a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponseUpdatedFormat.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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An error response from the service.
+ */
+public class ErrorResponseUpdatedFormat {
+ /**
+ * The error property.
+ */
+ @JsonProperty(value = "error")
+ private ErrorResponse error;
+
+ /**
+ * Get the error value.
+ *
+ * @return the error value
+ */
+ public ErrorResponse error() {
+ return this.error;
+ }
+
+ /**
+ * Set the error value.
+ *
+ * @param error the error value to set
+ * @return the ErrorResponseUpdatedFormat object itself.
+ */
+ public ErrorResponseUpdatedFormat withError(ErrorResponse error) {
+ this.error = error;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponseUpdatedFormatException.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponseUpdatedFormatException.java
new file mode 100644
index 000000000000..69547a366dac
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ErrorResponseUpdatedFormatException.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.v2020_09_01;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ErrorResponseUpdatedFormat
+ * information.
+ */
+public class ErrorResponseUpdatedFormatException extends RestException {
+ /**
+ * Initializes a new instance of the ErrorResponseUpdatedFormatException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ErrorResponseUpdatedFormatException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ErrorResponseUpdatedFormatException 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 ErrorResponseUpdatedFormatException(final String message, final Response response, final ErrorResponseUpdatedFormat body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ErrorResponseUpdatedFormat body() {
+ return (ErrorResponseUpdatedFormat) super.body();
+ }
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ExcludedPath.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ExcludedPath.java
new file mode 100644
index 000000000000..70ade64ca12e
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ExtendedResourceProperties.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/ExtendedResourceProperties.java
new file mode 100644
index 000000000000..46face624b2d
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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 Double _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 Double _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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/FailoverPolicies.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/FailoverPolicies.java
new file mode 100644
index 000000000000..1b7b9f51fb7a
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/FailoverPolicy.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/FailoverPolicy.java
new file mode 100644
index 000000000000..5cccb3746f14
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseCreateUpdateParameters.java
new file mode 100644
index 000000000000..978a252ae8f0
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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")
+ 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseGetPropertiesOptions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseGetPropertiesOptions.java
new file mode 100644
index 000000000000..5737ba85ca24
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseGetPropertiesOptions.java
@@ -0,0 +1,16 @@
+/**
+ * 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.v2020_09_01;
+
+
+/**
+ * The GremlinDatabaseGetPropertiesOptions model.
+ */
+public class GremlinDatabaseGetPropertiesOptions extends OptionsResource {
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseGetPropertiesResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseGetPropertiesResource.java
new file mode 100644
index 000000000000..bb87a432e1b4
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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 Double _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 Double _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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseGetResults.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseGetResults.java
new file mode 100644
index 000000000000..385eac553d0c
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseGetResults.java
@@ -0,0 +1,181 @@
+/**
+ * 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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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.v2020_09_01.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 options value.
+ */
+ GremlinDatabaseGetPropertiesOptions options();
+
+ /**
+ * @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.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 The name of the resource group. The name is case insensitive
+ * @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
+ */
+ WithResource withLocation(String location);
+ }
+
+ /**
+ * 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 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
+ */
+ WithCreate withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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.WithOptions, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a GremlinDatabaseGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithOptions, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of GremlinDatabaseGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the gremlindatabasegetresults update 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 update stage
+ */
+ Update withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinDatabaseResource.java
new file mode 100644
index 000000000000..a06524d9adcf
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphCreateUpdateParameters.java
new file mode 100644
index 000000000000..761eb59cc72e
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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")
+ 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphGetPropertiesOptions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphGetPropertiesOptions.java
new file mode 100644
index 000000000000..840bcc5f1de7
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphGetPropertiesOptions.java
@@ -0,0 +1,16 @@
+/**
+ * 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.v2020_09_01;
+
+
+/**
+ * The GremlinGraphGetPropertiesOptions model.
+ */
+public class GremlinGraphGetPropertiesOptions extends OptionsResource {
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphGetPropertiesResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphGetPropertiesResource.java
new file mode 100644
index 000000000000..887fc72e4e98
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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 Double _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 Double _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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphGetResults.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphGetResults.java
new file mode 100644
index 000000000000..21d5e11f0c77
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphGetResults.java
@@ -0,0 +1,182 @@
+/**
+ * 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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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.v2020_09_01.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 options value.
+ */
+ GremlinGraphGetPropertiesOptions options();
+
+ /**
+ * @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.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 The name of the resource group. The name is case insensitive
+ * @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
+ */
+ WithResource withLocation(String location);
+ }
+
+ /**
+ * 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 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
+ */
+ WithCreate withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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.WithOptions, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a GremlinGraphGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithOptions, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of GremlinGraphGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the gremlingraphgetresults update 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 update stage
+ */
+ Update withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinGraphResource.java
new file mode 100644
index 000000000000..02c409b6d69f
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinResources.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinResources.java
new file mode 100644
index 000000000000..141471accb42
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/GremlinResources.java
@@ -0,0 +1,195 @@
+/**
+ * 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.v2020_09_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.GremlinDatabaseGetResults;
+import rx.Completable;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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);
+
+ /**
+ * Migrate an Azure Cosmos DB Gremlin database from manual throughput to autoscale.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 migrateGremlinDatabaseToAutoscaleAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Migrate an Azure Cosmos DB Gremlin database from autoscale to manual throughput.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 migrateGremlinDatabaseToManualThroughputAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Gets the Gremlin graph throughput under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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);
+
+ /**
+ * Migrate an Azure Cosmos DB Gremlin graph from manual throughput to autoscale.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 migrateGremlinGraphToAutoscaleAsync(String resourceGroupName, String accountName, String databaseName, String graphName);
+
+ /**
+ * Migrate an Azure Cosmos DB Gremlin graph from autoscale to manual throughput.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 migrateGremlinGraphToManualThroughputAsync(String resourceGroupName, String accountName, String databaseName, String graphName);
+
+ /**
+ * Gets the Gremlin graph under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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 The name of the resource group. The name is case insensitive.
+ * @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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IncludedPath.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IncludedPath.java
new file mode 100644
index 000000000000..c9606e541168
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IndexKind.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IndexKind.java
new file mode 100644
index 000000000000..183af925c6d0
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Indexes.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Indexes.java
new file mode 100644
index 000000000000..a6189693d034
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IndexingMode.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IndexingMode.java
new file mode 100644
index 000000000000..002e72f53db1
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IndexingPolicy.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IndexingPolicy.java
new file mode 100644
index 000000000000..39aba55434a9
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IpAddressOrRange.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IpAddressOrRange.java
new file mode 100644
index 000000000000..422b1202a8f9
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/IpAddressOrRange.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.v2020_09_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * IpAddressOrRange object.
+ */
+public class IpAddressOrRange {
+ /**
+ * A single IPv4 address or a single IPv4 address range in CIDR format.
+ * Provided IPs must be well-formatted and cannot be contained in one of
+ * the following ranges: 10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12,
+ * 192.168.0.0/16, since these are not enforceable by the IP address
+ * filter. Example of valid inputs: “23.40.210.245” or “23.40.210.0/8”.
+ */
+ @JsonProperty(value = "ipAddressOrRange")
+ private String ipAddressOrRange;
+
+ /**
+ * Get a single IPv4 address or a single IPv4 address range in CIDR format. Provided IPs must be well-formatted and cannot be contained in one of the following ranges: 10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12, 192.168.0.0/16, since these are not enforceable by the IP address filter. Example of valid inputs: “23.40.210.245” or “23.40.210.0/8”.
+ *
+ * @return the ipAddressOrRange value
+ */
+ public String ipAddressOrRange() {
+ return this.ipAddressOrRange;
+ }
+
+ /**
+ * Set a single IPv4 address or a single IPv4 address range in CIDR format. Provided IPs must be well-formatted and cannot be contained in one of the following ranges: 10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12, 192.168.0.0/16, since these are not enforceable by the IP address filter. Example of valid inputs: “23.40.210.245” or “23.40.210.0/8”.
+ *
+ * @param ipAddressOrRange the ipAddressOrRange value to set
+ * @return the IpAddressOrRange object itself.
+ */
+ public IpAddressOrRange withIpAddressOrRange(String ipAddressOrRange) {
+ this.ipAddressOrRange = ipAddressOrRange;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/KeyKind.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/KeyKind.java
new file mode 100644
index 000000000000..58446f265df0
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Location.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/Location.java
new file mode 100644
index 000000000000..e6b304d92a87
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MetricAvailability.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MetricAvailability.java
new file mode 100644
index 000000000000..00ac26786af5
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MetricName.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MetricName.java
new file mode 100644
index 000000000000..d5458a49341e
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MetricValue.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MetricValue.java
new file mode 100644
index 000000000000..94a150c05eaa
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionCreateUpdateParameters.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionCreateUpdateParameters.java
new file mode 100644
index 000000000000..60968ba435e9
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/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.v2020_09_01;
+
+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")
+ 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetPropertiesOptions.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetPropertiesOptions.java
new file mode 100644
index 000000000000..b0fd210f4cf1
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetPropertiesOptions.java
@@ -0,0 +1,16 @@
+/**
+ * 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.v2020_09_01;
+
+
+/**
+ * The MongoDBCollectionGetPropertiesOptions model.
+ */
+public class MongoDBCollectionGetPropertiesOptions extends OptionsResource {
+}
diff --git a/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetPropertiesResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetPropertiesResource.java
new file mode 100644
index 000000000000..e6bcc4cc5908
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetPropertiesResource.java
@@ -0,0 +1,170 @@
+/**
+ * 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.v2020_09_01;
+
+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;
+
+ /**
+ * Analytical TTL.
+ */
+ @JsonProperty(value = "analyticalStorageTtl")
+ private Integer analyticalStorageTtl;
+
+ /**
+ * 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 Double _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 analytical TTL.
+ *
+ * @return the analyticalStorageTtl value
+ */
+ public Integer analyticalStorageTtl() {
+ return this.analyticalStorageTtl;
+ }
+
+ /**
+ * Set analytical TTL.
+ *
+ * @param analyticalStorageTtl the analyticalStorageTtl value to set
+ * @return the MongoDBCollectionGetPropertiesResource object itself.
+ */
+ public MongoDBCollectionGetPropertiesResource withAnalyticalStorageTtl(Integer analyticalStorageTtl) {
+ this.analyticalStorageTtl = analyticalStorageTtl;
+ 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 Double _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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetResults.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetResults.java
new file mode 100644
index 000000000000..a542b561af57
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionGetResults.java
@@ -0,0 +1,182 @@
+/**
+ * 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.v2020_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2020_09_01.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.v2020_09_01.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 options value.
+ */
+ MongoDBCollectionGetPropertiesOptions options();
+
+ /**
+ * @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.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 The name of the resource group. The name is case insensitive
+ * @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
+ */
+ WithResource withLocation(String location);
+ }
+
+ /**
+ * 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 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
+ */
+ WithCreate withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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.WithOptions, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a MongoDBCollectionGetResults update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithOptions, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of MongoDBCollectionGetResults update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the mongodbcollectiongetresults update 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 update stage
+ */
+ Update withOptions(CreateUpdateOptions options);
+ }
+
+ /**
+ * 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-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionResource.java b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionResource.java
new file mode 100644
index 000000000000..27086bff8288
--- /dev/null
+++ b/sdk/cosmos/mgmt-v2020_09_01/src/main/java/com/microsoft/azure/management/cosmosdb/v2020_09_01/MongoDBCollectionResource.java
@@ -0,0 +1,123 @@
+/**
+ * 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.v2020_09_01;
+
+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;
+
+ /**
+ * Analytical TTL.
+ */
+ @JsonProperty(value = "analyticalStorageTtl")
+ private Integer analyticalStorageTtl;
+
+ /**
+ * 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