diff --git a/servicebus/resource-manager/v2015_08_01/pom.xml b/servicebus/resource-manager/v2015_08_01/pom.xml
new file mode 100644
index 000000000000..30dde111dfbf
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.servicebus.v2015_08_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.xml
+
+ azure-mgmt-servicebus
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for ServiceBus Management
+ This package contains Microsoft ServiceBus 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
+
+
+
+
+
+ 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/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/AccessRights.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/AccessRights.java
new file mode 100644
index 000000000000..251738871a8a
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/AccessRights.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AccessRights.
+ */
+public enum AccessRights {
+ /** Enum value Manage. */
+ MANAGE("Manage"),
+
+ /** Enum value Send. */
+ SEND("Send"),
+
+ /** Enum value Listen. */
+ LISTEN("Listen");
+
+ /** The actual serialized value for a AccessRights instance. */
+ private String value;
+
+ AccessRights(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AccessRights instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AccessRights object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AccessRights fromString(String value) {
+ AccessRights[] items = AccessRights.values();
+ for (AccessRights item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/CheckNameAvailability.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/CheckNameAvailability.java
new file mode 100644
index 000000000000..abc67f1f3b22
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/CheckNameAvailability.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.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Description of a Check Name availability request properties.
+ */
+public class CheckNameAvailability {
+ /**
+ * The Name to check the namespace name availability and The namespace name
+ * can contain only letters, numbers, and hyphens. The namespace must start
+ * with a letter, and it must end with a letter or number.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Get the Name to check the namespace name availability and The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the Name to check the namespace name availability and The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number.
+ *
+ * @param name the name value to set
+ * @return the CheckNameAvailability object itself.
+ */
+ public CheckNameAvailability withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/CheckNameAvailabilityResult.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/CheckNameAvailabilityResult.java
new file mode 100644
index 000000000000..109bccdc673c
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/CheckNameAvailabilityResult.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.CheckNameAvailabilityResultInner;
+
+/**
+ * Type representing CheckNameAvailabilityResult.
+ */
+public interface CheckNameAvailabilityResult extends HasInner, HasManager {
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the nameAvailable value.
+ */
+ Boolean nameAvailable();
+
+ /**
+ * @return the reason value.
+ */
+ UnavailableReason reason();
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/EntityAvailabilityStatus.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/EntityAvailabilityStatus.java
new file mode 100644
index 000000000000..e7c03b35ae58
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/EntityAvailabilityStatus.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.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for EntityAvailabilityStatus.
+ */
+public enum EntityAvailabilityStatus {
+ /** Enum value Available. */
+ AVAILABLE("Available"),
+
+ /** Enum value Limited. */
+ LIMITED("Limited"),
+
+ /** Enum value Renaming. */
+ RENAMING("Renaming"),
+
+ /** Enum value Restoring. */
+ RESTORING("Restoring"),
+
+ /** Enum value Unknown. */
+ UNKNOWN("Unknown");
+
+ /** The actual serialized value for a EntityAvailabilityStatus instance. */
+ private String value;
+
+ EntityAvailabilityStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a EntityAvailabilityStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed EntityAvailabilityStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static EntityAvailabilityStatus fromString(String value) {
+ EntityAvailabilityStatus[] items = EntityAvailabilityStatus.values();
+ for (EntityAvailabilityStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/EntityStatus.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/EntityStatus.java
new file mode 100644
index 000000000000..da50cb609fe0
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/EntityStatus.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for EntityStatus.
+ */
+public enum EntityStatus {
+ /** Enum value Active. */
+ ACTIVE("Active"),
+
+ /** Enum value Creating. */
+ CREATING("Creating"),
+
+ /** Enum value Deleting. */
+ DELETING("Deleting"),
+
+ /** Enum value Disabled. */
+ DISABLED("Disabled"),
+
+ /** Enum value ReceiveDisabled. */
+ RECEIVE_DISABLED("ReceiveDisabled"),
+
+ /** Enum value Renaming. */
+ RENAMING("Renaming"),
+
+ /** Enum value Restoring. */
+ RESTORING("Restoring"),
+
+ /** Enum value SendDisabled. */
+ SEND_DISABLED("SendDisabled"),
+
+ /** Enum value Unknown. */
+ UNKNOWN("Unknown");
+
+ /** The actual serialized value for a EntityStatus instance. */
+ private String value;
+
+ EntityStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a EntityStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed EntityStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static EntityStatus fromString(String value) {
+ EntityStatus[] items = EntityStatus.values();
+ for (EntityStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/MessageCountDetails.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/MessageCountDetails.java
new file mode 100644
index 000000000000..b04d52375986
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/MessageCountDetails.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Message Count Details.
+ */
+public class MessageCountDetails {
+ /**
+ * Number of active messages in the queue, topic, or subscription.
+ */
+ @JsonProperty(value = "activeMessageCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long activeMessageCount;
+
+ /**
+ * Number of messages that are dead lettered.
+ */
+ @JsonProperty(value = "deadLetterMessageCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long deadLetterMessageCount;
+
+ /**
+ * Number of scheduled messages.
+ */
+ @JsonProperty(value = "scheduledMessageCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long scheduledMessageCount;
+
+ /**
+ * Number of messages transferred into dead letters.
+ */
+ @JsonProperty(value = "transferDeadLetterMessageCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long transferDeadLetterMessageCount;
+
+ /**
+ * Number of messages transferred to another queue, topic, or subscription.
+ */
+ @JsonProperty(value = "transferMessageCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long transferMessageCount;
+
+ /**
+ * Get number of active messages in the queue, topic, or subscription.
+ *
+ * @return the activeMessageCount value
+ */
+ public Long activeMessageCount() {
+ return this.activeMessageCount;
+ }
+
+ /**
+ * Get number of messages that are dead lettered.
+ *
+ * @return the deadLetterMessageCount value
+ */
+ public Long deadLetterMessageCount() {
+ return this.deadLetterMessageCount;
+ }
+
+ /**
+ * Get number of scheduled messages.
+ *
+ * @return the scheduledMessageCount value
+ */
+ public Long scheduledMessageCount() {
+ return this.scheduledMessageCount;
+ }
+
+ /**
+ * Get number of messages transferred into dead letters.
+ *
+ * @return the transferDeadLetterMessageCount value
+ */
+ public Long transferDeadLetterMessageCount() {
+ return this.transferDeadLetterMessageCount;
+ }
+
+ /**
+ * Get number of messages transferred to another queue, topic, or subscription.
+ *
+ * @return the transferMessageCount value
+ */
+ public Long transferMessageCount() {
+ return this.transferMessageCount;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceCreateOrUpdateParameters.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceCreateOrUpdateParameters.java
new file mode 100644
index 000000000000..5ce98bc638d1
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceCreateOrUpdateParameters.java
@@ -0,0 +1,239 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import java.util.Map;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters supplied to the Create Or Update Namespace operation.
+ */
+@JsonFlatten
+public class NamespaceCreateOrUpdateParameters {
+ /**
+ * Namespace location.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /**
+ * The sku property.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /**
+ * Namespace tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Provisioning state of the namespace.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * State of the namespace. Possible values include: 'Unknown', 'Creating',
+ * 'Created', 'Activating', 'Enabling', 'Active', 'Disabling', 'Disabled',
+ * 'SoftDeleting', 'SoftDeleted', 'Removing', 'Removed', 'Failed'.
+ */
+ @JsonProperty(value = "properties.status")
+ private NamespaceState status;
+
+ /**
+ * The time the namespace was created.
+ */
+ @JsonProperty(value = "properties.createdAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime createdAt;
+
+ /**
+ * The time the namespace was updated.
+ */
+ @JsonProperty(value = "properties.updatedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime updatedAt;
+
+ /**
+ * Endpoint you can use to perform Service Bus operations.
+ */
+ @JsonProperty(value = "properties.serviceBusEndpoint", access = JsonProperty.Access.WRITE_ONLY)
+ private String serviceBusEndpoint;
+
+ /**
+ * Indicates whether to create an ACS namespace.
+ */
+ @JsonProperty(value = "properties.createACSNamespace")
+ private Boolean createACSNamespace;
+
+ /**
+ * Specifies whether this instance is enabled.
+ */
+ @JsonProperty(value = "properties.enabled")
+ private Boolean enabled;
+
+ /**
+ * Get namespace location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set namespace location.
+ *
+ * @param location the location value to set
+ * @return the NamespaceCreateOrUpdateParameters object itself.
+ */
+ public NamespaceCreateOrUpdateParameters withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the sku value.
+ *
+ * @return the sku value
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku value.
+ *
+ * @param sku the sku value to set
+ * @return the NamespaceCreateOrUpdateParameters object itself.
+ */
+ public NamespaceCreateOrUpdateParameters withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get namespace tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set namespace tags.
+ *
+ * @param tags the tags value to set
+ * @return the NamespaceCreateOrUpdateParameters object itself.
+ */
+ public NamespaceCreateOrUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the namespace.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get state of the namespace. Possible values include: 'Unknown', 'Creating', 'Created', 'Activating', 'Enabling', 'Active', 'Disabling', 'Disabled', 'SoftDeleting', 'SoftDeleted', 'Removing', 'Removed', 'Failed'.
+ *
+ * @return the status value
+ */
+ public NamespaceState status() {
+ return this.status;
+ }
+
+ /**
+ * Set state of the namespace. Possible values include: 'Unknown', 'Creating', 'Created', 'Activating', 'Enabling', 'Active', 'Disabling', 'Disabled', 'SoftDeleting', 'SoftDeleted', 'Removing', 'Removed', 'Failed'.
+ *
+ * @param status the status value to set
+ * @return the NamespaceCreateOrUpdateParameters object itself.
+ */
+ public NamespaceCreateOrUpdateParameters withStatus(NamespaceState status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the time the namespace was created.
+ *
+ * @return the createdAt value
+ */
+ public DateTime createdAt() {
+ return this.createdAt;
+ }
+
+ /**
+ * Get the time the namespace was updated.
+ *
+ * @return the updatedAt value
+ */
+ public DateTime updatedAt() {
+ return this.updatedAt;
+ }
+
+ /**
+ * Get endpoint you can use to perform Service Bus operations.
+ *
+ * @return the serviceBusEndpoint value
+ */
+ public String serviceBusEndpoint() {
+ return this.serviceBusEndpoint;
+ }
+
+ /**
+ * Get indicates whether to create an ACS namespace.
+ *
+ * @return the createACSNamespace value
+ */
+ public Boolean createACSNamespace() {
+ return this.createACSNamespace;
+ }
+
+ /**
+ * Set indicates whether to create an ACS namespace.
+ *
+ * @param createACSNamespace the createACSNamespace value to set
+ * @return the NamespaceCreateOrUpdateParameters object itself.
+ */
+ public NamespaceCreateOrUpdateParameters withCreateACSNamespace(Boolean createACSNamespace) {
+ this.createACSNamespace = createACSNamespace;
+ return this;
+ }
+
+ /**
+ * Get specifies whether this instance is enabled.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set specifies whether this instance is enabled.
+ *
+ * @param enabled the enabled value to set
+ * @return the NamespaceCreateOrUpdateParameters object itself.
+ */
+ public NamespaceCreateOrUpdateParameters withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceResource.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceResource.java
new file mode 100644
index 000000000000..271893b2c7b1
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceResource.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.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import org.joda.time.DateTime;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.NamespaceResourceInner;
+
+/**
+ * Type representing NamespaceResource.
+ */
+public interface NamespaceResource extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the createACSNamespace value.
+ */
+ Boolean createACSNamespace();
+
+ /**
+ * @return the createdAt value.
+ */
+ DateTime createdAt();
+
+ /**
+ * @return the enabled value.
+ */
+ Boolean enabled();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the serviceBusEndpoint value.
+ */
+ String serviceBusEndpoint();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the status value.
+ */
+ NamespaceState status();
+
+ /**
+ * @return the updatedAt value.
+ */
+ DateTime updatedAt();
+
+ /**
+ * The entirety of the NamespaceResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of NamespaceResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a NamespaceResource definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the NamespaceResource definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the namespaceresource definition allowing to specify CreateACSNamespace.
+ */
+ interface WithCreateACSNamespace {
+ /**
+ * Specifies createACSNamespace.
+ * @param createACSNamespace Indicates whether to create an ACS namespace
+ * @return the next definition stage
+ */
+ WithCreate withCreateACSNamespace(Boolean createACSNamespace);
+ }
+
+ /**
+ * The stage of the namespaceresource definition allowing to specify Enabled.
+ */
+ interface WithEnabled {
+ /**
+ * Specifies enabled.
+ * @param enabled Specifies whether this instance is enabled
+ * @return the next definition stage
+ */
+ WithCreate withEnabled(Boolean enabled);
+ }
+
+ /**
+ * The stage of the namespaceresource definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku the sku parameter value
+ * @return the next definition stage
+ */
+ WithCreate withSku(Sku sku);
+ }
+
+ /**
+ * The stage of the namespaceresource definition allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status State of the namespace. Possible values include: 'Unknown', 'Creating', 'Created', 'Activating', 'Enabling', 'Active', 'Disabling', 'Disabled', 'SoftDeleting', 'SoftDeleted', 'Removing', 'Removed', 'Failed'
+ * @return the next definition stage
+ */
+ WithCreate withStatus(NamespaceState status);
+ }
+
+ /**
+ * 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.WithCreateACSNamespace, DefinitionStages.WithEnabled, DefinitionStages.WithSku, DefinitionStages.WithStatus {
+ }
+ }
+ /**
+ * The template for a NamespaceResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithSku {
+ }
+
+ /**
+ * Grouping of NamespaceResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the namespaceresource update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The sku of the created namespace
+ * @return the next update stage
+ */
+ Update withSku(Sku sku);
+ }
+
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceSharedAccessAuthorizationRuleResource.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceSharedAccessAuthorizationRuleResource.java
new file mode 100644
index 000000000000..15fcc32653d6
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceSharedAccessAuthorizationRuleResource.java
@@ -0,0 +1,159 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.SharedAccessAuthorizationRuleResourceInner;
+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.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import java.util.List;
+
+/**
+ * Type representing NamespaceSharedAccessAuthorizationRuleResource.
+ */
+public interface NamespaceSharedAccessAuthorizationRuleResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the rights value.
+ */
+ List rights();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the NamespaceSharedAccessAuthorizationRuleResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithNamespace, DefinitionStages.WithRights, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of NamespaceSharedAccessAuthorizationRuleResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a NamespaceSharedAccessAuthorizationRuleResource definition.
+ */
+ interface Blank extends WithNamespace {
+ }
+
+ /**
+ * The stage of the namespacesharedaccessauthorizationruleresource definition allowing to specify Namespace.
+ */
+ interface WithNamespace {
+ /**
+ * Specifies resourceGroupName, namespaceName.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription
+ * @param namespaceName The namespace name
+ * @return the next definition stage
+ */
+ WithRights withExistingNamespace(String resourceGroupName, String namespaceName);
+ }
+
+ /**
+ * The stage of the namespacesharedaccessauthorizationruleresource definition allowing to specify Rights.
+ */
+ interface WithRights {
+ /**
+ * Specifies rights.
+ * @param rights The rights associated with the rule
+ * @return the next definition stage
+ */
+ WithCreate withRights(List rights);
+ }
+
+ /**
+ * The stage of the namespacesharedaccessauthorizationruleresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location data center location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the namespacesharedaccessauthorizationruleresource definition allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Name of the authorization rule
+ * @return the next definition stage
+ */
+ WithCreate withName(String name);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithLocation, DefinitionStages.WithName {
+ }
+ }
+ /**
+ * The template for a NamespaceSharedAccessAuthorizationRuleResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLocation, UpdateStages.WithName {
+ }
+
+ /**
+ * Grouping of NamespaceSharedAccessAuthorizationRuleResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the namespacesharedaccessauthorizationruleresource update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location data center location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ /**
+ * The stage of the namespacesharedaccessauthorizationruleresource update allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Name of the authorization rule
+ * @return the next update stage
+ */
+ Update withName(String name);
+ }
+
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceState.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceState.java
new file mode 100644
index 000000000000..487b1d7d64f8
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceState.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for NamespaceState.
+ */
+public enum NamespaceState {
+ /** Enum value Unknown. */
+ UNKNOWN("Unknown"),
+
+ /** Enum value Creating. */
+ CREATING("Creating"),
+
+ /** Enum value Created. */
+ CREATED("Created"),
+
+ /** Enum value Activating. */
+ ACTIVATING("Activating"),
+
+ /** Enum value Enabling. */
+ ENABLING("Enabling"),
+
+ /** Enum value Active. */
+ ACTIVE("Active"),
+
+ /** Enum value Disabling. */
+ DISABLING("Disabling"),
+
+ /** Enum value Disabled. */
+ DISABLED("Disabled"),
+
+ /** Enum value SoftDeleting. */
+ SOFT_DELETING("SoftDeleting"),
+
+ /** Enum value SoftDeleted. */
+ SOFT_DELETED("SoftDeleted"),
+
+ /** Enum value Removing. */
+ REMOVING("Removing"),
+
+ /** Enum value Removed. */
+ REMOVED("Removed"),
+
+ /** Enum value Failed. */
+ FAILED("Failed");
+
+ /** The actual serialized value for a NamespaceState instance. */
+ private String value;
+
+ NamespaceState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a NamespaceState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed NamespaceState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static NamespaceState fromString(String value) {
+ NamespaceState[] items = NamespaceState.values();
+ for (NamespaceState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceUpdateParameters.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceUpdateParameters.java
new file mode 100644
index 000000000000..41e16306e6c3
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/NamespaceUpdateParameters.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.servicebus.v2015_08_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Parameters supplied to the Patch Namespace operation.
+ */
+public class NamespaceUpdateParameters {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The sku of the created namespace.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the NamespaceUpdateParameters object itself.
+ */
+ public NamespaceUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the sku of the created namespace.
+ *
+ * @return the sku value
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku of the created namespace.
+ *
+ * @param sku the sku value to set
+ * @return the NamespaceUpdateParameters object itself.
+ */
+ public NamespaceUpdateParameters withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Namespaces.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Namespaces.java
new file mode 100644
index 000000000000..630bf48e94b6
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Namespaces.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.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.NamespacesInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceSharedAccessAuthorizationRuleResource;
+import rx.Completable;
+
+/**
+ * Type representing Namespaces.
+ */
+public interface Namespaces extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Begins definition for a new AuthorizationRule resource.
+ * @param name resource name.
+ * @return the first stage of the new AuthorizationRule definition.
+ */
+ NamespaceSharedAccessAuthorizationRuleResource.DefinitionStages.Blank defineAuthorizationRule(String name);
+
+ /**
+ * Check the give namespace name availability.
+ *
+ * @param name The Name to check the namespace name availability and The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityMethodAsync(String name);
+
+ /**
+ * Gets an authorization rule for a namespace by rule name.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String authorizationRuleName);
+
+ /**
+ * Gets the authorization rules for a namespace.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAuthorizationRulesAsync(final String resourceGroupName, final String namespaceName);
+
+ /**
+ * Deletes a namespace authorization rule.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String authorizationRuleName);
+
+ /**
+ * Gets the primary and secondary connection strings for the namespace.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listKeysAsync(String resourceGroupName, String namespaceName, String authorizationRuleName);
+
+ /**
+ * Regenerates the primary or secondary connection strings for the namespace.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable regenerateKeysAsync(String resourceGroupName, String namespaceName, String authorizationRuleName);
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Operation.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Operation.java
new file mode 100644
index 000000000000..23cafb001f1b
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/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.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import com.microsoft.azure.management.servicebus.v2015_08_01.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/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/OperationDisplay.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/OperationDisplay.java
new file mode 100644
index 000000000000..2bf09b0f2449
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/OperationDisplay.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.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft.ServiceBus.
+ */
+ @JsonProperty(value = "provider", access = JsonProperty.Access.WRITE_ONLY)
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Invoice, etc.
+ */
+ @JsonProperty(value = "resource", access = JsonProperty.Access.WRITE_ONLY)
+ private String resource;
+
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "operation", access = JsonProperty.Access.WRITE_ONLY)
+ private String operation;
+
+ /**
+ * Get service provider: Microsoft.ServiceBus.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Invoice, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Operations.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Operations.java
new file mode 100644
index 000000000000..48b8c8d40a9b
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/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.servicebus.v2015_08_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available ServiceBus REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Policykey.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Policykey.java
new file mode 100644
index 000000000000..c2675507abc1
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Policykey.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.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for Policykey.
+ */
+public enum Policykey {
+ /** Enum value PrimaryKey. */
+ PRIMARY_KEY("PrimaryKey"),
+
+ /** Enum value SecondaryKey. */
+ SECONDARY_KEY("SecondaryKey");
+
+ /** The actual serialized value for a Policykey instance. */
+ private String value;
+
+ Policykey(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a Policykey instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed Policykey object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static Policykey fromString(String value) {
+ Policykey[] items = Policykey.values();
+ for (Policykey item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueCreateOrUpdateParameters.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueCreateOrUpdateParameters.java
new file mode 100644
index 000000000000..c481872eaef9
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueCreateOrUpdateParameters.java
@@ -0,0 +1,597 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters supplied to the Create Or Update Queue operation.
+ */
+@JsonFlatten
+public class QueueCreateOrUpdateParameters {
+ /**
+ * Queue name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * location of the resource.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /**
+ * The duration of a peek-lock; that is, the amount of time that the
+ * message is locked for other receivers. The maximum value for
+ * LockDuration is 5 minutes; the default value is 1 minute.
+ */
+ @JsonProperty(value = "properties.lockDuration")
+ private String lockDuration;
+
+ /**
+ * Last time a message was sent, or the last time there was a receive
+ * request to this queue.
+ */
+ @JsonProperty(value = "properties.accessedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime accessedAt;
+
+ /**
+ * the TimeSpan idle interval after which the queue is automatically
+ * deleted. The minimum duration is 5 minutes.
+ */
+ @JsonProperty(value = "properties.autoDeleteOnIdle")
+ private String autoDeleteOnIdle;
+
+ /**
+ * Entity availability status for the queue. Possible values include:
+ * 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ */
+ @JsonProperty(value = "properties.entityAvailabilityStatus")
+ private EntityAvailabilityStatus entityAvailabilityStatus;
+
+ /**
+ * The exact time the message was created.
+ */
+ @JsonProperty(value = "properties.createdAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime createdAt;
+
+ /**
+ * The default message time to live value. This is the duration after which
+ * the message expires, starting from when the message is sent to Service
+ * Bus. This is the default value used when TimeToLive is not set on a
+ * message itself.
+ */
+ @JsonProperty(value = "properties.defaultMessageTimeToLive")
+ private String defaultMessageTimeToLive;
+
+ /**
+ * TimeSpan structure that defines the duration of the duplicate detection
+ * history. The default value is 10 minutes.
+ */
+ @JsonProperty(value = "properties.duplicateDetectionHistoryTimeWindow")
+ private String duplicateDetectionHistoryTimeWindow;
+
+ /**
+ * A value that indicates whether server-side batched operations are
+ * enabled.
+ */
+ @JsonProperty(value = "properties.enableBatchedOperations")
+ private Boolean enableBatchedOperations;
+
+ /**
+ * A value that indicates whether this queue has dead letter support when a
+ * message expires.
+ */
+ @JsonProperty(value = "properties.deadLetteringOnMessageExpiration")
+ private Boolean deadLetteringOnMessageExpiration;
+
+ /**
+ * A value that indicates whether Express Entities are enabled. An express
+ * queue holds a message in memory temporarily before writing it to
+ * persistent storage.
+ */
+ @JsonProperty(value = "properties.enableExpress")
+ private Boolean enableExpress;
+
+ /**
+ * A value that indicates whether the queue is to be partitioned across
+ * multiple message brokers.
+ */
+ @JsonProperty(value = "properties.enablePartitioning")
+ private Boolean enablePartitioning;
+
+ /**
+ * A value that indicates whether the message is accessible anonymously.
+ */
+ @JsonProperty(value = "properties.isAnonymousAccessible")
+ private Boolean isAnonymousAccessible;
+
+ /**
+ * The maximum delivery count. A message is automatically deadlettered
+ * after this number of deliveries.
+ */
+ @JsonProperty(value = "properties.maxDeliveryCount")
+ private Integer maxDeliveryCount;
+
+ /**
+ * The maximum size of the queue in megabytes, which is the size of memory
+ * allocated for the queue.
+ */
+ @JsonProperty(value = "properties.maxSizeInMegabytes")
+ private Long maxSizeInMegabytes;
+
+ /**
+ * The number of messages in the queue.
+ */
+ @JsonProperty(value = "properties.messageCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long messageCount;
+
+ /**
+ * The countDetails property.
+ */
+ @JsonProperty(value = "properties.countDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private MessageCountDetails countDetails;
+
+ /**
+ * A value indicating if this queue requires duplicate detection.
+ */
+ @JsonProperty(value = "properties.requiresDuplicateDetection")
+ private Boolean requiresDuplicateDetection;
+
+ /**
+ * A value that indicates whether the queue supports the concept of
+ * sessions.
+ */
+ @JsonProperty(value = "properties.requiresSession")
+ private Boolean requiresSession;
+
+ /**
+ * The size of the queue, in bytes.
+ */
+ @JsonProperty(value = "properties.sizeInBytes", access = JsonProperty.Access.WRITE_ONLY)
+ private Long sizeInBytes;
+
+ /**
+ * Enumerates the possible values for the status of a messaging entity.
+ * Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled',
+ * 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ */
+ @JsonProperty(value = "properties.status")
+ private EntityStatus status;
+
+ /**
+ * A value that indicates whether the queue supports ordering.
+ */
+ @JsonProperty(value = "properties.supportOrdering")
+ private Boolean supportOrdering;
+
+ /**
+ * The exact time the message was updated.
+ */
+ @JsonProperty(value = "properties.updatedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime updatedAt;
+
+ /**
+ * Get queue name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set queue name.
+ *
+ * @param name the name value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get location of the resource.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set location of the resource.
+ *
+ * @param location the location value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute.
+ *
+ * @return the lockDuration value
+ */
+ public String lockDuration() {
+ return this.lockDuration;
+ }
+
+ /**
+ * Set the duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute.
+ *
+ * @param lockDuration the lockDuration value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withLockDuration(String lockDuration) {
+ this.lockDuration = lockDuration;
+ return this;
+ }
+
+ /**
+ * Get last time a message was sent, or the last time there was a receive request to this queue.
+ *
+ * @return the accessedAt value
+ */
+ public DateTime accessedAt() {
+ return this.accessedAt;
+ }
+
+ /**
+ * Get the TimeSpan idle interval after which the queue is automatically deleted. The minimum duration is 5 minutes.
+ *
+ * @return the autoDeleteOnIdle value
+ */
+ public String autoDeleteOnIdle() {
+ return this.autoDeleteOnIdle;
+ }
+
+ /**
+ * Set the TimeSpan idle interval after which the queue is automatically deleted. The minimum duration is 5 minutes.
+ *
+ * @param autoDeleteOnIdle the autoDeleteOnIdle value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withAutoDeleteOnIdle(String autoDeleteOnIdle) {
+ this.autoDeleteOnIdle = autoDeleteOnIdle;
+ return this;
+ }
+
+ /**
+ * Get entity availability status for the queue. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ *
+ * @return the entityAvailabilityStatus value
+ */
+ public EntityAvailabilityStatus entityAvailabilityStatus() {
+ return this.entityAvailabilityStatus;
+ }
+
+ /**
+ * Set entity availability status for the queue. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ *
+ * @param entityAvailabilityStatus the entityAvailabilityStatus value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus) {
+ this.entityAvailabilityStatus = entityAvailabilityStatus;
+ return this;
+ }
+
+ /**
+ * Get the exact time the message was created.
+ *
+ * @return the createdAt value
+ */
+ public DateTime createdAt() {
+ return this.createdAt;
+ }
+
+ /**
+ * Get the default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
+ *
+ * @return the defaultMessageTimeToLive value
+ */
+ public String defaultMessageTimeToLive() {
+ return this.defaultMessageTimeToLive;
+ }
+
+ /**
+ * Set the default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
+ *
+ * @param defaultMessageTimeToLive the defaultMessageTimeToLive value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withDefaultMessageTimeToLive(String defaultMessageTimeToLive) {
+ this.defaultMessageTimeToLive = defaultMessageTimeToLive;
+ return this;
+ }
+
+ /**
+ * Get timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.
+ *
+ * @return the duplicateDetectionHistoryTimeWindow value
+ */
+ public String duplicateDetectionHistoryTimeWindow() {
+ return this.duplicateDetectionHistoryTimeWindow;
+ }
+
+ /**
+ * Set timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.
+ *
+ * @param duplicateDetectionHistoryTimeWindow the duplicateDetectionHistoryTimeWindow value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withDuplicateDetectionHistoryTimeWindow(String duplicateDetectionHistoryTimeWindow) {
+ this.duplicateDetectionHistoryTimeWindow = duplicateDetectionHistoryTimeWindow;
+ return this;
+ }
+
+ /**
+ * Get a value that indicates whether server-side batched operations are enabled.
+ *
+ * @return the enableBatchedOperations value
+ */
+ public Boolean enableBatchedOperations() {
+ return this.enableBatchedOperations;
+ }
+
+ /**
+ * Set a value that indicates whether server-side batched operations are enabled.
+ *
+ * @param enableBatchedOperations the enableBatchedOperations value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withEnableBatchedOperations(Boolean enableBatchedOperations) {
+ this.enableBatchedOperations = enableBatchedOperations;
+ return this;
+ }
+
+ /**
+ * Get a value that indicates whether this queue has dead letter support when a message expires.
+ *
+ * @return the deadLetteringOnMessageExpiration value
+ */
+ public Boolean deadLetteringOnMessageExpiration() {
+ return this.deadLetteringOnMessageExpiration;
+ }
+
+ /**
+ * Set a value that indicates whether this queue has dead letter support when a message expires.
+ *
+ * @param deadLetteringOnMessageExpiration the deadLetteringOnMessageExpiration value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withDeadLetteringOnMessageExpiration(Boolean deadLetteringOnMessageExpiration) {
+ this.deadLetteringOnMessageExpiration = deadLetteringOnMessageExpiration;
+ return this;
+ }
+
+ /**
+ * Get a value that indicates whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage.
+ *
+ * @return the enableExpress value
+ */
+ public Boolean enableExpress() {
+ return this.enableExpress;
+ }
+
+ /**
+ * Set a value that indicates whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage.
+ *
+ * @param enableExpress the enableExpress value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withEnableExpress(Boolean enableExpress) {
+ this.enableExpress = enableExpress;
+ return this;
+ }
+
+ /**
+ * Get a value that indicates whether the queue is to be partitioned across multiple message brokers.
+ *
+ * @return the enablePartitioning value
+ */
+ public Boolean enablePartitioning() {
+ return this.enablePartitioning;
+ }
+
+ /**
+ * Set a value that indicates whether the queue is to be partitioned across multiple message brokers.
+ *
+ * @param enablePartitioning the enablePartitioning value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withEnablePartitioning(Boolean enablePartitioning) {
+ this.enablePartitioning = enablePartitioning;
+ return this;
+ }
+
+ /**
+ * Get a value that indicates whether the message is accessible anonymously.
+ *
+ * @return the isAnonymousAccessible value
+ */
+ public Boolean isAnonymousAccessible() {
+ return this.isAnonymousAccessible;
+ }
+
+ /**
+ * Set a value that indicates whether the message is accessible anonymously.
+ *
+ * @param isAnonymousAccessible the isAnonymousAccessible value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withIsAnonymousAccessible(Boolean isAnonymousAccessible) {
+ this.isAnonymousAccessible = isAnonymousAccessible;
+ return this;
+ }
+
+ /**
+ * Get the maximum delivery count. A message is automatically deadlettered after this number of deliveries.
+ *
+ * @return the maxDeliveryCount value
+ */
+ public Integer maxDeliveryCount() {
+ return this.maxDeliveryCount;
+ }
+
+ /**
+ * Set the maximum delivery count. A message is automatically deadlettered after this number of deliveries.
+ *
+ * @param maxDeliveryCount the maxDeliveryCount value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withMaxDeliveryCount(Integer maxDeliveryCount) {
+ this.maxDeliveryCount = maxDeliveryCount;
+ return this;
+ }
+
+ /**
+ * Get the maximum size of the queue in megabytes, which is the size of memory allocated for the queue.
+ *
+ * @return the maxSizeInMegabytes value
+ */
+ public Long maxSizeInMegabytes() {
+ return this.maxSizeInMegabytes;
+ }
+
+ /**
+ * Set the maximum size of the queue in megabytes, which is the size of memory allocated for the queue.
+ *
+ * @param maxSizeInMegabytes the maxSizeInMegabytes value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withMaxSizeInMegabytes(Long maxSizeInMegabytes) {
+ this.maxSizeInMegabytes = maxSizeInMegabytes;
+ return this;
+ }
+
+ /**
+ * Get the number of messages in the queue.
+ *
+ * @return the messageCount value
+ */
+ public Long messageCount() {
+ return this.messageCount;
+ }
+
+ /**
+ * Get the countDetails value.
+ *
+ * @return the countDetails value
+ */
+ public MessageCountDetails countDetails() {
+ return this.countDetails;
+ }
+
+ /**
+ * Get a value indicating if this queue requires duplicate detection.
+ *
+ * @return the requiresDuplicateDetection value
+ */
+ public Boolean requiresDuplicateDetection() {
+ return this.requiresDuplicateDetection;
+ }
+
+ /**
+ * Set a value indicating if this queue requires duplicate detection.
+ *
+ * @param requiresDuplicateDetection the requiresDuplicateDetection value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withRequiresDuplicateDetection(Boolean requiresDuplicateDetection) {
+ this.requiresDuplicateDetection = requiresDuplicateDetection;
+ return this;
+ }
+
+ /**
+ * Get a value that indicates whether the queue supports the concept of sessions.
+ *
+ * @return the requiresSession value
+ */
+ public Boolean requiresSession() {
+ return this.requiresSession;
+ }
+
+ /**
+ * Set a value that indicates whether the queue supports the concept of sessions.
+ *
+ * @param requiresSession the requiresSession value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withRequiresSession(Boolean requiresSession) {
+ this.requiresSession = requiresSession;
+ return this;
+ }
+
+ /**
+ * Get the size of the queue, in bytes.
+ *
+ * @return the sizeInBytes value
+ */
+ public Long sizeInBytes() {
+ return this.sizeInBytes;
+ }
+
+ /**
+ * Get enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ *
+ * @return the status value
+ */
+ public EntityStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ *
+ * @param status the status value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withStatus(EntityStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get a value that indicates whether the queue supports ordering.
+ *
+ * @return the supportOrdering value
+ */
+ public Boolean supportOrdering() {
+ return this.supportOrdering;
+ }
+
+ /**
+ * Set a value that indicates whether the queue supports ordering.
+ *
+ * @param supportOrdering the supportOrdering value to set
+ * @return the QueueCreateOrUpdateParameters object itself.
+ */
+ public QueueCreateOrUpdateParameters withSupportOrdering(Boolean supportOrdering) {
+ this.supportOrdering = supportOrdering;
+ return this;
+ }
+
+ /**
+ * Get the exact time the message was updated.
+ *
+ * @return the updatedAt value
+ */
+ public DateTime updatedAt() {
+ return this.updatedAt;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueNamespaceSharedAccessAuthorizationRuleResource.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueNamespaceSharedAccessAuthorizationRuleResource.java
new file mode 100644
index 000000000000..a8e168782fc1
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueNamespaceSharedAccessAuthorizationRuleResource.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.SharedAccessAuthorizationRuleResourceInner;
+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.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import java.util.List;
+
+/**
+ * Type representing QueueNamespaceSharedAccessAuthorizationRuleResource.
+ */
+public interface QueueNamespaceSharedAccessAuthorizationRuleResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the rights value.
+ */
+ List rights();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the QueueNamespaceSharedAccessAuthorizationRuleResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithQueue, DefinitionStages.WithRights, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of QueueNamespaceSharedAccessAuthorizationRuleResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a QueueNamespaceSharedAccessAuthorizationRuleResource definition.
+ */
+ interface Blank extends WithQueue {
+ }
+
+ /**
+ * The stage of the queuenamespacesharedaccessauthorizationruleresource definition allowing to specify Queue.
+ */
+ interface WithQueue {
+ /**
+ * Specifies resourceGroupName, namespaceName, queueName.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription
+ * @param namespaceName The namespace name
+ * @param queueName The queue name
+ * @return the next definition stage
+ */
+ WithRights withExistingQueue(String resourceGroupName, String namespaceName, String queueName);
+ }
+
+ /**
+ * The stage of the queuenamespacesharedaccessauthorizationruleresource definition allowing to specify Rights.
+ */
+ interface WithRights {
+ /**
+ * Specifies rights.
+ * @param rights The rights associated with the rule
+ * @return the next definition stage
+ */
+ WithCreate withRights(List rights);
+ }
+
+ /**
+ * The stage of the queuenamespacesharedaccessauthorizationruleresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location data center location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the queuenamespacesharedaccessauthorizationruleresource definition allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Name of the authorization rule
+ * @return the next definition stage
+ */
+ WithCreate withName(String name);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithLocation, DefinitionStages.WithName {
+ }
+ }
+ /**
+ * The template for a QueueNamespaceSharedAccessAuthorizationRuleResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLocation, UpdateStages.WithName {
+ }
+
+ /**
+ * Grouping of QueueNamespaceSharedAccessAuthorizationRuleResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the queuenamespacesharedaccessauthorizationruleresource update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location data center location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ /**
+ * The stage of the queuenamespacesharedaccessauthorizationruleresource update allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Name of the authorization rule
+ * @return the next update stage
+ */
+ Update withName(String name);
+ }
+
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueResource.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueResource.java
new file mode 100644
index 000000000000..fc25c05c290b
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/QueueResource.java
@@ -0,0 +1,624 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.QueueResourceInner;
+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.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing QueueResource.
+ */
+public interface QueueResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the accessedAt value.
+ */
+ DateTime accessedAt();
+
+ /**
+ * @return the autoDeleteOnIdle value.
+ */
+ String autoDeleteOnIdle();
+
+ /**
+ * @return the countDetails value.
+ */
+ MessageCountDetails countDetails();
+
+ /**
+ * @return the createdAt value.
+ */
+ DateTime createdAt();
+
+ /**
+ * @return the deadLetteringOnMessageExpiration value.
+ */
+ Boolean deadLetteringOnMessageExpiration();
+
+ /**
+ * @return the defaultMessageTimeToLive value.
+ */
+ String defaultMessageTimeToLive();
+
+ /**
+ * @return the duplicateDetectionHistoryTimeWindow value.
+ */
+ String duplicateDetectionHistoryTimeWindow();
+
+ /**
+ * @return the enableBatchedOperations value.
+ */
+ Boolean enableBatchedOperations();
+
+ /**
+ * @return the enableExpress value.
+ */
+ Boolean enableExpress();
+
+ /**
+ * @return the enablePartitioning value.
+ */
+ Boolean enablePartitioning();
+
+ /**
+ * @return the entityAvailabilityStatus value.
+ */
+ EntityAvailabilityStatus entityAvailabilityStatus();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the isAnonymousAccessible value.
+ */
+ Boolean isAnonymousAccessible();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the lockDuration value.
+ */
+ String lockDuration();
+
+ /**
+ * @return the maxDeliveryCount value.
+ */
+ Integer maxDeliveryCount();
+
+ /**
+ * @return the maxSizeInMegabytes value.
+ */
+ Long maxSizeInMegabytes();
+
+ /**
+ * @return the messageCount value.
+ */
+ Long messageCount();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the requiresDuplicateDetection value.
+ */
+ Boolean requiresDuplicateDetection();
+
+ /**
+ * @return the requiresSession value.
+ */
+ Boolean requiresSession();
+
+ /**
+ * @return the sizeInBytes value.
+ */
+ Long sizeInBytes();
+
+ /**
+ * @return the status value.
+ */
+ EntityStatus status();
+
+ /**
+ * @return the supportOrdering value.
+ */
+ Boolean supportOrdering();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the updatedAt value.
+ */
+ DateTime updatedAt();
+
+ /**
+ * The entirety of the QueueResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithNamespace, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of QueueResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a QueueResource definition.
+ */
+ interface Blank extends WithNamespace {
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify Namespace.
+ */
+ interface WithNamespace {
+ /**
+ * Specifies resourceGroupName, namespaceName.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription
+ * @param namespaceName The namespace name
+ * @return the next definition stage
+ */
+ WithLocation withExistingNamespace(String resourceGroupName, String namespaceName);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location location of the resource
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify AutoDeleteOnIdle.
+ */
+ interface WithAutoDeleteOnIdle {
+ /**
+ * Specifies autoDeleteOnIdle.
+ * @param autoDeleteOnIdle the TimeSpan idle interval after which the queue is automatically deleted. The minimum duration is 5 minutes
+ * @return the next definition stage
+ */
+ WithCreate withAutoDeleteOnIdle(String autoDeleteOnIdle);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify DeadLetteringOnMessageExpiration.
+ */
+ interface WithDeadLetteringOnMessageExpiration {
+ /**
+ * Specifies deadLetteringOnMessageExpiration.
+ * @param deadLetteringOnMessageExpiration A value that indicates whether this queue has dead letter support when a message expires
+ * @return the next definition stage
+ */
+ WithCreate withDeadLetteringOnMessageExpiration(Boolean deadLetteringOnMessageExpiration);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify DefaultMessageTimeToLive.
+ */
+ interface WithDefaultMessageTimeToLive {
+ /**
+ * Specifies defaultMessageTimeToLive.
+ * @param defaultMessageTimeToLive The default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself
+ * @return the next definition stage
+ */
+ WithCreate withDefaultMessageTimeToLive(String defaultMessageTimeToLive);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify DuplicateDetectionHistoryTimeWindow.
+ */
+ interface WithDuplicateDetectionHistoryTimeWindow {
+ /**
+ * Specifies duplicateDetectionHistoryTimeWindow.
+ * @param duplicateDetectionHistoryTimeWindow TimeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes
+ * @return the next definition stage
+ */
+ WithCreate withDuplicateDetectionHistoryTimeWindow(String duplicateDetectionHistoryTimeWindow);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify EnableBatchedOperations.
+ */
+ interface WithEnableBatchedOperations {
+ /**
+ * Specifies enableBatchedOperations.
+ * @param enableBatchedOperations A value that indicates whether server-side batched operations are enabled
+ * @return the next definition stage
+ */
+ WithCreate withEnableBatchedOperations(Boolean enableBatchedOperations);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify EnableExpress.
+ */
+ interface WithEnableExpress {
+ /**
+ * Specifies enableExpress.
+ * @param enableExpress A value that indicates whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage
+ * @return the next definition stage
+ */
+ WithCreate withEnableExpress(Boolean enableExpress);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify EnablePartitioning.
+ */
+ interface WithEnablePartitioning {
+ /**
+ * Specifies enablePartitioning.
+ * @param enablePartitioning A value that indicates whether the queue is to be partitioned across multiple message brokers
+ * @return the next definition stage
+ */
+ WithCreate withEnablePartitioning(Boolean enablePartitioning);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify EntityAvailabilityStatus.
+ */
+ interface WithEntityAvailabilityStatus {
+ /**
+ * Specifies entityAvailabilityStatus.
+ * @param entityAvailabilityStatus Entity availability status for the queue. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'
+ * @return the next definition stage
+ */
+ WithCreate withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify IsAnonymousAccessible.
+ */
+ interface WithIsAnonymousAccessible {
+ /**
+ * Specifies isAnonymousAccessible.
+ * @param isAnonymousAccessible A value that indicates whether the message is accessible anonymously
+ * @return the next definition stage
+ */
+ WithCreate withIsAnonymousAccessible(Boolean isAnonymousAccessible);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify LockDuration.
+ */
+ interface WithLockDuration {
+ /**
+ * Specifies lockDuration.
+ * @param lockDuration The duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute
+ * @return the next definition stage
+ */
+ WithCreate withLockDuration(String lockDuration);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify MaxDeliveryCount.
+ */
+ interface WithMaxDeliveryCount {
+ /**
+ * Specifies maxDeliveryCount.
+ * @param maxDeliveryCount The maximum delivery count. A message is automatically deadlettered after this number of deliveries
+ * @return the next definition stage
+ */
+ WithCreate withMaxDeliveryCount(Integer maxDeliveryCount);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify MaxSizeInMegabytes.
+ */
+ interface WithMaxSizeInMegabytes {
+ /**
+ * Specifies maxSizeInMegabytes.
+ * @param maxSizeInMegabytes The maximum size of the queue in megabytes, which is the size of memory allocated for the queue
+ * @return the next definition stage
+ */
+ WithCreate withMaxSizeInMegabytes(Long maxSizeInMegabytes);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Queue name
+ * @return the next definition stage
+ */
+ WithCreate withName(String name);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify RequiresDuplicateDetection.
+ */
+ interface WithRequiresDuplicateDetection {
+ /**
+ * Specifies requiresDuplicateDetection.
+ * @param requiresDuplicateDetection A value indicating if this queue requires duplicate detection
+ * @return the next definition stage
+ */
+ WithCreate withRequiresDuplicateDetection(Boolean requiresDuplicateDetection);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify RequiresSession.
+ */
+ interface WithRequiresSession {
+ /**
+ * Specifies requiresSession.
+ * @param requiresSession A value that indicates whether the queue supports the concept of sessions
+ * @return the next definition stage
+ */
+ WithCreate withRequiresSession(Boolean requiresSession);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status Enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'
+ * @return the next definition stage
+ */
+ WithCreate withStatus(EntityStatus status);
+ }
+
+ /**
+ * The stage of the queueresource definition allowing to specify SupportOrdering.
+ */
+ interface WithSupportOrdering {
+ /**
+ * Specifies supportOrdering.
+ * @param supportOrdering A value that indicates whether the queue supports ordering
+ * @return the next definition stage
+ */
+ WithCreate withSupportOrdering(Boolean supportOrdering);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithAutoDeleteOnIdle, DefinitionStages.WithDeadLetteringOnMessageExpiration, DefinitionStages.WithDefaultMessageTimeToLive, DefinitionStages.WithDuplicateDetectionHistoryTimeWindow, DefinitionStages.WithEnableBatchedOperations, DefinitionStages.WithEnableExpress, DefinitionStages.WithEnablePartitioning, DefinitionStages.WithEntityAvailabilityStatus, DefinitionStages.WithIsAnonymousAccessible, DefinitionStages.WithLockDuration, DefinitionStages.WithMaxDeliveryCount, DefinitionStages.WithMaxSizeInMegabytes, DefinitionStages.WithName, DefinitionStages.WithRequiresDuplicateDetection, DefinitionStages.WithRequiresSession, DefinitionStages.WithStatus, DefinitionStages.WithSupportOrdering {
+ }
+ }
+ /**
+ * The template for a QueueResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAutoDeleteOnIdle, UpdateStages.WithDeadLetteringOnMessageExpiration, UpdateStages.WithDefaultMessageTimeToLive, UpdateStages.WithDuplicateDetectionHistoryTimeWindow, UpdateStages.WithEnableBatchedOperations, UpdateStages.WithEnableExpress, UpdateStages.WithEnablePartitioning, UpdateStages.WithEntityAvailabilityStatus, UpdateStages.WithIsAnonymousAccessible, UpdateStages.WithLockDuration, UpdateStages.WithMaxDeliveryCount, UpdateStages.WithMaxSizeInMegabytes, UpdateStages.WithName, UpdateStages.WithRequiresDuplicateDetection, UpdateStages.WithRequiresSession, UpdateStages.WithStatus, UpdateStages.WithSupportOrdering {
+ }
+
+ /**
+ * Grouping of QueueResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the queueresource update allowing to specify AutoDeleteOnIdle.
+ */
+ interface WithAutoDeleteOnIdle {
+ /**
+ * Specifies autoDeleteOnIdle.
+ * @param autoDeleteOnIdle the TimeSpan idle interval after which the queue is automatically deleted. The minimum duration is 5 minutes
+ * @return the next update stage
+ */
+ Update withAutoDeleteOnIdle(String autoDeleteOnIdle);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify DeadLetteringOnMessageExpiration.
+ */
+ interface WithDeadLetteringOnMessageExpiration {
+ /**
+ * Specifies deadLetteringOnMessageExpiration.
+ * @param deadLetteringOnMessageExpiration A value that indicates whether this queue has dead letter support when a message expires
+ * @return the next update stage
+ */
+ Update withDeadLetteringOnMessageExpiration(Boolean deadLetteringOnMessageExpiration);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify DefaultMessageTimeToLive.
+ */
+ interface WithDefaultMessageTimeToLive {
+ /**
+ * Specifies defaultMessageTimeToLive.
+ * @param defaultMessageTimeToLive The default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself
+ * @return the next update stage
+ */
+ Update withDefaultMessageTimeToLive(String defaultMessageTimeToLive);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify DuplicateDetectionHistoryTimeWindow.
+ */
+ interface WithDuplicateDetectionHistoryTimeWindow {
+ /**
+ * Specifies duplicateDetectionHistoryTimeWindow.
+ * @param duplicateDetectionHistoryTimeWindow TimeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes
+ * @return the next update stage
+ */
+ Update withDuplicateDetectionHistoryTimeWindow(String duplicateDetectionHistoryTimeWindow);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify EnableBatchedOperations.
+ */
+ interface WithEnableBatchedOperations {
+ /**
+ * Specifies enableBatchedOperations.
+ * @param enableBatchedOperations A value that indicates whether server-side batched operations are enabled
+ * @return the next update stage
+ */
+ Update withEnableBatchedOperations(Boolean enableBatchedOperations);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify EnableExpress.
+ */
+ interface WithEnableExpress {
+ /**
+ * Specifies enableExpress.
+ * @param enableExpress A value that indicates whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage
+ * @return the next update stage
+ */
+ Update withEnableExpress(Boolean enableExpress);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify EnablePartitioning.
+ */
+ interface WithEnablePartitioning {
+ /**
+ * Specifies enablePartitioning.
+ * @param enablePartitioning A value that indicates whether the queue is to be partitioned across multiple message brokers
+ * @return the next update stage
+ */
+ Update withEnablePartitioning(Boolean enablePartitioning);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify EntityAvailabilityStatus.
+ */
+ interface WithEntityAvailabilityStatus {
+ /**
+ * Specifies entityAvailabilityStatus.
+ * @param entityAvailabilityStatus Entity availability status for the queue. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'
+ * @return the next update stage
+ */
+ Update withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify IsAnonymousAccessible.
+ */
+ interface WithIsAnonymousAccessible {
+ /**
+ * Specifies isAnonymousAccessible.
+ * @param isAnonymousAccessible A value that indicates whether the message is accessible anonymously
+ * @return the next update stage
+ */
+ Update withIsAnonymousAccessible(Boolean isAnonymousAccessible);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify LockDuration.
+ */
+ interface WithLockDuration {
+ /**
+ * Specifies lockDuration.
+ * @param lockDuration The duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute
+ * @return the next update stage
+ */
+ Update withLockDuration(String lockDuration);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify MaxDeliveryCount.
+ */
+ interface WithMaxDeliveryCount {
+ /**
+ * Specifies maxDeliveryCount.
+ * @param maxDeliveryCount The maximum delivery count. A message is automatically deadlettered after this number of deliveries
+ * @return the next update stage
+ */
+ Update withMaxDeliveryCount(Integer maxDeliveryCount);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify MaxSizeInMegabytes.
+ */
+ interface WithMaxSizeInMegabytes {
+ /**
+ * Specifies maxSizeInMegabytes.
+ * @param maxSizeInMegabytes The maximum size of the queue in megabytes, which is the size of memory allocated for the queue
+ * @return the next update stage
+ */
+ Update withMaxSizeInMegabytes(Long maxSizeInMegabytes);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Queue name
+ * @return the next update stage
+ */
+ Update withName(String name);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify RequiresDuplicateDetection.
+ */
+ interface WithRequiresDuplicateDetection {
+ /**
+ * Specifies requiresDuplicateDetection.
+ * @param requiresDuplicateDetection A value indicating if this queue requires duplicate detection
+ * @return the next update stage
+ */
+ Update withRequiresDuplicateDetection(Boolean requiresDuplicateDetection);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify RequiresSession.
+ */
+ interface WithRequiresSession {
+ /**
+ * Specifies requiresSession.
+ * @param requiresSession A value that indicates whether the queue supports the concept of sessions
+ * @return the next update stage
+ */
+ Update withRequiresSession(Boolean requiresSession);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status Enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'
+ * @return the next update stage
+ */
+ Update withStatus(EntityStatus status);
+ }
+
+ /**
+ * The stage of the queueresource update allowing to specify SupportOrdering.
+ */
+ interface WithSupportOrdering {
+ /**
+ * Specifies supportOrdering.
+ * @param supportOrdering A value that indicates whether the queue supports ordering
+ * @return the next update stage
+ */
+ Update withSupportOrdering(Boolean supportOrdering);
+ }
+
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Queues.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Queues.java
new file mode 100644
index 000000000000..5a6bad92b011
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Queues.java
@@ -0,0 +1,132 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.QueuesInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.QueueNamespaceSharedAccessAuthorizationRuleResource;
+
+/**
+ * Type representing Queues.
+ */
+public interface Queues extends SupportsCreating, HasInner {
+ /**
+ * Begins definition for a new AuthorizationRule resource.
+ * @param name resource name.
+ * @return the first stage of the new AuthorizationRule definition.
+ */
+ QueueNamespaceSharedAccessAuthorizationRuleResource.DefinitionStages.Blank defineAuthorizationRule(String name);
+
+ /**
+ * Returns a description for the specified queue.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param queueName The queue name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String namespaceName, String queueName);
+
+ /**
+ * Gets the queues within a namespace.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAllAsync(final String resourceGroupName, final String namespaceName);
+
+ /**
+ * Deletes a queue from the specified namespace in a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param queueName The queue name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String namespaceName, String queueName);
+
+ /**
+ * Gets an authorization rule for a queue by rule name.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param queueName The queue name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String queueName, String authorizationRuleName);
+
+ /**
+ * Gets all authorization rules for a queue.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param queueName The queue name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAuthorizationRulesAsync(final String resourceGroupName, final String namespaceName, final String queueName);
+
+ /**
+ * Deletes a queue authorization rule.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param queueName The queue name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String queueName, String authorizationRuleName);
+
+ /**
+ * Gets an authorization rule for a queue by rule name.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param queueName The queue name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable postAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String queueName, String authorizationRuleName);
+
+ /**
+ * Primary and secondary connection strings to the queue.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param queueName The queue name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listKeysAsync(String resourceGroupName, String namespaceName, String queueName, String authorizationRuleName);
+
+ /**
+ * Regenerates the primary or secondary connection strings to the queue.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param queueName The queue name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable regenerateKeysAsync(String resourceGroupName, String namespaceName, String queueName, String authorizationRuleName);
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/RegenerateKeysParameters.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/RegenerateKeysParameters.java
new file mode 100644
index 000000000000..028ac0cd186c
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/RegenerateKeysParameters.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.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Parameters supplied to the Regenerate Authorization Rule operation.
+ */
+public class RegenerateKeysParameters {
+ /**
+ * Key that needs to be regenerated. Possible values include: 'PrimaryKey',
+ * 'SecondaryKey'.
+ */
+ @JsonProperty(value = "Policykey")
+ private Policykey policykey;
+
+ /**
+ * Get key that needs to be regenerated. Possible values include: 'PrimaryKey', 'SecondaryKey'.
+ *
+ * @return the policykey value
+ */
+ public Policykey policykey() {
+ return this.policykey;
+ }
+
+ /**
+ * Set key that needs to be regenerated. Possible values include: 'PrimaryKey', 'SecondaryKey'.
+ *
+ * @param policykey the policykey value to set
+ * @return the RegenerateKeysParameters object itself.
+ */
+ public RegenerateKeysParameters withPolicykey(Policykey policykey) {
+ this.policykey = policykey;
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/ResourceListKeys.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/ResourceListKeys.java
new file mode 100644
index 000000000000..e6c299c59b9c
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/ResourceListKeys.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.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.ResourceListKeysInner;
+
+/**
+ * Type representing ResourceListKeys.
+ */
+public interface ResourceListKeys extends HasInner, HasManager {
+ /**
+ * @return the keyName value.
+ */
+ String keyName();
+
+ /**
+ * @return the primaryConnectionString value.
+ */
+ String primaryConnectionString();
+
+ /**
+ * @return the primaryKey value.
+ */
+ String primaryKey();
+
+ /**
+ * @return the secondaryConnectionString value.
+ */
+ String secondaryConnectionString();
+
+ /**
+ * @return the secondaryKey value.
+ */
+ String secondaryKey();
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SharedAccessAuthorizationRuleCreateOrUpdateParameters.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SharedAccessAuthorizationRuleCreateOrUpdateParameters.java
new file mode 100644
index 000000000000..4ee173899a5a
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SharedAccessAuthorizationRuleCreateOrUpdateParameters.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.servicebus.v2015_08_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters supplied to the Create Or Update Authorization Rules operation.
+ */
+@JsonFlatten
+public class SharedAccessAuthorizationRuleCreateOrUpdateParameters {
+ /**
+ * data center location.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * Name of the authorization rule.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The rights associated with the rule.
+ */
+ @JsonProperty(value = "properties.rights", required = true)
+ private List rights;
+
+ /**
+ * Get data center location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set data center location.
+ *
+ * @param location the location value to set
+ * @return the SharedAccessAuthorizationRuleCreateOrUpdateParameters object itself.
+ */
+ public SharedAccessAuthorizationRuleCreateOrUpdateParameters withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get name of the authorization rule.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the authorization rule.
+ *
+ * @param name the name value to set
+ * @return the SharedAccessAuthorizationRuleCreateOrUpdateParameters object itself.
+ */
+ public SharedAccessAuthorizationRuleCreateOrUpdateParameters withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the rights associated with the rule.
+ *
+ * @return the rights value
+ */
+ public List rights() {
+ return this.rights;
+ }
+
+ /**
+ * Set the rights associated with the rule.
+ *
+ * @param rights the rights value to set
+ * @return the SharedAccessAuthorizationRuleCreateOrUpdateParameters object itself.
+ */
+ public SharedAccessAuthorizationRuleCreateOrUpdateParameters withRights(List rights) {
+ this.rights = rights;
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Sku.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Sku.java
new file mode 100644
index 000000000000..58c5c89c8f13
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Sku.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.servicebus.v2015_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * SKU of the namespace.
+ */
+public class Sku {
+ /**
+ * Name of this SKU. Possible values include: 'Basic', 'Standard',
+ * 'Premium'.
+ */
+ @JsonProperty(value = "name")
+ private SkuName name;
+
+ /**
+ * The billing tier of this particular SKU. Possible values include:
+ * 'Basic', 'Standard', 'Premium'.
+ */
+ @JsonProperty(value = "tier", required = true)
+ private SkuTier tier;
+
+ /**
+ * The specified messaging units for the tier.
+ */
+ @JsonProperty(value = "capacity")
+ private Integer capacity;
+
+ /**
+ * Get name of this SKU. Possible values include: 'Basic', 'Standard', 'Premium'.
+ *
+ * @return the name value
+ */
+ public SkuName name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of this SKU. Possible values include: 'Basic', 'Standard', 'Premium'.
+ *
+ * @param name the name value to set
+ * @return the Sku object itself.
+ */
+ public Sku withName(SkuName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the billing tier of this particular SKU. Possible values include: 'Basic', 'Standard', 'Premium'.
+ *
+ * @return the tier value
+ */
+ public SkuTier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the billing tier of this particular SKU. Possible values include: 'Basic', 'Standard', 'Premium'.
+ *
+ * @param tier the tier value to set
+ * @return the Sku object itself.
+ */
+ public Sku withTier(SkuTier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the specified messaging units for the tier.
+ *
+ * @return the capacity value
+ */
+ public Integer capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set the specified messaging units for the tier.
+ *
+ * @param capacity the capacity value to set
+ * @return the Sku object itself.
+ */
+ public Sku withCapacity(Integer capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SkuName.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SkuName.java
new file mode 100644
index 000000000000..47fb99beee79
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SkuName.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.servicebus.v2015_08_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuName.
+ */
+public final class SkuName extends ExpandableStringEnum {
+ /** Static value Basic for SkuName. */
+ public static final SkuName BASIC = fromString("Basic");
+
+ /** Static value Standard for SkuName. */
+ public static final SkuName STANDARD = fromString("Standard");
+
+ /** Static value Premium for SkuName. */
+ public static final SkuName PREMIUM = fromString("Premium");
+
+ /**
+ * Creates or finds a SkuName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuName
+ */
+ @JsonCreator
+ public static SkuName fromString(String name) {
+ return fromString(name, SkuName.class);
+ }
+
+ /**
+ * @return known SkuName values
+ */
+ public static Collection values() {
+ return values(SkuName.class);
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SkuTier.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SkuTier.java
new file mode 100644
index 000000000000..e574ce11f524
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SkuTier.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.servicebus.v2015_08_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuTier.
+ */
+public final class SkuTier extends ExpandableStringEnum {
+ /** Static value Basic for SkuTier. */
+ public static final SkuTier BASIC = fromString("Basic");
+
+ /** Static value Standard for SkuTier. */
+ public static final SkuTier STANDARD = fromString("Standard");
+
+ /** Static value Premium for SkuTier. */
+ public static final SkuTier PREMIUM = fromString("Premium");
+
+ /**
+ * Creates or finds a SkuTier from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuTier
+ */
+ @JsonCreator
+ public static SkuTier fromString(String name) {
+ return fromString(name, SkuTier.class);
+ }
+
+ /**
+ * @return known SkuTier values
+ */
+ public static Collection values() {
+ return values(SkuTier.class);
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SubscriptionCreateOrUpdateParameters.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SubscriptionCreateOrUpdateParameters.java
new file mode 100644
index 000000000000..b0f4af1e84ee
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SubscriptionCreateOrUpdateParameters.java
@@ -0,0 +1,442 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters supplied to the Create Or Update Subscription operation.
+ */
+@JsonFlatten
+public class SubscriptionCreateOrUpdateParameters {
+ /**
+ * Subscription data center location.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /**
+ * Resource manager type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Last time there was a receive request to this subscription.
+ */
+ @JsonProperty(value = "properties.accessedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime accessedAt;
+
+ /**
+ * TimeSpan idle interval after which the topic is automatically deleted.
+ * The minimum duration is 5 minutes.
+ */
+ @JsonProperty(value = "properties.autoDeleteOnIdle")
+ private String autoDeleteOnIdle;
+
+ /**
+ * The countDetails property.
+ */
+ @JsonProperty(value = "properties.countDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private MessageCountDetails countDetails;
+
+ /**
+ * Exact time the message was created.
+ */
+ @JsonProperty(value = "properties.createdAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime createdAt;
+
+ /**
+ * Default message time to live value. This is the duration after which the
+ * message expires, starting from when the message is sent to Service Bus.
+ * This is the default value used when TimeToLive is not set on a message
+ * itself.
+ */
+ @JsonProperty(value = "properties.defaultMessageTimeToLive")
+ private String defaultMessageTimeToLive;
+
+ /**
+ * Value that indicates whether a subscription has dead letter support on
+ * filter evaluation exceptions.
+ */
+ @JsonProperty(value = "properties.deadLetteringOnFilterEvaluationExceptions")
+ private Boolean deadLetteringOnFilterEvaluationExceptions;
+
+ /**
+ * Value that indicates whether a subscription has dead letter support when
+ * a message expires.
+ */
+ @JsonProperty(value = "properties.deadLetteringOnMessageExpiration")
+ private Boolean deadLetteringOnMessageExpiration;
+
+ /**
+ * Value that indicates whether server-side batched operations are enabled.
+ */
+ @JsonProperty(value = "properties.enableBatchedOperations")
+ private Boolean enableBatchedOperations;
+
+ /**
+ * Entity availability status for the topic. Possible values include:
+ * 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ */
+ @JsonProperty(value = "properties.entityAvailabilityStatus")
+ private EntityAvailabilityStatus entityAvailabilityStatus;
+
+ /**
+ * Value that indicates whether the entity description is read-only.
+ */
+ @JsonProperty(value = "properties.isReadOnly")
+ private Boolean isReadOnly;
+
+ /**
+ * The lock duration time span for the subscription.
+ */
+ @JsonProperty(value = "properties.lockDuration")
+ private String lockDuration;
+
+ /**
+ * Number of maximum deliveries.
+ */
+ @JsonProperty(value = "properties.maxDeliveryCount")
+ private Integer maxDeliveryCount;
+
+ /**
+ * Number of messages.
+ */
+ @JsonProperty(value = "properties.messageCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long messageCount;
+
+ /**
+ * Value indicating if a subscription supports the concept of sessions.
+ */
+ @JsonProperty(value = "properties.requiresSession")
+ private Boolean requiresSession;
+
+ /**
+ * Enumerates the possible values for the status of a messaging entity.
+ * Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled',
+ * 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ */
+ @JsonProperty(value = "properties.status")
+ private EntityStatus status;
+
+ /**
+ * The exact time the message was updated.
+ */
+ @JsonProperty(value = "properties.updatedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime updatedAt;
+
+ /**
+ * Get subscription data center location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set subscription data center location.
+ *
+ * @param location the location value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get resource manager type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set resource manager type of the resource.
+ *
+ * @param type the type value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get last time there was a receive request to this subscription.
+ *
+ * @return the accessedAt value
+ */
+ public DateTime accessedAt() {
+ return this.accessedAt;
+ }
+
+ /**
+ * Get timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
+ *
+ * @return the autoDeleteOnIdle value
+ */
+ public String autoDeleteOnIdle() {
+ return this.autoDeleteOnIdle;
+ }
+
+ /**
+ * Set timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
+ *
+ * @param autoDeleteOnIdle the autoDeleteOnIdle value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withAutoDeleteOnIdle(String autoDeleteOnIdle) {
+ this.autoDeleteOnIdle = autoDeleteOnIdle;
+ return this;
+ }
+
+ /**
+ * Get the countDetails value.
+ *
+ * @return the countDetails value
+ */
+ public MessageCountDetails countDetails() {
+ return this.countDetails;
+ }
+
+ /**
+ * Get exact time the message was created.
+ *
+ * @return the createdAt value
+ */
+ public DateTime createdAt() {
+ return this.createdAt;
+ }
+
+ /**
+ * Get default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
+ *
+ * @return the defaultMessageTimeToLive value
+ */
+ public String defaultMessageTimeToLive() {
+ return this.defaultMessageTimeToLive;
+ }
+
+ /**
+ * Set default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
+ *
+ * @param defaultMessageTimeToLive the defaultMessageTimeToLive value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withDefaultMessageTimeToLive(String defaultMessageTimeToLive) {
+ this.defaultMessageTimeToLive = defaultMessageTimeToLive;
+ return this;
+ }
+
+ /**
+ * Get value that indicates whether a subscription has dead letter support on filter evaluation exceptions.
+ *
+ * @return the deadLetteringOnFilterEvaluationExceptions value
+ */
+ public Boolean deadLetteringOnFilterEvaluationExceptions() {
+ return this.deadLetteringOnFilterEvaluationExceptions;
+ }
+
+ /**
+ * Set value that indicates whether a subscription has dead letter support on filter evaluation exceptions.
+ *
+ * @param deadLetteringOnFilterEvaluationExceptions the deadLetteringOnFilterEvaluationExceptions value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withDeadLetteringOnFilterEvaluationExceptions(Boolean deadLetteringOnFilterEvaluationExceptions) {
+ this.deadLetteringOnFilterEvaluationExceptions = deadLetteringOnFilterEvaluationExceptions;
+ return this;
+ }
+
+ /**
+ * Get value that indicates whether a subscription has dead letter support when a message expires.
+ *
+ * @return the deadLetteringOnMessageExpiration value
+ */
+ public Boolean deadLetteringOnMessageExpiration() {
+ return this.deadLetteringOnMessageExpiration;
+ }
+
+ /**
+ * Set value that indicates whether a subscription has dead letter support when a message expires.
+ *
+ * @param deadLetteringOnMessageExpiration the deadLetteringOnMessageExpiration value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withDeadLetteringOnMessageExpiration(Boolean deadLetteringOnMessageExpiration) {
+ this.deadLetteringOnMessageExpiration = deadLetteringOnMessageExpiration;
+ return this;
+ }
+
+ /**
+ * Get value that indicates whether server-side batched operations are enabled.
+ *
+ * @return the enableBatchedOperations value
+ */
+ public Boolean enableBatchedOperations() {
+ return this.enableBatchedOperations;
+ }
+
+ /**
+ * Set value that indicates whether server-side batched operations are enabled.
+ *
+ * @param enableBatchedOperations the enableBatchedOperations value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withEnableBatchedOperations(Boolean enableBatchedOperations) {
+ this.enableBatchedOperations = enableBatchedOperations;
+ return this;
+ }
+
+ /**
+ * Get entity availability status for the topic. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ *
+ * @return the entityAvailabilityStatus value
+ */
+ public EntityAvailabilityStatus entityAvailabilityStatus() {
+ return this.entityAvailabilityStatus;
+ }
+
+ /**
+ * Set entity availability status for the topic. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ *
+ * @param entityAvailabilityStatus the entityAvailabilityStatus value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus) {
+ this.entityAvailabilityStatus = entityAvailabilityStatus;
+ return this;
+ }
+
+ /**
+ * Get value that indicates whether the entity description is read-only.
+ *
+ * @return the isReadOnly value
+ */
+ public Boolean isReadOnly() {
+ return this.isReadOnly;
+ }
+
+ /**
+ * Set value that indicates whether the entity description is read-only.
+ *
+ * @param isReadOnly the isReadOnly value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withIsReadOnly(Boolean isReadOnly) {
+ this.isReadOnly = isReadOnly;
+ return this;
+ }
+
+ /**
+ * Get the lock duration time span for the subscription.
+ *
+ * @return the lockDuration value
+ */
+ public String lockDuration() {
+ return this.lockDuration;
+ }
+
+ /**
+ * Set the lock duration time span for the subscription.
+ *
+ * @param lockDuration the lockDuration value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withLockDuration(String lockDuration) {
+ this.lockDuration = lockDuration;
+ return this;
+ }
+
+ /**
+ * Get number of maximum deliveries.
+ *
+ * @return the maxDeliveryCount value
+ */
+ public Integer maxDeliveryCount() {
+ return this.maxDeliveryCount;
+ }
+
+ /**
+ * Set number of maximum deliveries.
+ *
+ * @param maxDeliveryCount the maxDeliveryCount value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withMaxDeliveryCount(Integer maxDeliveryCount) {
+ this.maxDeliveryCount = maxDeliveryCount;
+ return this;
+ }
+
+ /**
+ * Get number of messages.
+ *
+ * @return the messageCount value
+ */
+ public Long messageCount() {
+ return this.messageCount;
+ }
+
+ /**
+ * Get value indicating if a subscription supports the concept of sessions.
+ *
+ * @return the requiresSession value
+ */
+ public Boolean requiresSession() {
+ return this.requiresSession;
+ }
+
+ /**
+ * Set value indicating if a subscription supports the concept of sessions.
+ *
+ * @param requiresSession the requiresSession value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withRequiresSession(Boolean requiresSession) {
+ this.requiresSession = requiresSession;
+ return this;
+ }
+
+ /**
+ * Get enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ *
+ * @return the status value
+ */
+ public EntityStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ *
+ * @param status the status value to set
+ * @return the SubscriptionCreateOrUpdateParameters object itself.
+ */
+ public SubscriptionCreateOrUpdateParameters withStatus(EntityStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the exact time the message was updated.
+ *
+ * @return the updatedAt value
+ */
+ public DateTime updatedAt() {
+ return this.updatedAt;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SubscriptionResource.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SubscriptionResource.java
new file mode 100644
index 000000000000..76215024f7bf
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/SubscriptionResource.java
@@ -0,0 +1,475 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.SubscriptionResourceInner;
+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.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing SubscriptionResource.
+ */
+public interface SubscriptionResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the accessedAt value.
+ */
+ DateTime accessedAt();
+
+ /**
+ * @return the autoDeleteOnIdle value.
+ */
+ String autoDeleteOnIdle();
+
+ /**
+ * @return the countDetails value.
+ */
+ MessageCountDetails countDetails();
+
+ /**
+ * @return the createdAt value.
+ */
+ DateTime createdAt();
+
+ /**
+ * @return the deadLetteringOnFilterEvaluationExceptions value.
+ */
+ Boolean deadLetteringOnFilterEvaluationExceptions();
+
+ /**
+ * @return the deadLetteringOnMessageExpiration value.
+ */
+ Boolean deadLetteringOnMessageExpiration();
+
+ /**
+ * @return the defaultMessageTimeToLive value.
+ */
+ String defaultMessageTimeToLive();
+
+ /**
+ * @return the enableBatchedOperations value.
+ */
+ Boolean enableBatchedOperations();
+
+ /**
+ * @return the entityAvailabilityStatus value.
+ */
+ EntityAvailabilityStatus entityAvailabilityStatus();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the isReadOnly value.
+ */
+ Boolean isReadOnly();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the lockDuration value.
+ */
+ String lockDuration();
+
+ /**
+ * @return the maxDeliveryCount value.
+ */
+ Integer maxDeliveryCount();
+
+ /**
+ * @return the messageCount value.
+ */
+ Long messageCount();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the requiresSession value.
+ */
+ Boolean requiresSession();
+
+ /**
+ * @return the status value.
+ */
+ EntityStatus status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the updatedAt value.
+ */
+ DateTime updatedAt();
+
+ /**
+ * The entirety of the SubscriptionResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithTopic, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of SubscriptionResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a SubscriptionResource definition.
+ */
+ interface Blank extends WithTopic {
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify Topic.
+ */
+ interface WithTopic {
+ /**
+ * Specifies resourceGroupName, namespaceName, topicName.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription
+ * @param namespaceName The namespace name
+ * @param topicName The topic name
+ * @return the next definition stage
+ */
+ WithLocation withExistingTopic(String resourceGroupName, String namespaceName, String topicName);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Subscription data center location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify AutoDeleteOnIdle.
+ */
+ interface WithAutoDeleteOnIdle {
+ /**
+ * Specifies autoDeleteOnIdle.
+ * @param autoDeleteOnIdle TimeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes
+ * @return the next definition stage
+ */
+ WithCreate withAutoDeleteOnIdle(String autoDeleteOnIdle);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify DeadLetteringOnFilterEvaluationExceptions.
+ */
+ interface WithDeadLetteringOnFilterEvaluationExceptions {
+ /**
+ * Specifies deadLetteringOnFilterEvaluationExceptions.
+ * @param deadLetteringOnFilterEvaluationExceptions Value that indicates whether a subscription has dead letter support on filter evaluation exceptions
+ * @return the next definition stage
+ */
+ WithCreate withDeadLetteringOnFilterEvaluationExceptions(Boolean deadLetteringOnFilterEvaluationExceptions);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify DeadLetteringOnMessageExpiration.
+ */
+ interface WithDeadLetteringOnMessageExpiration {
+ /**
+ * Specifies deadLetteringOnMessageExpiration.
+ * @param deadLetteringOnMessageExpiration Value that indicates whether a subscription has dead letter support when a message expires
+ * @return the next definition stage
+ */
+ WithCreate withDeadLetteringOnMessageExpiration(Boolean deadLetteringOnMessageExpiration);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify DefaultMessageTimeToLive.
+ */
+ interface WithDefaultMessageTimeToLive {
+ /**
+ * Specifies defaultMessageTimeToLive.
+ * @param defaultMessageTimeToLive Default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself
+ * @return the next definition stage
+ */
+ WithCreate withDefaultMessageTimeToLive(String defaultMessageTimeToLive);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify EnableBatchedOperations.
+ */
+ interface WithEnableBatchedOperations {
+ /**
+ * Specifies enableBatchedOperations.
+ * @param enableBatchedOperations Value that indicates whether server-side batched operations are enabled
+ * @return the next definition stage
+ */
+ WithCreate withEnableBatchedOperations(Boolean enableBatchedOperations);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify EntityAvailabilityStatus.
+ */
+ interface WithEntityAvailabilityStatus {
+ /**
+ * Specifies entityAvailabilityStatus.
+ * @param entityAvailabilityStatus Entity availability status for the topic. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'
+ * @return the next definition stage
+ */
+ WithCreate withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify IsReadOnly.
+ */
+ interface WithIsReadOnly {
+ /**
+ * Specifies isReadOnly.
+ * @param isReadOnly Value that indicates whether the entity description is read-only
+ * @return the next definition stage
+ */
+ WithCreate withIsReadOnly(Boolean isReadOnly);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify LockDuration.
+ */
+ interface WithLockDuration {
+ /**
+ * Specifies lockDuration.
+ * @param lockDuration The lock duration time span for the subscription
+ * @return the next definition stage
+ */
+ WithCreate withLockDuration(String lockDuration);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify MaxDeliveryCount.
+ */
+ interface WithMaxDeliveryCount {
+ /**
+ * Specifies maxDeliveryCount.
+ * @param maxDeliveryCount Number of maximum deliveries
+ * @return the next definition stage
+ */
+ WithCreate withMaxDeliveryCount(Integer maxDeliveryCount);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify RequiresSession.
+ */
+ interface WithRequiresSession {
+ /**
+ * Specifies requiresSession.
+ * @param requiresSession Value indicating if a subscription supports the concept of sessions
+ * @return the next definition stage
+ */
+ WithCreate withRequiresSession(Boolean requiresSession);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status Enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'
+ * @return the next definition stage
+ */
+ WithCreate withStatus(EntityStatus status);
+ }
+
+ /**
+ * The stage of the subscriptionresource definition allowing to specify Type.
+ */
+ interface WithType {
+ /**
+ * Specifies type.
+ * @param type Resource manager type of the resource
+ * @return the next definition stage
+ */
+ WithCreate withType(String type);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithAutoDeleteOnIdle, DefinitionStages.WithDeadLetteringOnFilterEvaluationExceptions, DefinitionStages.WithDeadLetteringOnMessageExpiration, DefinitionStages.WithDefaultMessageTimeToLive, DefinitionStages.WithEnableBatchedOperations, DefinitionStages.WithEntityAvailabilityStatus, DefinitionStages.WithIsReadOnly, DefinitionStages.WithLockDuration, DefinitionStages.WithMaxDeliveryCount, DefinitionStages.WithRequiresSession, DefinitionStages.WithStatus, DefinitionStages.WithType {
+ }
+ }
+ /**
+ * The template for a SubscriptionResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAutoDeleteOnIdle, UpdateStages.WithDeadLetteringOnFilterEvaluationExceptions, UpdateStages.WithDeadLetteringOnMessageExpiration, UpdateStages.WithDefaultMessageTimeToLive, UpdateStages.WithEnableBatchedOperations, UpdateStages.WithEntityAvailabilityStatus, UpdateStages.WithIsReadOnly, UpdateStages.WithLockDuration, UpdateStages.WithMaxDeliveryCount, UpdateStages.WithRequiresSession, UpdateStages.WithStatus, UpdateStages.WithType {
+ }
+
+ /**
+ * Grouping of SubscriptionResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the subscriptionresource update allowing to specify AutoDeleteOnIdle.
+ */
+ interface WithAutoDeleteOnIdle {
+ /**
+ * Specifies autoDeleteOnIdle.
+ * @param autoDeleteOnIdle TimeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes
+ * @return the next update stage
+ */
+ Update withAutoDeleteOnIdle(String autoDeleteOnIdle);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify DeadLetteringOnFilterEvaluationExceptions.
+ */
+ interface WithDeadLetteringOnFilterEvaluationExceptions {
+ /**
+ * Specifies deadLetteringOnFilterEvaluationExceptions.
+ * @param deadLetteringOnFilterEvaluationExceptions Value that indicates whether a subscription has dead letter support on filter evaluation exceptions
+ * @return the next update stage
+ */
+ Update withDeadLetteringOnFilterEvaluationExceptions(Boolean deadLetteringOnFilterEvaluationExceptions);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify DeadLetteringOnMessageExpiration.
+ */
+ interface WithDeadLetteringOnMessageExpiration {
+ /**
+ * Specifies deadLetteringOnMessageExpiration.
+ * @param deadLetteringOnMessageExpiration Value that indicates whether a subscription has dead letter support when a message expires
+ * @return the next update stage
+ */
+ Update withDeadLetteringOnMessageExpiration(Boolean deadLetteringOnMessageExpiration);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify DefaultMessageTimeToLive.
+ */
+ interface WithDefaultMessageTimeToLive {
+ /**
+ * Specifies defaultMessageTimeToLive.
+ * @param defaultMessageTimeToLive Default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself
+ * @return the next update stage
+ */
+ Update withDefaultMessageTimeToLive(String defaultMessageTimeToLive);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify EnableBatchedOperations.
+ */
+ interface WithEnableBatchedOperations {
+ /**
+ * Specifies enableBatchedOperations.
+ * @param enableBatchedOperations Value that indicates whether server-side batched operations are enabled
+ * @return the next update stage
+ */
+ Update withEnableBatchedOperations(Boolean enableBatchedOperations);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify EntityAvailabilityStatus.
+ */
+ interface WithEntityAvailabilityStatus {
+ /**
+ * Specifies entityAvailabilityStatus.
+ * @param entityAvailabilityStatus Entity availability status for the topic. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'
+ * @return the next update stage
+ */
+ Update withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify IsReadOnly.
+ */
+ interface WithIsReadOnly {
+ /**
+ * Specifies isReadOnly.
+ * @param isReadOnly Value that indicates whether the entity description is read-only
+ * @return the next update stage
+ */
+ Update withIsReadOnly(Boolean isReadOnly);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify LockDuration.
+ */
+ interface WithLockDuration {
+ /**
+ * Specifies lockDuration.
+ * @param lockDuration The lock duration time span for the subscription
+ * @return the next update stage
+ */
+ Update withLockDuration(String lockDuration);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify MaxDeliveryCount.
+ */
+ interface WithMaxDeliveryCount {
+ /**
+ * Specifies maxDeliveryCount.
+ * @param maxDeliveryCount Number of maximum deliveries
+ * @return the next update stage
+ */
+ Update withMaxDeliveryCount(Integer maxDeliveryCount);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify RequiresSession.
+ */
+ interface WithRequiresSession {
+ /**
+ * Specifies requiresSession.
+ * @param requiresSession Value indicating if a subscription supports the concept of sessions
+ * @return the next update stage
+ */
+ Update withRequiresSession(Boolean requiresSession);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status Enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'
+ * @return the next update stage
+ */
+ Update withStatus(EntityStatus status);
+ }
+
+ /**
+ * The stage of the subscriptionresource update allowing to specify Type.
+ */
+ interface WithType {
+ /**
+ * Specifies type.
+ * @param type Resource manager type of the resource
+ * @return the next update stage
+ */
+ Update withType(String type);
+ }
+
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Subscriptions.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Subscriptions.java
new file mode 100644
index 000000000000..9e0e20929642
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Subscriptions.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.SubscriptionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Subscriptions.
+ */
+public interface Subscriptions extends SupportsCreating, HasInner {
+ /**
+ * Returns a subscription description for the specified topic.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @param subscriptionName The subscription name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String namespaceName, String topicName, String subscriptionName);
+
+ /**
+ * List all the subscriptions under a specified topic.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAllAsync(final String resourceGroupName, final String namespaceName, final String topicName);
+
+ /**
+ * Deletes a subscription from the specified topic.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @param subscriptionName The subscription name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String namespaceName, String topicName, String subscriptionName);
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicCreateOrUpdateParameters.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicCreateOrUpdateParameters.java
new file mode 100644
index 000000000000..359b7a77d5a7
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicCreateOrUpdateParameters.java
@@ -0,0 +1,539 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters supplied to the Create Or Update Topic operation.
+ */
+@JsonFlatten
+public class TopicCreateOrUpdateParameters {
+ /**
+ * Topic name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Location of the resource.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /**
+ * Last time the message was sent, or a request was received, for this
+ * topic.
+ */
+ @JsonProperty(value = "properties.accessedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime accessedAt;
+
+ /**
+ * TimeSpan idle interval after which the topic is automatically deleted.
+ * The minimum duration is 5 minutes.
+ */
+ @JsonProperty(value = "properties.autoDeleteOnIdle")
+ private String autoDeleteOnIdle;
+
+ /**
+ * Entity availability status for the topic. Possible values include:
+ * 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ */
+ @JsonProperty(value = "properties.entityAvailabilityStatus")
+ private EntityAvailabilityStatus entityAvailabilityStatus;
+
+ /**
+ * Exact time the message was created.
+ */
+ @JsonProperty(value = "properties.createdAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime createdAt;
+
+ /**
+ * The countDetails property.
+ */
+ @JsonProperty(value = "properties.countDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private MessageCountDetails countDetails;
+
+ /**
+ * Default message time to live value. This is the duration after which the
+ * message expires, starting from when the message is sent to Service Bus.
+ * This is the default value used when TimeToLive is not set on a message
+ * itself.
+ */
+ @JsonProperty(value = "properties.defaultMessageTimeToLive")
+ private String defaultMessageTimeToLive;
+
+ /**
+ * TimeSpan structure that defines the duration of the duplicate detection
+ * history. The default value is 10 minutes.
+ */
+ @JsonProperty(value = "properties.duplicateDetectionHistoryTimeWindow")
+ private String duplicateDetectionHistoryTimeWindow;
+
+ /**
+ * Value that indicates whether server-side batched operations are enabled.
+ */
+ @JsonProperty(value = "properties.enableBatchedOperations")
+ private Boolean enableBatchedOperations;
+
+ /**
+ * Value that indicates whether Express Entities are enabled. An express
+ * topic holds a message in memory temporarily before writing it to
+ * persistent storage.
+ */
+ @JsonProperty(value = "properties.enableExpress")
+ private Boolean enableExpress;
+
+ /**
+ * Value that indicates whether the topic to be partitioned across multiple
+ * message brokers is enabled.
+ */
+ @JsonProperty(value = "properties.enablePartitioning")
+ private Boolean enablePartitioning;
+
+ /**
+ * Whether messages should be filtered before publishing.
+ */
+ @JsonProperty(value = "properties.filteringMessagesBeforePublishing")
+ private Boolean filteringMessagesBeforePublishing;
+
+ /**
+ * Value that indicates whether the message is accessible anonymously.
+ */
+ @JsonProperty(value = "properties.isAnonymousAccessible")
+ private Boolean isAnonymousAccessible;
+
+ /**
+ * The isExpress property.
+ */
+ @JsonProperty(value = "properties.isExpress")
+ private Boolean isExpress;
+
+ /**
+ * Maximum size of the topic in megabytes, which is the size of the memory
+ * allocated for the topic.
+ */
+ @JsonProperty(value = "properties.maxSizeInMegabytes")
+ private Long maxSizeInMegabytes;
+
+ /**
+ * Value indicating if this topic requires duplicate detection.
+ */
+ @JsonProperty(value = "properties.requiresDuplicateDetection")
+ private Boolean requiresDuplicateDetection;
+
+ /**
+ * Size of the topic, in bytes.
+ */
+ @JsonProperty(value = "properties.sizeInBytes", access = JsonProperty.Access.WRITE_ONLY)
+ private Long sizeInBytes;
+
+ /**
+ * Enumerates the possible values for the status of a messaging entity.
+ * Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled',
+ * 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ */
+ @JsonProperty(value = "properties.status")
+ private EntityStatus status;
+
+ /**
+ * Number of subscriptions.
+ */
+ @JsonProperty(value = "properties.subscriptionCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer subscriptionCount;
+
+ /**
+ * Value that indicates whether the topic supports ordering.
+ */
+ @JsonProperty(value = "properties.supportOrdering")
+ private Boolean supportOrdering;
+
+ /**
+ * The exact time the message was updated.
+ */
+ @JsonProperty(value = "properties.updatedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime updatedAt;
+
+ /**
+ * Get topic name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set topic name.
+ *
+ * @param name the name value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get location of the resource.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set location of the resource.
+ *
+ * @param location the location value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get last time the message was sent, or a request was received, for this topic.
+ *
+ * @return the accessedAt value
+ */
+ public DateTime accessedAt() {
+ return this.accessedAt;
+ }
+
+ /**
+ * Get timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
+ *
+ * @return the autoDeleteOnIdle value
+ */
+ public String autoDeleteOnIdle() {
+ return this.autoDeleteOnIdle;
+ }
+
+ /**
+ * Set timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
+ *
+ * @param autoDeleteOnIdle the autoDeleteOnIdle value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withAutoDeleteOnIdle(String autoDeleteOnIdle) {
+ this.autoDeleteOnIdle = autoDeleteOnIdle;
+ return this;
+ }
+
+ /**
+ * Get entity availability status for the topic. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ *
+ * @return the entityAvailabilityStatus value
+ */
+ public EntityAvailabilityStatus entityAvailabilityStatus() {
+ return this.entityAvailabilityStatus;
+ }
+
+ /**
+ * Set entity availability status for the topic. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'.
+ *
+ * @param entityAvailabilityStatus the entityAvailabilityStatus value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus) {
+ this.entityAvailabilityStatus = entityAvailabilityStatus;
+ return this;
+ }
+
+ /**
+ * Get exact time the message was created.
+ *
+ * @return the createdAt value
+ */
+ public DateTime createdAt() {
+ return this.createdAt;
+ }
+
+ /**
+ * Get the countDetails value.
+ *
+ * @return the countDetails value
+ */
+ public MessageCountDetails countDetails() {
+ return this.countDetails;
+ }
+
+ /**
+ * Get default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
+ *
+ * @return the defaultMessageTimeToLive value
+ */
+ public String defaultMessageTimeToLive() {
+ return this.defaultMessageTimeToLive;
+ }
+
+ /**
+ * Set default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
+ *
+ * @param defaultMessageTimeToLive the defaultMessageTimeToLive value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withDefaultMessageTimeToLive(String defaultMessageTimeToLive) {
+ this.defaultMessageTimeToLive = defaultMessageTimeToLive;
+ return this;
+ }
+
+ /**
+ * Get timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.
+ *
+ * @return the duplicateDetectionHistoryTimeWindow value
+ */
+ public String duplicateDetectionHistoryTimeWindow() {
+ return this.duplicateDetectionHistoryTimeWindow;
+ }
+
+ /**
+ * Set timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.
+ *
+ * @param duplicateDetectionHistoryTimeWindow the duplicateDetectionHistoryTimeWindow value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withDuplicateDetectionHistoryTimeWindow(String duplicateDetectionHistoryTimeWindow) {
+ this.duplicateDetectionHistoryTimeWindow = duplicateDetectionHistoryTimeWindow;
+ return this;
+ }
+
+ /**
+ * Get value that indicates whether server-side batched operations are enabled.
+ *
+ * @return the enableBatchedOperations value
+ */
+ public Boolean enableBatchedOperations() {
+ return this.enableBatchedOperations;
+ }
+
+ /**
+ * Set value that indicates whether server-side batched operations are enabled.
+ *
+ * @param enableBatchedOperations the enableBatchedOperations value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withEnableBatchedOperations(Boolean enableBatchedOperations) {
+ this.enableBatchedOperations = enableBatchedOperations;
+ return this;
+ }
+
+ /**
+ * Get value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
+ *
+ * @return the enableExpress value
+ */
+ public Boolean enableExpress() {
+ return this.enableExpress;
+ }
+
+ /**
+ * Set value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
+ *
+ * @param enableExpress the enableExpress value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withEnableExpress(Boolean enableExpress) {
+ this.enableExpress = enableExpress;
+ return this;
+ }
+
+ /**
+ * Get value that indicates whether the topic to be partitioned across multiple message brokers is enabled.
+ *
+ * @return the enablePartitioning value
+ */
+ public Boolean enablePartitioning() {
+ return this.enablePartitioning;
+ }
+
+ /**
+ * Set value that indicates whether the topic to be partitioned across multiple message brokers is enabled.
+ *
+ * @param enablePartitioning the enablePartitioning value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withEnablePartitioning(Boolean enablePartitioning) {
+ this.enablePartitioning = enablePartitioning;
+ return this;
+ }
+
+ /**
+ * Get whether messages should be filtered before publishing.
+ *
+ * @return the filteringMessagesBeforePublishing value
+ */
+ public Boolean filteringMessagesBeforePublishing() {
+ return this.filteringMessagesBeforePublishing;
+ }
+
+ /**
+ * Set whether messages should be filtered before publishing.
+ *
+ * @param filteringMessagesBeforePublishing the filteringMessagesBeforePublishing value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withFilteringMessagesBeforePublishing(Boolean filteringMessagesBeforePublishing) {
+ this.filteringMessagesBeforePublishing = filteringMessagesBeforePublishing;
+ return this;
+ }
+
+ /**
+ * Get value that indicates whether the message is accessible anonymously.
+ *
+ * @return the isAnonymousAccessible value
+ */
+ public Boolean isAnonymousAccessible() {
+ return this.isAnonymousAccessible;
+ }
+
+ /**
+ * Set value that indicates whether the message is accessible anonymously.
+ *
+ * @param isAnonymousAccessible the isAnonymousAccessible value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withIsAnonymousAccessible(Boolean isAnonymousAccessible) {
+ this.isAnonymousAccessible = isAnonymousAccessible;
+ return this;
+ }
+
+ /**
+ * Get the isExpress value.
+ *
+ * @return the isExpress value
+ */
+ public Boolean isExpress() {
+ return this.isExpress;
+ }
+
+ /**
+ * Set the isExpress value.
+ *
+ * @param isExpress the isExpress value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withIsExpress(Boolean isExpress) {
+ this.isExpress = isExpress;
+ return this;
+ }
+
+ /**
+ * Get maximum size of the topic in megabytes, which is the size of the memory allocated for the topic.
+ *
+ * @return the maxSizeInMegabytes value
+ */
+ public Long maxSizeInMegabytes() {
+ return this.maxSizeInMegabytes;
+ }
+
+ /**
+ * Set maximum size of the topic in megabytes, which is the size of the memory allocated for the topic.
+ *
+ * @param maxSizeInMegabytes the maxSizeInMegabytes value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withMaxSizeInMegabytes(Long maxSizeInMegabytes) {
+ this.maxSizeInMegabytes = maxSizeInMegabytes;
+ return this;
+ }
+
+ /**
+ * Get value indicating if this topic requires duplicate detection.
+ *
+ * @return the requiresDuplicateDetection value
+ */
+ public Boolean requiresDuplicateDetection() {
+ return this.requiresDuplicateDetection;
+ }
+
+ /**
+ * Set value indicating if this topic requires duplicate detection.
+ *
+ * @param requiresDuplicateDetection the requiresDuplicateDetection value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withRequiresDuplicateDetection(Boolean requiresDuplicateDetection) {
+ this.requiresDuplicateDetection = requiresDuplicateDetection;
+ return this;
+ }
+
+ /**
+ * Get size of the topic, in bytes.
+ *
+ * @return the sizeInBytes value
+ */
+ public Long sizeInBytes() {
+ return this.sizeInBytes;
+ }
+
+ /**
+ * Get enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ *
+ * @return the status value
+ */
+ public EntityStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'.
+ *
+ * @param status the status value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withStatus(EntityStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get number of subscriptions.
+ *
+ * @return the subscriptionCount value
+ */
+ public Integer subscriptionCount() {
+ return this.subscriptionCount;
+ }
+
+ /**
+ * Get value that indicates whether the topic supports ordering.
+ *
+ * @return the supportOrdering value
+ */
+ public Boolean supportOrdering() {
+ return this.supportOrdering;
+ }
+
+ /**
+ * Set value that indicates whether the topic supports ordering.
+ *
+ * @param supportOrdering the supportOrdering value to set
+ * @return the TopicCreateOrUpdateParameters object itself.
+ */
+ public TopicCreateOrUpdateParameters withSupportOrdering(Boolean supportOrdering) {
+ this.supportOrdering = supportOrdering;
+ return this;
+ }
+
+ /**
+ * Get the exact time the message was updated.
+ *
+ * @return the updatedAt value
+ */
+ public DateTime updatedAt() {
+ return this.updatedAt;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicNamespaceSharedAccessAuthorizationRuleResource.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicNamespaceSharedAccessAuthorizationRuleResource.java
new file mode 100644
index 000000000000..bcacfff43d97
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicNamespaceSharedAccessAuthorizationRuleResource.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.SharedAccessAuthorizationRuleResourceInner;
+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.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import java.util.List;
+
+/**
+ * Type representing TopicNamespaceSharedAccessAuthorizationRuleResource.
+ */
+public interface TopicNamespaceSharedAccessAuthorizationRuleResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the rights value.
+ */
+ List rights();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the TopicNamespaceSharedAccessAuthorizationRuleResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithTopic, DefinitionStages.WithRights, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of TopicNamespaceSharedAccessAuthorizationRuleResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a TopicNamespaceSharedAccessAuthorizationRuleResource definition.
+ */
+ interface Blank extends WithTopic {
+ }
+
+ /**
+ * The stage of the topicnamespacesharedaccessauthorizationruleresource definition allowing to specify Topic.
+ */
+ interface WithTopic {
+ /**
+ * Specifies resourceGroupName, namespaceName, topicName.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription
+ * @param namespaceName The namespace name
+ * @param topicName The topic name
+ * @return the next definition stage
+ */
+ WithRights withExistingTopic(String resourceGroupName, String namespaceName, String topicName);
+ }
+
+ /**
+ * The stage of the topicnamespacesharedaccessauthorizationruleresource definition allowing to specify Rights.
+ */
+ interface WithRights {
+ /**
+ * Specifies rights.
+ * @param rights The rights associated with the rule
+ * @return the next definition stage
+ */
+ WithCreate withRights(List rights);
+ }
+
+ /**
+ * The stage of the topicnamespacesharedaccessauthorizationruleresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location data center location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the topicnamespacesharedaccessauthorizationruleresource definition allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Name of the authorization rule
+ * @return the next definition stage
+ */
+ WithCreate withName(String name);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithLocation, DefinitionStages.WithName {
+ }
+ }
+ /**
+ * The template for a TopicNamespaceSharedAccessAuthorizationRuleResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLocation, UpdateStages.WithName {
+ }
+
+ /**
+ * Grouping of TopicNamespaceSharedAccessAuthorizationRuleResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the topicnamespacesharedaccessauthorizationruleresource update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location data center location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ /**
+ * The stage of the topicnamespacesharedaccessauthorizationruleresource update allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Name of the authorization rule
+ * @return the next update stage
+ */
+ Update withName(String name);
+ }
+
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicResource.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicResource.java
new file mode 100644
index 000000000000..6d31969f5b55
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/TopicResource.java
@@ -0,0 +1,566 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.TopicResourceInner;
+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.servicebus.v2015_08_01.implementation.ServiceBusManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing TopicResource.
+ */
+public interface TopicResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the accessedAt value.
+ */
+ DateTime accessedAt();
+
+ /**
+ * @return the autoDeleteOnIdle value.
+ */
+ String autoDeleteOnIdle();
+
+ /**
+ * @return the countDetails value.
+ */
+ MessageCountDetails countDetails();
+
+ /**
+ * @return the createdAt value.
+ */
+ DateTime createdAt();
+
+ /**
+ * @return the defaultMessageTimeToLive value.
+ */
+ String defaultMessageTimeToLive();
+
+ /**
+ * @return the duplicateDetectionHistoryTimeWindow value.
+ */
+ String duplicateDetectionHistoryTimeWindow();
+
+ /**
+ * @return the enableBatchedOperations value.
+ */
+ Boolean enableBatchedOperations();
+
+ /**
+ * @return the enableExpress value.
+ */
+ Boolean enableExpress();
+
+ /**
+ * @return the enablePartitioning value.
+ */
+ Boolean enablePartitioning();
+
+ /**
+ * @return the entityAvailabilityStatus value.
+ */
+ EntityAvailabilityStatus entityAvailabilityStatus();
+
+ /**
+ * @return the filteringMessagesBeforePublishing value.
+ */
+ Boolean filteringMessagesBeforePublishing();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the isAnonymousAccessible value.
+ */
+ Boolean isAnonymousAccessible();
+
+ /**
+ * @return the isExpress value.
+ */
+ Boolean isExpress();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the maxSizeInMegabytes value.
+ */
+ Long maxSizeInMegabytes();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the requiresDuplicateDetection value.
+ */
+ Boolean requiresDuplicateDetection();
+
+ /**
+ * @return the sizeInBytes value.
+ */
+ Long sizeInBytes();
+
+ /**
+ * @return the status value.
+ */
+ EntityStatus status();
+
+ /**
+ * @return the subscriptionCount value.
+ */
+ Integer subscriptionCount();
+
+ /**
+ * @return the supportOrdering value.
+ */
+ Boolean supportOrdering();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the updatedAt value.
+ */
+ DateTime updatedAt();
+
+ /**
+ * The entirety of the TopicResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithNamespace, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of TopicResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a TopicResource definition.
+ */
+ interface Blank extends WithNamespace {
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify Namespace.
+ */
+ interface WithNamespace {
+ /**
+ * Specifies resourceGroupName, namespaceName.
+ * @param resourceGroupName Name of the Resource group within the Azure subscription
+ * @param namespaceName The namespace name
+ * @return the next definition stage
+ */
+ WithLocation withExistingNamespace(String resourceGroupName, String namespaceName);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Location of the resource
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify AutoDeleteOnIdle.
+ */
+ interface WithAutoDeleteOnIdle {
+ /**
+ * Specifies autoDeleteOnIdle.
+ * @param autoDeleteOnIdle TimeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes
+ * @return the next definition stage
+ */
+ WithCreate withAutoDeleteOnIdle(String autoDeleteOnIdle);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify DefaultMessageTimeToLive.
+ */
+ interface WithDefaultMessageTimeToLive {
+ /**
+ * Specifies defaultMessageTimeToLive.
+ * @param defaultMessageTimeToLive Default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself
+ * @return the next definition stage
+ */
+ WithCreate withDefaultMessageTimeToLive(String defaultMessageTimeToLive);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify DuplicateDetectionHistoryTimeWindow.
+ */
+ interface WithDuplicateDetectionHistoryTimeWindow {
+ /**
+ * Specifies duplicateDetectionHistoryTimeWindow.
+ * @param duplicateDetectionHistoryTimeWindow TimeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes
+ * @return the next definition stage
+ */
+ WithCreate withDuplicateDetectionHistoryTimeWindow(String duplicateDetectionHistoryTimeWindow);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify EnableBatchedOperations.
+ */
+ interface WithEnableBatchedOperations {
+ /**
+ * Specifies enableBatchedOperations.
+ * @param enableBatchedOperations Value that indicates whether server-side batched operations are enabled
+ * @return the next definition stage
+ */
+ WithCreate withEnableBatchedOperations(Boolean enableBatchedOperations);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify EnableExpress.
+ */
+ interface WithEnableExpress {
+ /**
+ * Specifies enableExpress.
+ * @param enableExpress Value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage
+ * @return the next definition stage
+ */
+ WithCreate withEnableExpress(Boolean enableExpress);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify EnablePartitioning.
+ */
+ interface WithEnablePartitioning {
+ /**
+ * Specifies enablePartitioning.
+ * @param enablePartitioning Value that indicates whether the topic to be partitioned across multiple message brokers is enabled
+ * @return the next definition stage
+ */
+ WithCreate withEnablePartitioning(Boolean enablePartitioning);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify EntityAvailabilityStatus.
+ */
+ interface WithEntityAvailabilityStatus {
+ /**
+ * Specifies entityAvailabilityStatus.
+ * @param entityAvailabilityStatus Entity availability status for the topic. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'
+ * @return the next definition stage
+ */
+ WithCreate withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify FilteringMessagesBeforePublishing.
+ */
+ interface WithFilteringMessagesBeforePublishing {
+ /**
+ * Specifies filteringMessagesBeforePublishing.
+ * @param filteringMessagesBeforePublishing Whether messages should be filtered before publishing
+ * @return the next definition stage
+ */
+ WithCreate withFilteringMessagesBeforePublishing(Boolean filteringMessagesBeforePublishing);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify IsAnonymousAccessible.
+ */
+ interface WithIsAnonymousAccessible {
+ /**
+ * Specifies isAnonymousAccessible.
+ * @param isAnonymousAccessible Value that indicates whether the message is accessible anonymously
+ * @return the next definition stage
+ */
+ WithCreate withIsAnonymousAccessible(Boolean isAnonymousAccessible);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify IsExpress.
+ */
+ interface WithIsExpress {
+ /**
+ * Specifies isExpress.
+ * @param isExpress the isExpress parameter value
+ * @return the next definition stage
+ */
+ WithCreate withIsExpress(Boolean isExpress);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify MaxSizeInMegabytes.
+ */
+ interface WithMaxSizeInMegabytes {
+ /**
+ * Specifies maxSizeInMegabytes.
+ * @param maxSizeInMegabytes Maximum size of the topic in megabytes, which is the size of the memory allocated for the topic
+ * @return the next definition stage
+ */
+ WithCreate withMaxSizeInMegabytes(Long maxSizeInMegabytes);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Topic name
+ * @return the next definition stage
+ */
+ WithCreate withName(String name);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify RequiresDuplicateDetection.
+ */
+ interface WithRequiresDuplicateDetection {
+ /**
+ * Specifies requiresDuplicateDetection.
+ * @param requiresDuplicateDetection Value indicating if this topic requires duplicate detection
+ * @return the next definition stage
+ */
+ WithCreate withRequiresDuplicateDetection(Boolean requiresDuplicateDetection);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status Enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'
+ * @return the next definition stage
+ */
+ WithCreate withStatus(EntityStatus status);
+ }
+
+ /**
+ * The stage of the topicresource definition allowing to specify SupportOrdering.
+ */
+ interface WithSupportOrdering {
+ /**
+ * Specifies supportOrdering.
+ * @param supportOrdering Value that indicates whether the topic supports ordering
+ * @return the next definition stage
+ */
+ WithCreate withSupportOrdering(Boolean supportOrdering);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithAutoDeleteOnIdle, DefinitionStages.WithDefaultMessageTimeToLive, DefinitionStages.WithDuplicateDetectionHistoryTimeWindow, DefinitionStages.WithEnableBatchedOperations, DefinitionStages.WithEnableExpress, DefinitionStages.WithEnablePartitioning, DefinitionStages.WithEntityAvailabilityStatus, DefinitionStages.WithFilteringMessagesBeforePublishing, DefinitionStages.WithIsAnonymousAccessible, DefinitionStages.WithIsExpress, DefinitionStages.WithMaxSizeInMegabytes, DefinitionStages.WithName, DefinitionStages.WithRequiresDuplicateDetection, DefinitionStages.WithStatus, DefinitionStages.WithSupportOrdering {
+ }
+ }
+ /**
+ * The template for a TopicResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAutoDeleteOnIdle, UpdateStages.WithDefaultMessageTimeToLive, UpdateStages.WithDuplicateDetectionHistoryTimeWindow, UpdateStages.WithEnableBatchedOperations, UpdateStages.WithEnableExpress, UpdateStages.WithEnablePartitioning, UpdateStages.WithEntityAvailabilityStatus, UpdateStages.WithFilteringMessagesBeforePublishing, UpdateStages.WithIsAnonymousAccessible, UpdateStages.WithIsExpress, UpdateStages.WithMaxSizeInMegabytes, UpdateStages.WithName, UpdateStages.WithRequiresDuplicateDetection, UpdateStages.WithStatus, UpdateStages.WithSupportOrdering {
+ }
+
+ /**
+ * Grouping of TopicResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the topicresource update allowing to specify AutoDeleteOnIdle.
+ */
+ interface WithAutoDeleteOnIdle {
+ /**
+ * Specifies autoDeleteOnIdle.
+ * @param autoDeleteOnIdle TimeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes
+ * @return the next update stage
+ */
+ Update withAutoDeleteOnIdle(String autoDeleteOnIdle);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify DefaultMessageTimeToLive.
+ */
+ interface WithDefaultMessageTimeToLive {
+ /**
+ * Specifies defaultMessageTimeToLive.
+ * @param defaultMessageTimeToLive Default message time to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself
+ * @return the next update stage
+ */
+ Update withDefaultMessageTimeToLive(String defaultMessageTimeToLive);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify DuplicateDetectionHistoryTimeWindow.
+ */
+ interface WithDuplicateDetectionHistoryTimeWindow {
+ /**
+ * Specifies duplicateDetectionHistoryTimeWindow.
+ * @param duplicateDetectionHistoryTimeWindow TimeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes
+ * @return the next update stage
+ */
+ Update withDuplicateDetectionHistoryTimeWindow(String duplicateDetectionHistoryTimeWindow);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify EnableBatchedOperations.
+ */
+ interface WithEnableBatchedOperations {
+ /**
+ * Specifies enableBatchedOperations.
+ * @param enableBatchedOperations Value that indicates whether server-side batched operations are enabled
+ * @return the next update stage
+ */
+ Update withEnableBatchedOperations(Boolean enableBatchedOperations);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify EnableExpress.
+ */
+ interface WithEnableExpress {
+ /**
+ * Specifies enableExpress.
+ * @param enableExpress Value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage
+ * @return the next update stage
+ */
+ Update withEnableExpress(Boolean enableExpress);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify EnablePartitioning.
+ */
+ interface WithEnablePartitioning {
+ /**
+ * Specifies enablePartitioning.
+ * @param enablePartitioning Value that indicates whether the topic to be partitioned across multiple message brokers is enabled
+ * @return the next update stage
+ */
+ Update withEnablePartitioning(Boolean enablePartitioning);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify EntityAvailabilityStatus.
+ */
+ interface WithEntityAvailabilityStatus {
+ /**
+ * Specifies entityAvailabilityStatus.
+ * @param entityAvailabilityStatus Entity availability status for the topic. Possible values include: 'Available', 'Limited', 'Renaming', 'Restoring', 'Unknown'
+ * @return the next update stage
+ */
+ Update withEntityAvailabilityStatus(EntityAvailabilityStatus entityAvailabilityStatus);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify FilteringMessagesBeforePublishing.
+ */
+ interface WithFilteringMessagesBeforePublishing {
+ /**
+ * Specifies filteringMessagesBeforePublishing.
+ * @param filteringMessagesBeforePublishing Whether messages should be filtered before publishing
+ * @return the next update stage
+ */
+ Update withFilteringMessagesBeforePublishing(Boolean filteringMessagesBeforePublishing);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify IsAnonymousAccessible.
+ */
+ interface WithIsAnonymousAccessible {
+ /**
+ * Specifies isAnonymousAccessible.
+ * @param isAnonymousAccessible Value that indicates whether the message is accessible anonymously
+ * @return the next update stage
+ */
+ Update withIsAnonymousAccessible(Boolean isAnonymousAccessible);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify IsExpress.
+ */
+ interface WithIsExpress {
+ /**
+ * Specifies isExpress.
+ * @param isExpress the isExpress parameter value
+ * @return the next update stage
+ */
+ Update withIsExpress(Boolean isExpress);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify MaxSizeInMegabytes.
+ */
+ interface WithMaxSizeInMegabytes {
+ /**
+ * Specifies maxSizeInMegabytes.
+ * @param maxSizeInMegabytes Maximum size of the topic in megabytes, which is the size of the memory allocated for the topic
+ * @return the next update stage
+ */
+ Update withMaxSizeInMegabytes(Long maxSizeInMegabytes);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ * @param name Topic name
+ * @return the next update stage
+ */
+ Update withName(String name);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify RequiresDuplicateDetection.
+ */
+ interface WithRequiresDuplicateDetection {
+ /**
+ * Specifies requiresDuplicateDetection.
+ * @param requiresDuplicateDetection Value indicating if this topic requires duplicate detection
+ * @return the next update stage
+ */
+ Update withRequiresDuplicateDetection(Boolean requiresDuplicateDetection);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status Enumerates the possible values for the status of a messaging entity. Possible values include: 'Active', 'Creating', 'Deleting', 'Disabled', 'ReceiveDisabled', 'Renaming', 'Restoring', 'SendDisabled', 'Unknown'
+ * @return the next update stage
+ */
+ Update withStatus(EntityStatus status);
+ }
+
+ /**
+ * The stage of the topicresource update allowing to specify SupportOrdering.
+ */
+ interface WithSupportOrdering {
+ /**
+ * Specifies supportOrdering.
+ * @param supportOrdering Value that indicates whether the topic supports ordering
+ * @return the next update stage
+ */
+ Update withSupportOrdering(Boolean supportOrdering);
+ }
+
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Topics.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Topics.java
new file mode 100644
index 000000000000..d6d455f5d3bb
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/Topics.java
@@ -0,0 +1,132 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.servicebus.v2015_08_01.implementation.TopicsInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.servicebus.v2015_08_01.TopicNamespaceSharedAccessAuthorizationRuleResource;
+
+/**
+ * Type representing Topics.
+ */
+public interface Topics extends SupportsCreating, HasInner {
+ /**
+ * Begins definition for a new AuthorizationRule resource.
+ * @param name resource name.
+ * @return the first stage of the new AuthorizationRule definition.
+ */
+ TopicNamespaceSharedAccessAuthorizationRuleResource.DefinitionStages.Blank defineAuthorizationRule(String name);
+
+ /**
+ * Returns a description for the specified topic.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String namespaceName, String topicName);
+
+ /**
+ * Gets all the topics in a namespace.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAllAsync(final String resourceGroupName, final String namespaceName);
+
+ /**
+ * Deletes a topic from the specified namespace and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String namespaceName, String topicName);
+
+ /**
+ * Returns the specified authorization rule.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String topicName, String authorizationRuleName);
+
+ /**
+ * Gets authorization rules for a topic.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAuthorizationRulesAsync(final String resourceGroupName, final String namespaceName, final String topicName);
+
+ /**
+ * Deletes a topic authorization rule.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String topicName, String authorizationRuleName);
+
+ /**
+ * Returns the specified authorization rule.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable postAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String topicName, String authorizationRuleName);
+
+ /**
+ * Gets the primary and secondary connection strings for the topic.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listKeysAsync(String resourceGroupName, String namespaceName, String topicName, String authorizationRuleName);
+
+ /**
+ * Regenerates primary or secondary connection strings for the topic.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param namespaceName The namespace name
+ * @param topicName The topic name.
+ * @param authorizationRuleName The authorization rule name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable regenerateKeysAsync(String resourceGroupName, String namespaceName, String topicName, String authorizationRuleName);
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/UnavailableReason.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/UnavailableReason.java
new file mode 100644
index 000000000000..f42ad1f4295c
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/UnavailableReason.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.servicebus.v2015_08_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for UnavailableReason.
+ */
+public final class UnavailableReason extends ExpandableStringEnum {
+ /** Static value None for UnavailableReason. */
+ public static final UnavailableReason NONE = fromString("None");
+
+ /** Static value InvalidName for UnavailableReason. */
+ public static final UnavailableReason INVALID_NAME = fromString("InvalidName");
+
+ /** Static value SubscriptionIsDisabled for UnavailableReason. */
+ public static final UnavailableReason SUBSCRIPTION_IS_DISABLED = fromString("SubscriptionIsDisabled");
+
+ /** Static value NameInUse for UnavailableReason. */
+ public static final UnavailableReason NAME_IN_USE = fromString("NameInUse");
+
+ /** Static value NameInLockdown for UnavailableReason. */
+ public static final UnavailableReason NAME_IN_LOCKDOWN = fromString("NameInLockdown");
+
+ /** Static value TooManyNamespaceInCurrentSubscription for UnavailableReason. */
+ public static final UnavailableReason TOO_MANY_NAMESPACE_IN_CURRENT_SUBSCRIPTION = fromString("TooManyNamespaceInCurrentSubscription");
+
+ /**
+ * Creates or finds a UnavailableReason from its string representation.
+ * @param name a name to look for
+ * @return the corresponding UnavailableReason
+ */
+ @JsonCreator
+ public static UnavailableReason fromString(String name) {
+ return fromString(name, UnavailableReason.class);
+ }
+
+ /**
+ * @return known UnavailableReason values
+ */
+ public static Collection values() {
+ return values(UnavailableReason.class);
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/CheckNameAvailabilityResultImpl.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/CheckNameAvailabilityResultImpl.java
new file mode 100644
index 000000000000..47b6377d4d9c
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/CheckNameAvailabilityResultImpl.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.servicebus.v2015_08_01.implementation;
+
+import com.microsoft.azure.management.servicebus.v2015_08_01.CheckNameAvailabilityResult;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.servicebus.v2015_08_01.UnavailableReason;
+
+class CheckNameAvailabilityResultImpl extends WrapperImpl implements CheckNameAvailabilityResult {
+ private final ServiceBusManager manager;
+ CheckNameAvailabilityResultImpl(CheckNameAvailabilityResultInner inner, ServiceBusManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ServiceBusManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String message() {
+ return this.inner().message();
+ }
+
+ @Override
+ public Boolean nameAvailable() {
+ return this.inner().nameAvailable();
+ }
+
+ @Override
+ public UnavailableReason reason() {
+ return this.inner().reason();
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/CheckNameAvailabilityResultInner.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/CheckNameAvailabilityResultInner.java
new file mode 100644
index 000000000000..aff0e8239859
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/CheckNameAvailabilityResultInner.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01.implementation;
+
+import com.microsoft.azure.management.servicebus.v2015_08_01.UnavailableReason;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Description of a Check Name availability request properties.
+ */
+public class CheckNameAvailabilityResultInner {
+ /**
+ * Value indicating namespace is availability, true if the namespace is
+ * available; otherwise, false.
+ */
+ @JsonProperty(value = "nameAvailable")
+ private Boolean nameAvailable;
+
+ /**
+ * The reason for unavailability of a namespace. Possible values include:
+ * 'None', 'InvalidName', 'SubscriptionIsDisabled', 'NameInUse',
+ * 'NameInLockdown', 'TooManyNamespaceInCurrentSubscription'.
+ */
+ @JsonProperty(value = "reason")
+ private UnavailableReason reason;
+
+ /**
+ * The detailed info regarding the reason associated with the namespace.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Get value indicating namespace is availability, true if the namespace is available; otherwise, false.
+ *
+ * @return the nameAvailable value
+ */
+ public Boolean nameAvailable() {
+ return this.nameAvailable;
+ }
+
+ /**
+ * Set value indicating namespace is availability, true if the namespace is available; otherwise, false.
+ *
+ * @param nameAvailable the nameAvailable value to set
+ * @return the CheckNameAvailabilityResultInner object itself.
+ */
+ public CheckNameAvailabilityResultInner withNameAvailable(Boolean nameAvailable) {
+ this.nameAvailable = nameAvailable;
+ return this;
+ }
+
+ /**
+ * Get the reason for unavailability of a namespace. Possible values include: 'None', 'InvalidName', 'SubscriptionIsDisabled', 'NameInUse', 'NameInLockdown', 'TooManyNamespaceInCurrentSubscription'.
+ *
+ * @return the reason value
+ */
+ public UnavailableReason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Set the reason for unavailability of a namespace. Possible values include: 'None', 'InvalidName', 'SubscriptionIsDisabled', 'NameInUse', 'NameInLockdown', 'TooManyNamespaceInCurrentSubscription'.
+ *
+ * @param reason the reason value to set
+ * @return the CheckNameAvailabilityResultInner object itself.
+ */
+ public CheckNameAvailabilityResultInner withReason(UnavailableReason reason) {
+ this.reason = reason;
+ return this;
+ }
+
+ /**
+ * Get the detailed info regarding the reason associated with the namespace.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/IdParsingUtils.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/IdParsingUtils.java
new file mode 100644
index 000000000000..e3e27a45f47e
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/IdParsingUtils.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.servicebus.v2015_08_01.implementation;
+import java.util.Arrays;
+import java.util.Iterator;
+
+class IdParsingUtils {
+ public static String getValueFromIdByName(String id, String name) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (part.equalsIgnoreCase(name)) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public static String getValueFromIdByPosition(String id, int pos) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ int index = 0;
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (index == pos) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ index++;
+ }
+ return null;
+ }
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceResourceImpl.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceResourceImpl.java
new file mode 100644
index 000000000000..13f3eab3e2c5
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceResourceImpl.java
@@ -0,0 +1,144 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01.implementation;
+
+import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceResource;
+import rx.Observable;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceUpdateParameters;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceCreateOrUpdateParameters;
+import org.joda.time.DateTime;
+import com.microsoft.azure.management.servicebus.v2015_08_01.Sku;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceState;
+import rx.functions.Func1;
+
+class NamespaceResourceImpl extends GroupableResourceCoreImpl implements NamespaceResource, NamespaceResource.Definition, NamespaceResource.Update {
+ private NamespaceCreateOrUpdateParameters createParameter;
+ private NamespaceUpdateParameters updateParameter;
+ NamespaceResourceImpl(String name, NamespaceResourceInner inner, ServiceBusManager manager) {
+ super(name, inner, manager);
+ this.createParameter = new NamespaceCreateOrUpdateParameters();
+ this.updateParameter = new NamespaceUpdateParameters();
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ NamespacesInner client = this.manager().inner().namespaces();
+ this.createParameter.withLocation(inner().location());
+ this.createParameter.withTags(inner().getTags());
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.createParameter)
+ .map(new Func1() {
+ @Override
+ public NamespaceResourceInner call(NamespaceResourceInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ NamespacesInner client = this.manager().inner().namespaces();
+ return client.updateAsync(this.resourceGroupName(), this.name(), this.updateParameter)
+ .map(new Func1() {
+ @Override
+ public NamespaceResourceInner call(NamespaceResourceInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ NamespacesInner client = this.manager().inner().namespaces();
+ return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+ private void resetCreateUpdateParameters() {
+ this.createParameter = new NamespaceCreateOrUpdateParameters();
+ this.updateParameter = new NamespaceUpdateParameters();
+ }
+
+ @Override
+ public Boolean createACSNamespace() {
+ return this.inner().createACSNamespace();
+ }
+
+ @Override
+ public DateTime createdAt() {
+ return this.inner().createdAt();
+ }
+
+ @Override
+ public Boolean enabled() {
+ return this.inner().enabled();
+ }
+
+ @Override
+ public String provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public String serviceBusEndpoint() {
+ return this.inner().serviceBusEndpoint();
+ }
+
+ @Override
+ public Sku sku() {
+ return this.inner().sku();
+ }
+
+ @Override
+ public NamespaceState status() {
+ return this.inner().status();
+ }
+
+ @Override
+ public DateTime updatedAt() {
+ return this.inner().updatedAt();
+ }
+
+ @Override
+ public NamespaceResourceImpl withCreateACSNamespace(Boolean createACSNamespace) {
+ this.createParameter.withCreateACSNamespace(createACSNamespace);
+ return this;
+ }
+
+ @Override
+ public NamespaceResourceImpl withEnabled(Boolean enabled) {
+ this.createParameter.withEnabled(enabled);
+ return this;
+ }
+
+ @Override
+ public NamespaceResourceImpl withStatus(NamespaceState status) {
+ this.createParameter.withStatus(status);
+ return this;
+ }
+
+ @Override
+ public NamespaceResourceImpl withSku(Sku sku) {
+ if (isInCreateMode()) {
+ this.createParameter.withSku(sku);
+ } else {
+ this.updateParameter.withSku(sku);
+ }
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceResourceInner.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceResourceInner.java
new file mode 100644
index 000000000000..7b9d927e687f
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceResourceInner.java
@@ -0,0 +1,191 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01.implementation;
+
+import com.microsoft.azure.management.servicebus.v2015_08_01.Sku;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceState;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.rest.SkipParentValidation;
+import com.microsoft.azure.Resource;
+
+/**
+ * Description of a namespace resource.
+ */
+@JsonFlatten
+@SkipParentValidation
+public class NamespaceResourceInner extends Resource {
+ /**
+ * The sku property.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /**
+ * Provisioning state of the namespace.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * State of the namespace. Possible values include: 'Unknown', 'Creating',
+ * 'Created', 'Activating', 'Enabling', 'Active', 'Disabling', 'Disabled',
+ * 'SoftDeleting', 'SoftDeleted', 'Removing', 'Removed', 'Failed'.
+ */
+ @JsonProperty(value = "properties.status")
+ private NamespaceState status;
+
+ /**
+ * The time the namespace was created.
+ */
+ @JsonProperty(value = "properties.createdAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime createdAt;
+
+ /**
+ * The time the namespace was updated.
+ */
+ @JsonProperty(value = "properties.updatedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime updatedAt;
+
+ /**
+ * Endpoint you can use to perform Service Bus operations.
+ */
+ @JsonProperty(value = "properties.serviceBusEndpoint", access = JsonProperty.Access.WRITE_ONLY)
+ private String serviceBusEndpoint;
+
+ /**
+ * Indicates whether to create an ACS namespace.
+ */
+ @JsonProperty(value = "properties.createACSNamespace")
+ private Boolean createACSNamespace;
+
+ /**
+ * Specifies whether this instance is enabled.
+ */
+ @JsonProperty(value = "properties.enabled")
+ private Boolean enabled;
+
+ /**
+ * Get the sku value.
+ *
+ * @return the sku value
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku value.
+ *
+ * @param sku the sku value to set
+ * @return the NamespaceResourceInner object itself.
+ */
+ public NamespaceResourceInner withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the namespace.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get state of the namespace. Possible values include: 'Unknown', 'Creating', 'Created', 'Activating', 'Enabling', 'Active', 'Disabling', 'Disabled', 'SoftDeleting', 'SoftDeleted', 'Removing', 'Removed', 'Failed'.
+ *
+ * @return the status value
+ */
+ public NamespaceState status() {
+ return this.status;
+ }
+
+ /**
+ * Set state of the namespace. Possible values include: 'Unknown', 'Creating', 'Created', 'Activating', 'Enabling', 'Active', 'Disabling', 'Disabled', 'SoftDeleting', 'SoftDeleted', 'Removing', 'Removed', 'Failed'.
+ *
+ * @param status the status value to set
+ * @return the NamespaceResourceInner object itself.
+ */
+ public NamespaceResourceInner withStatus(NamespaceState status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the time the namespace was created.
+ *
+ * @return the createdAt value
+ */
+ public DateTime createdAt() {
+ return this.createdAt;
+ }
+
+ /**
+ * Get the time the namespace was updated.
+ *
+ * @return the updatedAt value
+ */
+ public DateTime updatedAt() {
+ return this.updatedAt;
+ }
+
+ /**
+ * Get endpoint you can use to perform Service Bus operations.
+ *
+ * @return the serviceBusEndpoint value
+ */
+ public String serviceBusEndpoint() {
+ return this.serviceBusEndpoint;
+ }
+
+ /**
+ * Get indicates whether to create an ACS namespace.
+ *
+ * @return the createACSNamespace value
+ */
+ public Boolean createACSNamespace() {
+ return this.createACSNamespace;
+ }
+
+ /**
+ * Set indicates whether to create an ACS namespace.
+ *
+ * @param createACSNamespace the createACSNamespace value to set
+ * @return the NamespaceResourceInner object itself.
+ */
+ public NamespaceResourceInner withCreateACSNamespace(Boolean createACSNamespace) {
+ this.createACSNamespace = createACSNamespace;
+ return this;
+ }
+
+ /**
+ * Get specifies whether this instance is enabled.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set specifies whether this instance is enabled.
+ *
+ * @param enabled the enabled value to set
+ * @return the NamespaceResourceInner object itself.
+ */
+ public NamespaceResourceInner withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceSharedAccessAuthorizationRuleResourceImpl.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceSharedAccessAuthorizationRuleResourceImpl.java
new file mode 100644
index 000000000000..abe6d2757db3
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespaceSharedAccessAuthorizationRuleResourceImpl.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01.implementation;
+
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceSharedAccessAuthorizationRuleResource;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.servicebus.v2015_08_01.SharedAccessAuthorizationRuleCreateOrUpdateParameters;
+import java.util.List;
+import com.microsoft.azure.management.servicebus.v2015_08_01.AccessRights;
+import rx.functions.Func1;
+
+class NamespaceSharedAccessAuthorizationRuleResourceImpl extends CreatableUpdatableImpl implements NamespaceSharedAccessAuthorizationRuleResource, NamespaceSharedAccessAuthorizationRuleResource.Definition, NamespaceSharedAccessAuthorizationRuleResource.Update {
+ private final ServiceBusManager manager;
+ private String resourceGroupName;
+ private String namespaceName;
+ private String authorizationRuleName;
+ private SharedAccessAuthorizationRuleCreateOrUpdateParameters createOrUpdateParameter;
+
+ NamespaceSharedAccessAuthorizationRuleResourceImpl(String name, ServiceBusManager manager) {
+ super(name, new SharedAccessAuthorizationRuleResourceInner());
+ this.manager = manager;
+ // Set resource name
+ this.authorizationRuleName = name;
+ //
+ this.createOrUpdateParameter = new SharedAccessAuthorizationRuleCreateOrUpdateParameters();
+ }
+
+ NamespaceSharedAccessAuthorizationRuleResourceImpl(SharedAccessAuthorizationRuleResourceInner inner, ServiceBusManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.authorizationRuleName = inner.name();
+ // set resource ancestor and positional variables
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.namespaceName = IdParsingUtils.getValueFromIdByName(inner.id(), "namespaces");
+ this.authorizationRuleName = IdParsingUtils.getValueFromIdByName(inner.id(), "AuthorizationRules");
+ //
+ this.createOrUpdateParameter = new SharedAccessAuthorizationRuleCreateOrUpdateParameters();
+ }
+
+ @Override
+ public ServiceBusManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ NamespacesInner client = this.manager().inner().namespaces();
+ return client.createOrUpdateAuthorizationRuleAsync(this.resourceGroupName, this.namespaceName, this.authorizationRuleName, this.createOrUpdateParameter)
+ .map(new Func1() {
+ @Override
+ public SharedAccessAuthorizationRuleResourceInner call(SharedAccessAuthorizationRuleResourceInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ NamespacesInner client = this.manager().inner().namespaces();
+ return client.createOrUpdateAuthorizationRuleAsync(this.resourceGroupName, this.namespaceName, this.authorizationRuleName, this.createOrUpdateParameter)
+ .map(new Func1() {
+ @Override
+ public SharedAccessAuthorizationRuleResourceInner call(SharedAccessAuthorizationRuleResourceInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ NamespacesInner client = this.manager().inner().namespaces();
+ return client.getAuthorizationRuleAsync(this.resourceGroupName, this.namespaceName, this.authorizationRuleName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+ private void resetCreateUpdateParameters() {
+ this.createOrUpdateParameter = new SharedAccessAuthorizationRuleCreateOrUpdateParameters();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String location() {
+ return this.inner().location();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public List rights() {
+ return this.inner().rights();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public NamespaceSharedAccessAuthorizationRuleResourceImpl withExistingNamespace(String resourceGroupName, String namespaceName) {
+ this.resourceGroupName = resourceGroupName;
+ this.namespaceName = namespaceName;
+ return this;
+ }
+
+ @Override
+ public NamespaceSharedAccessAuthorizationRuleResourceImpl withRights(List rights) {
+ this.createOrUpdateParameter.withRights(rights);
+ return this;
+ }
+
+ @Override
+ public NamespaceSharedAccessAuthorizationRuleResourceImpl withLocation(String location) {
+ this.createOrUpdateParameter.withLocation(location);
+ return this;
+ }
+
+ @Override
+ public NamespaceSharedAccessAuthorizationRuleResourceImpl withName(String name) {
+ this.createOrUpdateParameter.withName(name);
+ return this;
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespacesImpl.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespacesImpl.java
new file mode 100644
index 000000000000..91ec2e3ca1b0
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespacesImpl.java
@@ -0,0 +1,234 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * def
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceResource;
+import rx.Observable;
+import rx.Completable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import com.microsoft.azure.arm.resources.ResourceUtilsCore;
+import com.microsoft.azure.arm.utils.RXMapper;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.servicebus.v2015_08_01.CheckNameAvailabilityResult;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceSharedAccessAuthorizationRuleResource;
+import com.microsoft.azure.management.servicebus.v2015_08_01.ResourceListKeys;
+
+class NamespacesImpl extends GroupableResourcesCoreImpl implements Namespaces {
+ protected NamespacesImpl(ServiceBusManager manager) {
+ super(manager.inner().namespaces(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ NamespacesInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ NamespacesInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, name).toCompletable();
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(Collection ids) {
+ if (ids == null || ids.isEmpty()) {
+ return Observable.empty();
+ }
+ Collection> observables = new ArrayList<>();
+ for (String id : ids) {
+ final String resourceGroupName = ResourceUtilsCore.groupFromResourceId(id);
+ final String name = ResourceUtilsCore.nameFromResourceId(id);
+ Observable o = RXMapper.map(this.inner().deleteAsync(resourceGroupName, name), id);
+ observables.add(o);
+ }
+ return Observable.mergeDelayError(observables);
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(String...ids) {
+ return this.deleteByIdsAsync(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public void deleteByIds(Collection ids) {
+ if (ids != null && !ids.isEmpty()) {
+ this.deleteByIdsAsync(ids).toBlocking().last();
+ }
+ }
+
+ @Override
+ public void deleteByIds(String...ids) {
+ this.deleteByIds(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public PagedList listByResourceGroup(String resourceGroupName) {
+ NamespacesInner client = this.inner();
+ return this.wrapList(client.listByResourceGroup(resourceGroupName));
+ }
+
+ @Override
+ public Observable listByResourceGroupAsync(String resourceGroupName) {
+ NamespacesInner client = this.inner();
+ return client.listByResourceGroupAsync(resourceGroupName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public NamespaceResource call(NamespaceResourceInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public PagedList list() {
+ NamespacesInner client = this.inner();
+ return this.wrapList(client.list());
+ }
+
+ @Override
+ public Observable listAsync() {
+ NamespacesInner client = this.inner();
+ return client.listAsync()
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public NamespaceResource call(NamespaceResourceInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public NamespaceResourceImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ @Override
+ public Observable checkNameAvailabilityMethodAsync(String name) {
+ NamespacesInner client = this.inner();
+ return client.checkNameAvailabilityMethodAsync(name)
+ .map(new Func1() {
+ @Override
+ public CheckNameAvailabilityResult call(CheckNameAvailabilityResultInner inner) {
+ return new CheckNameAvailabilityResultImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ protected NamespaceResourceImpl wrapModel(NamespaceResourceInner inner) {
+ return new NamespaceResourceImpl(inner.name(), inner, manager());
+ }
+
+ @Override
+ protected NamespaceResourceImpl wrapModel(String name) {
+ return new NamespaceResourceImpl(name, new NamespaceResourceInner(), this.manager());
+ }
+
+ @Override
+ public NamespaceSharedAccessAuthorizationRuleResourceImpl defineAuthorizationRule(String name) {
+ return wrapAuthorizationRuleModel(name);
+ }
+
+ private NamespaceSharedAccessAuthorizationRuleResourceImpl wrapAuthorizationRuleModel(String name) {
+ return new NamespaceSharedAccessAuthorizationRuleResourceImpl(name, this.manager());
+ }
+
+ private NamespaceSharedAccessAuthorizationRuleResourceImpl wrapNamespaceSharedAccessAuthorizationRuleResourceModel(SharedAccessAuthorizationRuleResourceInner inner) {
+ return new NamespaceSharedAccessAuthorizationRuleResourceImpl(inner, manager());
+ }
+
+ private Observable getSharedAccessAuthorizationRuleResourceInnerUsingNamespacesInnerAsync(String id) {
+ String resourceGroupName = IdParsingUtils.getValueFromIdByName(id, "resourceGroups");
+ String namespaceName = IdParsingUtils.getValueFromIdByName(id, "namespaces");
+ String authorizationRuleName = IdParsingUtils.getValueFromIdByName(id, "AuthorizationRules");
+ NamespacesInner client = this.inner();
+ return client.getAuthorizationRuleAsync(resourceGroupName, namespaceName, authorizationRuleName);
+ }
+
+ @Override
+ public Observable getAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String authorizationRuleName) {
+ NamespacesInner client = this.inner();
+ return client.getAuthorizationRuleAsync(resourceGroupName, namespaceName, authorizationRuleName)
+ .map(new Func1() {
+ @Override
+ public NamespaceSharedAccessAuthorizationRuleResource call(SharedAccessAuthorizationRuleResourceInner inner) {
+ return wrapNamespaceSharedAccessAuthorizationRuleResourceModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Observable listAuthorizationRulesAsync(final String resourceGroupName, final String namespaceName) {
+ NamespacesInner client = this.inner();
+ return client.listAuthorizationRulesAsync(resourceGroupName, namespaceName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public NamespaceSharedAccessAuthorizationRuleResource call(SharedAccessAuthorizationRuleResourceInner inner) {
+ return wrapNamespaceSharedAccessAuthorizationRuleResourceModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Completable deleteAuthorizationRuleAsync(String resourceGroupName, String namespaceName, String authorizationRuleName) {
+ NamespacesInner client = this.inner();
+ return client.deleteAuthorizationRuleAsync(resourceGroupName, namespaceName, authorizationRuleName).toCompletable();
+ }
+
+ @Override
+ public Observable listKeysAsync(String resourceGroupName, String namespaceName, String authorizationRuleName) {
+ NamespacesInner client = this.inner();
+ return client.listKeysAsync(resourceGroupName, namespaceName, authorizationRuleName)
+ .map(new Func1() {
+ @Override
+ public ResourceListKeys call(ResourceListKeysInner inner) {
+ return new ResourceListKeysImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public Observable regenerateKeysAsync(String resourceGroupName, String namespaceName, String authorizationRuleName) {
+ NamespacesInner client = this.inner();
+ return client.regenerateKeysAsync(resourceGroupName, namespaceName, authorizationRuleName)
+ .map(new Func1() {
+ @Override
+ public ResourceListKeys call(ResourceListKeysInner inner) {
+ return new ResourceListKeysImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespacesInner.java b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespacesInner.java
new file mode 100644
index 000000000000..16a689077d2f
--- /dev/null
+++ b/servicebus/resource-manager/v2015_08_01/src/main/java/com/microsoft/azure/management/servicebus/v2015_08_01/implementation/NamespacesInner.java
@@ -0,0 +1,1986 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.servicebus.v2015_08_01.implementation;
+
+import com.microsoft.azure.arm.collection.InnerSupportsGet;
+import com.microsoft.azure.arm.collection.InnerSupportsDelete;
+import com.microsoft.azure.arm.collection.InnerSupportsListing;
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.servicebus.v2015_08_01.CheckNameAvailability;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceCreateOrUpdateParameters;
+import com.microsoft.azure.management.servicebus.v2015_08_01.NamespaceUpdateParameters;
+import com.microsoft.azure.management.servicebus.v2015_08_01.Policykey;
+import com.microsoft.azure.management.servicebus.v2015_08_01.RegenerateKeysParameters;
+import com.microsoft.azure.management.servicebus.v2015_08_01.SharedAccessAuthorizationRuleCreateOrUpdateParameters;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.PATCH;
+import retrofit2.http.Path;
+import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Namespaces.
+ */
+public class NamespacesInner implements InnerSupportsGet, InnerSupportsDelete, InnerSupportsListing {
+ /** The Retrofit service to perform REST calls. */
+ private NamespacesService service;
+ /** The service client containing this operation class. */
+ private ServiceBusManagementClientImpl client;
+
+ /**
+ * Initializes an instance of NamespacesInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public NamespacesInner(Retrofit retrofit, ServiceBusManagementClientImpl client) {
+ this.service = retrofit.create(NamespacesService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Namespaces to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface NamespacesService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces checkNameAvailabilityMethod" })
+ @POST("subscriptions/{subscriptionId}/providers/Microsoft.ServiceBus/CheckNameAvailability")
+ Observable> checkNameAvailabilityMethod(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body CheckNameAvailability parameters, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces list" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.ServiceBus/namespaces")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces listByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces")
+ Observable> listByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}")
+ Observable> createOrUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("subscriptionId") String subscriptionId, @Body NamespaceCreateOrUpdateParameters parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}")
+ Observable> beginCreateOrUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("subscriptionId") String subscriptionId, @Body NamespaceCreateOrUpdateParameters parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces getByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}")
+ Observable> getByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces update" })
+ @PATCH("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}")
+ Observable> update(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("subscriptionId") String subscriptionId, @Body NamespaceUpdateParameters parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces listAuthorizationRules" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/AuthorizationRules")
+ Observable> listAuthorizationRules(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces createOrUpdateAuthorizationRule" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/AuthorizationRules/{authorizationRuleName}")
+ Observable> createOrUpdateAuthorizationRule(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("authorizationRuleName") String authorizationRuleName, @Path("subscriptionId") String subscriptionId, @Body SharedAccessAuthorizationRuleCreateOrUpdateParameters parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces deleteAuthorizationRule" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/AuthorizationRules/{authorizationRuleName}", method = "DELETE", hasBody = true)
+ Observable> deleteAuthorizationRule(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("authorizationRuleName") String authorizationRuleName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces getAuthorizationRule" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/AuthorizationRules/{authorizationRuleName}")
+ Observable> getAuthorizationRule(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("authorizationRuleName") String authorizationRuleName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces listKeys" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/AuthorizationRules/{authorizationRuleName}/listKeys")
+ Observable> listKeys(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("authorizationRuleName") String authorizationRuleName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces regenerateKeys" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceBus/namespaces/{namespaceName}/AuthorizationRules/{authorizationRuleName}/regenerateKeys")
+ Observable> regenerateKeys(@Path("resourceGroupName") String resourceGroupName, @Path("namespaceName") String namespaceName, @Path("authorizationRuleName") String authorizationRuleName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body RegenerateKeysParameters parameters, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces listByResourceGroupNext" })
+ @GET
+ Observable> listByResourceGroupNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.servicebus.v2015_08_01.Namespaces listAuthorizationRulesNext" })
+ @GET
+ Observable> listAuthorizationRulesNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Check the give namespace name availability.
+ *
+ * @param name The Name to check the namespace name availability and The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the CheckNameAvailabilityResultInner object if successful.
+ */
+ public CheckNameAvailabilityResultInner checkNameAvailabilityMethod(String name) {
+ return checkNameAvailabilityMethodWithServiceResponseAsync(name).toBlocking().single().body();
+ }
+
+ /**
+ * Check the give namespace name availability.
+ *
+ * @param name The Name to check the namespace name availability and The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture checkNameAvailabilityMethodAsync(String name, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(checkNameAvailabilityMethodWithServiceResponseAsync(name), serviceCallback);
+ }
+
+ /**
+ * Check the give namespace name availability.
+ *
+ * @param name The Name to check the namespace name availability and The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the CheckNameAvailabilityResultInner object
+ */
+ public Observable checkNameAvailabilityMethodAsync(String name) {
+ return checkNameAvailabilityMethodWithServiceResponseAsync(name).map(new Func1, CheckNameAvailabilityResultInner>() {
+ @Override
+ public CheckNameAvailabilityResultInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Check the give namespace name availability.
+ *
+ * @param name The Name to check the namespace name availability and The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the CheckNameAvailabilityResultInner object
+ */
+ public Observable> checkNameAvailabilityMethodWithServiceResponseAsync(String name) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (name == null) {
+ throw new IllegalArgumentException("Parameter name is required and cannot be null.");
+ }
+ CheckNameAvailability parameters = new CheckNameAvailability();
+ parameters.withName(name);
+ return service.checkNameAvailabilityMethod(this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), parameters, this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = checkNameAvailabilityMethodDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse checkNameAvailabilityMethodDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Gets all the available namespaces within the subscription, irrespective of the resource groups.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<NamespaceResourceInner> object if successful.
+ */
+ public PagedList list() {
+ ServiceResponse> response = listSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Gets all the available namespaces within the subscription, irrespective of the resource groups.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listAsync(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Gets all the available namespaces within the subscription, irrespective of the resource groups.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<NamespaceResourceInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets all the available namespaces within the subscription, irrespective of the resource groups.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<NamespaceResourceInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ return listSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Gets all the available namespaces within the subscription, irrespective of the resource groups.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<NamespaceResourceInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync() {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Gets the available namespaces within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<NamespaceResourceInner> object if successful.
+ */
+ public PagedList listByResourceGroup(final String resourceGroupName) {
+ ServiceResponse> response = listByResourceGroupSinglePageAsync(resourceGroupName).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listByResourceGroupNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Gets the available namespaces within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listByResourceGroupAsync(final String resourceGroupName, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listByResourceGroupSinglePageAsync(resourceGroupName),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listByResourceGroupNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Gets the available namespaces within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<NamespaceResourceInner> object
+ */
+ public Observable> listByResourceGroupAsync(final String resourceGroupName) {
+ return listByResourceGroupWithServiceResponseAsync(resourceGroupName)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets the available namespaces within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<NamespaceResourceInner> object
+ */
+ public Observable>> listByResourceGroupWithServiceResponseAsync(final String resourceGroupName) {
+ return listByResourceGroupSinglePageAsync(resourceGroupName)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listByResourceGroupNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Gets the available namespaces within a resource group.
+ *
+ ServiceResponse> * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<NamespaceResourceInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listByResourceGroupSinglePageAsync(final String resourceGroupName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.listByResourceGroup(resourceGroupName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response