diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/pom.xml b/sdk/cosmosdb/mgmt-v2015_04_08/pom.xml
new file mode 100644
index 000000000000..64718249a534
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.cosmosdb.v2015_04_08
+
+ 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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Capability.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Capability.java
new file mode 100644
index 000000000000..88ce9d9db11a
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraKeyspace.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraKeyspace.java
new file mode 100644
index 000000000000..c67f335d7cbd
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraKeyspace.java
@@ -0,0 +1,127 @@
+/**
+ * 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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CassandraKeyspaceInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.v2015_04_08.implementation.CosmosDBManager;
+import java.util.Map;
+
+/**
+ * Type representing CassandraKeyspace.
+ */
+public interface CassandraKeyspace extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the cassandraKeyspaceId value.
+ */
+ String cassandraKeyspaceId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the CassandraKeyspace definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithApi, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of CassandraKeyspace definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a CassandraKeyspace definition.
+ */
+ interface Blank extends WithApi {
+ }
+
+ /**
+ * The stage of the cassandrakeyspace definition allowing to specify Api.
+ */
+ interface WithApi {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @return the next definition stage
+ */
+ WithOptions withExistingApi(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the cassandrakeyspace definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(Map options);
+ }
+
+ /**
+ * The stage of the cassandrakeyspace 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 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 {
+ }
+ }
+ /**
+ * The template for a CassandraKeyspace update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of CassandraKeyspace update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraKeyspaceCreateUpdateParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraKeyspaceCreateUpdateParameters.java
new file mode 100644
index 000000000000..87d4ef3232ac
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraKeyspaceCreateUpdateParameters.java
@@ -0,0 +1,73 @@
+/**
+ * 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.v2015_04_08;
+
+import java.util.Map;
+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 {
+ /**
+ * The standard JSON format of a Cassandra keyspace.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private CassandraKeyspaceResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private Map 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 Map 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(Map options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraKeyspaceResource.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraKeyspaceResource.java
new file mode 100644
index 000000000000..17c4fb05b8d6
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Cassandra keyspace id 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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraPartitionKey.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraPartitionKey.java
new file mode 100644
index 000000000000..bbe8939950a0
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraSchema.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraSchema.java
new file mode 100644
index 000000000000..1570f18858c5
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTable.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTable.java
new file mode 100644
index 000000000000..7057423db00f
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTable.java
@@ -0,0 +1,61 @@
+/**
+ * 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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CassandraTableInner;
+import java.util.Map;
+
+/**
+ * Type representing CassandraTable.
+ */
+public interface CassandraTable extends HasInner, HasManager {
+ /**
+ * @return the cassandraTableId value.
+ */
+ String cassandraTableId();
+
+ /**
+ * @return the defaultTtl value.
+ */
+ Integer defaultTtl();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the schema value.
+ */
+ CassandraSchema schema();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTableCreateUpdateParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTableCreateUpdateParameters.java
new file mode 100644
index 000000000000..71433d405cfe
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTableCreateUpdateParameters.java
@@ -0,0 +1,73 @@
+/**
+ * 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.v2015_04_08;
+
+import java.util.Map;
+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 {
+ /**
+ * The standard JSON format of a Cassandra table.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private CassandraTableResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private Map 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 Map 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(Map options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTableResource.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTableResource.java
new file mode 100644
index 000000000000..6118e97f2b11
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CassandraTableResource.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Cassandra table id object.
+ */
+public class CassandraTableResource {
+ /**
+ * Name of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Time to live of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "defaultTtl")
+ private Integer defaultTtl;
+
+ /**
+ * Schema of the Cosmos DB Cassandra table.
+ */
+ @JsonProperty(value = "schema")
+ private CassandraSchema schema;
+
+ /**
+ * Get name of the Cosmos DB Cassandra table.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB Cassandra table.
+ *
+ * @param id the id value to set
+ * @return the CassandraTableResource object itself.
+ */
+ public CassandraTableResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get time to live of the Cosmos DB Cassandra table.
+ *
+ * @return the defaultTtl value
+ */
+ public Integer defaultTtl() {
+ return this.defaultTtl;
+ }
+
+ /**
+ * Set time to live of the Cosmos DB Cassandra table.
+ *
+ * @param defaultTtl the defaultTtl value to set
+ * @return the CassandraTableResource object itself.
+ */
+ public CassandraTableResource withDefaultTtl(Integer defaultTtl) {
+ this.defaultTtl = defaultTtl;
+ return this;
+ }
+
+ /**
+ * Get schema of the Cosmos DB Cassandra table.
+ *
+ * @return the schema value
+ */
+ public CassandraSchema schema() {
+ return this.schema;
+ }
+
+ /**
+ * Set schema of the Cosmos DB Cassandra table.
+ *
+ * @param schema the schema value to set
+ * @return the CassandraTableResource object itself.
+ */
+ public CassandraTableResource withSchema(CassandraSchema schema) {
+ this.schema = schema;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ClusterKey.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ClusterKey.java
new file mode 100644
index 000000000000..45ea38f0b852
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionDatabasisDatabaseAccountMetric.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionDatabasisDatabaseAccountMetric.java
new file mode 100644
index 000000000000..f81040613764
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionDatabasisDatabaseAccountMetricDefinition.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionDatabasisDatabaseAccountMetricDefinition.java
new file mode 100644
index 000000000000..5253f6b6fc18
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionDatabasisDatabaseAccountMetricModel.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionDatabasisDatabaseAccountMetricModel.java
new file mode 100644
index 000000000000..627840565ec2
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionDatabasisDatabaseAccountUsage.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionDatabasisDatabaseAccountUsage.java
new file mode 100644
index 000000000000..df70472a24aa
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionPartitionRegions.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionPartitionRegions.java
new file mode 100644
index 000000000000..456482c65195
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import rx.Observable;
+
+/**
+ * Type representing CollectionPartitionRegions.
+ */
+public interface CollectionPartitionRegions {
+ /**
+ * Retrieves the metrics determined by the given filter for the given collection and region, split by partition.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String region, String databaseRid, String collectionRid, String filter);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionPartitions.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionPartitions.java
new file mode 100644
index 000000000000..d6c4810cff4b
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import rx.Observable;
+
+/**
+ * Type representing CollectionPartitions.
+ */
+public interface CollectionPartitions {
+ /**
+ * Retrieves the metrics determined by the given filter for the given collection, split by partition.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid, String filter);
+
+ /**
+ * Retrieves the usages (most recent storage data) for the given collection, split by partition.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionRegions.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/CollectionRegions.java
new file mode 100644
index 000000000000..5a7caf0910cc
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.CollectionDatabasisDatabaseAccountMetricModel;
+
+/**
+ * Type representing CollectionRegions.
+ */
+public interface CollectionRegions {
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account, collection and region.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String region, String databaseRid, String collectionRid, String filter);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Collections.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Collections.java
new file mode 100644
index 000000000000..308b198dedcd
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.CollectionDatabasisDatabaseAccountMetricDefinition;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.CollectionDatabasisDatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.CollectionDatabasisDatabaseAccountUsage;
+
+/**
+ * Type representing Collections.
+ */
+public interface Collections {
+ /**
+ * Retrieves metric definitions for the given collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricDefinitionsAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid);
+
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account and collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid, String filter);
+
+ /**
+ * Retrieves the usages (most recent storage data) for the given collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Column.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Column.java
new file mode 100644
index 000000000000..66474dd6d67b
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ConflictResolutionMode.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ConflictResolutionMode.java
new file mode 100644
index 000000000000..f548581daa8b
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ConflictResolutionPolicy.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ConflictResolutionPolicy.java
new file mode 100644
index 000000000000..e14e3d639f55
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ConnectorOffer.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ConnectorOffer.java
new file mode 100644
index 000000000000..0c7b491f046e
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ConsistencyPolicy.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ConsistencyPolicy.java
new file mode 100644
index 000000000000..a863d8764eb3
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ContainerPartitionKey.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ContainerPartitionKey.java
new file mode 100644
index 000000000000..25b9e1690116
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ContainerPartitionKey.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.v2015_04_08;
+
+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;
+
+ /**
+ * 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;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DataType.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DataType.java
new file mode 100644
index 000000000000..6c05d35b1d14
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccount.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccount.java
new file mode 100644
index 000000000000..b344cb239bad
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccount.java
@@ -0,0 +1,305 @@
+/**
+ * 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.v2015_04_08;
+
+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.v2015_04_08.implementation.CosmosDBManager;
+import java.util.List;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.DatabaseAccountInner;
+
+/**
+ * Type representing DatabaseAccount.
+ */
+public interface DatabaseAccount extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the capabilities value.
+ */
+ List capabilities();
+
+ /**
+ * @return the connectorOffer value.
+ */
+ ConnectorOffer connectorOffer();
+
+ /**
+ * @return the consistencyPolicy value.
+ */
+ ConsistencyPolicy consistencyPolicy();
+
+ /**
+ * @return the databaseAccountOfferType value.
+ */
+ DatabaseAccountOfferType databaseAccountOfferType();
+
+ /**
+ * @return the documentEndpoint value.
+ */
+ String documentEndpoint();
+
+ /**
+ * @return the enableAutomaticFailover value.
+ */
+ Boolean enableAutomaticFailover();
+
+ /**
+ * @return the enableCassandraConnector value.
+ */
+ Boolean enableCassandraConnector();
+
+ /**
+ * @return the enableMultipleWriteLocations value.
+ */
+ Boolean enableMultipleWriteLocations();
+
+ /**
+ * @return the failoverPolicies value.
+ */
+ List failoverPolicies();
+
+ /**
+ * @return the ipRangeFilter value.
+ */
+ String ipRangeFilter();
+
+ /**
+ * @return the isVirtualNetworkFilterEnabled value.
+ */
+ Boolean isVirtualNetworkFilterEnabled();
+
+ /**
+ * @return the kind value.
+ */
+ DatabaseAccountKind kind();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the readLocations value.
+ */
+ List readLocations();
+
+ /**
+ * @return the virtualNetworkRules value.
+ */
+ List virtualNetworkRules();
+
+ /**
+ * @return the writeLocations value.
+ */
+ List writeLocations();
+
+ /**
+ * The entirety of the DatabaseAccount definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithDatabaseAccountOfferType, DefinitionStages.WithLocations, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DatabaseAccount definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DatabaseAccount definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the DatabaseAccount definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the databaseaccount 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 databaseaccount 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 databaseaccount 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 databaseaccount 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 databaseaccount 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 databaseaccount 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 databaseaccount 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 databaseaccount 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 databaseaccount definition allowing to specify IpRangeFilter.
+ */
+ interface WithIpRangeFilter {
+ /**
+ * Specifies ipRangeFilter.
+ * @param ipRangeFilter Cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces
+ * @return the next definition stage
+ */
+ WithCreate withIpRangeFilter(String ipRangeFilter);
+ }
+
+ /**
+ * The stage of the databaseaccount 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 databaseaccount 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 databaseaccount definition allowing to specify VirtualNetworkRules.
+ */
+ interface WithVirtualNetworkRules {
+ /**
+ * Specifies virtualNetworkRules.
+ * @param virtualNetworkRules List of Virtual Network ACL rules configured for the Cosmos DB account
+ * @return the next definition stage
+ */
+ WithCreate withVirtualNetworkRules(List virtualNetworkRules);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithCapabilities, DefinitionStages.WithConnectorOffer, DefinitionStages.WithConsistencyPolicy, DefinitionStages.WithEnableAutomaticFailover, DefinitionStages.WithEnableCassandraConnector, DefinitionStages.WithEnableMultipleWriteLocations, DefinitionStages.WithIpRangeFilter, DefinitionStages.WithIsVirtualNetworkFilterEnabled, DefinitionStages.WithKind, DefinitionStages.WithVirtualNetworkRules {
+ }
+ }
+ /**
+ * The template for a DatabaseAccount update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithCapabilities {
+ }
+
+ /**
+ * Grouping of DatabaseAccount update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databaseaccount 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);
+ }
+
+ }
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountConnectionString.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountConnectionString.java
new file mode 100644
index 000000000000..1f01c89d8649
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountCreateUpdateParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountCreateUpdateParameters.java
new file mode 100644
index 000000000000..7240cfbf570b
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountCreateUpdateParameters.java
@@ -0,0 +1,353 @@
+/**
+ * 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.v2015_04_08;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.rest.SkipParentValidation;
+import com.microsoft.azure.Resource;
+
+/**
+ * Parameters to create and update Cosmos DB database accounts.
+ */
+@JsonFlatten
+@SkipParentValidation
+public class DatabaseAccountCreateUpdateParameters extends Resource {
+ /**
+ * Indicates the type of database account. This can only be set at database
+ * account creation. Possible values include: 'GlobalDocumentDB',
+ * 'MongoDB', 'Parse'.
+ */
+ @JsonProperty(value = "kind")
+ private DatabaseAccountKind kind;
+
+ /**
+ * The consistency policy for the Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.consistencyPolicy")
+ private ConsistencyPolicy consistencyPolicy;
+
+ /**
+ * An array that contains the georeplication locations enabled for the
+ * Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.locations", required = true)
+ private List locations;
+
+ /**
+ * The offer type for the database.
+ */
+ @JsonProperty(value = "properties.databaseAccountOfferType", required = true)
+ private String databaseAccountOfferType;
+
+ /**
+ * Cosmos DB Firewall Support: This value specifies the set of IP addresses
+ * or IP address ranges in CIDR form to be included as the allowed list of
+ * client IPs for a given database account. IP addresses/ranges must be
+ * comma separated and must not contain any spaces.
+ */
+ @JsonProperty(value = "properties.ipRangeFilter")
+ private String ipRangeFilter;
+
+ /**
+ * Flag to indicate whether to enable/disable Virtual Network ACL rules.
+ */
+ @JsonProperty(value = "properties.isVirtualNetworkFilterEnabled")
+ private Boolean isVirtualNetworkFilterEnabled;
+
+ /**
+ * Enables automatic failover of the write region in the rare event that
+ * the region is unavailable due to an outage. Automatic failover will
+ * result in a new write region for the account and is chosen based on the
+ * failover priorities configured for the account.
+ */
+ @JsonProperty(value = "properties.enableAutomaticFailover")
+ private Boolean enableAutomaticFailover;
+
+ /**
+ * List of Cosmos DB capabilities for the account.
+ */
+ @JsonProperty(value = "properties.capabilities")
+ private List capabilities;
+
+ /**
+ * List of Virtual Network ACL rules configured for the Cosmos DB account.
+ */
+ @JsonProperty(value = "properties.virtualNetworkRules")
+ private List virtualNetworkRules;
+
+ /**
+ * Enables the account to write in multiple locations.
+ */
+ @JsonProperty(value = "properties.enableMultipleWriteLocations")
+ private Boolean enableMultipleWriteLocations;
+
+ /**
+ * Enables the cassandra connector on the Cosmos DB C* account.
+ */
+ @JsonProperty(value = "properties.enableCassandraConnector")
+ private Boolean enableCassandraConnector;
+
+ /**
+ * The cassandra connector offer type for the Cosmos DB database C*
+ * account. Possible values include: 'Small'.
+ */
+ @JsonProperty(value = "properties.connectorOffer")
+ private ConnectorOffer connectorOffer;
+
+ /**
+ * Creates an instance of DatabaseAccountCreateUpdateParameters class.
+ * @param locations an array that contains the georeplication locations enabled for the Cosmos DB account.
+ */
+ public DatabaseAccountCreateUpdateParameters() {
+ databaseAccountOfferType = "Standard";
+ }
+
+ /**
+ * Get indicates the type of database account. This can only be set at database account creation. Possible values include: 'GlobalDocumentDB', 'MongoDB', 'Parse'.
+ *
+ * @return the kind value
+ */
+ public DatabaseAccountKind kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set indicates the type of database account. This can only be set at database account creation. Possible values include: 'GlobalDocumentDB', 'MongoDB', 'Parse'.
+ *
+ * @param kind the kind value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withKind(DatabaseAccountKind kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the consistency policy for the Cosmos DB account.
+ *
+ * @return the consistencyPolicy value
+ */
+ public ConsistencyPolicy consistencyPolicy() {
+ return this.consistencyPolicy;
+ }
+
+ /**
+ * Set the consistency policy for the Cosmos DB account.
+ *
+ * @param consistencyPolicy the consistencyPolicy value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withConsistencyPolicy(ConsistencyPolicy consistencyPolicy) {
+ this.consistencyPolicy = consistencyPolicy;
+ return this;
+ }
+
+ /**
+ * Get an array that contains the georeplication locations enabled for the Cosmos DB account.
+ *
+ * @return the locations value
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Set an array that contains the georeplication locations enabled for the Cosmos DB account.
+ *
+ * @param locations the locations value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withLocations(List locations) {
+ this.locations = locations;
+ return this;
+ }
+
+ /**
+ * Get the offer type for the database.
+ *
+ * @return the databaseAccountOfferType value
+ */
+ public String databaseAccountOfferType() {
+ return this.databaseAccountOfferType;
+ }
+
+ /**
+ * Set the offer type for the database.
+ *
+ * @param databaseAccountOfferType the databaseAccountOfferType value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withDatabaseAccountOfferType(String databaseAccountOfferType) {
+ this.databaseAccountOfferType = databaseAccountOfferType;
+ return this;
+ }
+
+ /**
+ * Get cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.
+ *
+ * @return the ipRangeFilter value
+ */
+ public String ipRangeFilter() {
+ return this.ipRangeFilter;
+ }
+
+ /**
+ * Set cosmos DB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.
+ *
+ * @param ipRangeFilter the ipRangeFilter value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withIpRangeFilter(String ipRangeFilter) {
+ this.ipRangeFilter = ipRangeFilter;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether to enable/disable Virtual Network ACL rules.
+ *
+ * @return the isVirtualNetworkFilterEnabled value
+ */
+ public Boolean isVirtualNetworkFilterEnabled() {
+ return this.isVirtualNetworkFilterEnabled;
+ }
+
+ /**
+ * Set flag to indicate whether to enable/disable Virtual Network ACL rules.
+ *
+ * @param isVirtualNetworkFilterEnabled the isVirtualNetworkFilterEnabled value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withIsVirtualNetworkFilterEnabled(Boolean isVirtualNetworkFilterEnabled) {
+ this.isVirtualNetworkFilterEnabled = isVirtualNetworkFilterEnabled;
+ return this;
+ }
+
+ /**
+ * Get enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account.
+ *
+ * @return the enableAutomaticFailover value
+ */
+ public Boolean enableAutomaticFailover() {
+ return this.enableAutomaticFailover;
+ }
+
+ /**
+ * Set enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account.
+ *
+ * @param enableAutomaticFailover the enableAutomaticFailover value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withEnableAutomaticFailover(Boolean enableAutomaticFailover) {
+ this.enableAutomaticFailover = enableAutomaticFailover;
+ return this;
+ }
+
+ /**
+ * Get list of Cosmos DB capabilities for the account.
+ *
+ * @return the capabilities value
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /**
+ * Set list of Cosmos DB capabilities for the account.
+ *
+ * @param capabilities the capabilities value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withCapabilities(List capabilities) {
+ this.capabilities = capabilities;
+ return this;
+ }
+
+ /**
+ * Get list of Virtual Network ACL rules configured for the Cosmos DB account.
+ *
+ * @return the virtualNetworkRules value
+ */
+ public List virtualNetworkRules() {
+ return this.virtualNetworkRules;
+ }
+
+ /**
+ * Set list of Virtual Network ACL rules configured for the Cosmos DB account.
+ *
+ * @param virtualNetworkRules the virtualNetworkRules value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withVirtualNetworkRules(List virtualNetworkRules) {
+ this.virtualNetworkRules = virtualNetworkRules;
+ return this;
+ }
+
+ /**
+ * Get enables the account to write in multiple locations.
+ *
+ * @return the enableMultipleWriteLocations value
+ */
+ public Boolean enableMultipleWriteLocations() {
+ return this.enableMultipleWriteLocations;
+ }
+
+ /**
+ * Set enables the account to write in multiple locations.
+ *
+ * @param enableMultipleWriteLocations the enableMultipleWriteLocations value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withEnableMultipleWriteLocations(Boolean enableMultipleWriteLocations) {
+ this.enableMultipleWriteLocations = enableMultipleWriteLocations;
+ return this;
+ }
+
+ /**
+ * Get enables the cassandra connector on the Cosmos DB C* account.
+ *
+ * @return the enableCassandraConnector value
+ */
+ public Boolean enableCassandraConnector() {
+ return this.enableCassandraConnector;
+ }
+
+ /**
+ * Set enables the cassandra connector on the Cosmos DB C* account.
+ *
+ * @param enableCassandraConnector the enableCassandraConnector value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withEnableCassandraConnector(Boolean enableCassandraConnector) {
+ this.enableCassandraConnector = enableCassandraConnector;
+ return this;
+ }
+
+ /**
+ * Get the cassandra connector offer type for the Cosmos DB database C* account. Possible values include: 'Small'.
+ *
+ * @return the connectorOffer value
+ */
+ public ConnectorOffer connectorOffer() {
+ return this.connectorOffer;
+ }
+
+ /**
+ * Set the cassandra connector offer type for the Cosmos DB database C* account. Possible values include: 'Small'.
+ *
+ * @param connectorOffer the connectorOffer value to set
+ * @return the DatabaseAccountCreateUpdateParameters object itself.
+ */
+ public DatabaseAccountCreateUpdateParameters withConnectorOffer(ConnectorOffer connectorOffer) {
+ this.connectorOffer = connectorOffer;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountKind.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountKind.java
new file mode 100644
index 000000000000..c2c473cba153
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountListConnectionStringsResult.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountListConnectionStringsResult.java
new file mode 100644
index 000000000000..65bbe6cb9199
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountListKeysResult.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountListKeysResult.java
new file mode 100644
index 000000000000..b0c705cad284
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountListReadOnlyKeysResult.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountListReadOnlyKeysResult.java
new file mode 100644
index 000000000000..613b002ed9ee
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountMetric.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountMetric.java
new file mode 100644
index 000000000000..e2b422e5cdc0
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountMetricDefinition.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountMetricDefinition.java
new file mode 100644
index 000000000000..c2256d7c4028
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountOfferType.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountOfferType.java
new file mode 100644
index 000000000000..c022bf86be70
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountPatchParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountPatchParameters.java
new file mode 100644
index 000000000000..26dbd92f42b4
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountPatchParameters.java
@@ -0,0 +1,73 @@
+/**
+ * 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.v2015_04_08;
+
+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 DatabaseAccountPatchParameters {
+ /**
+ * The tags property.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * List of Cosmos DB capabilities for the account.
+ */
+ @JsonProperty(value = "properties.capabilities")
+ private List capabilities;
+
+ /**
+ * 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 DatabaseAccountPatchParameters object itself.
+ */
+ public DatabaseAccountPatchParameters withTags(Map tags) {
+ this.tags = tags;
+ 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 DatabaseAccountPatchParameters object itself.
+ */
+ public DatabaseAccountPatchParameters withCapabilities(List capabilities) {
+ this.capabilities = capabilities;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountRegenerateKeyParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountRegenerateKeyParameters.java
new file mode 100644
index 000000000000..65d13106a160
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountRegions.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountRegions.java
new file mode 100644
index 000000000000..17b9c0740803
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.DatabaseAccountRegionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DatabaseAccountRegions.
+ */
+public interface DatabaseAccountRegions extends HasInner {
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account and region.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String region, String filter);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountUsage.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccountUsage.java
new file mode 100644
index 000000000000..537fe7f7f975
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccounts.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccounts.java
new file mode 100644
index 000000000000..78943dd10b53
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabaseAccounts.java
@@ -0,0 +1,751 @@
+/**
+ * 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.v2015_04_08;
+
+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.v2015_04_08.implementation.DatabaseAccountsInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.DatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.DatabaseAccountUsage;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.DatabaseAccountMetricDefinition;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.SqlContainer;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.MongoDBCollection;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.GremlinGraph;
+
+/**
+ * Type representing DatabaseAccounts.
+ */
+public interface DatabaseAccounts extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Begins definition for a new Databasis resource.
+ * @param name resource name.
+ * @return the first stage of the new Databasis definition.
+ */
+ SqlDatabase.DefinitionStages.Blank defineDatabasis(String name);
+
+ /**
+ * Begins definition for a new Container resource.
+ * @param name resource name.
+ * @return the first stage of the new Container definition.
+ */
+ SqlContainer.DefinitionStages.Blank defineContainer(String name);
+
+ /**
+ * Begins definition for a new Collection resource.
+ * @param name resource name.
+ * @return the first stage of the new Collection definition.
+ */
+ MongoDBCollection.DefinitionStages.Blank defineCollection(String name);
+
+ /**
+ * Begins definition for a new Table resource.
+ * @param name resource name.
+ * @return the first stage of the new Table definition.
+ */
+ Table.DefinitionStages.Blank defineTable(String name);
+
+ /**
+ * Begins definition for a new Keyspace resource.
+ * @param name resource name.
+ * @return the first stage of the new Keyspace definition.
+ */
+ CassandraKeyspace.DefinitionStages.Blank defineKeyspace(String name);
+
+ /**
+ * Begins definition for a new Graph resource.
+ * @param name resource name.
+ * @return the first stage of the new Graph definition.
+ */
+ GremlinGraph.DefinitionStages.Blank defineGraph(String name);
+
+ /**
+ * Changes the failover priority for the Azure Cosmos DB database account. A failover priority of 0 indicates a write region. The maximum value for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the regions in which the database account exists.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param failoverPolicies List of failover policies.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable failoverPriorityChangeAsync(String resourceGroupName, String accountName, List failoverPolicies);
+
+ /**
+ * Lists the access keys for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listKeysAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Lists the connection strings for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listConnectionStringsAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Offline the specified region for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable offlineRegionAsync(String resourceGroupName, String accountName, String region);
+
+ /**
+ * Online the specified region for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable onlineRegionAsync(String resourceGroupName, String accountName, String region);
+
+ /**
+ * Lists the read-only access keys for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listReadOnlyKeysAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Regenerates an access key for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyKind The access key to regenerate. Possible values include: 'primary', 'secondary', 'primaryReadonly', 'secondaryReadonly'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable regenerateKeyAsync(String resourceGroupName, String accountName, KeyKind keyKind);
+
+ /**
+ * Lists the read-only access keys for the specified Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getReadOnlyKeysAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Checks that the Azure Cosmos DB account name already exists. A valid account name may contain only lowercase letters, numbers, and the '-' character, and must be between 3 and 50 characters.
+ *
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameExistsAsync(String accountName);
+
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String filter);
+
+ /**
+ * Retrieves the usages (most recent data) for the given database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Retrieves metric definitions for the given database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricDefinitionsAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Lists the SQL databases under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listSqlDatabasesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the SQL database under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getSqlDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB SQL database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteSqlDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Lists the MongoDB databases under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMongoDBDatabasesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the MongoDB databases under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMongoDBDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Create or updates Azure Cosmos DB MongoDB database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param createUpdateMongoDBDatabaseParameters The parameters to provide for the current MongoDB database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createUpdateMongoDBDatabaseAsync(String resourceGroupName, String accountName, String databaseName, MongoDBDatabaseCreateUpdateParameters createUpdateMongoDBDatabaseParameters);
+
+ /**
+ * Deletes an existing Azure Cosmos DB MongoDB database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteMongoDBDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Lists the Gremlin databases under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listGremlinDatabasesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the Gremlin databases under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGremlinDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Create or update an Azure Cosmos DB Gremlin database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param createUpdateGremlinDatabaseParameters The parameters to provide for the current Gremlin database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createUpdateGremlinDatabaseAsync(String resourceGroupName, String accountName, String databaseName, GremlinDatabaseCreateUpdateParameters createUpdateGremlinDatabaseParameters);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Gremlin database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteGremlinDatabaseAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Gets the RUs per second of the SQL database under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getSqlDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB SQL database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateSqlDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName, ThroughputResource resource);
+
+ /**
+ * Gets the RUs per second of the SQL container under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param containerName Cosmos DB container name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getSqlContainerThroughputAsync(String resourceGroupName, String accountName, String databaseName, String containerName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB SQL container.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param containerName Cosmos DB container name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateSqlContainerThroughputAsync(String resourceGroupName, String accountName, String databaseName, String containerName, ThroughputResource resource);
+
+ /**
+ * Gets the RUs per second of the MongoDB database under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMongoDBDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Update RUs per second of the an Azure Cosmos DB MongoDB database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateMongoDBDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName, ThroughputResource resource);
+
+ /**
+ * Gets the RUs per second of the MongoDB collection under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param collectionName Cosmos DB collection name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMongoDBCollectionThroughputAsync(String resourceGroupName, String accountName, String databaseName, String collectionName);
+
+ /**
+ * Update the RUs per second of an Azure Cosmos DB MongoDB collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param collectionName Cosmos DB collection name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateMongoDBCollectionThroughputAsync(String resourceGroupName, String accountName, String databaseName, String collectionName, ThroughputResource resource);
+
+ /**
+ * Gets the RUs per second of the Table under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getTableThroughputAsync(String resourceGroupName, String accountName, String tableName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Table.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param tableName Cosmos DB table name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateTableThroughputAsync(String resourceGroupName, String accountName, String tableName, ThroughputResource resource);
+
+ /**
+ * Gets the RUs per second of the Cassandra Keyspace under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCassandraKeyspaceThroughputAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Cassandra Keyspace.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateCassandraKeyspaceThroughputAsync(String resourceGroupName, String accountName, String keyspaceName, ThroughputResource resource);
+
+ /**
+ * Gets the RUs per second of the Cassandra table under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCassandraTableThroughputAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Cassandra table.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateCassandraTableThroughputAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName, ThroughputResource resource);
+
+ /**
+ * Gets the RUs per second of the Gremlin database under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGremlinDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Gremlin database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateGremlinDatabaseThroughputAsync(String resourceGroupName, String accountName, String databaseName, ThroughputResource resource);
+
+ /**
+ * Gets the Gremlin graph throughput under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param graphName Cosmos DB graph name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGremlinGraphThroughputAsync(String resourceGroupName, String accountName, String databaseName, String graphName);
+
+ /**
+ * Update RUs per second of an Azure Cosmos DB Gremlin graph.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param graphName Cosmos DB graph name.
+ * @param resource The standard JSON format of a resource throughput
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateGremlinGraphThroughputAsync(String resourceGroupName, String accountName, String databaseName, String graphName, ThroughputResource resource);
+
+ /**
+ * Gets the SQL container under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param containerName Cosmos DB container name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getSqlContainerAsync(String resourceGroupName, String accountName, String databaseName, String containerName);
+
+ /**
+ * Lists the SQL container under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listSqlContainersAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB SQL container.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param containerName Cosmos DB container name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteSqlContainerAsync(String resourceGroupName, String accountName, String databaseName, String containerName);
+
+ /**
+ * Gets the MongoDB collection under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param collectionName Cosmos DB collection name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMongoDBCollectionAsync(String resourceGroupName, String accountName, String databaseName, String collectionName);
+
+ /**
+ * Lists the MongoDB collection under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMongoDBCollectionsAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB MongoDB Collection.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param collectionName Cosmos DB collection name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteMongoDBCollectionAsync(String resourceGroupName, String accountName, String databaseName, String collectionName);
+
+ /**
+ * Lists the Tables under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable
listTablesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the Tables under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable
getTableAsync(String resourceGroupName, String accountName, String tableName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Table.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteTableAsync(String resourceGroupName, String accountName, String tableName);
+
+ /**
+ * Lists the Cassandra table under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listCassandraTablesAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Gets the Cassandra table under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCassandraTableAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName);
+
+ /**
+ * Create or update an Azure Cosmos DB Cassandra Table.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @param createUpdateCassandraTableParameters The parameters to provide for the current Cassandra Table.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createUpdateCassandraTableAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName, CassandraTableCreateUpdateParameters createUpdateCassandraTableParameters);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Cassandra table.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @param tableName Cosmos DB table name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteCassandraTableAsync(String resourceGroupName, String accountName, String keyspaceName, String tableName);
+
+ /**
+ * Lists the Cassandra keyspaces under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listCassandraKeyspacesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the Cassandra keyspaces under an existing Azure Cosmos DB database account with the provided name.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCassandraKeyspaceAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Cassandra keyspace.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param keyspaceName Cosmos DB keyspace name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteCassandraKeyspaceAsync(String resourceGroupName, String accountName, String keyspaceName);
+
+ /**
+ * Gets the Gremlin graph under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param graphName Cosmos DB graph name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGremlinGraphAsync(String resourceGroupName, String accountName, String databaseName, String graphName);
+
+ /**
+ * Lists the Gremlin graph under an existing Azure Cosmos DB database account.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listGremlinGraphsAsync(String resourceGroupName, String accountName, String databaseName);
+
+ /**
+ * Deletes an existing Azure Cosmos DB Gremlin graph.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseName Cosmos DB database name.
+ * @param graphName Cosmos DB graph name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteGremlinGraphAsync(String resourceGroupName, String accountName, String databaseName, String graphName);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Databases.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Databases.java
new file mode 100644
index 000000000000..be27b8b60c0d
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.DatabasisDatabaseAccountMetricDefinition;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.DatabasisDatabaseAccountMetric;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.DatabasisDatabaseAccountUsage;
+
+/**
+ * Type representing Databases.
+ */
+public interface Databases {
+ /**
+ * Retrieves metric definitions for the given database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricDefinitionsAsync(String resourceGroupName, String accountName, String databaseRid);
+
+ /**
+ * Retrieves the metrics determined by the given filter for the given database account and database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String databaseRid, String filter);
+
+ /**
+ * Retrieves the usages (most recent data) for the given database.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String accountName, String databaseRid);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabasisDatabaseAccountMetric.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabasisDatabaseAccountMetric.java
new file mode 100644
index 000000000000..ae60f081859b
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabasisDatabaseAccountMetricDefinition.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabasisDatabaseAccountMetricDefinition.java
new file mode 100644
index 000000000000..402b93eaec63
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabasisDatabaseAccountUsage.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DatabasisDatabaseAccountUsage.java
new file mode 100644
index 000000000000..e3412d911495
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.UsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DefaultConsistencyLevel.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/DefaultConsistencyLevel.java
new file mode 100644
index 000000000000..4f415b4de4a4
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ErrorResponse.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ErrorResponse.java
new file mode 100644
index 000000000000..0b6a580e3bfa
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ErrorResponseException.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ErrorResponseException.java
new file mode 100644
index 000000000000..cf1f7014bba6
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ExcludedPath.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ExcludedPath.java
new file mode 100644
index 000000000000..3885d4e55285
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ExtendedResourceProperties.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ExtendedResourceProperties.java
new file mode 100644
index 000000000000..184b855ded0d
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/ExtendedResourceProperties.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.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The system generated resource properties associated with SQL databases and
+ * SQL containers.
+ */
+public class ExtendedResourceProperties {
+ /**
+ * A system generated property. A unique identifier.
+ */
+ @JsonProperty(value = "_rid")
+ private String _rid;
+
+ /**
+ * A system generated property that denotes the last updated timestamp of
+ * the resource.
+ */
+ @JsonProperty(value = "_ts")
+ private Object _ts;
+
+ /**
+ * A system generated property representing the resource etag required for
+ * optimistic concurrency control.
+ */
+ @JsonProperty(value = "_etag")
+ private String _etag;
+
+ /**
+ * Get a system generated property. A unique identifier.
+ *
+ * @return the _rid value
+ */
+ public String _rid() {
+ return this._rid;
+ }
+
+ /**
+ * Set a system generated property. A unique identifier.
+ *
+ * @param _rid the _rid value to set
+ * @return the ExtendedResourceProperties object itself.
+ */
+ public ExtendedResourceProperties with_rid(String _rid) {
+ this._rid = _rid;
+ return this;
+ }
+
+ /**
+ * Get a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @return the _ts value
+ */
+ public Object _ts() {
+ return this._ts;
+ }
+
+ /**
+ * Set a system generated property that denotes the last updated timestamp of the resource.
+ *
+ * @param _ts the _ts value to set
+ * @return the ExtendedResourceProperties object itself.
+ */
+ public ExtendedResourceProperties with_ts(Object _ts) {
+ this._ts = _ts;
+ return this;
+ }
+
+ /**
+ * Get a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @return the _etag value
+ */
+ public String _etag() {
+ return this._etag;
+ }
+
+ /**
+ * Set a system generated property representing the resource etag required for optimistic concurrency control.
+ *
+ * @param _etag the _etag value to set
+ * @return the ExtendedResourceProperties object itself.
+ */
+ public ExtendedResourceProperties with_etag(String _etag) {
+ this._etag = _etag;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/FailoverPolicies.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/FailoverPolicies.java
new file mode 100644
index 000000000000..c6b1d2ec74ec
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/FailoverPolicy.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/FailoverPolicy.java
new file mode 100644
index 000000000000..6f72b4f8b023
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinDatabase.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinDatabase.java
new file mode 100644
index 000000000000..b8c32d366393
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinDatabase.java
@@ -0,0 +1,66 @@
+/**
+ * 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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.GremlinDatabaseInner;
+import java.util.Map;
+
+/**
+ * Type representing GremlinDatabase.
+ */
+public interface GremlinDatabase extends HasInner, HasManager {
+ /**
+ * @return the _etag value.
+ */
+ String _etag();
+
+ /**
+ * @return the _rid value.
+ */
+ String _rid();
+
+ /**
+ * @return the _ts value.
+ */
+ Object _ts();
+
+ /**
+ * @return the gremlinDatabaseId value.
+ */
+ String gremlinDatabaseId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinDatabaseCreateUpdateParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinDatabaseCreateUpdateParameters.java
new file mode 100644
index 000000000000..1008c5811eb7
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinDatabaseCreateUpdateParameters.java
@@ -0,0 +1,73 @@
+/**
+ * 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.v2015_04_08;
+
+import java.util.Map;
+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 {
+ /**
+ * The standard JSON format of a Gremlin database.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private GremlinDatabaseResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private Map 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 Map 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(Map options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinDatabaseResource.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinDatabaseResource.java
new file mode 100644
index 000000000000..385493bf90b8
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB Gremlin database id 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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinGraph.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinGraph.java
new file mode 100644
index 000000000000..e14a006984bc
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinGraph.java
@@ -0,0 +1,169 @@
+/**
+ * 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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.GremlinGraphInner;
+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.v2015_04_08.implementation.CosmosDBManager;
+import java.util.Map;
+
+/**
+ * Type representing GremlinGraph.
+ */
+public interface GremlinGraph extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the _etag value.
+ */
+ String _etag();
+
+ /**
+ * @return the _rid value.
+ */
+ String _rid();
+
+ /**
+ * @return the _ts value.
+ */
+ Object _ts();
+
+ /**
+ * @return the conflictResolutionPolicy value.
+ */
+ ConflictResolutionPolicy conflictResolutionPolicy();
+
+ /**
+ * @return the defaultTtl value.
+ */
+ Integer defaultTtl();
+
+ /**
+ * @return the gremlinGraphId value.
+ */
+ String gremlinGraphId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the indexingPolicy value.
+ */
+ IndexingPolicy indexingPolicy();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the partitionKey value.
+ */
+ ContainerPartitionKey partitionKey();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the uniqueKeyPolicy value.
+ */
+ UniqueKeyPolicy uniqueKeyPolicy();
+
+ /**
+ * The entirety of the GremlinGraph definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of GremlinGraph definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a GremlinGraph definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the gremlingraph definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, accountName, databaseName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @param databaseName Cosmos DB database name
+ * @return the next definition stage
+ */
+ WithOptions withExistingDatabasis(String resourceGroupName, String accountName, String databaseName);
+ }
+
+ /**
+ * The stage of the gremlingraph definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(Map options);
+ }
+
+ /**
+ * The stage of the gremlingraph 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 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 {
+ }
+ }
+ /**
+ * The template for a GremlinGraph update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of GremlinGraph update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinGraphCreateUpdateParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinGraphCreateUpdateParameters.java
new file mode 100644
index 000000000000..f19390a320f1
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinGraphCreateUpdateParameters.java
@@ -0,0 +1,73 @@
+/**
+ * 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.v2015_04_08;
+
+import java.util.Map;
+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 {
+ /**
+ * The standard JSON format of a Gremlin graph.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private GremlinGraphResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private Map 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 Map 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(Map options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinGraphResource.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/GremlinGraphResource.java
new file mode 100644
index 000000000000..5684772e9353
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IncludedPath.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IncludedPath.java
new file mode 100644
index 000000000000..6b4ab59de343
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IndexKind.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IndexKind.java
new file mode 100644
index 000000000000..969579bc7f6f
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Indexes.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Indexes.java
new file mode 100644
index 000000000000..8247b1c30f3c
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IndexingMode.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IndexingMode.java
new file mode 100644
index 000000000000..2a4725d3e288
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IndexingPolicy.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IndexingPolicy.java
new file mode 100644
index 000000000000..728ee3d8ac25
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/IndexingPolicy.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.v2015_04_08;
+
+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;
+
+ /**
+ * 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;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/KeyKind.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/KeyKind.java
new file mode 100644
index 000000000000..fa0ae6365e4d
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Location.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Location.java
new file mode 100644
index 000000000000..3ae2977d996a
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MetricAvailability.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MetricAvailability.java
new file mode 100644
index 000000000000..9768ebd12ad6
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MetricName.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MetricName.java
new file mode 100644
index 000000000000..4987adb804df
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MetricValue.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MetricValue.java
new file mode 100644
index 000000000000..7cfd8049adf2
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/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.v2015_04_08;
+
+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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollection.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollection.java
new file mode 100644
index 000000000000..58c275266a0a
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollection.java
@@ -0,0 +1,140 @@
+/**
+ * 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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MongoDBCollectionInner;
+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.v2015_04_08.implementation.CosmosDBManager;
+import java.util.Map;
+import java.util.List;
+
+/**
+ * Type representing MongoDBCollection.
+ */
+public interface MongoDBCollection extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the indexes value.
+ */
+ List indexes();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the mongoDBCollectionId value.
+ */
+ String mongoDBCollectionId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the shardKey value.
+ */
+ Map shardKey();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the MongoDBCollection definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithOptions, DefinitionStages.WithResource, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of MongoDBCollection definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a MongoDBCollection definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the mongodbcollection definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, accountName, databaseName.
+ * @param resourceGroupName Name of an Azure resource group
+ * @param accountName Cosmos DB database account name
+ * @param databaseName Cosmos DB database name
+ * @return the next definition stage
+ */
+ WithOptions withExistingDatabasis(String resourceGroupName, String accountName, String databaseName);
+ }
+
+ /**
+ * The stage of the mongodbcollection definition allowing to specify Options.
+ */
+ interface WithOptions {
+ /**
+ * Specifies options.
+ * @param options A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request
+ * @return the next definition stage
+ */
+ WithResource withOptions(Map options);
+ }
+
+ /**
+ * The stage of the mongodbcollection 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 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 {
+ }
+ }
+ /**
+ * The template for a MongoDBCollection update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of MongoDBCollection update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollectionCreateUpdateParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollectionCreateUpdateParameters.java
new file mode 100644
index 000000000000..1ee105c96f07
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollectionCreateUpdateParameters.java
@@ -0,0 +1,73 @@
+/**
+ * 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.v2015_04_08;
+
+import java.util.Map;
+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 {
+ /**
+ * The standard JSON format of a MongoDB collection.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private MongoDBCollectionResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private Map 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 Map 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(Map options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollectionResource.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollectionResource.java
new file mode 100644
index 000000000000..c51928decc5b
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBCollectionResource.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB collection resource object.
+ */
+public class MongoDBCollectionResource {
+ /**
+ * Name of the Cosmos DB MongoDB collection.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * A key-value pair of shard keys to be applied for the request.
+ */
+ @JsonProperty(value = "shardKey")
+ private Map shardKey;
+
+ /**
+ * List of index keys.
+ */
+ @JsonProperty(value = "indexes")
+ private List indexes;
+
+ /**
+ * Get name of the Cosmos DB MongoDB collection.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB MongoDB collection.
+ *
+ * @param id the id value to set
+ * @return the MongoDBCollectionResource object itself.
+ */
+ public MongoDBCollectionResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of shard keys to be applied for the request.
+ *
+ * @return the shardKey value
+ */
+ public Map shardKey() {
+ return this.shardKey;
+ }
+
+ /**
+ * Set a key-value pair of shard keys to be applied for the request.
+ *
+ * @param shardKey the shardKey value to set
+ * @return the MongoDBCollectionResource object itself.
+ */
+ public MongoDBCollectionResource withShardKey(Map shardKey) {
+ this.shardKey = shardKey;
+ return this;
+ }
+
+ /**
+ * Get list of index keys.
+ *
+ * @return the indexes value
+ */
+ public List indexes() {
+ return this.indexes;
+ }
+
+ /**
+ * Set list of index keys.
+ *
+ * @param indexes the indexes value to set
+ * @return the MongoDBCollectionResource object itself.
+ */
+ public MongoDBCollectionResource withIndexes(List indexes) {
+ this.indexes = indexes;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabase.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabase.java
new file mode 100644
index 000000000000..bb3b51f8538f
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabase.java
@@ -0,0 +1,51 @@
+/**
+ * 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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.MongoDBDatabaseInner;
+import java.util.Map;
+
+/**
+ * Type representing MongoDBDatabase.
+ */
+public interface MongoDBDatabase extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the mongoDBDatabaseId value.
+ */
+ String mongoDBDatabaseId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabaseCreateUpdateParameters.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabaseCreateUpdateParameters.java
new file mode 100644
index 000000000000..a1a057c8c293
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabaseCreateUpdateParameters.java
@@ -0,0 +1,73 @@
+/**
+ * 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.v2015_04_08;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to create and update Cosmos DB MongoDB database.
+ */
+@JsonFlatten
+public class MongoDBDatabaseCreateUpdateParameters {
+ /**
+ * The standard JSON format of a MongoDB database.
+ */
+ @JsonProperty(value = "properties.resource", required = true)
+ private MongoDBDatabaseResource resource;
+
+ /**
+ * A key-value pair of options to be applied for the request. This
+ * corresponds to the headers sent with the request.
+ */
+ @JsonProperty(value = "properties.options", required = true)
+ private Map options;
+
+ /**
+ * Get the standard JSON format of a MongoDB database.
+ *
+ * @return the resource value
+ */
+ public MongoDBDatabaseResource resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the standard JSON format of a MongoDB database.
+ *
+ * @param resource the resource value to set
+ * @return the MongoDBDatabaseCreateUpdateParameters object itself.
+ */
+ public MongoDBDatabaseCreateUpdateParameters withResource(MongoDBDatabaseResource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @return the options value
+ */
+ public Map options() {
+ return this.options;
+ }
+
+ /**
+ * Set a key-value pair of options to be applied for the request. This corresponds to the headers sent with the request.
+ *
+ * @param options the options value to set
+ * @return the MongoDBDatabaseCreateUpdateParameters object itself.
+ */
+ public MongoDBDatabaseCreateUpdateParameters withOptions(Map options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabaseResource.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabaseResource.java
new file mode 100644
index 000000000000..adfaa17cba3d
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoDBDatabaseResource.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB database id object.
+ */
+public class MongoDBDatabaseResource {
+ /**
+ * Name of the Cosmos DB MongoDB database.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Get name of the Cosmos DB MongoDB database.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set name of the Cosmos DB MongoDB database.
+ *
+ * @param id the id value to set
+ * @return the MongoDBDatabaseResource object itself.
+ */
+ public MongoDBDatabaseResource withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndex.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndex.java
new file mode 100644
index 000000000000..8d10eb94fdc3
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndex.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB collection index key.
+ */
+public class MongoIndex {
+ /**
+ * Cosmos DB MongoDB collection index keys.
+ */
+ @JsonProperty(value = "key")
+ private MongoIndexKeys key;
+
+ /**
+ * Cosmos DB MongoDB collection index key options.
+ */
+ @JsonProperty(value = "options")
+ private MongoIndexOptions options;
+
+ /**
+ * Get cosmos DB MongoDB collection index keys.
+ *
+ * @return the key value
+ */
+ public MongoIndexKeys key() {
+ return this.key;
+ }
+
+ /**
+ * Set cosmos DB MongoDB collection index keys.
+ *
+ * @param key the key value to set
+ * @return the MongoIndex object itself.
+ */
+ public MongoIndex withKey(MongoIndexKeys key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Get cosmos DB MongoDB collection index key options.
+ *
+ * @return the options value
+ */
+ public MongoIndexOptions options() {
+ return this.options;
+ }
+
+ /**
+ * Set cosmos DB MongoDB collection index key options.
+ *
+ * @param options the options value to set
+ * @return the MongoIndex object itself.
+ */
+ public MongoIndex withOptions(MongoIndexOptions options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndexKeys.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndexKeys.java
new file mode 100644
index 000000000000..9482984bd19e
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndexKeys.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB collection resource object.
+ */
+public class MongoIndexKeys {
+ /**
+ * List of keys for each MongoDB collection in the Azure Cosmos DB service.
+ */
+ @JsonProperty(value = "keys")
+ private List keys;
+
+ /**
+ * Get list of keys for each MongoDB collection in the Azure Cosmos DB service.
+ *
+ * @return the keys value
+ */
+ public List keys() {
+ return this.keys;
+ }
+
+ /**
+ * Set list of keys for each MongoDB collection in the Azure Cosmos DB service.
+ *
+ * @param keys the keys value to set
+ * @return the MongoIndexKeys object itself.
+ */
+ public MongoIndexKeys withKeys(List keys) {
+ this.keys = keys;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndexOptions.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndexOptions.java
new file mode 100644
index 000000000000..d2b9d94acc5a
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/MongoIndexOptions.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cosmos DB MongoDB collection index options.
+ */
+public class MongoIndexOptions {
+ /**
+ * Expire after seconds.
+ */
+ @JsonProperty(value = "expireAfterSeconds")
+ private Integer expireAfterSeconds;
+
+ /**
+ * Is unique or not.
+ */
+ @JsonProperty(value = "unique")
+ private Boolean unique;
+
+ /**
+ * Get expire after seconds.
+ *
+ * @return the expireAfterSeconds value
+ */
+ public Integer expireAfterSeconds() {
+ return this.expireAfterSeconds;
+ }
+
+ /**
+ * Set expire after seconds.
+ *
+ * @param expireAfterSeconds the expireAfterSeconds value to set
+ * @return the MongoIndexOptions object itself.
+ */
+ public MongoIndexOptions withExpireAfterSeconds(Integer expireAfterSeconds) {
+ this.expireAfterSeconds = expireAfterSeconds;
+ return this;
+ }
+
+ /**
+ * Get is unique or not.
+ *
+ * @return the unique value
+ */
+ public Boolean unique() {
+ return this.unique;
+ }
+
+ /**
+ * Set is unique or not.
+ *
+ * @param unique the unique value to set
+ * @return the MongoIndexOptions object itself.
+ */
+ public MongoIndexOptions withUnique(Boolean unique) {
+ this.unique = unique;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Operation.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Operation.java
new file mode 100644
index 000000000000..e7b6d0f15616
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Operation.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/OperationDisplay.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/OperationDisplay.java
new file mode 100644
index 000000000000..d52b734cb5df
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/OperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft.ResourceProvider.
+ */
+ @JsonProperty(value = "Provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Profile, endpoint, etc.
+ */
+ @JsonProperty(value = "Resource")
+ private String resource;
+
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "Operation")
+ private String operation;
+
+ /**
+ * Description of operation.
+ */
+ @JsonProperty(value = "Description")
+ private String description;
+
+ /**
+ * Get service provider: Microsoft.ResourceProvider.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft.ResourceProvider.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Profile, endpoint, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed: Profile, endpoint, etc.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set operation type: Read, write, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get description of operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of operation.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Operations.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Operations.java
new file mode 100644
index 000000000000..1a80664ba990
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available Cosmos DB Resource Provider operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKeyRangeIdRegions.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKeyRangeIdRegions.java
new file mode 100644
index 000000000000..0c55be3a92ff
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKeyRangeIdRegions.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import rx.Observable;
+
+/**
+ * Type representing PartitionKeyRangeIdRegions.
+ */
+public interface PartitionKeyRangeIdRegions {
+ /**
+ * Retrieves the metrics determined by the given filter for the given partition key range id and region.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param region Cosmos DB region, with spaces between words and each word capitalized.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param partitionKeyRangeId Partition Key Range Id for which to get data.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String region, String databaseRid, String collectionRid, String partitionKeyRangeId, String filter);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKeyRangeIds.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKeyRangeIds.java
new file mode 100644
index 000000000000..78959b9814ae
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKeyRangeIds.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import rx.Observable;
+
+/**
+ * Type representing PartitionKeyRangeIds.
+ */
+public interface PartitionKeyRangeIds {
+ /**
+ * Retrieves the metrics determined by the given filter for the given partition key range id.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param databaseRid Cosmos DB database rid.
+ * @param collectionRid Cosmos DB collection rid.
+ * @param partitionKeyRangeId Partition Key Range Id for which to get data.
+ * @param filter An OData filter expression that describes a subset of metrics to return. The parameters that can be filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and timeGrain. The supported operator is eq.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String accountName, String databaseRid, String collectionRid, String partitionKeyRangeId, String filter);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKind.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKind.java
new file mode 100644
index 000000000000..5f71ad325e81
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionKind.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.cosmosdb.v2015_04_08;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PartitionKind.
+ */
+public final class PartitionKind extends ExpandableStringEnum {
+ /** Static value Hash for PartitionKind. */
+ public static final PartitionKind HASH = fromString("Hash");
+
+ /** Static value Range for PartitionKind. */
+ public static final PartitionKind RANGE = fromString("Range");
+
+ /**
+ * Creates or finds a PartitionKind from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PartitionKind
+ */
+ @JsonCreator
+ public static PartitionKind fromString(String name) {
+ return fromString(name, PartitionKind.class);
+ }
+
+ /**
+ * @return known PartitionKind values
+ */
+ public static Collection values() {
+ return values(PartitionKind.class);
+ }
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionMetric.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionMetric.java
new file mode 100644
index 000000000000..f71b2da26643
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionMetric.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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.PartitionMetricInner;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing PartitionMetric.
+ */
+public interface PartitionMetric extends HasInner, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the metricValues value.
+ */
+ List metricValues();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the partitionId value.
+ */
+ String partitionId();
+
+ /**
+ * @return the partitionKeyRangeId value.
+ */
+ String partitionKeyRangeId();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the timeGrain value.
+ */
+ String timeGrain();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionUsage.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionUsage.java
new file mode 100644
index 000000000000..88fbd7208209
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PartitionUsage.java
@@ -0,0 +1,55 @@
+/**
+ * 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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.PartitionUsageInner;
+
+/**
+ * Type representing PartitionUsage.
+ */
+public interface PartitionUsage extends HasInner, HasManager {
+ /**
+ * @return the currentValue value.
+ */
+ Long currentValue();
+
+ /**
+ * @return the limit value.
+ */
+ Long limit();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the partitionId value.
+ */
+ String partitionId();
+
+ /**
+ * @return the partitionKeyRangeId value.
+ */
+ String partitionKeyRangeId();
+
+ /**
+ * @return the quotaPeriod value.
+ */
+ String quotaPeriod();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileMetric.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileMetric.java
new file mode 100644
index 000000000000..68e2b873d3ae
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileMetric.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.v2015_04_08;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.CosmosDBManager;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.PercentileMetricInner;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing PercentileMetric.
+ */
+public interface PercentileMetric 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/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileMetricValue.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileMetricValue.java
new file mode 100644
index 000000000000..4051d9284cff
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileMetricValue.java
@@ -0,0 +1,122 @@
+/**
+ * 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.v2015_04_08;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents percentile metrics values.
+ */
+public class PercentileMetricValue extends MetricValue {
+ /**
+ * The 10th percentile value for the metric.
+ */
+ @JsonProperty(value = "P10", access = JsonProperty.Access.WRITE_ONLY)
+ private Double p10;
+
+ /**
+ * The 25th percentile value for the metric.
+ */
+ @JsonProperty(value = "P25", access = JsonProperty.Access.WRITE_ONLY)
+ private Double p25;
+
+ /**
+ * The 50th percentile value for the metric.
+ */
+ @JsonProperty(value = "P50", access = JsonProperty.Access.WRITE_ONLY)
+ private Double p50;
+
+ /**
+ * The 75th percentile value for the metric.
+ */
+ @JsonProperty(value = "P75", access = JsonProperty.Access.WRITE_ONLY)
+ private Double p75;
+
+ /**
+ * The 90th percentile value for the metric.
+ */
+ @JsonProperty(value = "P90", access = JsonProperty.Access.WRITE_ONLY)
+ private Double p90;
+
+ /**
+ * The 95th percentile value for the metric.
+ */
+ @JsonProperty(value = "P95", access = JsonProperty.Access.WRITE_ONLY)
+ private Double p95;
+
+ /**
+ * The 99th percentile value for the metric.
+ */
+ @JsonProperty(value = "P99", access = JsonProperty.Access.WRITE_ONLY)
+ private Double p99;
+
+ /**
+ * Get the 10th percentile value for the metric.
+ *
+ * @return the p10 value
+ */
+ public Double p10() {
+ return this.p10;
+ }
+
+ /**
+ * Get the 25th percentile value for the metric.
+ *
+ * @return the p25 value
+ */
+ public Double p25() {
+ return this.p25;
+ }
+
+ /**
+ * Get the 50th percentile value for the metric.
+ *
+ * @return the p50 value
+ */
+ public Double p50() {
+ return this.p50;
+ }
+
+ /**
+ * Get the 75th percentile value for the metric.
+ *
+ * @return the p75 value
+ */
+ public Double p75() {
+ return this.p75;
+ }
+
+ /**
+ * Get the 90th percentile value for the metric.
+ *
+ * @return the p90 value
+ */
+ public Double p90() {
+ return this.p90;
+ }
+
+ /**
+ * Get the 95th percentile value for the metric.
+ *
+ * @return the p95 value
+ */
+ public Double p95() {
+ return this.p95;
+ }
+
+ /**
+ * Get the 99th percentile value for the metric.
+ *
+ * @return the p99 value
+ */
+ public Double p99() {
+ return this.p99;
+ }
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileSourceTargets.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileSourceTargets.java
new file mode 100644
index 000000000000..24d1df657039
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileSourceTargets.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.v2015_04_08;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.PercentileSourceTargetsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PercentileSourceTargets.
+ */
+public interface PercentileSourceTargets extends HasInner {
+ /**
+ * Retrieves the metrics determined by the given filter for the given account, source and target region. This url is only for PBS and Replication Latency data.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param sourceRegion Source region from which data is written. Cosmos DB region, with spaces between words and each word capitalized.
+ * @param targetRegion Target region to which data is written. 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 sourceRegion, String targetRegion, String filter);
+
+}
diff --git a/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileTargets.java b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileTargets.java
new file mode 100644
index 000000000000..937afbde388a
--- /dev/null
+++ b/sdk/cosmosdb/mgmt-v2015_04_08/src/main/java/com/microsoft/azure/management/cosmosdb/v2015_04_08/PercentileTargets.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.v2015_04_08;
+
+import rx.Observable;
+import com.microsoft.azure.management.cosmosdb.v2015_04_08.implementation.PercentileTargetsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PercentileTargets.
+ */
+public interface PercentileTargets extends HasInner {
+ /**
+ * Retrieves the metrics determined by the given filter for the given account target region. This url is only for PBS and Replication Latency data.
+ *
+ * @param resourceGroupName Name of an Azure resource group.
+ * @param accountName Cosmos DB database account name.
+ * @param targetRegion Target region to which data is written. 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