diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/pom.xml b/deploymentmanager/resource-manager/v2018-09-01-preview/pom.xml
new file mode 100644
index 000000000000..f8b369bbc234
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.deploymentmanager.v2018-09-01-preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.xml
+
+ azure-mgmt-deploymentmanager
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for DeploymentManager Management
+ This package contains Microsoft DeploymentManager 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/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSource.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSource.java
new file mode 100644
index 000000000000..3ce6bf78dca9
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSource.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+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.deploymentmanager.v2018-09-01-preview.implementation.DeploymentManagerManager;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.ArtifactSourceInner;
+
+/**
+ * Type representing ArtifactSource.
+ */
+public interface ArtifactSource extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the artifactRoot value.
+ */
+ String artifactRoot();
+
+ /**
+ * @return the authentication value.
+ */
+ Authentication authentication();
+
+ /**
+ * @return the sourceType value.
+ */
+ String sourceType();
+
+ /**
+ * The entirety of the ArtifactSource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithAuthentication, DefinitionStages.WithSourceType, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ArtifactSource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ArtifactSource definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ArtifactSource definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the artifactsource definition allowing to specify Authentication.
+ */
+ interface WithAuthentication {
+ /**
+ * Specifies authentication.
+ * @param authentication The authentication method to use to access the artifact source
+ * @return the next definition stage
+*/
+ WithSourceType withAuthentication(Authentication authentication);
+ }
+
+ /**
+ * The stage of the artifactsource definition allowing to specify SourceType.
+ */
+ interface WithSourceType {
+ /**
+ * Specifies sourceType.
+ * @param sourceType The type of artifact source used
+ * @return the next definition stage
+*/
+ WithCreate withSourceType(String sourceType);
+ }
+
+ /**
+ * The stage of the artifactsource definition allowing to specify ArtifactRoot.
+ */
+ interface WithArtifactRoot {
+ /**
+ * Specifies artifactRoot.
+ * @param artifactRoot The path from the location that the 'authentication' property [say, a SAS URI to the blob container] refers to, to the location of the artifacts. This can be used to differentiate different versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced by the authentication property concatenated with this optional artifactRoot path forms the artifact source location where the artifacts are expected to be found
+ * @return the next definition stage
+ */
+ WithCreate withArtifactRoot(String artifactRoot);
+ }
+
+ /**
+ * 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.WithArtifactRoot {
+ }
+ }
+ /**
+ * The template for a ArtifactSource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithArtifactRoot {
+ }
+
+ /**
+ * Grouping of ArtifactSource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the artifactsource update allowing to specify ArtifactRoot.
+ */
+ interface WithArtifactRoot {
+ /**
+ * Specifies artifactRoot.
+ * @param artifactRoot The path from the location that the 'authentication' property [say, a SAS URI to the blob container] refers to, to the location of the artifacts. This can be used to differentiate different versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced by the authentication property concatenated with this optional artifactRoot path forms the artifact source location where the artifacts are expected to be found
+ * @return the next update stage
+ */
+ Update withArtifactRoot(String artifactRoot);
+ }
+
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSourcePropertiesModel.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSourcePropertiesModel.java
new file mode 100644
index 000000000000..2f0b1390fbfc
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSourcePropertiesModel.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define the source location where the artifacts are
+ * located.
+ */
+public class ArtifactSourcePropertiesModel {
+ /**
+ * The type of artifact source used.
+ */
+ @JsonProperty(value = "sourceType", required = true)
+ private String sourceType;
+
+ /**
+ * The path from the location that the 'authentication' property [say, a
+ * SAS URI to the blob container] refers to, to the location of the
+ * artifacts. This can be used to differentiate different versions of the
+ * artifacts. Or, different types of artifacts like binaries or templates.
+ * The location referenced by the authentication property concatenated with
+ * this optional artifactRoot path forms the artifact source location where
+ * the artifacts are expected to be found.
+ */
+ @JsonProperty(value = "artifactRoot")
+ private String artifactRoot;
+
+ /**
+ * The authentication method to use to access the artifact source.
+ */
+ @JsonProperty(value = "authentication", required = true)
+ private Authentication authentication;
+
+ /**
+ * Get the type of artifact source used.
+ *
+ * @return the sourceType value
+ */
+ public String sourceType() {
+ return this.sourceType;
+ }
+
+ /**
+ * Set the type of artifact source used.
+ *
+ * @param sourceType the sourceType value to set
+ * @return the ArtifactSourcePropertiesModel object itself.
+ */
+ public ArtifactSourcePropertiesModel withSourceType(String sourceType) {
+ this.sourceType = sourceType;
+ return this;
+ }
+
+ /**
+ * Get the path from the location that the 'authentication' property [say, a SAS URI to the blob container] refers to, to the location of the artifacts. This can be used to differentiate different versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced by the authentication property concatenated with this optional artifactRoot path forms the artifact source location where the artifacts are expected to be found.
+ *
+ * @return the artifactRoot value
+ */
+ public String artifactRoot() {
+ return this.artifactRoot;
+ }
+
+ /**
+ * Set the path from the location that the 'authentication' property [say, a SAS URI to the blob container] refers to, to the location of the artifacts. This can be used to differentiate different versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced by the authentication property concatenated with this optional artifactRoot path forms the artifact source location where the artifacts are expected to be found.
+ *
+ * @param artifactRoot the artifactRoot value to set
+ * @return the ArtifactSourcePropertiesModel object itself.
+ */
+ public ArtifactSourcePropertiesModel withArtifactRoot(String artifactRoot) {
+ this.artifactRoot = artifactRoot;
+ return this;
+ }
+
+ /**
+ * Get the authentication method to use to access the artifact source.
+ *
+ * @return the authentication value
+ */
+ public Authentication authentication() {
+ return this.authentication;
+ }
+
+ /**
+ * Set the authentication method to use to access the artifact source.
+ *
+ * @param authentication the authentication value to set
+ * @return the ArtifactSourcePropertiesModel object itself.
+ */
+ public ArtifactSourcePropertiesModel withAuthentication(Authentication authentication) {
+ this.authentication = authentication;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSources.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSources.java
new file mode 100644
index 000000000000..7e0cb56563af
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ArtifactSources.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+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.management.deploymentmanager.v2018-09-01-preview.implementation.ArtifactSourcesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ArtifactSources.
+ */
+public interface ArtifactSources extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, HasInner {
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Authentication.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Authentication.java
new file mode 100644
index 000000000000..b33e68531f9e
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Authentication.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Defines the authentication method and properties to access the artifacts.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
+@JsonTypeName("Authentication")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Sas", value = SasAuthentication.class)
+})
+public class Authentication {
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/AzureEntityResource.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/AzureEntityResource.java
new file mode 100644
index 000000000000..9ed1cb3a72f7
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/AzureEntityResource.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * The resource model definition for a Azure Resource Manager resource with an
+ * etag.
+ */
+public class AzureEntityResource extends ProxyResource {
+ /**
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get resource Etag.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/CloudErrorBody.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/CloudErrorBody.java
new file mode 100644
index 000000000000..353fb70bcd29
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/CloudErrorBody.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Detailed error information of any failure.
+ */
+public class CloudErrorBody {
+ /**
+ * Error code string.
+ */
+ @JsonProperty(value = "code", access = JsonProperty.Access.WRITE_ONLY)
+ private String code;
+
+ /**
+ * Descriptive error information.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Error target.
+ */
+ @JsonProperty(value = "target")
+ private String target;
+
+ /**
+ * More detailed error information.
+ */
+ @JsonProperty(value = "details")
+ private List details;
+
+ /**
+ * Get error code string.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Get descriptive error information.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get error target.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Set error target.
+ *
+ * @param target the target value to set
+ * @return the CloudErrorBody object itself.
+ */
+ public CloudErrorBody withTarget(String target) {
+ this.target = target;
+ return this;
+ }
+
+ /**
+ * Get more detailed error information.
+ *
+ * @return the details value
+ */
+ public List details() {
+ return this.details;
+ }
+
+ /**
+ * Set more detailed error information.
+ *
+ * @param details the details value to set
+ * @return the CloudErrorBody object itself.
+ */
+ public CloudErrorBody withDetails(List details) {
+ this.details = details;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/DeploymentMode.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/DeploymentMode.java
new file mode 100644
index 000000000000..eab41933f3bb
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/DeploymentMode.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.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DeploymentMode.
+ */
+public enum DeploymentMode {
+ /** Enum value Incremental. */
+ INCREMENTAL("Incremental"),
+
+ /** Enum value Complete. */
+ COMPLETE("Complete");
+
+ /** The actual serialized value for a DeploymentMode instance. */
+ private String value;
+
+ DeploymentMode(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DeploymentMode instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DeploymentMode object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DeploymentMode fromString(String value) {
+ DeploymentMode[] items = DeploymentMode.values();
+ for (DeploymentMode item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Identity.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Identity.java
new file mode 100644
index 000000000000..ed34e3bbf96e
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Identity.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.deploymentmanager.v2018-09-01-preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity for the resource.
+ */
+public class Identity {
+ /**
+ * The identity type.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * The list of identities.
+ */
+ @JsonProperty(value = "identityIds", required = true)
+ private List identityIds;
+
+ /**
+ * Get the identity type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the identity type.
+ *
+ * @param type the type value to set
+ * @return the Identity object itself.
+ */
+ public Identity withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the list of identities.
+ *
+ * @return the identityIds value
+ */
+ public List identityIds() {
+ return this.identityIds;
+ }
+
+ /**
+ * Set the list of identities.
+ *
+ * @param identityIds the identityIds value to set
+ * @return the Identity object itself.
+ */
+ public Identity withIdentityIds(List identityIds) {
+ this.identityIds = identityIds;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Message.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Message.java
new file mode 100644
index 000000000000..9edd974c5746
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Message.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Supplementary contextual messages during a rollout.
+ */
+public class Message {
+ /**
+ * Time in UTC this message was provided.
+ */
+ @JsonProperty(value = "timeStamp", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime timeStamp;
+
+ /**
+ * The actual message text.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Get time in UTC this message was provided.
+ *
+ * @return the timeStamp value
+ */
+ public DateTime timeStamp() {
+ return this.timeStamp;
+ }
+
+ /**
+ * Get the actual message text.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Operation.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Operation.java
new file mode 100644
index 000000000000..7cd29730fea8
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Operation.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.OperationInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.DeploymentManagerManager;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDetail display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the properties value.
+ */
+ Object properties();
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/OperationDetail.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/OperationDetail.java
new file mode 100644
index 000000000000..27ae4f835f45
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/OperationDetail.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The detail about an operation.
+ */
+public class OperationDetail {
+ /**
+ * The name of the provider that supports the operation.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * The resource type on which this operation can be performed.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * The name of the operation.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * The description of the operation.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get the name of the provider that supports the operation.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set the name of the provider that supports the operation.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDetail object itself.
+ */
+ public OperationDetail withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get the resource type on which this operation can be performed.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the resource type on which this operation can be performed.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDetail object itself.
+ */
+ public OperationDetail withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get the name of the operation.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set the name of the operation.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDetail object itself.
+ */
+ public OperationDetail withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get the description of the operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description of the operation.
+ *
+ * @param description the description value to set
+ * @return the OperationDetail object itself.
+ */
+ public OperationDetail withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Operations.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Operations.java
new file mode 100644
index 000000000000..3cabaa803767
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Operations.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends SupportsListing, HasInner {
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/PrePostStep.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/PrePostStep.java
new file mode 100644
index 000000000000..f65ea7253076
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/PrePostStep.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define a step.
+ */
+public class PrePostStep {
+ /**
+ * The resource Id of the step to be run.
+ */
+ @JsonProperty(value = "stepId", required = true)
+ private String stepId;
+
+ /**
+ * Get the resource Id of the step to be run.
+ *
+ * @return the stepId value
+ */
+ public String stepId() {
+ return this.stepId;
+ }
+
+ /**
+ * Set the resource Id of the step to be run.
+ *
+ * @param stepId the stepId value to set
+ * @return the PrePostStep object itself.
+ */
+ public PrePostStep withStepId(String stepId) {
+ this.stepId = stepId;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ResourceOperation.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ResourceOperation.java
new file mode 100644
index 000000000000..d2c43571822b
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ResourceOperation.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Individual resource operation information.
+ */
+public class ResourceOperation {
+ /**
+ * Name of the resource as specified in the artifacts. For ARM resources,
+ * this is the name of the resource specified in the template.
+ */
+ @JsonProperty(value = "resourceName")
+ private String resourceName;
+
+ /**
+ * Unique identifier of the operation. For ARM resources, this is the
+ * operationId obtained from ARM service.
+ */
+ @JsonProperty(value = "operationId", access = JsonProperty.Access.WRITE_ONLY)
+ private String operationId;
+
+ /**
+ * Type of the resource as specified in the artifacts. For ARM resources,
+ * this is the type of the resource specified in the template.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /**
+ * State of the resource deployment. For ARM resources, this is the current
+ * provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Descriptive information of the resource operation.
+ */
+ @JsonProperty(value = "statusMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String statusMessage;
+
+ /**
+ * Http status code of the operation.
+ */
+ @JsonProperty(value = "statusCode", access = JsonProperty.Access.WRITE_ONLY)
+ private String statusCode;
+
+ /**
+ * Get name of the resource as specified in the artifacts. For ARM resources, this is the name of the resource specified in the template.
+ *
+ * @return the resourceName value
+ */
+ public String resourceName() {
+ return this.resourceName;
+ }
+
+ /**
+ * Set name of the resource as specified in the artifacts. For ARM resources, this is the name of the resource specified in the template.
+ *
+ * @param resourceName the resourceName value to set
+ * @return the ResourceOperation object itself.
+ */
+ public ResourceOperation withResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ return this;
+ }
+
+ /**
+ * Get unique identifier of the operation. For ARM resources, this is the operationId obtained from ARM service.
+ *
+ * @return the operationId value
+ */
+ public String operationId() {
+ return this.operationId;
+ }
+
+ /**
+ * Get type of the resource as specified in the artifacts. For ARM resources, this is the type of the resource specified in the template.
+ *
+ * @return the resourceType value
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set type of the resource as specified in the artifacts. For ARM resources, this is the type of the resource specified in the template.
+ *
+ * @param resourceType the resourceType value to set
+ * @return the ResourceOperation object itself.
+ */
+ public ResourceOperation withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get state of the resource deployment. For ARM resources, this is the current provisioning state of the resource.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get descriptive information of the resource operation.
+ *
+ * @return the statusMessage value
+ */
+ public String statusMessage() {
+ return this.statusMessage;
+ }
+
+ /**
+ * Get http status code of the operation.
+ *
+ * @return the statusCode value
+ */
+ public String statusCode() {
+ return this.statusCode;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Rollout.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Rollout.java
new file mode 100644
index 000000000000..6de5da07b492
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Rollout.java
@@ -0,0 +1,187 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+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.deploymentmanager.v2018-09-01-preview.implementation.DeploymentManagerManager;
+import java.util.List;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.StepInner;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.RolloutInner;
+
+/**
+ * Type representing Rollout.
+ */
+public interface Rollout extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the artifactSourceId value.
+ */
+ String artifactSourceId();
+
+ /**
+ * @return the buildVersion value.
+ */
+ String buildVersion();
+
+ /**
+ * @return the identity value.
+ */
+ Identity identity();
+
+ /**
+ * @return the operationInfo value.
+ */
+ RolloutOperationInfo operationInfo();
+
+ /**
+ * @return the services value.
+ */
+ List services();
+
+ /**
+ * @return the status value.
+ */
+ String status();
+
+ /**
+ * @return the stepGroups value.
+ */
+ List stepGroups();
+
+ /**
+ * @return the targetServiceTopologyId value.
+ */
+ String targetServiceTopologyId();
+
+ /**
+ * @return the totalRetryAttempts value.
+ */
+ Integer totalRetryAttempts();
+
+ /**
+ * The entirety of the Rollout definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithBuildVersion, DefinitionStages.WithIdentity, DefinitionStages.WithStepGroups, DefinitionStages.WithTargetServiceTopologyId, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Rollout definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Rollout definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Rollout definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the rollout definition allowing to specify BuildVersion.
+ */
+ interface WithBuildVersion {
+ /**
+ * Specifies buildVersion.
+ * @param buildVersion The version of the build being deployed
+ * @return the next definition stage
+*/
+ WithIdentity withBuildVersion(String buildVersion);
+ }
+
+ /**
+ * The stage of the rollout definition allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity Identity for the resource
+ * @return the next definition stage
+*/
+ WithStepGroups withIdentity(Identity identity);
+ }
+
+ /**
+ * The stage of the rollout definition allowing to specify StepGroups.
+ */
+ interface WithStepGroups {
+ /**
+ * Specifies stepGroups.
+ * @param stepGroups The list of step groups that define the orchestration
+ * @return the next definition stage
+*/
+ WithTargetServiceTopologyId withStepGroups(List stepGroups);
+ }
+
+ /**
+ * The stage of the rollout definition allowing to specify TargetServiceTopologyId.
+ */
+ interface WithTargetServiceTopologyId {
+ /**
+ * Specifies targetServiceTopologyId.
+ * @param targetServiceTopologyId The resource Id of the service topology from which service units are being referenced in step groups to be deployed
+ * @return the next definition stage
+*/
+ WithCreate withTargetServiceTopologyId(String targetServiceTopologyId);
+ }
+
+ /**
+ * The stage of the rollout definition allowing to specify ArtifactSourceId.
+ */
+ interface WithArtifactSourceId {
+ /**
+ * Specifies artifactSourceId.
+ * @param artifactSourceId The reference to the artifact source resource Id where the payload is located
+ * @return the next definition stage
+ */
+ WithCreate withArtifactSourceId(String artifactSourceId);
+ }
+
+ /**
+ * 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.WithArtifactSourceId {
+ }
+ }
+ /**
+ * The template for a Rollout update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithArtifactSourceId {
+ }
+
+ /**
+ * Grouping of Rollout update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the rollout update allowing to specify ArtifactSourceId.
+ */
+ interface WithArtifactSourceId {
+ /**
+ * Specifies artifactSourceId.
+ * @param artifactSourceId The reference to the artifact source resource Id where the payload is located
+ * @return the next update stage
+ */
+ Update withArtifactSourceId(String artifactSourceId);
+ }
+
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutOperationInfo.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutOperationInfo.java
new file mode 100644
index 000000000000..b5165476c64d
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutOperationInfo.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.deploymentmanager.v2018-09-01-preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Detailed runtime information of the rollout.
+ */
+public class RolloutOperationInfo {
+ /**
+ * The ordinal count of the number of retry attempts on a rollout. 0 if no
+ * retries of the rollout have been performed. If the rollout is updated
+ * with a PUT, this count is reset to 0.
+ */
+ @JsonProperty(value = "retryAttempt", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer retryAttempt;
+
+ /**
+ * True, if all steps that succeeded on the previous run/attempt were
+ * chosen to be skipped in this retry attempt. False, otherwise.
+ */
+ @JsonProperty(value = "skipSucceededOnRetry", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean skipSucceededOnRetry;
+
+ /**
+ * The start time of the rollout in UTC.
+ */
+ @JsonProperty(value = "startTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime startTime;
+
+ /**
+ * The start time of the rollout in UTC. This property will not be set if
+ * the rollout has not completed yet.
+ */
+ @JsonProperty(value = "endTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime endTime;
+
+ /**
+ * The detailed error information for any failure.
+ */
+ @JsonProperty(value = "error", access = JsonProperty.Access.WRITE_ONLY)
+ private CloudErrorBody error;
+
+ /**
+ * Get the ordinal count of the number of retry attempts on a rollout. 0 if no retries of the rollout have been performed. If the rollout is updated with a PUT, this count is reset to 0.
+ *
+ * @return the retryAttempt value
+ */
+ public Integer retryAttempt() {
+ return this.retryAttempt;
+ }
+
+ /**
+ * Get true, if all steps that succeeded on the previous run/attempt were chosen to be skipped in this retry attempt. False, otherwise.
+ *
+ * @return the skipSucceededOnRetry value
+ */
+ public Boolean skipSucceededOnRetry() {
+ return this.skipSucceededOnRetry;
+ }
+
+ /**
+ * Get the start time of the rollout in UTC.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Get the start time of the rollout in UTC. This property will not be set if the rollout has not completed yet.
+ *
+ * @return the endTime value
+ */
+ public DateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Get the detailed error information for any failure.
+ *
+ * @return the error value
+ */
+ public CloudErrorBody error() {
+ return this.error;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutPropertiesModel.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutPropertiesModel.java
new file mode 100644
index 000000000000..935cee0b4791
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutPropertiesModel.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import java.util.List;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.ServiceInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines the properties of a rollout.
+ */
+public class RolloutPropertiesModel {
+ /**
+ * The current status of the rollout.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private String status;
+
+ /**
+ * The cardinal count of total number of retries performed on the rollout
+ * at a given time.
+ */
+ @JsonProperty(value = "totalRetryAttempts", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer totalRetryAttempts;
+
+ /**
+ * Operational information of the rollout.
+ */
+ @JsonProperty(value = "operationInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private RolloutOperationInfo operationInfo;
+
+ /**
+ * The detailed information on the services being deployed.
+ */
+ @JsonProperty(value = "services", access = JsonProperty.Access.WRITE_ONLY)
+ private List services;
+
+ /**
+ * Get the current status of the rollout.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Get the cardinal count of total number of retries performed on the rollout at a given time.
+ *
+ * @return the totalRetryAttempts value
+ */
+ public Integer totalRetryAttempts() {
+ return this.totalRetryAttempts;
+ }
+
+ /**
+ * Get operational information of the rollout.
+ *
+ * @return the operationInfo value
+ */
+ public RolloutOperationInfo operationInfo() {
+ return this.operationInfo;
+ }
+
+ /**
+ * Get the detailed information on the services being deployed.
+ *
+ * @return the services value
+ */
+ public List services() {
+ return this.services;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutStep.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutStep.java
new file mode 100644
index 000000000000..7a69d9b44715
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutStep.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines a specific step on a target service unit.
+ */
+public class RolloutStep {
+ /**
+ * Name of the step.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Current state of the step.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private String status;
+
+ /**
+ * The step group the current step is part of.
+ */
+ @JsonProperty(value = "stepGroup")
+ private String stepGroup;
+
+ /**
+ * Detailed information of specific action execution.
+ */
+ @JsonProperty(value = "operationInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private StepOperationInfo operationInfo;
+
+ /**
+ * Set of resource operations that were performed, if any, on an Azure
+ * resource.
+ */
+ @JsonProperty(value = "resourceOperations", access = JsonProperty.Access.WRITE_ONLY)
+ private List resourceOperations;
+
+ /**
+ * Supplementary informative messages during rollout.
+ */
+ @JsonProperty(value = "messages", access = JsonProperty.Access.WRITE_ONLY)
+ private List messages;
+
+ /**
+ * Get name of the step.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the step.
+ *
+ * @param name the name value to set
+ * @return the RolloutStep object itself.
+ */
+ public RolloutStep withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get current state of the step.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Get the step group the current step is part of.
+ *
+ * @return the stepGroup value
+ */
+ public String stepGroup() {
+ return this.stepGroup;
+ }
+
+ /**
+ * Set the step group the current step is part of.
+ *
+ * @param stepGroup the stepGroup value to set
+ * @return the RolloutStep object itself.
+ */
+ public RolloutStep withStepGroup(String stepGroup) {
+ this.stepGroup = stepGroup;
+ return this;
+ }
+
+ /**
+ * Get detailed information of specific action execution.
+ *
+ * @return the operationInfo value
+ */
+ public StepOperationInfo operationInfo() {
+ return this.operationInfo;
+ }
+
+ /**
+ * Get set of resource operations that were performed, if any, on an Azure resource.
+ *
+ * @return the resourceOperations value
+ */
+ public List resourceOperations() {
+ return this.resourceOperations;
+ }
+
+ /**
+ * Get supplementary informative messages during rollout.
+ *
+ * @return the messages value
+ */
+ public List messages() {
+ return this.messages;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Rollouts.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Rollouts.java
new file mode 100644
index 000000000000..171cdd963d44
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Rollouts.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.deploymentmanager.v2018-09-01-preview;
+
+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.management.deploymentmanager.v2018-09-01-preview.implementation.RolloutsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Rollouts.
+ */
+public interface Rollouts extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, HasInner {
+ /**
+ * Stops a running rollout.
+ * Only running rollouts can be canceled.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable cancelAsync(String resourceGroupName, String rolloutName);
+
+ /**
+ * Restarts a failed rollout and optionally skips all succeeded steps.
+ * Only failed rollouts can be restarted.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable restartAsync(String resourceGroupName, String rolloutName);
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutsCreateOrUpdateHeaders.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutsCreateOrUpdateHeaders.java
new file mode 100644
index 000000000000..278ad00b3530
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/RolloutsCreateOrUpdateHeaders.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.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class RolloutsCreateOrUpdateHeaders {
+ /**
+ * Contains the status URL on which clients are expected to poll the status
+ * of the operation.
+ */
+ @JsonProperty(value = "Azure-AsyncOperation")
+ private String azureAsyncOperation;
+
+ /**
+ * Get contains the status URL on which clients are expected to poll the status of the operation.
+ *
+ * @return the azureAsyncOperation value
+ */
+ public String azureAsyncOperation() {
+ return this.azureAsyncOperation;
+ }
+
+ /**
+ * Set contains the status URL on which clients are expected to poll the status of the operation.
+ *
+ * @param azureAsyncOperation the azureAsyncOperation value to set
+ * @return the RolloutsCreateOrUpdateHeaders object itself.
+ */
+ public RolloutsCreateOrUpdateHeaders withAzureAsyncOperation(String azureAsyncOperation) {
+ this.azureAsyncOperation = azureAsyncOperation;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/SasAuthentication.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/SasAuthentication.java
new file mode 100644
index 000000000000..475a3c275300
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/SasAuthentication.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Defines the properties to access the artifacts using an Azure Storage SAS
+ * URI.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
+@JsonTypeName("Sas")
+@JsonFlatten
+public class SasAuthentication extends Authentication {
+ /**
+ * The SAS URI to the Azure Storage blob container. Any offset from the
+ * root of the container to where the artifacts are located can be defined
+ * in the artifactRoot.
+ */
+ @JsonProperty(value = "properties.sasUri", required = true)
+ private String sasUri;
+
+ /**
+ * Get the SAS URI to the Azure Storage blob container. Any offset from the root of the container to where the artifacts are located can be defined in the artifactRoot.
+ *
+ * @return the sasUri value
+ */
+ public String sasUri() {
+ return this.sasUri;
+ }
+
+ /**
+ * Set the SAS URI to the Azure Storage blob container. Any offset from the root of the container to where the artifacts are located can be defined in the artifactRoot.
+ *
+ * @param sasUri the sasUri value to set
+ * @return the SasAuthentication object itself.
+ */
+ public SasAuthentication withSasUri(String sasUri) {
+ this.sasUri = sasUri;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceProperties.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceProperties.java
new file mode 100644
index 000000000000..0b21b46fa891
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceProperties.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of a service.
+ */
+public class ServiceProperties {
+ /**
+ * The Azure location to which the resources in the service belong to or
+ * should be deployed to.
+ */
+ @JsonProperty(value = "targetLocation", required = true)
+ private String targetLocation;
+
+ /**
+ * The subscription to which the resources in the service belong to or
+ * should be deployed to.
+ */
+ @JsonProperty(value = "targetSubscriptionId", required = true)
+ private String targetSubscriptionId;
+
+ /**
+ * Get the Azure location to which the resources in the service belong to or should be deployed to.
+ *
+ * @return the targetLocation value
+ */
+ public String targetLocation() {
+ return this.targetLocation;
+ }
+
+ /**
+ * Set the Azure location to which the resources in the service belong to or should be deployed to.
+ *
+ * @param targetLocation the targetLocation value to set
+ * @return the ServiceProperties object itself.
+ */
+ public ServiceProperties withTargetLocation(String targetLocation) {
+ this.targetLocation = targetLocation;
+ return this;
+ }
+
+ /**
+ * Get the subscription to which the resources in the service belong to or should be deployed to.
+ *
+ * @return the targetSubscriptionId value
+ */
+ public String targetSubscriptionId() {
+ return this.targetSubscriptionId;
+ }
+
+ /**
+ * Set the subscription to which the resources in the service belong to or should be deployed to.
+ *
+ * @param targetSubscriptionId the targetSubscriptionId value to set
+ * @return the ServiceProperties object itself.
+ */
+ public ServiceProperties withTargetSubscriptionId(String targetSubscriptionId) {
+ this.targetSubscriptionId = targetSubscriptionId;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceResource.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceResource.java
new file mode 100644
index 000000000000..279ab51cb357
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceResource.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.deploymentmanager.v2018-09-01-preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.ServiceResourceInner;
+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.deploymentmanager.v2018-09-01-preview.implementation.DeploymentManagerManager;
+import java.util.Map;
+
+/**
+ * Type representing ServiceResource.
+ */
+public interface ServiceResource 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 tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the targetLocation value.
+ */
+ String targetLocation();
+
+ /**
+ * @return the targetSubscriptionId value.
+ */
+ String targetSubscriptionId();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ServiceResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServiceTopology, DefinitionStages.WithLocation, DefinitionStages.WithTargetLocation, DefinitionStages.WithTargetSubscriptionId, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ServiceResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ServiceResource definition.
+ */
+ interface Blank extends WithServiceTopology {
+ }
+
+ /**
+ * The stage of the serviceresource definition allowing to specify ServiceTopology.
+ */
+ interface WithServiceTopology {
+ /**
+ * Specifies resourceGroupName, serviceTopologyName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param serviceTopologyName The name of the service topology
+ * @return the next definition stage
+ */
+ WithLocation withExistingServiceTopology(String resourceGroupName, String serviceTopologyName);
+ }
+
+ /**
+ * The stage of the serviceresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location The geo-location where the resource lives
+ * @return the next definition stage
+ */
+ WithTargetLocation withLocation(String location);
+ }
+
+ /**
+ * The stage of the serviceresource definition allowing to specify TargetLocation.
+ */
+ interface WithTargetLocation {
+ /**
+ * Specifies targetLocation.
+ * @param targetLocation The Azure location to which the resources in the service belong to or should be deployed to
+ * @return the next definition stage
+ */
+ WithTargetSubscriptionId withTargetLocation(String targetLocation);
+ }
+
+ /**
+ * The stage of the serviceresource definition allowing to specify TargetSubscriptionId.
+ */
+ interface WithTargetSubscriptionId {
+ /**
+ * Specifies targetSubscriptionId.
+ * @param targetSubscriptionId The subscription to which the resources in the service belong to or should be deployed to
+ * @return the next definition stage
+ */
+ WithCreate withTargetSubscriptionId(String targetSubscriptionId);
+ }
+
+ /**
+ * The stage of the serviceresource definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a ServiceResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of ServiceResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the serviceresource update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologies.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologies.java
new file mode 100644
index 000000000000..e5e9d71873d2
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologies.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+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.management.deploymentmanager.v2018-09-01-preview.implementation.ServiceTopologiesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ServiceTopologies.
+ */
+public interface ServiceTopologies extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, HasInner {
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologyProperties.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologyProperties.java
new file mode 100644
index 000000000000..fb122513cfb0
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologyProperties.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.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of a service topology.
+ */
+public class ServiceTopologyProperties {
+ /**
+ * The resource Id of the artifact source that contains the artifacts that
+ * can be referenced in the service units.
+ */
+ @JsonProperty(value = "artifactSourceId")
+ private String artifactSourceId;
+
+ /**
+ * Get the resource Id of the artifact source that contains the artifacts that can be referenced in the service units.
+ *
+ * @return the artifactSourceId value
+ */
+ public String artifactSourceId() {
+ return this.artifactSourceId;
+ }
+
+ /**
+ * Set the resource Id of the artifact source that contains the artifacts that can be referenced in the service units.
+ *
+ * @param artifactSourceId the artifactSourceId value to set
+ * @return the ServiceTopologyProperties object itself.
+ */
+ public ServiceTopologyProperties withArtifactSourceId(String artifactSourceId) {
+ this.artifactSourceId = artifactSourceId;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologyResource.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologyResource.java
new file mode 100644
index 000000000000..6a0e4063ab9a
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceTopologyResource.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.deploymentmanager.v2018-09-01-preview;
+
+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.deploymentmanager.v2018-09-01-preview.implementation.DeploymentManagerManager;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.ServiceTopologyResourceInner;
+
+/**
+ * Type representing ServiceTopologyResource.
+ */
+public interface ServiceTopologyResource extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the artifactSourceId value.
+ */
+ String artifactSourceId();
+
+ /**
+ * The entirety of the ServiceTopologyResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ServiceTopologyResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ServiceTopologyResource definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ServiceTopologyResource definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the servicetopologyresource definition allowing to specify ArtifactSourceId.
+ */
+ interface WithArtifactSourceId {
+ /**
+ * Specifies artifactSourceId.
+ * @param artifactSourceId The resource Id of the artifact source that contains the artifacts that can be referenced in the service units
+ * @return the next definition stage
+ */
+ WithCreate withArtifactSourceId(String artifactSourceId);
+ }
+
+ /**
+ * 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.WithArtifactSourceId {
+ }
+ }
+ /**
+ * The template for a ServiceTopologyResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithArtifactSourceId {
+ }
+
+ /**
+ * Grouping of ServiceTopologyResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the servicetopologyresource update allowing to specify ArtifactSourceId.
+ */
+ interface WithArtifactSourceId {
+ /**
+ * Specifies artifactSourceId.
+ * @param artifactSourceId The resource Id of the artifact source that contains the artifacts that can be referenced in the service units
+ * @return the next update stage
+ */
+ Update withArtifactSourceId(String artifactSourceId);
+ }
+
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitArtifacts.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitArtifacts.java
new file mode 100644
index 000000000000..9037b154dbac
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitArtifacts.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines the artifacts of a service unit.
+ */
+public class ServiceUnitArtifacts {
+ /**
+ * The full URI of the ARM template file with the SAS token.
+ */
+ @JsonProperty(value = "templateUri")
+ private String templateUri;
+
+ /**
+ * The full URI of the ARM parameters file with the SAS token.
+ */
+ @JsonProperty(value = "parametersUri")
+ private String parametersUri;
+
+ /**
+ * The path to the ARM template file relative to the artifact source.
+ */
+ @JsonProperty(value = "templateArtifactSourceRelativePath")
+ private String templateArtifactSourceRelativePath;
+
+ /**
+ * The path to the ARM parameters file relative to the artifact source.
+ */
+ @JsonProperty(value = "parametersArtifactSourceRelativePath")
+ private String parametersArtifactSourceRelativePath;
+
+ /**
+ * Get the full URI of the ARM template file with the SAS token.
+ *
+ * @return the templateUri value
+ */
+ public String templateUri() {
+ return this.templateUri;
+ }
+
+ /**
+ * Set the full URI of the ARM template file with the SAS token.
+ *
+ * @param templateUri the templateUri value to set
+ * @return the ServiceUnitArtifacts object itself.
+ */
+ public ServiceUnitArtifacts withTemplateUri(String templateUri) {
+ this.templateUri = templateUri;
+ return this;
+ }
+
+ /**
+ * Get the full URI of the ARM parameters file with the SAS token.
+ *
+ * @return the parametersUri value
+ */
+ public String parametersUri() {
+ return this.parametersUri;
+ }
+
+ /**
+ * Set the full URI of the ARM parameters file with the SAS token.
+ *
+ * @param parametersUri the parametersUri value to set
+ * @return the ServiceUnitArtifacts object itself.
+ */
+ public ServiceUnitArtifacts withParametersUri(String parametersUri) {
+ this.parametersUri = parametersUri;
+ return this;
+ }
+
+ /**
+ * Get the path to the ARM template file relative to the artifact source.
+ *
+ * @return the templateArtifactSourceRelativePath value
+ */
+ public String templateArtifactSourceRelativePath() {
+ return this.templateArtifactSourceRelativePath;
+ }
+
+ /**
+ * Set the path to the ARM template file relative to the artifact source.
+ *
+ * @param templateArtifactSourceRelativePath the templateArtifactSourceRelativePath value to set
+ * @return the ServiceUnitArtifacts object itself.
+ */
+ public ServiceUnitArtifacts withTemplateArtifactSourceRelativePath(String templateArtifactSourceRelativePath) {
+ this.templateArtifactSourceRelativePath = templateArtifactSourceRelativePath;
+ return this;
+ }
+
+ /**
+ * Get the path to the ARM parameters file relative to the artifact source.
+ *
+ * @return the parametersArtifactSourceRelativePath value
+ */
+ public String parametersArtifactSourceRelativePath() {
+ return this.parametersArtifactSourceRelativePath;
+ }
+
+ /**
+ * Set the path to the ARM parameters file relative to the artifact source.
+ *
+ * @param parametersArtifactSourceRelativePath the parametersArtifactSourceRelativePath value to set
+ * @return the ServiceUnitArtifacts object itself.
+ */
+ public ServiceUnitArtifacts withParametersArtifactSourceRelativePath(String parametersArtifactSourceRelativePath) {
+ this.parametersArtifactSourceRelativePath = parametersArtifactSourceRelativePath;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitProperties.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitProperties.java
new file mode 100644
index 000000000000..976f9a7ad8ae
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitProperties.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.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines the properties of a service unit.
+ */
+public class ServiceUnitProperties {
+ /**
+ * The Azure Resource Group to which the resources in the service unit
+ * belong to or should be deployed to.
+ */
+ @JsonProperty(value = "targetResourceGroup", required = true)
+ private String targetResourceGroup;
+
+ /**
+ * Describes the type of ARM deployment to be performed on the resource.
+ * Possible values include: 'Incremental', 'Complete'.
+ */
+ @JsonProperty(value = "deploymentMode", required = true)
+ private DeploymentMode deploymentMode;
+
+ /**
+ * The artifacts for the service unit.
+ */
+ @JsonProperty(value = "artifacts")
+ private ServiceUnitArtifacts artifacts;
+
+ /**
+ * Get the Azure Resource Group to which the resources in the service unit belong to or should be deployed to.
+ *
+ * @return the targetResourceGroup value
+ */
+ public String targetResourceGroup() {
+ return this.targetResourceGroup;
+ }
+
+ /**
+ * Set the Azure Resource Group to which the resources in the service unit belong to or should be deployed to.
+ *
+ * @param targetResourceGroup the targetResourceGroup value to set
+ * @return the ServiceUnitProperties object itself.
+ */
+ public ServiceUnitProperties withTargetResourceGroup(String targetResourceGroup) {
+ this.targetResourceGroup = targetResourceGroup;
+ return this;
+ }
+
+ /**
+ * Get describes the type of ARM deployment to be performed on the resource. Possible values include: 'Incremental', 'Complete'.
+ *
+ * @return the deploymentMode value
+ */
+ public DeploymentMode deploymentMode() {
+ return this.deploymentMode;
+ }
+
+ /**
+ * Set describes the type of ARM deployment to be performed on the resource. Possible values include: 'Incremental', 'Complete'.
+ *
+ * @param deploymentMode the deploymentMode value to set
+ * @return the ServiceUnitProperties object itself.
+ */
+ public ServiceUnitProperties withDeploymentMode(DeploymentMode deploymentMode) {
+ this.deploymentMode = deploymentMode;
+ return this;
+ }
+
+ /**
+ * Get the artifacts for the service unit.
+ *
+ * @return the artifacts value
+ */
+ public ServiceUnitArtifacts artifacts() {
+ return this.artifacts;
+ }
+
+ /**
+ * Set the artifacts for the service unit.
+ *
+ * @param artifacts the artifacts value to set
+ * @return the ServiceUnitProperties object itself.
+ */
+ public ServiceUnitProperties withArtifacts(ServiceUnitArtifacts artifacts) {
+ this.artifacts = artifacts;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitResource.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitResource.java
new file mode 100644
index 000000000000..9625199e70ef
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitResource.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.ServiceUnitResourceInner;
+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.deploymentmanager.v2018-09-01-preview.implementation.DeploymentManagerManager;
+import java.util.Map;
+
+/**
+ * Type representing ServiceUnitResource.
+ */
+public interface ServiceUnitResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the artifacts value.
+ */
+ ServiceUnitArtifacts artifacts();
+
+ /**
+ * @return the deploymentMode value.
+ */
+ DeploymentMode deploymentMode();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the targetResourceGroup value.
+ */
+ String targetResourceGroup();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ServiceUnitResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithService, DefinitionStages.WithDeploymentMode, DefinitionStages.WithLocation, DefinitionStages.WithTargetResourceGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ServiceUnitResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ServiceUnitResource definition.
+ */
+ interface Blank extends WithService {
+ }
+
+ /**
+ * The stage of the serviceunitresource definition allowing to specify Service.
+ */
+ interface WithService {
+ /**
+ * Specifies resourceGroupName, serviceTopologyName, serviceName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param serviceTopologyName The name of the service topology
+ * @param serviceName The name of the service resource
+ * @return the next definition stage
+ */
+ WithDeploymentMode withExistingService(String resourceGroupName, String serviceTopologyName, String serviceName);
+ }
+
+ /**
+ * The stage of the serviceunitresource definition allowing to specify DeploymentMode.
+ */
+ interface WithDeploymentMode {
+ /**
+ * Specifies deploymentMode.
+ * @param deploymentMode Describes the type of ARM deployment to be performed on the resource. Possible values include: 'Incremental', 'Complete'
+ * @return the next definition stage
+ */
+ WithLocation withDeploymentMode(DeploymentMode deploymentMode);
+ }
+
+ /**
+ * The stage of the serviceunitresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location The geo-location where the resource lives
+ * @return the next definition stage
+ */
+ WithTargetResourceGroup withLocation(String location);
+ }
+
+ /**
+ * The stage of the serviceunitresource definition allowing to specify TargetResourceGroup.
+ */
+ interface WithTargetResourceGroup {
+ /**
+ * Specifies targetResourceGroup.
+ * @param targetResourceGroup The Azure Resource Group to which the resources in the service unit belong to or should be deployed to
+ * @return the next definition stage
+ */
+ WithCreate withTargetResourceGroup(String targetResourceGroup);
+ }
+
+ /**
+ * The stage of the serviceunitresource definition allowing to specify Artifacts.
+ */
+ interface WithArtifacts {
+ /**
+ * Specifies artifacts.
+ * @param artifacts The artifacts for the service unit
+ * @return the next definition stage
+ */
+ WithCreate withArtifacts(ServiceUnitArtifacts artifacts);
+ }
+
+ /**
+ * The stage of the serviceunitresource definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithArtifacts, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a ServiceUnitResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithArtifacts, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of ServiceUnitResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the serviceunitresource update allowing to specify Artifacts.
+ */
+ interface WithArtifacts {
+ /**
+ * Specifies artifacts.
+ * @param artifacts The artifacts for the service unit
+ * @return the next update stage
+ */
+ Update withArtifacts(ServiceUnitArtifacts artifacts);
+ }
+
+ /**
+ * The stage of the serviceunitresource update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnits.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnits.java
new file mode 100644
index 000000000000..3ce9fe4b9da0
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnits.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.deploymentmanager.v2018-09-01-preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.ServiceUnitsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ServiceUnits.
+ */
+public interface ServiceUnits extends SupportsCreating, HasInner {
+ /**
+ * Gets the service unit.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceTopologyName, String serviceName, String serviceUnitName);
+
+ /**
+ * Deletes the service unit.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceTopologyName, String serviceName, String serviceUnitName);
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitsCreateOrUpdateHeaders.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitsCreateOrUpdateHeaders.java
new file mode 100644
index 000000000000..7bb7e9d7c2c3
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/ServiceUnitsCreateOrUpdateHeaders.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.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ServiceUnitsCreateOrUpdateHeaders {
+ /**
+ * Contains the status URL on which clients are expected to poll the status
+ * of the operation.
+ */
+ @JsonProperty(value = "Azure-AsyncOperation")
+ private String azureAsyncOperation;
+
+ /**
+ * Get contains the status URL on which clients are expected to poll the status of the operation.
+ *
+ * @return the azureAsyncOperation value
+ */
+ public String azureAsyncOperation() {
+ return this.azureAsyncOperation;
+ }
+
+ /**
+ * Set contains the status URL on which clients are expected to poll the status of the operation.
+ *
+ * @param azureAsyncOperation the azureAsyncOperation value to set
+ * @return the ServiceUnitsCreateOrUpdateHeaders object itself.
+ */
+ public ServiceUnitsCreateOrUpdateHeaders withAzureAsyncOperation(String azureAsyncOperation) {
+ this.azureAsyncOperation = azureAsyncOperation;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Services.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Services.java
new file mode 100644
index 000000000000..e963fa52f375
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Services.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.ServicesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Services.
+ */
+public interface Services extends SupportsCreating, HasInner {
+ /**
+ * Gets the service.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceTopologyName, String serviceName);
+
+ /**
+ * Deletes the service.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceTopologyName, String serviceName);
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepOperationInfo.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepOperationInfo.java
new file mode 100644
index 000000000000..63d1b0457f36
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepOperationInfo.java
@@ -0,0 +1,119 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Detailed information of a specific step run.
+ */
+public class StepOperationInfo {
+ /**
+ * The name of the ARM deployment initiated as part of the step.
+ */
+ @JsonProperty(value = "deploymentName", access = JsonProperty.Access.WRITE_ONLY)
+ private String deploymentName;
+
+ /**
+ * Unique identifier to track the request for ARM-based resources.
+ */
+ @JsonProperty(value = "correlationId", access = JsonProperty.Access.WRITE_ONLY)
+ private String correlationId;
+
+ /**
+ * Start time of the action in UTC.
+ */
+ @JsonProperty(value = "startTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime startTime;
+
+ /**
+ * End time of the action in UTC.
+ */
+ @JsonProperty(value = "endTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime endTime;
+
+ /**
+ * Last time in UTC this operation was updated.
+ */
+ @JsonProperty(value = "lastUpdatedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime lastUpdatedTime;
+
+ /**
+ * The errors, if any, for the action.
+ */
+ @JsonProperty(value = "error")
+ private CloudErrorBody error;
+
+ /**
+ * Get the name of the ARM deployment initiated as part of the step.
+ *
+ * @return the deploymentName value
+ */
+ public String deploymentName() {
+ return this.deploymentName;
+ }
+
+ /**
+ * Get unique identifier to track the request for ARM-based resources.
+ *
+ * @return the correlationId value
+ */
+ public String correlationId() {
+ return this.correlationId;
+ }
+
+ /**
+ * Get start time of the action in UTC.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Get end time of the action in UTC.
+ *
+ * @return the endTime value
+ */
+ public DateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Get last time in UTC this operation was updated.
+ *
+ * @return the lastUpdatedTime value
+ */
+ public DateTime lastUpdatedTime() {
+ return this.lastUpdatedTime;
+ }
+
+ /**
+ * Get the errors, if any, for the action.
+ *
+ * @return the error value
+ */
+ public CloudErrorBody error() {
+ return this.error;
+ }
+
+ /**
+ * Set the errors, if any, for the action.
+ *
+ * @param error the error value to set
+ * @return the StepOperationInfo object itself.
+ */
+ public StepOperationInfo withError(CloudErrorBody error) {
+ this.error = error;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepProperties.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepProperties.java
new file mode 100644
index 000000000000..8d966c513e70
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepProperties.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * The properties of a step resource.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "stepType")
+@JsonTypeName("StepProperties")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Wait", value = WaitStepProperties.class)
+})
+public class StepProperties {
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepResource.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepResource.java
new file mode 100644
index 000000000000..a16f7c61975f
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/StepResource.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+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.deploymentmanager.v2018-09-01-preview.implementation.DeploymentManagerManager;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation.StepResourceInner;
+
+/**
+ * Type representing StepResource.
+ */
+public interface StepResource extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the properties value.
+ */
+ StepProperties properties();
+
+ /**
+ * The entirety of the StepResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithProperties, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of StepResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a StepResource definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the StepResource definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the stepresource definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The properties that define the step
+ * @return the next definition stage
+*/
+ WithCreate withProperties(StepProperties properties);
+ }
+
+ /**
+ * 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 {
+ }
+ }
+ /**
+ * The template for a StepResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags {
+ }
+
+ /**
+ * Grouping of StepResource update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Steps.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Steps.java
new file mode 100644
index 000000000000..a91b88b91359
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/Steps.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+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.management.deploymentmanager.v2018-09-01-preview.implementation.StepsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Steps.
+ */
+public interface Steps extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, HasInner {
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/WaitStepAttributes.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/WaitStepAttributes.java
new file mode 100644
index 000000000000..da2ded17363a
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/WaitStepAttributes.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The parameters for the wait step.
+ */
+public class WaitStepAttributes {
+ /**
+ * The duration in ISO 8601 format of how long the wait should be.
+ */
+ @JsonProperty(value = "duration", required = true)
+ private String duration;
+
+ /**
+ * Get the duration in ISO 8601 format of how long the wait should be.
+ *
+ * @return the duration value
+ */
+ public String duration() {
+ return this.duration;
+ }
+
+ /**
+ * Set the duration in ISO 8601 format of how long the wait should be.
+ *
+ * @param duration the duration value to set
+ * @return the WaitStepAttributes object itself.
+ */
+ public WaitStepAttributes withDuration(String duration) {
+ this.duration = duration;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/WaitStepProperties.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/WaitStepProperties.java
new file mode 100644
index 000000000000..2d8ea10bc211
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/WaitStepProperties.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Defines the properties of a Wait step.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "stepType")
+@JsonTypeName("Wait")
+public class WaitStepProperties extends StepProperties {
+ /**
+ * The Wait attributes.
+ */
+ @JsonProperty(value = "attributes")
+ private WaitStepAttributes attributes;
+
+ /**
+ * Get the Wait attributes.
+ *
+ * @return the attributes value
+ */
+ public WaitStepAttributes attributes() {
+ return this.attributes;
+ }
+
+ /**
+ * Set the Wait attributes.
+ *
+ * @param attributes the attributes value to set
+ * @return the WaitStepProperties object itself.
+ */
+ public WaitStepProperties withAttributes(WaitStepAttributes attributes) {
+ this.attributes = attributes;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourceImpl.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourceImpl.java
new file mode 100644
index 000000000000..56cf8c19fcde
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourceImpl.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.ArtifactSource;
+import rx.Observable;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Authentication;
+
+class ArtifactSourceImpl extends GroupableResourceCoreImpl implements ArtifactSource, ArtifactSource.Definition, ArtifactSource.Update {
+ ArtifactSourceImpl(String name, ArtifactSourceInner inner, DeploymentManagerManager manager) {
+ super(name, inner, manager);
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ ArtifactSourcesInner client = this.manager().inner().artifactSources();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ ArtifactSourcesInner client = this.manager().inner().artifactSources();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ ArtifactSourcesInner client = this.manager().inner().artifactSources();
+ return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public String artifactRoot() {
+ return this.inner().artifactRoot();
+ }
+
+ @Override
+ public Authentication authentication() {
+ return this.inner().authentication();
+ }
+
+ @Override
+ public String sourceType() {
+ return this.inner().sourceType();
+ }
+
+ @Override
+ public ArtifactSourceImpl withAuthentication(Authentication authentication) {
+ this.inner().withAuthentication(authentication);
+ return this;
+ }
+
+ @Override
+ public ArtifactSourceImpl withSourceType(String sourceType) {
+ this.inner().withSourceType(sourceType);
+ return this;
+ }
+
+ @Override
+ public ArtifactSourceImpl withArtifactRoot(String artifactRoot) {
+ this.inner().withArtifactRoot(artifactRoot);
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourceInner.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourceInner.java
new file mode 100644
index 000000000000..e14973b2431a
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourceInner.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Authentication;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * The resource that defines the source location where the artifacts are
+ * located.
+ */
+@JsonFlatten
+public class ArtifactSourceInner extends Resource {
+ /**
+ * The type of artifact source used.
+ */
+ @JsonProperty(value = "properties.sourceType", required = true)
+ private String sourceType;
+
+ /**
+ * The path from the location that the 'authentication' property [say, a
+ * SAS URI to the blob container] refers to, to the location of the
+ * artifacts. This can be used to differentiate different versions of the
+ * artifacts. Or, different types of artifacts like binaries or templates.
+ * The location referenced by the authentication property concatenated with
+ * this optional artifactRoot path forms the artifact source location where
+ * the artifacts are expected to be found.
+ */
+ @JsonProperty(value = "properties.artifactRoot")
+ private String artifactRoot;
+
+ /**
+ * The authentication method to use to access the artifact source.
+ */
+ @JsonProperty(value = "properties.authentication", required = true)
+ private Authentication authentication;
+
+ /**
+ * Get the type of artifact source used.
+ *
+ * @return the sourceType value
+ */
+ public String sourceType() {
+ return this.sourceType;
+ }
+
+ /**
+ * Set the type of artifact source used.
+ *
+ * @param sourceType the sourceType value to set
+ * @return the ArtifactSourceInner object itself.
+ */
+ public ArtifactSourceInner withSourceType(String sourceType) {
+ this.sourceType = sourceType;
+ return this;
+ }
+
+ /**
+ * Get the path from the location that the 'authentication' property [say, a SAS URI to the blob container] refers to, to the location of the artifacts. This can be used to differentiate different versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced by the authentication property concatenated with this optional artifactRoot path forms the artifact source location where the artifacts are expected to be found.
+ *
+ * @return the artifactRoot value
+ */
+ public String artifactRoot() {
+ return this.artifactRoot;
+ }
+
+ /**
+ * Set the path from the location that the 'authentication' property [say, a SAS URI to the blob container] refers to, to the location of the artifacts. This can be used to differentiate different versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced by the authentication property concatenated with this optional artifactRoot path forms the artifact source location where the artifacts are expected to be found.
+ *
+ * @param artifactRoot the artifactRoot value to set
+ * @return the ArtifactSourceInner object itself.
+ */
+ public ArtifactSourceInner withArtifactRoot(String artifactRoot) {
+ this.artifactRoot = artifactRoot;
+ return this;
+ }
+
+ /**
+ * Get the authentication method to use to access the artifact source.
+ *
+ * @return the authentication value
+ */
+ public Authentication authentication() {
+ return this.authentication;
+ }
+
+ /**
+ * Set the authentication method to use to access the artifact source.
+ *
+ * @param authentication the authentication value to set
+ * @return the ArtifactSourceInner object itself.
+ */
+ public ArtifactSourceInner withAuthentication(Authentication authentication) {
+ this.authentication = authentication;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourcesImpl.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourcesImpl.java
new file mode 100644
index 000000000000..f0ac5d91bb53
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourcesImpl.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.
+ * def
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.ArtifactSources;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.ArtifactSource;
+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;
+
+class ArtifactSourcesImpl extends GroupableResourcesCoreImpl implements ArtifactSources {
+ protected ArtifactSourcesImpl(DeploymentManagerManager manager) {
+ super(manager.inner().artifactSources(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ ArtifactSourcesInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ ArtifactSourcesInner 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 ArtifactSourceImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ @Override
+ protected ArtifactSourceImpl wrapModel(ArtifactSourceInner inner) {
+ return new ArtifactSourceImpl(inner.name(), inner, manager());
+ }
+
+ @Override
+ protected ArtifactSourceImpl wrapModel(String name) {
+ return new ArtifactSourceImpl(name, new ArtifactSourceInner(), this.manager());
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourcesInner.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourcesInner.java
new file mode 100644
index 000000000000..ca2589d1ba7c
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/ArtifactSourcesInner.java
@@ -0,0 +1,425 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.arm.collection.InnerSupportsGet;
+import com.microsoft.azure.arm.collection.InnerSupportsDelete;
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.CloudException;
+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 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.Path;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in ArtifactSources.
+ */
+public class ArtifactSourcesInner implements InnerSupportsGet, InnerSupportsDelete {
+ /** The Retrofit service to perform REST calls. */
+ private ArtifactSourcesService service;
+ /** The service client containing this operation class. */
+ private AzureDeploymentManagerImpl client;
+
+ /**
+ * Initializes an instance of ArtifactSourcesInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public ArtifactSourcesInner(Retrofit retrofit, AzureDeploymentManagerImpl client) {
+ this.service = retrofit.create(ArtifactSourcesService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ArtifactSources to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ArtifactSourcesService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.ArtifactSources createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/artifactSources/{artifactSourceName}")
+ Observable> createOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("artifactSourceName") String artifactSourceName, @Query("api-version") String apiVersion, @Body ArtifactSourceInner artifactSourceInfo, @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.deploymentmanager.v2018-09-01-preview.ArtifactSources getByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/artifactSources/{artifactSourceName}")
+ Observable> getByResourceGroup(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("artifactSourceName") String artifactSourceName, @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.deploymentmanager.v2018-09-01-preview.ArtifactSources delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/artifactSources/{artifactSourceName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("artifactSourceName") String artifactSourceName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Creates or updates an artifact source.
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 ArtifactSourceInner object if successful.
+ */
+ public ArtifactSourceInner createOrUpdate(String resourceGroupName, String artifactSourceName) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, artifactSourceName).toBlocking().single().body();
+ }
+
+ /**
+ * Creates or updates an artifact source.
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 createOrUpdateAsync(String resourceGroupName, String artifactSourceName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, artifactSourceName), serviceCallback);
+ }
+
+ /**
+ * Creates or updates an artifact source.
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ArtifactSourceInner object
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String artifactSourceName) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, artifactSourceName).map(new Func1, ArtifactSourceInner>() {
+ @Override
+ public ArtifactSourceInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Creates or updates an artifact source.
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ArtifactSourceInner object
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String artifactSourceName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (artifactSourceName == null) {
+ throw new IllegalArgumentException("Parameter artifactSourceName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ final ArtifactSourceInner artifactSourceInfo = null;
+ return service.createOrUpdate(this.client.subscriptionId(), resourceGroupName, artifactSourceName, this.client.apiVersion(), artifactSourceInfo, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = createOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ /**
+ * Creates or updates an artifact source.
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @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 ArtifactSourceInner object if successful.
+ */
+ public ArtifactSourceInner createOrUpdate(String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, artifactSourceName, artifactSourceInfo).toBlocking().single().body();
+ }
+
+ /**
+ * Creates or updates an artifact source.
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @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 createOrUpdateAsync(String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, artifactSourceName, artifactSourceInfo), serviceCallback);
+ }
+
+ /**
+ * Creates or updates an artifact source.
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ArtifactSourceInner object
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, artifactSourceName, artifactSourceInfo).map(new Func1, ArtifactSourceInner>() {
+ @Override
+ public ArtifactSourceInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Creates or updates an artifact source.
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ArtifactSourceInner object
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (artifactSourceName == null) {
+ throw new IllegalArgumentException("Parameter artifactSourceName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Validator.validate(artifactSourceInfo);
+ return service.createOrUpdate(this.client.subscriptionId(), resourceGroupName, artifactSourceName, this.client.apiVersion(), artifactSourceInfo, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = createOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse createOrUpdateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(201, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 ArtifactSourceInner object if successful.
+ */
+ public ArtifactSourceInner getByResourceGroup(String resourceGroupName, String artifactSourceName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, artifactSourceName).toBlocking().single().body();
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 getByResourceGroupAsync(String resourceGroupName, String artifactSourceName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getByResourceGroupWithServiceResponseAsync(resourceGroupName, artifactSourceName), serviceCallback);
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ArtifactSourceInner object
+ */
+ public Observable getByResourceGroupAsync(String resourceGroupName, String artifactSourceName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, artifactSourceName).map(new Func1, ArtifactSourceInner>() {
+ @Override
+ public ArtifactSourceInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ArtifactSourceInner object
+ */
+ public Observable> getByResourceGroupWithServiceResponseAsync(String resourceGroupName, String artifactSourceName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (artifactSourceName == null) {
+ throw new IllegalArgumentException("Parameter artifactSourceName 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.getByResourceGroup(this.client.subscriptionId(), resourceGroupName, artifactSourceName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getByResourceGroupDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getByResourceGroupDelegate(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);
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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
+ */
+ public void delete(String resourceGroupName, String artifactSourceName) {
+ deleteWithServiceResponseAsync(resourceGroupName, artifactSourceName).toBlocking().single().body();
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 deleteAsync(String resourceGroupName, String artifactSourceName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(deleteWithServiceResponseAsync(resourceGroupName, artifactSourceName), serviceCallback);
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable deleteAsync(String resourceGroupName, String artifactSourceName) {
+ return deleteWithServiceResponseAsync(resourceGroupName, artifactSourceName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable> deleteWithServiceResponseAsync(String resourceGroupName, String artifactSourceName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (artifactSourceName == null) {
+ throw new IllegalArgumentException("Parameter artifactSourceName 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.delete(this.client.subscriptionId(), resourceGroupName, artifactSourceName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = deleteDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse deleteDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(204, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/AzureDeploymentManagerImpl.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/AzureDeploymentManagerImpl.java
new file mode 100644
index 000000000000..b82b3ae6d253
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/AzureDeploymentManagerImpl.java
@@ -0,0 +1,280 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.AzureClient;
+import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.rest.credentials.ServiceClientCredentials;
+import com.microsoft.rest.RestClient;
+
+/**
+ * Initializes a new instance of the AzureDeploymentManagerImpl class.
+ */
+public class AzureDeploymentManagerImpl extends AzureServiceClient {
+ /** the {@link AzureClient} used for long running operations. */
+ private AzureClient azureClient;
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ public AzureClient getAzureClient() {
+ return this.azureClient;
+ }
+
+ /** Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. */
+ private String subscriptionId;
+
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
+ *
+ * @return the subscriptionId value.
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Sets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ public AzureDeploymentManagerImpl withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /** The API version to use for this operation. */
+ private String apiVersion;
+
+ /**
+ * Gets The API version to use for this operation.
+ *
+ * @return the apiVersion value.
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The preferred language for the response. */
+ private String acceptLanguage;
+
+ /**
+ * Gets The preferred language for the response.
+ *
+ * @return the acceptLanguage value.
+ */
+ public String acceptLanguage() {
+ return this.acceptLanguage;
+ }
+
+ /**
+ * Sets The preferred language for the response.
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ public AzureDeploymentManagerImpl withAcceptLanguage(String acceptLanguage) {
+ this.acceptLanguage = acceptLanguage;
+ return this;
+ }
+
+ /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
+ private int longRunningOperationRetryTimeout;
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ public int longRunningOperationRetryTimeout() {
+ return this.longRunningOperationRetryTimeout;
+ }
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ public AzureDeploymentManagerImpl withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout) {
+ this.longRunningOperationRetryTimeout = longRunningOperationRetryTimeout;
+ return this;
+ }
+
+ /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ private boolean generateClientRequestId;
+
+ /**
+ * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @return the generateClientRequestId value.
+ */
+ public boolean generateClientRequestId() {
+ return this.generateClientRequestId;
+ }
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ public AzureDeploymentManagerImpl withGenerateClientRequestId(boolean generateClientRequestId) {
+ this.generateClientRequestId = generateClientRequestId;
+ return this;
+ }
+
+ /**
+ * The ServiceTopologiesInner object to access its operations.
+ */
+ private ServiceTopologiesInner serviceTopologies;
+
+ /**
+ * Gets the ServiceTopologiesInner object to access its operations.
+ * @return the ServiceTopologiesInner object.
+ */
+ public ServiceTopologiesInner serviceTopologies() {
+ return this.serviceTopologies;
+ }
+
+ /**
+ * The ServicesInner object to access its operations.
+ */
+ private ServicesInner services;
+
+ /**
+ * Gets the ServicesInner object to access its operations.
+ * @return the ServicesInner object.
+ */
+ public ServicesInner services() {
+ return this.services;
+ }
+
+ /**
+ * The ServiceUnitsInner object to access its operations.
+ */
+ private ServiceUnitsInner serviceUnits;
+
+ /**
+ * Gets the ServiceUnitsInner object to access its operations.
+ * @return the ServiceUnitsInner object.
+ */
+ public ServiceUnitsInner serviceUnits() {
+ return this.serviceUnits;
+ }
+
+ /**
+ * The StepsInner object to access its operations.
+ */
+ private StepsInner steps;
+
+ /**
+ * Gets the StepsInner object to access its operations.
+ * @return the StepsInner object.
+ */
+ public StepsInner steps() {
+ return this.steps;
+ }
+
+ /**
+ * The RolloutsInner object to access its operations.
+ */
+ private RolloutsInner rollouts;
+
+ /**
+ * Gets the RolloutsInner object to access its operations.
+ * @return the RolloutsInner object.
+ */
+ public RolloutsInner rollouts() {
+ return this.rollouts;
+ }
+
+ /**
+ * The ArtifactSourcesInner object to access its operations.
+ */
+ private ArtifactSourcesInner artifactSources;
+
+ /**
+ * Gets the ArtifactSourcesInner object to access its operations.
+ * @return the ArtifactSourcesInner object.
+ */
+ public ArtifactSourcesInner artifactSources() {
+ return this.artifactSources;
+ }
+
+ /**
+ * The OperationsInner object to access its operations.
+ */
+ private OperationsInner operations;
+
+ /**
+ * Gets the OperationsInner object to access its operations.
+ * @return the OperationsInner object.
+ */
+ public OperationsInner operations() {
+ return this.operations;
+ }
+
+ /**
+ * Initializes an instance of AzureDeploymentManager client.
+ *
+ * @param credentials the management credentials for Azure
+ */
+ public AzureDeploymentManagerImpl(ServiceClientCredentials credentials) {
+ this("https://management.azure.com", credentials);
+ }
+
+ /**
+ * Initializes an instance of AzureDeploymentManager client.
+ *
+ * @param baseUrl the base URL of the host
+ * @param credentials the management credentials for Azure
+ */
+ public AzureDeploymentManagerImpl(String baseUrl, ServiceClientCredentials credentials) {
+ super(baseUrl, credentials);
+ initialize();
+ }
+
+ /**
+ * Initializes an instance of AzureDeploymentManager client.
+ *
+ * @param restClient the REST client to connect to Azure.
+ */
+ public AzureDeploymentManagerImpl(RestClient restClient) {
+ super(restClient);
+ initialize();
+ }
+
+ protected void initialize() {
+ this.apiVersion = "2018-09-01-preview";
+ this.acceptLanguage = "en-US";
+ this.longRunningOperationRetryTimeout = 30;
+ this.generateClientRequestId = true;
+ this.serviceTopologies = new ServiceTopologiesInner(restClient().retrofit(), this);
+ this.services = new ServicesInner(restClient().retrofit(), this);
+ this.serviceUnits = new ServiceUnitsInner(restClient().retrofit(), this);
+ this.steps = new StepsInner(restClient().retrofit(), this);
+ this.rollouts = new RolloutsInner(restClient().retrofit(), this);
+ this.artifactSources = new ArtifactSourcesInner(restClient().retrofit(), this);
+ this.operations = new OperationsInner(restClient().retrofit(), this);
+ this.azureClient = new AzureClient(this);
+ }
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ @Override
+ public String userAgent() {
+ return String.format("%s (%s, %s, auto-generated)", super.userAgent(), "AzureDeploymentManager", "2018-09-01-preview");
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/DeploymentManagerManager.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/DeploymentManagerManager.java
new file mode 100644
index 000000000000..b681afcc5e4a
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/DeploymentManagerManager.java
@@ -0,0 +1,171 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.AzureEnvironment;
+import com.microsoft.azure.AzureResponseBuilder;
+import com.microsoft.azure.credentials.AzureTokenCredentials;
+import com.microsoft.azure.management.apigeneration.Beta;
+import com.microsoft.azure.management.apigeneration.Beta.SinceVersion;
+import com.microsoft.azure.arm.resources.AzureConfigurable;
+import com.microsoft.azure.serializer.AzureJacksonAdapter;
+import com.microsoft.rest.RestClient;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.ServiceTopologies;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Services;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.ServiceUnits;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Steps;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Rollouts;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.ArtifactSources;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Operations;
+import com.microsoft.azure.arm.resources.implementation.AzureConfigurableCoreImpl;
+import com.microsoft.azure.arm.resources.implementation.ManagerCore;
+
+/**
+ * Entry point to Azure DeploymentManager resource management.
+ */
+public final class DeploymentManagerManager extends ManagerCore {
+ private ServiceTopologies serviceTopologies;
+ private Services services;
+ private ServiceUnits serviceUnits;
+ private Steps steps;
+ private Rollouts rollouts;
+ private ArtifactSources artifactSources;
+ private Operations operations;
+ /**
+ * Get a Configurable instance that can be used to create DeploymentManagerManager with optional configuration.
+ *
+ * @return the instance allowing configurations
+ */
+ public static Configurable configure() {
+ return new DeploymentManagerManager.ConfigurableImpl();
+ }
+ /**
+ * Creates an instance of DeploymentManagerManager that exposes DeploymentManager resource management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the DeploymentManagerManager
+ */
+ public static DeploymentManagerManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return new DeploymentManagerManager(new RestClient.Builder()
+ .withBaseUrl(credentials.environment(), AzureEnvironment.Endpoint.RESOURCE_MANAGER)
+ .withCredentials(credentials)
+ .withSerializerAdapter(new AzureJacksonAdapter())
+ .withResponseBuilderFactory(new AzureResponseBuilder.Factory())
+ .build(), subscriptionId);
+ }
+ /**
+ * Creates an instance of DeploymentManagerManager that exposes DeploymentManager resource management API entry points.
+ *
+ * @param restClient the RestClient to be used for API calls.
+ * @param subscriptionId the subscription UUID
+ * @return the DeploymentManagerManager
+ */
+ public static DeploymentManagerManager authenticate(RestClient restClient, String subscriptionId) {
+ return new DeploymentManagerManager(restClient, subscriptionId);
+ }
+ /**
+ * The interface allowing configurations to be set.
+ */
+ public interface Configurable extends AzureConfigurable {
+ /**
+ * Creates an instance of DeploymentManagerManager that exposes DeploymentManager management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the interface exposing DeploymentManager management API entry points that work across subscriptions
+ */
+ DeploymentManagerManager authenticate(AzureTokenCredentials credentials, String subscriptionId);
+ }
+
+ /**
+ * @return Entry point to manage ServiceTopologies.
+ */
+ public ServiceTopologies serviceTopologies() {
+ if (this.serviceTopologies == null) {
+ this.serviceTopologies = new ServiceTopologiesImpl(this);
+ }
+ return this.serviceTopologies;
+ }
+
+ /**
+ * @return Entry point to manage Services.
+ */
+ public Services services() {
+ if (this.services == null) {
+ this.services = new ServicesImpl(this);
+ }
+ return this.services;
+ }
+
+ /**
+ * @return Entry point to manage ServiceUnits.
+ */
+ public ServiceUnits serviceUnits() {
+ if (this.serviceUnits == null) {
+ this.serviceUnits = new ServiceUnitsImpl(this);
+ }
+ return this.serviceUnits;
+ }
+
+ /**
+ * @return Entry point to manage Steps.
+ */
+ public Steps steps() {
+ if (this.steps == null) {
+ this.steps = new StepsImpl(this);
+ }
+ return this.steps;
+ }
+
+ /**
+ * @return Entry point to manage Rollouts.
+ */
+ public Rollouts rollouts() {
+ if (this.rollouts == null) {
+ this.rollouts = new RolloutsImpl(this);
+ }
+ return this.rollouts;
+ }
+
+ /**
+ * @return Entry point to manage ArtifactSources.
+ */
+ public ArtifactSources artifactSources() {
+ if (this.artifactSources == null) {
+ this.artifactSources = new ArtifactSourcesImpl(this);
+ }
+ return this.artifactSources;
+ }
+
+ /**
+ * @return Entry point to manage Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(this);
+ }
+ return this.operations;
+ }
+
+ /**
+ * The implementation for Configurable interface.
+ */
+ private static final class ConfigurableImpl extends AzureConfigurableCoreImpl implements Configurable {
+ public DeploymentManagerManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return DeploymentManagerManager.authenticate(buildRestClient(credentials), subscriptionId);
+ }
+ }
+ private DeploymentManagerManager(RestClient restClient, String subscriptionId) {
+ super(
+ restClient,
+ subscriptionId,
+ new AzureDeploymentManagerImpl(restClient).withSubscriptionId(subscriptionId));
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/IdParsingUtils.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/IdParsingUtils.java
new file mode 100644
index 000000000000..e60b02e2aa67
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/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.deploymentmanager.v2018-09-01-preview.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/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationImpl.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationImpl.java
new file mode 100644
index 000000000000..abdece8914d5
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationImpl.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ *
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Operation;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import rx.Observable;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.OperationDetail;
+
+class OperationImpl extends WrapperImpl implements Operation {
+ private final DeploymentManagerManager manager;
+
+ OperationImpl(OperationInner inner, DeploymentManagerManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public DeploymentManagerManager manager() {
+ return this.manager;
+ }
+
+
+
+ @Override
+ public OperationDetail display() {
+ return this.inner().display();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String origin() {
+ return this.inner().origin();
+ }
+
+ @Override
+ public Object properties() {
+ return this.inner().properties();
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationInner.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationInner.java
new file mode 100644
index 000000000000..7844373cfab8
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationInner.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.OperationDetail;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents an operation that can be performed on the service.
+ */
+public class OperationInner {
+ /**
+ * The name of the operation.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The display name of the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDetail display;
+
+ /**
+ * The origin of the operation.
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /**
+ * The properties of the operation.
+ */
+ @JsonProperty(value = "properties")
+ private Object properties;
+
+ /**
+ * Get the name of the operation.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the operation.
+ *
+ * @param name the name value to set
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display name of the operation.
+ *
+ * @return the display value
+ */
+ public OperationDetail display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display name of the operation.
+ *
+ * @param display the display value to set
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDetail display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the origin of the operation.
+ *
+ * @return the origin value
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin of the operation.
+ *
+ * @param origin the origin value to set
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withOrigin(String origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Get the properties of the operation.
+ *
+ * @return the properties value
+ */
+ public Object properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties of the operation.
+ *
+ * @param properties the properties value to set
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withProperties(Object properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationsImpl.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationsImpl.java
new file mode 100644
index 000000000000..907fd106886b
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationsImpl.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * jkl
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Operations;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.arm.utils.PagedListConverter;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Operation;
+
+class OperationsImpl extends WrapperImpl implements Operations {
+ private PagedListConverter converter;
+ private final DeploymentManagerManager manager;
+
+ OperationsImpl(DeploymentManagerManager manager) {
+ super(manager.inner().operations());
+ this.manager = manager;
+ this.converter = new PagedListConverter() {
+ @Override
+ public Observable typeConvertAsync(OperationInner inner) {
+ return Observable.just((Operation) wrapModel(inner));
+ }
+ };
+ }
+
+ public DeploymentManagerManager manager() {
+ return this.manager;
+ }
+
+ private OperationImpl wrapModel(OperationInner inner) {
+ return new OperationImpl(inner, manager());
+ }
+
+ @Override
+ public PagedList list() {
+ OperationsInner client = this.inner();
+ return converter.convert(client.list());
+ }
+
+ @Override
+ public Observable listAsync() {
+ OperationsInner client = this.inner();
+ return client.listAsync()
+ .flatMap(new Func1, Observable>() {
+ @Override
+ public Observable call(Page innerPage) {
+ return Observable.from(innerPage.items());
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Operation call(OperationInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationsInner.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationsInner.java
new file mode 100644
index 000000000000..4058b22ad9dd
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/OperationsInner.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.deploymentmanager.v2018-09-01-preview.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.CloudException;
+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 java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Operations.
+ */
+public class OperationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private OperationsService service;
+ /** The service client containing this operation class. */
+ private AzureDeploymentManagerImpl client;
+
+ /**
+ * Initializes an instance of OperationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public OperationsInner(Retrofit retrofit, AzureDeploymentManagerImpl client) {
+ this.service = retrofit.create(OperationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Operations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface OperationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Operations list" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.DeploymentManager/operations")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Gets an operation resource.
+ *
+ * @return the PagedList object if successful.
+ */
+ public PagedList list() {
+ PageImpl page = new PageImpl<>();
+ page.setItems(listWithServiceResponseAsync().toBlocking().single().body());
+ page.setNextPageLink(null);
+ return new PagedList(page) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return null;
+ }
+ };
+ }
+
+ /**
+ * Gets an operation resource.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listAsync(final ServiceCallback> serviceCallback) {
+ return ServiceFuture.fromResponse(listWithServiceResponseAsync(), serviceCallback);
+ }
+
+ /**
+ * Gets an operation resource.
+ *
+ * @return the observable to the List<OperationInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync().map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ PageImpl page = new PageImpl<>();
+ page.setItems(response.body());
+ return page;
+ }
+ });
+ }
+
+ /**
+ * Gets an operation resource.
+ *
+ * @return the observable to the List<OperationInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ 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);
+ List items = null;
+ if (result.body() != null) {
+ items = result.body().items();
+ }
+ ServiceResponse> clientResponse = new ServiceResponse>(items, result.response());
+ return Observable.just(clientResponse);
+ } 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);
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/PageImpl.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/PageImpl.java
new file mode 100644
index 000000000000..a85eff89eff3
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/PageImpl.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.Page;
+import java.util.List;
+
+/**
+ * An instance of this class defines a page of Azure resources and a link to
+ * get the next page of resources, if any.
+ *
+ * @param type of Azure resource
+ */
+public class PageImpl implements Page {
+ /**
+ * The link to the next page.
+ */
+ @JsonProperty("")
+ private String nextPageLink;
+
+ /**
+ * The list of items.
+ */
+ @JsonProperty("value")
+ private List items;
+
+ /**
+ * Gets the link to the next page.
+ *
+ * @return the link to the next page.
+ */
+ @Override
+ public String nextPageLink() {
+ return this.nextPageLink;
+ }
+
+ /**
+ * Gets the list of items.
+ *
+ * @return the list of items in {@link List}.
+ */
+ @Override
+ public List items() {
+ return items;
+ }
+
+ /**
+ * Sets the link to the next page.
+ *
+ * @param nextPageLink the link to the next page.
+ * @return this Page object itself.
+ */
+ public PageImpl setNextPageLink(String nextPageLink) {
+ this.nextPageLink = nextPageLink;
+ return this;
+ }
+
+ /**
+ * Sets the list of items.
+ *
+ * @param items the list of items in {@link List}.
+ * @return this Page object itself.
+ */
+ public PageImpl setItems(List items) {
+ this.items = items;
+ return this;
+ }
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutImpl.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutImpl.java
new file mode 100644
index 000000000000..cb2cdd86376e
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutImpl.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Rollout;
+import rx.Observable;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Identity;
+import java.util.List;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.RolloutOperationInfo;
+import java.util.ArrayList;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.;
+import rx.functions.Func1;
+
+class RolloutImpl extends GroupableResourceCoreImpl implements Rollout, Rollout.Definition, Rollout.Update {
+ private RolloutRequestInner createOrUpdateParameter;
+ RolloutImpl(String name, RolloutInner inner, DeploymentManagerManager manager) {
+ super(name, inner, manager);
+ this.createOrUpdateParameter = new RolloutRequestInner();
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ RolloutsInner client = this.manager().inner().rollouts();
+ this.createOrUpdateParameter.withLocation(inner().location());
+ this.createOrUpdateParameter.withTags(inner().getTags());
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.createOrUpdateParameter)
+ .map(new Func1() {
+ @Override
+ public RolloutInner call(RolloutInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ RolloutsInner client = this.manager().inner().rollouts();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.createOrUpdateParameter)
+ .map(new Func1() {
+ @Override
+ public RolloutInner call(RolloutInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ RolloutsInner client = this.manager().inner().rollouts();
+ return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+ private void resetCreateUpdateParameters() {
+ this.createOrUpdateParameter = new RolloutRequestInner();
+ }
+
+ @Override
+ public String artifactSourceId() {
+ return this.inner().artifactSourceId();
+ }
+
+ @Override
+ public String buildVersion() {
+ return this.inner().buildVersion();
+ }
+
+ @Override
+ public Identity identity() {
+ return this.inner().identity();
+ }
+
+ @Override
+ public RolloutOperationInfo operationInfo() {
+ return this.inner().operationInfo();
+ }
+
+ @Override
+ public List services() {
+ return this.inner().services();
+ }
+
+ @Override
+ public String status() {
+ return this.inner().status();
+ }
+
+ @Override
+ public List stepGroups() {
+ return this.inner().stepGroups();
+ }
+
+ @Override
+ public String targetServiceTopologyId() {
+ return this.inner().targetServiceTopologyId();
+ }
+
+ @Override
+ public Integer totalRetryAttempts() {
+ return this.inner().totalRetryAttempts();
+ }
+
+ @Override
+ public RolloutImpl withBuildVersion(String buildVersion) {
+ this.createOrUpdateParameter.withBuildVersion(buildVersion);
+ return this;
+ }
+
+ @Override
+ public RolloutImpl withIdentity(Identity identity) {
+ this.createOrUpdateParameter.withIdentity(identity);
+ return this;
+ }
+
+ @Override
+ public RolloutImpl withStepGroups(List stepGroups) {
+ this.createOrUpdateParameter.withStepGroups(stepGroups);
+ return this;
+ }
+
+ @Override
+ public RolloutImpl withTargetServiceTopologyId(String targetServiceTopologyId) {
+ this.createOrUpdateParameter.withTargetServiceTopologyId(targetServiceTopologyId);
+ return this;
+ }
+
+ @Override
+ public RolloutImpl withArtifactSourceId(String artifactSourceId) {
+ this.createOrUpdateParameter.withArtifactSourceId(artifactSourceId);
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutInner.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutInner.java
new file mode 100644
index 000000000000..8188bd64bf9d
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutInner.java
@@ -0,0 +1,216 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Identity;
+import java.util.List;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.RolloutOperationInfo;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Defines the rollout.
+ */
+@JsonFlatten
+public class RolloutInner extends Resource {
+ /**
+ * Identity for the resource.
+ */
+ @JsonProperty(value = "identity")
+ private Identity identity;
+
+ /**
+ * The version of the build being deployed.
+ */
+ @JsonProperty(value = "properties.buildVersion", required = true)
+ private String buildVersion;
+
+ /**
+ * The reference to the artifact source resource Id where the payload is
+ * located.
+ */
+ @JsonProperty(value = "properties.artifactSourceId")
+ private String artifactSourceId;
+
+ /**
+ * The resource Id of the service topology from which service units are
+ * being referenced in step groups to be deployed.
+ */
+ @JsonProperty(value = "properties.targetServiceTopologyId", required = true)
+ private String targetServiceTopologyId;
+
+ /**
+ * The list of step groups that define the orchestration.
+ */
+ @JsonProperty(value = "properties.stepGroups", required = true)
+ private List stepGroups;
+
+ /**
+ * The current status of the rollout.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private String status;
+
+ /**
+ * The cardinal count of total number of retries performed on the rollout
+ * at a given time.
+ */
+ @JsonProperty(value = "properties.totalRetryAttempts", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer totalRetryAttempts;
+
+ /**
+ * Operational information of the rollout.
+ */
+ @JsonProperty(value = "properties.operationInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private RolloutOperationInfo operationInfo;
+
+ /**
+ * The detailed information on the services being deployed.
+ */
+ @JsonProperty(value = "properties.services", access = JsonProperty.Access.WRITE_ONLY)
+ private List services;
+
+ /**
+ * Get identity for the resource.
+ *
+ * @return the identity value
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set identity for the resource.
+ *
+ * @param identity the identity value to set
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the version of the build being deployed.
+ *
+ * @return the buildVersion value
+ */
+ public String buildVersion() {
+ return this.buildVersion;
+ }
+
+ /**
+ * Set the version of the build being deployed.
+ *
+ * @param buildVersion the buildVersion value to set
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withBuildVersion(String buildVersion) {
+ this.buildVersion = buildVersion;
+ return this;
+ }
+
+ /**
+ * Get the reference to the artifact source resource Id where the payload is located.
+ *
+ * @return the artifactSourceId value
+ */
+ public String artifactSourceId() {
+ return this.artifactSourceId;
+ }
+
+ /**
+ * Set the reference to the artifact source resource Id where the payload is located.
+ *
+ * @param artifactSourceId the artifactSourceId value to set
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withArtifactSourceId(String artifactSourceId) {
+ this.artifactSourceId = artifactSourceId;
+ return this;
+ }
+
+ /**
+ * Get the resource Id of the service topology from which service units are being referenced in step groups to be deployed.
+ *
+ * @return the targetServiceTopologyId value
+ */
+ public String targetServiceTopologyId() {
+ return this.targetServiceTopologyId;
+ }
+
+ /**
+ * Set the resource Id of the service topology from which service units are being referenced in step groups to be deployed.
+ *
+ * @param targetServiceTopologyId the targetServiceTopologyId value to set
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withTargetServiceTopologyId(String targetServiceTopologyId) {
+ this.targetServiceTopologyId = targetServiceTopologyId;
+ return this;
+ }
+
+ /**
+ * Get the list of step groups that define the orchestration.
+ *
+ * @return the stepGroups value
+ */
+ public List stepGroups() {
+ return this.stepGroups;
+ }
+
+ /**
+ * Set the list of step groups that define the orchestration.
+ *
+ * @param stepGroups the stepGroups value to set
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withStepGroups(List stepGroups) {
+ this.stepGroups = stepGroups;
+ return this;
+ }
+
+ /**
+ * Get the current status of the rollout.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Get the cardinal count of total number of retries performed on the rollout at a given time.
+ *
+ * @return the totalRetryAttempts value
+ */
+ public Integer totalRetryAttempts() {
+ return this.totalRetryAttempts;
+ }
+
+ /**
+ * Get operational information of the rollout.
+ *
+ * @return the operationInfo value
+ */
+ public RolloutOperationInfo operationInfo() {
+ return this.operationInfo;
+ }
+
+ /**
+ * Get the detailed information on the services being deployed.
+ *
+ * @return the services value
+ */
+ public List services() {
+ return this.services;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutRequestInner.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutRequestInner.java
new file mode 100644
index 000000000000..e1d9c8823876
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutRequestInner.java
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Identity;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Defines the PUT rollout request body.
+ */
+@JsonFlatten
+public class RolloutRequestInner extends Resource {
+ /**
+ * Identity for the resource.
+ */
+ @JsonProperty(value = "identity", required = true)
+ private Identity identity;
+
+ /**
+ * The version of the build being deployed.
+ */
+ @JsonProperty(value = "properties.buildVersion", required = true)
+ private String buildVersion;
+
+ /**
+ * The reference to the artifact source resource Id where the payload is
+ * located.
+ */
+ @JsonProperty(value = "properties.artifactSourceId")
+ private String artifactSourceId;
+
+ /**
+ * The resource Id of the service topology from which service units are
+ * being referenced in step groups to be deployed.
+ */
+ @JsonProperty(value = "properties.targetServiceTopologyId", required = true)
+ private String targetServiceTopologyId;
+
+ /**
+ * The list of step groups that define the orchestration.
+ */
+ @JsonProperty(value = "properties.stepGroups", required = true)
+ private List stepGroups;
+
+ /**
+ * Get identity for the resource.
+ *
+ * @return the identity value
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set identity for the resource.
+ *
+ * @param identity the identity value to set
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the version of the build being deployed.
+ *
+ * @return the buildVersion value
+ */
+ public String buildVersion() {
+ return this.buildVersion;
+ }
+
+ /**
+ * Set the version of the build being deployed.
+ *
+ * @param buildVersion the buildVersion value to set
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withBuildVersion(String buildVersion) {
+ this.buildVersion = buildVersion;
+ return this;
+ }
+
+ /**
+ * Get the reference to the artifact source resource Id where the payload is located.
+ *
+ * @return the artifactSourceId value
+ */
+ public String artifactSourceId() {
+ return this.artifactSourceId;
+ }
+
+ /**
+ * Set the reference to the artifact source resource Id where the payload is located.
+ *
+ * @param artifactSourceId the artifactSourceId value to set
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withArtifactSourceId(String artifactSourceId) {
+ this.artifactSourceId = artifactSourceId;
+ return this;
+ }
+
+ /**
+ * Get the resource Id of the service topology from which service units are being referenced in step groups to be deployed.
+ *
+ * @return the targetServiceTopologyId value
+ */
+ public String targetServiceTopologyId() {
+ return this.targetServiceTopologyId;
+ }
+
+ /**
+ * Set the resource Id of the service topology from which service units are being referenced in step groups to be deployed.
+ *
+ * @param targetServiceTopologyId the targetServiceTopologyId value to set
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withTargetServiceTopologyId(String targetServiceTopologyId) {
+ this.targetServiceTopologyId = targetServiceTopologyId;
+ return this;
+ }
+
+ /**
+ * Get the list of step groups that define the orchestration.
+ *
+ * @return the stepGroups value
+ */
+ public List stepGroups() {
+ return this.stepGroups;
+ }
+
+ /**
+ * Set the list of step groups that define the orchestration.
+ *
+ * @param stepGroups the stepGroups value to set
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withStepGroups(List stepGroups) {
+ this.stepGroups = stepGroups;
+ return this;
+ }
+
+}
diff --git a/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutsImpl.java b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutsImpl.java
new file mode 100644
index 000000000000..bc83a04c547d
--- /dev/null
+++ b/deploymentmanager/resource-manager/v2018-09-01-preview/src/main/java/com/microsoft/azure/management/deploymentmanager/v2018-09-01-preview/implementation/RolloutsImpl.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights 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.deploymentmanager.v2018-09-01-preview.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Rollouts;
+import com.microsoft.azure.management.deploymentmanager.v2018-09-01-preview.Rollout;
+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.arm.utils.PagedListConverter;
+
+class RolloutsImpl extends GroupableResourcesCoreImpl implements Rollouts {
+ protected RolloutsImpl(DeploymentManagerManager manager) {
+ super(manager.inner().rollouts(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ RolloutsInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ RolloutsInner 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