diff --git a/containerinstance/resource-manager/v2018_10_01/pom.xml b/containerinstance/resource-manager/v2018_10_01/pom.xml
new file mode 100644
index 000000000000..c9cd5a815812
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.containerinstance.v2018_10_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.2-beta
+ ../../../pom.xml
+
+ azure-mgmt-containerinstance
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for ContainerInstance Management
+ This package contains Microsoft ContainerInstance Management SDK.
+ https://github.com/Azure/azure-libraries-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-libraries-for-java
+ scm:git:git@github.com:Azure/azure-libraries-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/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/AzureFileVolume.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/AzureFileVolume.java
new file mode 100644
index 000000000000..7727ce2b7c89
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/AzureFileVolume.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of the Azure File volume. Azure File shares are mounted as
+ * volumes.
+ */
+public class AzureFileVolume {
+ /**
+ * The name of the Azure File share to be mounted as a volume.
+ */
+ @JsonProperty(value = "shareName", required = true)
+ private String shareName;
+
+ /**
+ * The flag indicating whether the Azure File shared mounted as a volume is
+ * read-only.
+ */
+ @JsonProperty(value = "readOnly")
+ private Boolean readOnly;
+
+ /**
+ * The name of the storage account that contains the Azure File share.
+ */
+ @JsonProperty(value = "storageAccountName", required = true)
+ private String storageAccountName;
+
+ /**
+ * The storage account access key used to access the Azure File share.
+ */
+ @JsonProperty(value = "storageAccountKey")
+ private String storageAccountKey;
+
+ /**
+ * Get the name of the Azure File share to be mounted as a volume.
+ *
+ * @return the shareName value
+ */
+ public String shareName() {
+ return this.shareName;
+ }
+
+ /**
+ * Set the name of the Azure File share to be mounted as a volume.
+ *
+ * @param shareName the shareName value to set
+ * @return the AzureFileVolume object itself.
+ */
+ public AzureFileVolume withShareName(String shareName) {
+ this.shareName = shareName;
+ return this;
+ }
+
+ /**
+ * Get the flag indicating whether the Azure File shared mounted as a volume is read-only.
+ *
+ * @return the readOnly value
+ */
+ public Boolean readOnly() {
+ return this.readOnly;
+ }
+
+ /**
+ * Set the flag indicating whether the Azure File shared mounted as a volume is read-only.
+ *
+ * @param readOnly the readOnly value to set
+ * @return the AzureFileVolume object itself.
+ */
+ public AzureFileVolume withReadOnly(Boolean readOnly) {
+ this.readOnly = readOnly;
+ return this;
+ }
+
+ /**
+ * Get the name of the storage account that contains the Azure File share.
+ *
+ * @return the storageAccountName value
+ */
+ public String storageAccountName() {
+ return this.storageAccountName;
+ }
+
+ /**
+ * Set the name of the storage account that contains the Azure File share.
+ *
+ * @param storageAccountName the storageAccountName value to set
+ * @return the AzureFileVolume object itself.
+ */
+ public AzureFileVolume withStorageAccountName(String storageAccountName) {
+ this.storageAccountName = storageAccountName;
+ return this;
+ }
+
+ /**
+ * Get the storage account access key used to access the Azure File share.
+ *
+ * @return the storageAccountKey value
+ */
+ public String storageAccountKey() {
+ return this.storageAccountKey;
+ }
+
+ /**
+ * Set the storage account access key used to access the Azure File share.
+ *
+ * @param storageAccountKey the storageAccountKey value to set
+ * @return the AzureFileVolume object itself.
+ */
+ public AzureFileVolume withStorageAccountKey(String storageAccountKey) {
+ this.storageAccountKey = storageAccountKey;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExec.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExec.java
new file mode 100644
index 000000000000..b76427e96cbd
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExec.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.containerinstance.v2018_10_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The container execution command, for liveness or readiness probe.
+ */
+public class ContainerExec {
+ /**
+ * The commands to execute within the container.
+ */
+ @JsonProperty(value = "command")
+ private List command;
+
+ /**
+ * Get the commands to execute within the container.
+ *
+ * @return the command value
+ */
+ public List command() {
+ return this.command;
+ }
+
+ /**
+ * Set the commands to execute within the container.
+ *
+ * @param command the command value to set
+ * @return the ContainerExec object itself.
+ */
+ public ContainerExec withCommand(List command) {
+ this.command = command;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecRequest.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecRequest.java
new file mode 100644
index 000000000000..465eefbedf6a
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecRequest.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The container exec request.
+ */
+public class ContainerExecRequest {
+ /**
+ * The command to be executed.
+ */
+ @JsonProperty(value = "command")
+ private String command;
+
+ /**
+ * The size of the terminal.
+ */
+ @JsonProperty(value = "terminalSize")
+ private ContainerExecRequestTerminalSize terminalSize;
+
+ /**
+ * Get the command to be executed.
+ *
+ * @return the command value
+ */
+ public String command() {
+ return this.command;
+ }
+
+ /**
+ * Set the command to be executed.
+ *
+ * @param command the command value to set
+ * @return the ContainerExecRequest object itself.
+ */
+ public ContainerExecRequest withCommand(String command) {
+ this.command = command;
+ return this;
+ }
+
+ /**
+ * Get the size of the terminal.
+ *
+ * @return the terminalSize value
+ */
+ public ContainerExecRequestTerminalSize terminalSize() {
+ return this.terminalSize;
+ }
+
+ /**
+ * Set the size of the terminal.
+ *
+ * @param terminalSize the terminalSize value to set
+ * @return the ContainerExecRequest object itself.
+ */
+ public ContainerExecRequest withTerminalSize(ContainerExecRequestTerminalSize terminalSize) {
+ this.terminalSize = terminalSize;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecRequestTerminalSize.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecRequestTerminalSize.java
new file mode 100644
index 000000000000..c861b2f3ad33
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecRequestTerminalSize.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The size of the terminal.
+ */
+public class ContainerExecRequestTerminalSize {
+ /**
+ * The row size of the terminal.
+ */
+ @JsonProperty(value = "rows")
+ private Integer rows;
+
+ /**
+ * The column size of the terminal.
+ */
+ @JsonProperty(value = "cols")
+ private Integer cols;
+
+ /**
+ * Get the row size of the terminal.
+ *
+ * @return the rows value
+ */
+ public Integer rows() {
+ return this.rows;
+ }
+
+ /**
+ * Set the row size of the terminal.
+ *
+ * @param rows the rows value to set
+ * @return the ContainerExecRequestTerminalSize object itself.
+ */
+ public ContainerExecRequestTerminalSize withRows(Integer rows) {
+ this.rows = rows;
+ return this;
+ }
+
+ /**
+ * Get the column size of the terminal.
+ *
+ * @return the cols value
+ */
+ public Integer cols() {
+ return this.cols;
+ }
+
+ /**
+ * Set the column size of the terminal.
+ *
+ * @param cols the cols value to set
+ * @return the ContainerExecRequestTerminalSize object itself.
+ */
+ public ContainerExecRequestTerminalSize withCols(Integer cols) {
+ this.cols = cols;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecResponse.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecResponse.java
new file mode 100644
index 000000000000..fcda45558352
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerExecResponse.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerInstanceManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerExecResponseInner;
+
+/**
+ * Type representing ContainerExecResponse.
+ */
+public interface ContainerExecResponse extends HasInner, HasManager {
+ /**
+ * @return the password value.
+ */
+ String password();
+
+ /**
+ * @return the webSocketUri value.
+ */
+ String webSocketUri();
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroup.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroup.java
new file mode 100644
index 000000000000..a0bfb8301c2d
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroup.java
@@ -0,0 +1,215 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerInstanceManager;
+import java.util.List;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerInner;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerGroupInner;
+
+/**
+ * Type representing ContainerGroup.
+ */
+public interface ContainerGroup extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the containers value.
+ */
+ List containers();
+
+ /**
+ * @return the diagnostics value.
+ */
+ ContainerGroupDiagnostics diagnostics();
+
+ /**
+ * @return the identity value.
+ */
+ ContainerGroupIdentity identity();
+
+ /**
+ * @return the imageRegistryCredentials value.
+ */
+ List imageRegistryCredentials();
+
+ /**
+ * @return the instanceView value.
+ */
+ ContainerGroupPropertiesInstanceView instanceView();
+
+ /**
+ * @return the ipAddress value.
+ */
+ IpAddress ipAddress();
+
+ /**
+ * @return the networkProfile value.
+ */
+ ContainerGroupNetworkProfile networkProfile();
+
+ /**
+ * @return the osType value.
+ */
+ OperatingSystemTypes osType();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the restartPolicy value.
+ */
+ ContainerGroupRestartPolicy restartPolicy();
+
+ /**
+ * @return the volumes value.
+ */
+ List volumes();
+
+ /**
+ * The entirety of the ContainerGroup definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithContainers, DefinitionStages.WithOsType, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ContainerGroup definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ContainerGroup definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ContainerGroup definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the containergroup definition allowing to specify Containers.
+ */
+ interface WithContainers {
+ /**
+ * Specifies containers.
+ */
+ WithOsType withContainers(List containers);
+ }
+
+ /**
+ * The stage of the containergroup definition allowing to specify OsType.
+ */
+ interface WithOsType {
+ /**
+ * Specifies osType.
+ */
+ WithCreate withOsType(OperatingSystemTypes osType);
+ }
+
+ /**
+ * The stage of the containergroup update allowing to specify Diagnostics.
+ */
+ interface WithDiagnostics {
+ /**
+ * Specifies diagnostics.
+ */
+ WithCreate withDiagnostics(ContainerGroupDiagnostics diagnostics);
+ }
+
+ /**
+ * The stage of the containergroup update allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ */
+ WithCreate withIdentity(ContainerGroupIdentity identity);
+ }
+
+ /**
+ * The stage of the containergroup update allowing to specify ImageRegistryCredentials.
+ */
+ interface WithImageRegistryCredentials {
+ /**
+ * Specifies imageRegistryCredentials.
+ */
+ WithCreate withImageRegistryCredentials(List imageRegistryCredentials);
+ }
+
+ /**
+ * The stage of the containergroup update allowing to specify IpAddress.
+ */
+ interface WithIpAddress {
+ /**
+ * Specifies ipAddress.
+ */
+ WithCreate withIpAddress(IpAddress ipAddress);
+ }
+
+ /**
+ * The stage of the containergroup update allowing to specify NetworkProfile.
+ */
+ interface WithNetworkProfile {
+ /**
+ * Specifies networkProfile.
+ */
+ WithCreate withNetworkProfile(ContainerGroupNetworkProfile networkProfile);
+ }
+
+ /**
+ * The stage of the containergroup update allowing to specify RestartPolicy.
+ */
+ interface WithRestartPolicy {
+ /**
+ * Specifies restartPolicy.
+ */
+ WithCreate withRestartPolicy(ContainerGroupRestartPolicy restartPolicy);
+ }
+
+ /**
+ * The stage of the containergroup update allowing to specify Volumes.
+ */
+ interface WithVolumes {
+ /**
+ * Specifies volumes.
+ */
+ WithCreate withVolumes(List volumes);
+ }
+
+ /**
+ * 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.WithDiagnostics, DefinitionStages.WithIdentity, DefinitionStages.WithImageRegistryCredentials, DefinitionStages.WithIpAddress, DefinitionStages.WithNetworkProfile, DefinitionStages.WithRestartPolicy, DefinitionStages.WithVolumes {
+ }
+ }
+ /**
+ * The template for a ContainerGroup update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags {
+ }
+
+ /**
+ * Grouping of ContainerGroup update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupDiagnostics.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupDiagnostics.java
new file mode 100644
index 000000000000..11ad04633c75
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupDiagnostics.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.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Container group diagnostic information.
+ */
+public class ContainerGroupDiagnostics {
+ /**
+ * Container group log analytics information.
+ */
+ @JsonProperty(value = "logAnalytics")
+ private LogAnalytics logAnalytics;
+
+ /**
+ * Get container group log analytics information.
+ *
+ * @return the logAnalytics value
+ */
+ public LogAnalytics logAnalytics() {
+ return this.logAnalytics;
+ }
+
+ /**
+ * Set container group log analytics information.
+ *
+ * @param logAnalytics the logAnalytics value to set
+ * @return the ContainerGroupDiagnostics object itself.
+ */
+ public ContainerGroupDiagnostics withLogAnalytics(LogAnalytics logAnalytics) {
+ this.logAnalytics = logAnalytics;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIdentity.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIdentity.java
new file mode 100644
index 000000000000..6a617e32bee5
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIdentity.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity for the container group.
+ */
+public class ContainerGroupIdentity {
+ /**
+ * The principal id of the container group identity. This property will
+ * only be provided for a system assigned identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The tenant id associated with the container group. This property will
+ * only be provided for a system assigned identity.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String tenantId;
+
+ /**
+ * The type of identity used for the container group. The type
+ * 'SystemAssigned, UserAssigned' includes both an implicitly created
+ * identity and a set of user assigned identities. The type 'None' will
+ * remove any identities from the container group. Possible values include:
+ * 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned',
+ * 'None'.
+ */
+ @JsonProperty(value = "type")
+ private ResourceIdentityType type;
+
+ /**
+ * The list of user identities associated with the container group. The
+ * user identity dictionary key references will be ARM resource ids in the
+ * form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ */
+ @JsonProperty(value = "userAssignedIdentities")
+ private Map userAssignedIdentities;
+
+ /**
+ * Get the principal id of the container group identity. This property will only be provided for a system assigned identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the tenant id associated with the container group. This property will only be provided for a system assigned identity.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Get the type of identity used for the container group. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the container group. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @return the type value
+ */
+ public ResourceIdentityType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of identity used for the container group. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the container group. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @param type the type value to set
+ * @return the ContainerGroupIdentity object itself.
+ */
+ public ContainerGroupIdentity withType(ResourceIdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the list of user identities associated with the container group. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @return the userAssignedIdentities value
+ */
+ public Map userAssignedIdentities() {
+ return this.userAssignedIdentities;
+ }
+
+ /**
+ * Set the list of user identities associated with the container group. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @param userAssignedIdentities the userAssignedIdentities value to set
+ * @return the ContainerGroupIdentity object itself.
+ */
+ public ContainerGroupIdentity withUserAssignedIdentities(Map userAssignedIdentities) {
+ this.userAssignedIdentities = userAssignedIdentities;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIdentityUserAssignedIdentitiesValue.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIdentityUserAssignedIdentitiesValue.java
new file mode 100644
index 000000000000..6fad4c8f04b8
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIdentityUserAssignedIdentitiesValue.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.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ContainerGroupIdentityUserAssignedIdentitiesValue model.
+ */
+public class ContainerGroupIdentityUserAssignedIdentitiesValue {
+ /**
+ * The principal id of user assigned identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The client id of user assigned identity.
+ */
+ @JsonProperty(value = "clientId", access = JsonProperty.Access.WRITE_ONLY)
+ private String clientId;
+
+ /**
+ * Get the principal id of user assigned identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the client id of user assigned identity.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIpAddressType.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIpAddressType.java
new file mode 100644
index 000000000000..1b5fecc84319
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupIpAddressType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerGroupIpAddressType.
+ */
+public final class ContainerGroupIpAddressType extends ExpandableStringEnum {
+ /** Static value Public for ContainerGroupIpAddressType. */
+ public static final ContainerGroupIpAddressType PUBLIC = fromString("Public");
+
+ /** Static value Private for ContainerGroupIpAddressType. */
+ public static final ContainerGroupIpAddressType PRIVATE = fromString("Private");
+
+ /**
+ * Creates or finds a ContainerGroupIpAddressType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerGroupIpAddressType
+ */
+ @JsonCreator
+ public static ContainerGroupIpAddressType fromString(String name) {
+ return fromString(name, ContainerGroupIpAddressType.class);
+ }
+
+ /**
+ * @return known ContainerGroupIpAddressType values
+ */
+ public static Collection values() {
+ return values(ContainerGroupIpAddressType.class);
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupNetworkProfile.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupNetworkProfile.java
new file mode 100644
index 000000000000..1ae9952e8a21
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupNetworkProfile.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.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Container group network profile information.
+ */
+public class ContainerGroupNetworkProfile {
+ /**
+ * The identifier for a network profile.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Get the identifier for a network profile.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the identifier for a network profile.
+ *
+ * @param id the id value to set
+ * @return the ContainerGroupNetworkProfile object itself.
+ */
+ public ContainerGroupNetworkProfile withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupNetworkProtocol.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupNetworkProtocol.java
new file mode 100644
index 000000000000..a23f799cb1e7
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupNetworkProtocol.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerGroupNetworkProtocol.
+ */
+public final class ContainerGroupNetworkProtocol extends ExpandableStringEnum {
+ /** Static value TCP for ContainerGroupNetworkProtocol. */
+ public static final ContainerGroupNetworkProtocol TCP = fromString("TCP");
+
+ /** Static value UDP for ContainerGroupNetworkProtocol. */
+ public static final ContainerGroupNetworkProtocol UDP = fromString("UDP");
+
+ /**
+ * Creates or finds a ContainerGroupNetworkProtocol from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerGroupNetworkProtocol
+ */
+ @JsonCreator
+ public static ContainerGroupNetworkProtocol fromString(String name) {
+ return fromString(name, ContainerGroupNetworkProtocol.class);
+ }
+
+ /**
+ * @return known ContainerGroupNetworkProtocol values
+ */
+ public static Collection values() {
+ return values(ContainerGroupNetworkProtocol.class);
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupPropertiesInstanceView.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupPropertiesInstanceView.java
new file mode 100644
index 000000000000..80089fab3dbb
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupPropertiesInstanceView.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.containerinstance.v2018_10_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The instance view of the container group. Only valid in response.
+ */
+public class ContainerGroupPropertiesInstanceView {
+ /**
+ * The events of this container group.
+ */
+ @JsonProperty(value = "events", access = JsonProperty.Access.WRITE_ONLY)
+ private List events;
+
+ /**
+ * The state of the container group. Only valid in response.
+ */
+ @JsonProperty(value = "state", access = JsonProperty.Access.WRITE_ONLY)
+ private String state;
+
+ /**
+ * Get the events of this container group.
+ *
+ * @return the events value
+ */
+ public List events() {
+ return this.events;
+ }
+
+ /**
+ * Get the state of the container group. Only valid in response.
+ *
+ * @return the state value
+ */
+ public String state() {
+ return this.state;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupRestartPolicy.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupRestartPolicy.java
new file mode 100644
index 000000000000..cd63caf48882
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupRestartPolicy.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.containerinstance.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerGroupRestartPolicy.
+ */
+public final class ContainerGroupRestartPolicy extends ExpandableStringEnum {
+ /** Static value Always for ContainerGroupRestartPolicy. */
+ public static final ContainerGroupRestartPolicy ALWAYS = fromString("Always");
+
+ /** Static value OnFailure for ContainerGroupRestartPolicy. */
+ public static final ContainerGroupRestartPolicy ON_FAILURE = fromString("OnFailure");
+
+ /** Static value Never for ContainerGroupRestartPolicy. */
+ public static final ContainerGroupRestartPolicy NEVER = fromString("Never");
+
+ /**
+ * Creates or finds a ContainerGroupRestartPolicy from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerGroupRestartPolicy
+ */
+ @JsonCreator
+ public static ContainerGroupRestartPolicy fromString(String name) {
+ return fromString(name, ContainerGroupRestartPolicy.class);
+ }
+
+ /**
+ * @return known ContainerGroupRestartPolicy values
+ */
+ public static Collection values() {
+ return values(ContainerGroupRestartPolicy.class);
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupUsages.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupUsages.java
new file mode 100644
index 000000000000..de7d036eb401
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroupUsages.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing ContainerGroupUsages.
+ */
+public interface ContainerGroupUsages {
+ /**
+ * Get the usage for a subscription.
+ *
+ * @param location The identifier for the physical azure location.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String location);
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroups.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroups.java
new file mode 100644
index 000000000000..bc2d453e5aa7
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerGroups.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.containerinstance.v2018_10_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerGroupsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ContainerGroups.
+ */
+public interface ContainerGroups extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Restarts all containers in a container group.
+ * Restarts all containers in a container group in place. If container image has updates, new image will be downloaded.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable restartAsync(String resourceGroupName, String containerGroupName);
+
+ /**
+ * Stops all containers in a container group.
+ * Stops all containers in a container group. Compute resources will be deallocated and billing will stop.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable stopAsync(String resourceGroupName, String containerGroupName);
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerHttpGet.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerHttpGet.java
new file mode 100644
index 000000000000..0881e828d9a7
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerHttpGet.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The container Http Get settings, for liveness or readiness probe.
+ */
+public class ContainerHttpGet {
+ /**
+ * The path to probe.
+ */
+ @JsonProperty(value = "path")
+ private String path;
+
+ /**
+ * The port number to probe.
+ */
+ @JsonProperty(value = "port", required = true)
+ private int port;
+
+ /**
+ * The scheme. Possible values include: 'http', 'https'.
+ */
+ @JsonProperty(value = "scheme")
+ private String scheme;
+
+ /**
+ * Get the path to probe.
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set the path to probe.
+ *
+ * @param path the path value to set
+ * @return the ContainerHttpGet object itself.
+ */
+ public ContainerHttpGet withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get the port number to probe.
+ *
+ * @return the port value
+ */
+ public int port() {
+ return this.port;
+ }
+
+ /**
+ * Set the port number to probe.
+ *
+ * @param port the port value to set
+ * @return the ContainerHttpGet object itself.
+ */
+ public ContainerHttpGet withPort(int port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * Get the scheme. Possible values include: 'http', 'https'.
+ *
+ * @return the scheme value
+ */
+ public String scheme() {
+ return this.scheme;
+ }
+
+ /**
+ * Set the scheme. Possible values include: 'http', 'https'.
+ *
+ * @param scheme the scheme value to set
+ * @return the ContainerHttpGet object itself.
+ */
+ public ContainerHttpGet withScheme(String scheme) {
+ this.scheme = scheme;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerInstanceOperationsOrigin.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerInstanceOperationsOrigin.java
new file mode 100644
index 000000000000..c251b6566e1c
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerInstanceOperationsOrigin.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerInstanceOperationsOrigin.
+ */
+public final class ContainerInstanceOperationsOrigin extends ExpandableStringEnum {
+ /** Static value User for ContainerInstanceOperationsOrigin. */
+ public static final ContainerInstanceOperationsOrigin USER = fromString("User");
+
+ /** Static value System for ContainerInstanceOperationsOrigin. */
+ public static final ContainerInstanceOperationsOrigin SYSTEM = fromString("System");
+
+ /**
+ * Creates or finds a ContainerInstanceOperationsOrigin from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerInstanceOperationsOrigin
+ */
+ @JsonCreator
+ public static ContainerInstanceOperationsOrigin fromString(String name) {
+ return fromString(name, ContainerInstanceOperationsOrigin.class);
+ }
+
+ /**
+ * @return known ContainerInstanceOperationsOrigin values
+ */
+ public static Collection values() {
+ return values(ContainerInstanceOperationsOrigin.class);
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerNetworkProtocol.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerNetworkProtocol.java
new file mode 100644
index 000000000000..aaf7af3bfb5a
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerNetworkProtocol.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerNetworkProtocol.
+ */
+public final class ContainerNetworkProtocol extends ExpandableStringEnum {
+ /** Static value TCP for ContainerNetworkProtocol. */
+ public static final ContainerNetworkProtocol TCP = fromString("TCP");
+
+ /** Static value UDP for ContainerNetworkProtocol. */
+ public static final ContainerNetworkProtocol UDP = fromString("UDP");
+
+ /**
+ * Creates or finds a ContainerNetworkProtocol from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerNetworkProtocol
+ */
+ @JsonCreator
+ public static ContainerNetworkProtocol fromString(String name) {
+ return fromString(name, ContainerNetworkProtocol.class);
+ }
+
+ /**
+ * @return known ContainerNetworkProtocol values
+ */
+ public static Collection values() {
+ return values(ContainerNetworkProtocol.class);
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerPort.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerPort.java
new file mode 100644
index 000000000000..8e644c34e69f
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerPort.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.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The port exposed on the container instance.
+ */
+public class ContainerPort {
+ /**
+ * The protocol associated with the port. Possible values include: 'TCP',
+ * 'UDP'.
+ */
+ @JsonProperty(value = "protocol")
+ private ContainerNetworkProtocol protocol;
+
+ /**
+ * The port number exposed within the container group.
+ */
+ @JsonProperty(value = "port", required = true)
+ private int port;
+
+ /**
+ * Get the protocol associated with the port. Possible values include: 'TCP', 'UDP'.
+ *
+ * @return the protocol value
+ */
+ public ContainerNetworkProtocol protocol() {
+ return this.protocol;
+ }
+
+ /**
+ * Set the protocol associated with the port. Possible values include: 'TCP', 'UDP'.
+ *
+ * @param protocol the protocol value to set
+ * @return the ContainerPort object itself.
+ */
+ public ContainerPort withProtocol(ContainerNetworkProtocol protocol) {
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * Get the port number exposed within the container group.
+ *
+ * @return the port value
+ */
+ public int port() {
+ return this.port;
+ }
+
+ /**
+ * Set the port number exposed within the container group.
+ *
+ * @param port the port value to set
+ * @return the ContainerPort object itself.
+ */
+ public ContainerPort withPort(int port) {
+ this.port = port;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerProbe.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerProbe.java
new file mode 100644
index 000000000000..979654b914a7
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerProbe.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.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The container probe, for liveness or readiness.
+ */
+public class ContainerProbe {
+ /**
+ * The execution command to probe.
+ */
+ @JsonProperty(value = "exec")
+ private ContainerExec exec;
+
+ /**
+ * The Http Get settings to probe.
+ */
+ @JsonProperty(value = "httpGet")
+ private ContainerHttpGet httpGet;
+
+ /**
+ * The initial delay seconds.
+ */
+ @JsonProperty(value = "initialDelaySeconds")
+ private Integer initialDelaySeconds;
+
+ /**
+ * The period seconds.
+ */
+ @JsonProperty(value = "periodSeconds")
+ private Integer periodSeconds;
+
+ /**
+ * The failure threshold.
+ */
+ @JsonProperty(value = "failureThreshold")
+ private Integer failureThreshold;
+
+ /**
+ * The success threshold.
+ */
+ @JsonProperty(value = "successThreshold")
+ private Integer successThreshold;
+
+ /**
+ * The timeout seconds.
+ */
+ @JsonProperty(value = "timeoutSeconds")
+ private Integer timeoutSeconds;
+
+ /**
+ * Get the execution command to probe.
+ *
+ * @return the exec value
+ */
+ public ContainerExec exec() {
+ return this.exec;
+ }
+
+ /**
+ * Set the execution command to probe.
+ *
+ * @param exec the exec value to set
+ * @return the ContainerProbe object itself.
+ */
+ public ContainerProbe withExec(ContainerExec exec) {
+ this.exec = exec;
+ return this;
+ }
+
+ /**
+ * Get the Http Get settings to probe.
+ *
+ * @return the httpGet value
+ */
+ public ContainerHttpGet httpGet() {
+ return this.httpGet;
+ }
+
+ /**
+ * Set the Http Get settings to probe.
+ *
+ * @param httpGet the httpGet value to set
+ * @return the ContainerProbe object itself.
+ */
+ public ContainerProbe withHttpGet(ContainerHttpGet httpGet) {
+ this.httpGet = httpGet;
+ return this;
+ }
+
+ /**
+ * Get the initial delay seconds.
+ *
+ * @return the initialDelaySeconds value
+ */
+ public Integer initialDelaySeconds() {
+ return this.initialDelaySeconds;
+ }
+
+ /**
+ * Set the initial delay seconds.
+ *
+ * @param initialDelaySeconds the initialDelaySeconds value to set
+ * @return the ContainerProbe object itself.
+ */
+ public ContainerProbe withInitialDelaySeconds(Integer initialDelaySeconds) {
+ this.initialDelaySeconds = initialDelaySeconds;
+ return this;
+ }
+
+ /**
+ * Get the period seconds.
+ *
+ * @return the periodSeconds value
+ */
+ public Integer periodSeconds() {
+ return this.periodSeconds;
+ }
+
+ /**
+ * Set the period seconds.
+ *
+ * @param periodSeconds the periodSeconds value to set
+ * @return the ContainerProbe object itself.
+ */
+ public ContainerProbe withPeriodSeconds(Integer periodSeconds) {
+ this.periodSeconds = periodSeconds;
+ return this;
+ }
+
+ /**
+ * Get the failure threshold.
+ *
+ * @return the failureThreshold value
+ */
+ public Integer failureThreshold() {
+ return this.failureThreshold;
+ }
+
+ /**
+ * Set the failure threshold.
+ *
+ * @param failureThreshold the failureThreshold value to set
+ * @return the ContainerProbe object itself.
+ */
+ public ContainerProbe withFailureThreshold(Integer failureThreshold) {
+ this.failureThreshold = failureThreshold;
+ return this;
+ }
+
+ /**
+ * Get the success threshold.
+ *
+ * @return the successThreshold value
+ */
+ public Integer successThreshold() {
+ return this.successThreshold;
+ }
+
+ /**
+ * Set the success threshold.
+ *
+ * @param successThreshold the successThreshold value to set
+ * @return the ContainerProbe object itself.
+ */
+ public ContainerProbe withSuccessThreshold(Integer successThreshold) {
+ this.successThreshold = successThreshold;
+ return this;
+ }
+
+ /**
+ * Get the timeout seconds.
+ *
+ * @return the timeoutSeconds value
+ */
+ public Integer timeoutSeconds() {
+ return this.timeoutSeconds;
+ }
+
+ /**
+ * Set the timeout seconds.
+ *
+ * @param timeoutSeconds the timeoutSeconds value to set
+ * @return the ContainerProbe object itself.
+ */
+ public ContainerProbe withTimeoutSeconds(Integer timeoutSeconds) {
+ this.timeoutSeconds = timeoutSeconds;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerPropertiesInstanceView.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerPropertiesInstanceView.java
new file mode 100644
index 000000000000..a0e1d9bd1cbf
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerPropertiesInstanceView.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The instance view of the container instance. Only valid in response.
+ */
+public class ContainerPropertiesInstanceView {
+ /**
+ * The number of times that the container instance has been restarted.
+ */
+ @JsonProperty(value = "restartCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer restartCount;
+
+ /**
+ * Current container instance state.
+ */
+ @JsonProperty(value = "currentState", access = JsonProperty.Access.WRITE_ONLY)
+ private ContainerState currentState;
+
+ /**
+ * Previous container instance state.
+ */
+ @JsonProperty(value = "previousState", access = JsonProperty.Access.WRITE_ONLY)
+ private ContainerState previousState;
+
+ /**
+ * The events of the container instance.
+ */
+ @JsonProperty(value = "events", access = JsonProperty.Access.WRITE_ONLY)
+ private List events;
+
+ /**
+ * Get the number of times that the container instance has been restarted.
+ *
+ * @return the restartCount value
+ */
+ public Integer restartCount() {
+ return this.restartCount;
+ }
+
+ /**
+ * Get current container instance state.
+ *
+ * @return the currentState value
+ */
+ public ContainerState currentState() {
+ return this.currentState;
+ }
+
+ /**
+ * Get previous container instance state.
+ *
+ * @return the previousState value
+ */
+ public ContainerState previousState() {
+ return this.previousState;
+ }
+
+ /**
+ * Get the events of the container instance.
+ *
+ * @return the events value
+ */
+ public List events() {
+ return this.events;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerState.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerState.java
new file mode 100644
index 000000000000..224076ba3cfb
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ContainerState.java
@@ -0,0 +1,149 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The container instance state.
+ */
+public class ContainerState {
+ /**
+ * The state of the container instance.
+ */
+ @JsonProperty(value = "state")
+ private String state;
+
+ /**
+ * The date-time when the container instance state started.
+ */
+ @JsonProperty(value = "startTime")
+ private DateTime startTime;
+
+ /**
+ * The container instance exit codes correspond to those from the `docker
+ * run` command.
+ */
+ @JsonProperty(value = "exitCode")
+ private Integer exitCode;
+
+ /**
+ * The date-time when the container instance state finished.
+ */
+ @JsonProperty(value = "finishTime")
+ private DateTime finishTime;
+
+ /**
+ * The human-readable status of the container instance state.
+ */
+ @JsonProperty(value = "detailStatus")
+ private String detailStatus;
+
+ /**
+ * Get the state of the container instance.
+ *
+ * @return the state value
+ */
+ public String state() {
+ return this.state;
+ }
+
+ /**
+ * Set the state of the container instance.
+ *
+ * @param state the state value to set
+ * @return the ContainerState object itself.
+ */
+ public ContainerState withState(String state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get the date-time when the container instance state started.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the date-time when the container instance state started.
+ *
+ * @param startTime the startTime value to set
+ * @return the ContainerState object itself.
+ */
+ public ContainerState withStartTime(DateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get the container instance exit codes correspond to those from the `docker run` command.
+ *
+ * @return the exitCode value
+ */
+ public Integer exitCode() {
+ return this.exitCode;
+ }
+
+ /**
+ * Set the container instance exit codes correspond to those from the `docker run` command.
+ *
+ * @param exitCode the exitCode value to set
+ * @return the ContainerState object itself.
+ */
+ public ContainerState withExitCode(Integer exitCode) {
+ this.exitCode = exitCode;
+ return this;
+ }
+
+ /**
+ * Get the date-time when the container instance state finished.
+ *
+ * @return the finishTime value
+ */
+ public DateTime finishTime() {
+ return this.finishTime;
+ }
+
+ /**
+ * Set the date-time when the container instance state finished.
+ *
+ * @param finishTime the finishTime value to set
+ * @return the ContainerState object itself.
+ */
+ public ContainerState withFinishTime(DateTime finishTime) {
+ this.finishTime = finishTime;
+ return this;
+ }
+
+ /**
+ * Get the human-readable status of the container instance state.
+ *
+ * @return the detailStatus value
+ */
+ public String detailStatus() {
+ return this.detailStatus;
+ }
+
+ /**
+ * Set the human-readable status of the container instance state.
+ *
+ * @param detailStatus the detailStatus value to set
+ * @return the ContainerState object itself.
+ */
+ public ContainerState withDetailStatus(String detailStatus) {
+ this.detailStatus = detailStatus;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Containers.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Containers.java
new file mode 100644
index 000000000000..913f067a196c
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Containers.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing Containers.
+ */
+public interface Containers {
+ /**
+ * Get the logs for a specified container instance.
+ * Get the logs for a specified container instance in a specified resource group and container group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerName The name of the container instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listLogsAsync(String resourceGroupName, String containerGroupName, String containerName);
+
+ /**
+ * Executes a command in a specific container instance.
+ * Executes a command for a specific container instance in a specified resource group and container group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerName The name of the container instance.
+ * @param containerExecRequest The request for the exec command.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable executeCommandAsync(String resourceGroupName, String containerGroupName, String containerName, ContainerExecRequest containerExecRequest);
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/EnvironmentVariable.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/EnvironmentVariable.java
new file mode 100644
index 000000000000..bb444e09ad42
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/EnvironmentVariable.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The environment variable to set within the container instance.
+ */
+public class EnvironmentVariable {
+ /**
+ * The name of the environment variable.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The value of the environment variable.
+ */
+ @JsonProperty(value = "value")
+ private String value;
+
+ /**
+ * The value of the secure environment variable.
+ */
+ @JsonProperty(value = "secureValue")
+ private String secureValue;
+
+ /**
+ * Get the name of the environment variable.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the environment variable.
+ *
+ * @param name the name value to set
+ * @return the EnvironmentVariable object itself.
+ */
+ public EnvironmentVariable withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the value of the environment variable.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value of the environment variable.
+ *
+ * @param value the value value to set
+ * @return the EnvironmentVariable object itself.
+ */
+ public EnvironmentVariable withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get the value of the secure environment variable.
+ *
+ * @return the secureValue value
+ */
+ public String secureValue() {
+ return this.secureValue;
+ }
+
+ /**
+ * Set the value of the secure environment variable.
+ *
+ * @param secureValue the secureValue value to set
+ * @return the EnvironmentVariable object itself.
+ */
+ public EnvironmentVariable withSecureValue(String secureValue) {
+ this.secureValue = secureValue;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Event.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Event.java
new file mode 100644
index 000000000000..df934be840a7
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Event.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A container group or container instance event.
+ */
+public class Event {
+ /**
+ * The count of the event.
+ */
+ @JsonProperty(value = "count")
+ private Integer count;
+
+ /**
+ * The date-time of the earliest logged event.
+ */
+ @JsonProperty(value = "firstTimestamp")
+ private DateTime firstTimestamp;
+
+ /**
+ * The date-time of the latest logged event.
+ */
+ @JsonProperty(value = "lastTimestamp")
+ private DateTime lastTimestamp;
+
+ /**
+ * The event name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The event message.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * The event type.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get the count of the event.
+ *
+ * @return the count value
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set the count of the event.
+ *
+ * @param count the count value to set
+ * @return the Event object itself.
+ */
+ public Event withCount(Integer count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get the date-time of the earliest logged event.
+ *
+ * @return the firstTimestamp value
+ */
+ public DateTime firstTimestamp() {
+ return this.firstTimestamp;
+ }
+
+ /**
+ * Set the date-time of the earliest logged event.
+ *
+ * @param firstTimestamp the firstTimestamp value to set
+ * @return the Event object itself.
+ */
+ public Event withFirstTimestamp(DateTime firstTimestamp) {
+ this.firstTimestamp = firstTimestamp;
+ return this;
+ }
+
+ /**
+ * Get the date-time of the latest logged event.
+ *
+ * @return the lastTimestamp value
+ */
+ public DateTime lastTimestamp() {
+ return this.lastTimestamp;
+ }
+
+ /**
+ * Set the date-time of the latest logged event.
+ *
+ * @param lastTimestamp the lastTimestamp value to set
+ * @return the Event object itself.
+ */
+ public Event withLastTimestamp(DateTime lastTimestamp) {
+ this.lastTimestamp = lastTimestamp;
+ return this;
+ }
+
+ /**
+ * Get the event name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the event name.
+ *
+ * @param name the name value to set
+ * @return the Event object itself.
+ */
+ public Event withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the event message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set the event message.
+ *
+ * @param message the message value to set
+ * @return the Event object itself.
+ */
+ public Event withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Get the event type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the event type.
+ *
+ * @param type the type value to set
+ * @return the Event object itself.
+ */
+ public Event withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/GitRepoVolume.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/GitRepoVolume.java
new file mode 100644
index 000000000000..c98fd5633bd0
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/GitRepoVolume.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a volume that is populated with the contents of a git repository.
+ */
+public class GitRepoVolume {
+ /**
+ * Target directory name. Must not contain or start with '..'. If '.' is
+ * supplied, the volume directory will be the git repository. Otherwise,
+ * if specified, the volume will contain the git repository in the
+ * subdirectory with the given name.
+ */
+ @JsonProperty(value = "directory")
+ private String directory;
+
+ /**
+ * Repository URL.
+ */
+ @JsonProperty(value = "repository", required = true)
+ private String repository;
+
+ /**
+ * Commit hash for the specified revision.
+ */
+ @JsonProperty(value = "revision")
+ private String revision;
+
+ /**
+ * Get target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
+ *
+ * @return the directory value
+ */
+ public String directory() {
+ return this.directory;
+ }
+
+ /**
+ * Set target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
+ *
+ * @param directory the directory value to set
+ * @return the GitRepoVolume object itself.
+ */
+ public GitRepoVolume withDirectory(String directory) {
+ this.directory = directory;
+ return this;
+ }
+
+ /**
+ * Get repository URL.
+ *
+ * @return the repository value
+ */
+ public String repository() {
+ return this.repository;
+ }
+
+ /**
+ * Set repository URL.
+ *
+ * @param repository the repository value to set
+ * @return the GitRepoVolume object itself.
+ */
+ public GitRepoVolume withRepository(String repository) {
+ this.repository = repository;
+ return this;
+ }
+
+ /**
+ * Get commit hash for the specified revision.
+ *
+ * @return the revision value
+ */
+ public String revision() {
+ return this.revision;
+ }
+
+ /**
+ * Set commit hash for the specified revision.
+ *
+ * @param revision the revision value to set
+ * @return the GitRepoVolume object itself.
+ */
+ public GitRepoVolume withRevision(String revision) {
+ this.revision = revision;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ImageRegistryCredential.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ImageRegistryCredential.java
new file mode 100644
index 000000000000..925fccbbaf18
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ImageRegistryCredential.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Image registry credential.
+ */
+public class ImageRegistryCredential {
+ /**
+ * The Docker image registry server without a protocol such as "http" and
+ * "https".
+ */
+ @JsonProperty(value = "server", required = true)
+ private String server;
+
+ /**
+ * The username for the private registry.
+ */
+ @JsonProperty(value = "username", required = true)
+ private String username;
+
+ /**
+ * The password for the private registry.
+ */
+ @JsonProperty(value = "password")
+ private String password;
+
+ /**
+ * Get the Docker image registry server without a protocol such as "http" and "https".
+ *
+ * @return the server value
+ */
+ public String server() {
+ return this.server;
+ }
+
+ /**
+ * Set the Docker image registry server without a protocol such as "http" and "https".
+ *
+ * @param server the server value to set
+ * @return the ImageRegistryCredential object itself.
+ */
+ public ImageRegistryCredential withServer(String server) {
+ this.server = server;
+ return this;
+ }
+
+ /**
+ * Get the username for the private registry.
+ *
+ * @return the username value
+ */
+ public String username() {
+ return this.username;
+ }
+
+ /**
+ * Set the username for the private registry.
+ *
+ * @param username the username value to set
+ * @return the ImageRegistryCredential object itself.
+ */
+ public ImageRegistryCredential withUsername(String username) {
+ this.username = username;
+ return this;
+ }
+
+ /**
+ * Get the password for the private registry.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set the password for the private registry.
+ *
+ * @param password the password value to set
+ * @return the ImageRegistryCredential object itself.
+ */
+ public ImageRegistryCredential withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/IpAddress.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/IpAddress.java
new file mode 100644
index 000000000000..b508a11064c4
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/IpAddress.java
@@ -0,0 +1,138 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * IP address for the container group.
+ */
+public class IpAddress {
+ /**
+ * The list of ports exposed on the container group.
+ */
+ @JsonProperty(value = "ports", required = true)
+ private List ports;
+
+ /**
+ * Specifies if the IP is exposed to the public internet or private VNET.
+ * Possible values include: 'Public', 'Private'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private ContainerGroupIpAddressType type;
+
+ /**
+ * The IP exposed to the public internet.
+ */
+ @JsonProperty(value = "ip")
+ private String ip;
+
+ /**
+ * The Dns name label for the IP.
+ */
+ @JsonProperty(value = "dnsNameLabel")
+ private String dnsNameLabel;
+
+ /**
+ * The FQDN for the IP.
+ */
+ @JsonProperty(value = "fqdn", access = JsonProperty.Access.WRITE_ONLY)
+ private String fqdn;
+
+ /**
+ * Get the list of ports exposed on the container group.
+ *
+ * @return the ports value
+ */
+ public List ports() {
+ return this.ports;
+ }
+
+ /**
+ * Set the list of ports exposed on the container group.
+ *
+ * @param ports the ports value to set
+ * @return the IpAddress object itself.
+ */
+ public IpAddress withPorts(List ports) {
+ this.ports = ports;
+ return this;
+ }
+
+ /**
+ * Get specifies if the IP is exposed to the public internet or private VNET. Possible values include: 'Public', 'Private'.
+ *
+ * @return the type value
+ */
+ public ContainerGroupIpAddressType type() {
+ return this.type;
+ }
+
+ /**
+ * Set specifies if the IP is exposed to the public internet or private VNET. Possible values include: 'Public', 'Private'.
+ *
+ * @param type the type value to set
+ * @return the IpAddress object itself.
+ */
+ public IpAddress withType(ContainerGroupIpAddressType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the IP exposed to the public internet.
+ *
+ * @return the ip value
+ */
+ public String ip() {
+ return this.ip;
+ }
+
+ /**
+ * Set the IP exposed to the public internet.
+ *
+ * @param ip the ip value to set
+ * @return the IpAddress object itself.
+ */
+ public IpAddress withIp(String ip) {
+ this.ip = ip;
+ return this;
+ }
+
+ /**
+ * Get the Dns name label for the IP.
+ *
+ * @return the dnsNameLabel value
+ */
+ public String dnsNameLabel() {
+ return this.dnsNameLabel;
+ }
+
+ /**
+ * Set the Dns name label for the IP.
+ *
+ * @param dnsNameLabel the dnsNameLabel value to set
+ * @return the IpAddress object itself.
+ */
+ public IpAddress withDnsNameLabel(String dnsNameLabel) {
+ this.dnsNameLabel = dnsNameLabel;
+ return this;
+ }
+
+ /**
+ * Get the FQDN for the IP.
+ *
+ * @return the fqdn value
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/LogAnalytics.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/LogAnalytics.java
new file mode 100644
index 000000000000..332f45245dc7
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/LogAnalytics.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Container group log analytics information.
+ */
+public class LogAnalytics {
+ /**
+ * The workspace id for log analytics.
+ */
+ @JsonProperty(value = "workspaceId", required = true)
+ private String workspaceId;
+
+ /**
+ * The workspace key for log analytics.
+ */
+ @JsonProperty(value = "workspaceKey", required = true)
+ private String workspaceKey;
+
+ /**
+ * The log type to be used. Possible values include: 'ContainerInsights',
+ * 'ContainerInstanceLogs'.
+ */
+ @JsonProperty(value = "logType")
+ private LogAnalyticsLogType logType;
+
+ /**
+ * Metadata for log analytics.
+ */
+ @JsonProperty(value = "metadata")
+ private Map metadata;
+
+ /**
+ * Get the workspace id for log analytics.
+ *
+ * @return the workspaceId value
+ */
+ public String workspaceId() {
+ return this.workspaceId;
+ }
+
+ /**
+ * Set the workspace id for log analytics.
+ *
+ * @param workspaceId the workspaceId value to set
+ * @return the LogAnalytics object itself.
+ */
+ public LogAnalytics withWorkspaceId(String workspaceId) {
+ this.workspaceId = workspaceId;
+ return this;
+ }
+
+ /**
+ * Get the workspace key for log analytics.
+ *
+ * @return the workspaceKey value
+ */
+ public String workspaceKey() {
+ return this.workspaceKey;
+ }
+
+ /**
+ * Set the workspace key for log analytics.
+ *
+ * @param workspaceKey the workspaceKey value to set
+ * @return the LogAnalytics object itself.
+ */
+ public LogAnalytics withWorkspaceKey(String workspaceKey) {
+ this.workspaceKey = workspaceKey;
+ return this;
+ }
+
+ /**
+ * Get the log type to be used. Possible values include: 'ContainerInsights', 'ContainerInstanceLogs'.
+ *
+ * @return the logType value
+ */
+ public LogAnalyticsLogType logType() {
+ return this.logType;
+ }
+
+ /**
+ * Set the log type to be used. Possible values include: 'ContainerInsights', 'ContainerInstanceLogs'.
+ *
+ * @param logType the logType value to set
+ * @return the LogAnalytics object itself.
+ */
+ public LogAnalytics withLogType(LogAnalyticsLogType logType) {
+ this.logType = logType;
+ return this;
+ }
+
+ /**
+ * Get metadata for log analytics.
+ *
+ * @return the metadata value
+ */
+ public Map metadata() {
+ return this.metadata;
+ }
+
+ /**
+ * Set metadata for log analytics.
+ *
+ * @param metadata the metadata value to set
+ * @return the LogAnalytics object itself.
+ */
+ public LogAnalytics withMetadata(Map metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/LogAnalyticsLogType.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/LogAnalyticsLogType.java
new file mode 100644
index 000000000000..f51604c7a1e5
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/LogAnalyticsLogType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LogAnalyticsLogType.
+ */
+public final class LogAnalyticsLogType extends ExpandableStringEnum {
+ /** Static value ContainerInsights for LogAnalyticsLogType. */
+ public static final LogAnalyticsLogType CONTAINER_INSIGHTS = fromString("ContainerInsights");
+
+ /** Static value ContainerInstanceLogs for LogAnalyticsLogType. */
+ public static final LogAnalyticsLogType CONTAINER_INSTANCE_LOGS = fromString("ContainerInstanceLogs");
+
+ /**
+ * Creates or finds a LogAnalyticsLogType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LogAnalyticsLogType
+ */
+ @JsonCreator
+ public static LogAnalyticsLogType fromString(String name) {
+ return fromString(name, LogAnalyticsLogType.class);
+ }
+
+ /**
+ * @return known LogAnalyticsLogType values
+ */
+ public static Collection values() {
+ return values(LogAnalyticsLogType.class);
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Logs.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Logs.java
new file mode 100644
index 000000000000..3fc3a7668a91
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Logs.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerInstanceManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.LogsInner;
+
+/**
+ * Type representing Logs.
+ */
+public interface Logs extends HasInner, HasManager {
+ /**
+ * @return the content value.
+ */
+ String content();
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperatingSystemTypes.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperatingSystemTypes.java
new file mode 100644
index 000000000000..9dd60f907475
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperatingSystemTypes.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OperatingSystemTypes.
+ */
+public final class OperatingSystemTypes extends ExpandableStringEnum {
+ /** Static value Windows for OperatingSystemTypes. */
+ public static final OperatingSystemTypes WINDOWS = fromString("Windows");
+
+ /** Static value Linux for OperatingSystemTypes. */
+ public static final OperatingSystemTypes LINUX = fromString("Linux");
+
+ /**
+ * Creates or finds a OperatingSystemTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OperatingSystemTypes
+ */
+ @JsonCreator
+ public static OperatingSystemTypes fromString(String name) {
+ return fromString(name, OperatingSystemTypes.class);
+ }
+
+ /**
+ * @return known OperatingSystemTypes values
+ */
+ public static Collection values() {
+ return values(OperatingSystemTypes.class);
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperationDisplay.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperationDisplay.java
new file mode 100644
index 000000000000..0b35c48a0e30
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The display information of the operation.
+ */
+public class OperationDisplay {
+ /**
+ * The name of the provider of the operation.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * The name of the resource type of the operation.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * The friendly 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 of the operation.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set the name of the provider of the operation.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get the name of the resource type of the operation.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the name of the resource type of the operation.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get the friendly name of the operation.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set the friendly name of the operation.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay 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 OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperationListResult.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperationListResult.java
new file mode 100644
index 000000000000..cddeee8a00f9
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/OperationListResult.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerInstanceManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.OperationListResultInner;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.OperationInner;
+import java.util.List;
+
+/**
+ * Type representing OperationListResult.
+ */
+public interface OperationListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Operations.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Operations.java
new file mode 100644
index 000000000000..196779d73e9b
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * List the operations for Azure Container Instance service.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Port.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Port.java
new file mode 100644
index 000000000000..6a41ebd189a0
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Port.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.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The port exposed on the container group.
+ */
+public class Port {
+ /**
+ * The protocol associated with the port. Possible values include: 'TCP',
+ * 'UDP'.
+ */
+ @JsonProperty(value = "protocol")
+ private ContainerGroupNetworkProtocol protocol;
+
+ /**
+ * The port number.
+ */
+ @JsonProperty(value = "port", required = true)
+ private int port;
+
+ /**
+ * Get the protocol associated with the port. Possible values include: 'TCP', 'UDP'.
+ *
+ * @return the protocol value
+ */
+ public ContainerGroupNetworkProtocol protocol() {
+ return this.protocol;
+ }
+
+ /**
+ * Set the protocol associated with the port. Possible values include: 'TCP', 'UDP'.
+ *
+ * @param protocol the protocol value to set
+ * @return the Port object itself.
+ */
+ public Port withProtocol(ContainerGroupNetworkProtocol protocol) {
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * Get the port number.
+ *
+ * @return the port value
+ */
+ public int port() {
+ return this.port;
+ }
+
+ /**
+ * Set the port number.
+ *
+ * @param port the port value to set
+ * @return the Port object itself.
+ */
+ public Port withPort(int port) {
+ this.port = port;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceIdentityType.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceIdentityType.java
new file mode 100644
index 000000000000..8a9c82be871d
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceIdentityType.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ResourceIdentityType.
+ */
+public enum ResourceIdentityType {
+ /** Enum value SystemAssigned. */
+ SYSTEM_ASSIGNED("SystemAssigned"),
+
+ /** Enum value UserAssigned. */
+ USER_ASSIGNED("UserAssigned"),
+
+ /** Enum value SystemAssigned, UserAssigned. */
+ SYSTEM_ASSIGNED_USER_ASSIGNED("SystemAssigned, UserAssigned"),
+
+ /** Enum value None. */
+ NONE("None");
+
+ /** The actual serialized value for a ResourceIdentityType instance. */
+ private String value;
+
+ ResourceIdentityType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ResourceIdentityType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ResourceIdentityType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ResourceIdentityType fromString(String value) {
+ ResourceIdentityType[] items = ResourceIdentityType.values();
+ for (ResourceIdentityType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceLimits.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceLimits.java
new file mode 100644
index 000000000000..96732bca4637
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceLimits.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource limits.
+ */
+public class ResourceLimits {
+ /**
+ * The memory limit in GB of this container instance.
+ */
+ @JsonProperty(value = "memoryInGB")
+ private Double memoryInGB;
+
+ /**
+ * The CPU limit of this container instance.
+ */
+ @JsonProperty(value = "cpu")
+ private Double cpu;
+
+ /**
+ * Get the memory limit in GB of this container instance.
+ *
+ * @return the memoryInGB value
+ */
+ public Double memoryInGB() {
+ return this.memoryInGB;
+ }
+
+ /**
+ * Set the memory limit in GB of this container instance.
+ *
+ * @param memoryInGB the memoryInGB value to set
+ * @return the ResourceLimits object itself.
+ */
+ public ResourceLimits withMemoryInGB(Double memoryInGB) {
+ this.memoryInGB = memoryInGB;
+ return this;
+ }
+
+ /**
+ * Get the CPU limit of this container instance.
+ *
+ * @return the cpu value
+ */
+ public Double cpu() {
+ return this.cpu;
+ }
+
+ /**
+ * Set the CPU limit of this container instance.
+ *
+ * @param cpu the cpu value to set
+ * @return the ResourceLimits object itself.
+ */
+ public ResourceLimits withCpu(Double cpu) {
+ this.cpu = cpu;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceRequests.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceRequests.java
new file mode 100644
index 000000000000..cc2946839866
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceRequests.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource requests.
+ */
+public class ResourceRequests {
+ /**
+ * The memory request in GB of this container instance.
+ */
+ @JsonProperty(value = "memoryInGB", required = true)
+ private double memoryInGB;
+
+ /**
+ * The CPU request of this container instance.
+ */
+ @JsonProperty(value = "cpu", required = true)
+ private double cpu;
+
+ /**
+ * Get the memory request in GB of this container instance.
+ *
+ * @return the memoryInGB value
+ */
+ public double memoryInGB() {
+ return this.memoryInGB;
+ }
+
+ /**
+ * Set the memory request in GB of this container instance.
+ *
+ * @param memoryInGB the memoryInGB value to set
+ * @return the ResourceRequests object itself.
+ */
+ public ResourceRequests withMemoryInGB(double memoryInGB) {
+ this.memoryInGB = memoryInGB;
+ return this;
+ }
+
+ /**
+ * Get the CPU request of this container instance.
+ *
+ * @return the cpu value
+ */
+ public double cpu() {
+ return this.cpu;
+ }
+
+ /**
+ * Set the CPU request of this container instance.
+ *
+ * @param cpu the cpu value to set
+ * @return the ResourceRequests object itself.
+ */
+ public ResourceRequests withCpu(double cpu) {
+ this.cpu = cpu;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceRequirements.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceRequirements.java
new file mode 100644
index 000000000000..61e206bcb542
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ResourceRequirements.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource requirements.
+ */
+public class ResourceRequirements {
+ /**
+ * The resource requests of this container instance.
+ */
+ @JsonProperty(value = "requests", required = true)
+ private ResourceRequests requests;
+
+ /**
+ * The resource limits of this container instance.
+ */
+ @JsonProperty(value = "limits")
+ private ResourceLimits limits;
+
+ /**
+ * Get the resource requests of this container instance.
+ *
+ * @return the requests value
+ */
+ public ResourceRequests requests() {
+ return this.requests;
+ }
+
+ /**
+ * Set the resource requests of this container instance.
+ *
+ * @param requests the requests value to set
+ * @return the ResourceRequirements object itself.
+ */
+ public ResourceRequirements withRequests(ResourceRequests requests) {
+ this.requests = requests;
+ return this;
+ }
+
+ /**
+ * Get the resource limits of this container instance.
+ *
+ * @return the limits value
+ */
+ public ResourceLimits limits() {
+ return this.limits;
+ }
+
+ /**
+ * Set the resource limits of this container instance.
+ *
+ * @param limits the limits value to set
+ * @return the ResourceRequirements object itself.
+ */
+ public ResourceRequirements withLimits(ResourceLimits limits) {
+ this.limits = limits;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ServiceAssociationLinks.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ServiceAssociationLinks.java
new file mode 100644
index 000000000000..c8c542ec2501
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/ServiceAssociationLinks.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import rx.Completable;
+
+/**
+ * Type representing ServiceAssociationLinks.
+ */
+public interface ServiceAssociationLinks {
+ /**
+ * Delete the container instance service association link for the subnet.
+ * Delete the container instance service association link for the subnet. This operation unblocks user from deleting subnet.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName The name of the virtual network.
+ * @param subnetName The name of the subnet.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String virtualNetworkName, String subnetName);
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Usage.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Usage.java
new file mode 100644
index 000000000000..1da7934de5b2
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Usage.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A single usage result.
+ */
+public class Usage {
+ /**
+ * Unit of the usage result.
+ */
+ @JsonProperty(value = "unit", access = JsonProperty.Access.WRITE_ONLY)
+ private String unit;
+
+ /**
+ * The current usage of the resource.
+ */
+ @JsonProperty(value = "currentValue", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer currentValue;
+
+ /**
+ * The maximum permitted usage of the resource.
+ */
+ @JsonProperty(value = "limit", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer limit;
+
+ /**
+ * The name object of the resource.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private UsageName name;
+
+ /**
+ * Get unit of the usage result.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Get the current usage of the resource.
+ *
+ * @return the currentValue value
+ */
+ public Integer currentValue() {
+ return this.currentValue;
+ }
+
+ /**
+ * Get the maximum permitted usage of the resource.
+ *
+ * @return the limit value
+ */
+ public Integer limit() {
+ return this.limit;
+ }
+
+ /**
+ * Get the name object of the resource.
+ *
+ * @return the name value
+ */
+ public UsageName name() {
+ return this.name;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/UsageListResult.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/UsageListResult.java
new file mode 100644
index 000000000000..416a93751a90
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/UsageListResult.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.ContainerInstanceManager;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.implementation.UsageListResultInner;
+import java.util.List;
+
+/**
+ * Type representing UsageListResult.
+ */
+public interface UsageListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/UsageName.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/UsageName.java
new file mode 100644
index 000000000000..331c9f6a536f
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/UsageName.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.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The name object of the resource.
+ */
+public class UsageName {
+ /**
+ * The name of the resource.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private String value;
+
+ /**
+ * The localized name of the resource.
+ */
+ @JsonProperty(value = "localizedValue", access = JsonProperty.Access.WRITE_ONLY)
+ private String localizedValue;
+
+ /**
+ * Get the name of the resource.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Get the localized name of the resource.
+ *
+ * @return the localizedValue value
+ */
+ public String localizedValue() {
+ return this.localizedValue;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Volume.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Volume.java
new file mode 100644
index 000000000000..adc05730c45b
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/Volume.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.containerinstance.v2018_10_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of the volume.
+ */
+public class Volume {
+ /**
+ * The name of the volume.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The Azure File volume.
+ */
+ @JsonProperty(value = "azureFile")
+ private AzureFileVolume azureFile;
+
+ /**
+ * The empty directory volume.
+ */
+ @JsonProperty(value = "emptyDir")
+ private Object emptyDir;
+
+ /**
+ * The secret volume.
+ */
+ @JsonProperty(value = "secret")
+ private Map secret;
+
+ /**
+ * The git repo volume.
+ */
+ @JsonProperty(value = "gitRepo")
+ private GitRepoVolume gitRepo;
+
+ /**
+ * Get the name of the volume.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the volume.
+ *
+ * @param name the name value to set
+ * @return the Volume object itself.
+ */
+ public Volume withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the Azure File volume.
+ *
+ * @return the azureFile value
+ */
+ public AzureFileVolume azureFile() {
+ return this.azureFile;
+ }
+
+ /**
+ * Set the Azure File volume.
+ *
+ * @param azureFile the azureFile value to set
+ * @return the Volume object itself.
+ */
+ public Volume withAzureFile(AzureFileVolume azureFile) {
+ this.azureFile = azureFile;
+ return this;
+ }
+
+ /**
+ * Get the empty directory volume.
+ *
+ * @return the emptyDir value
+ */
+ public Object emptyDir() {
+ return this.emptyDir;
+ }
+
+ /**
+ * Set the empty directory volume.
+ *
+ * @param emptyDir the emptyDir value to set
+ * @return the Volume object itself.
+ */
+ public Volume withEmptyDir(Object emptyDir) {
+ this.emptyDir = emptyDir;
+ return this;
+ }
+
+ /**
+ * Get the secret volume.
+ *
+ * @return the secret value
+ */
+ public Map secret() {
+ return this.secret;
+ }
+
+ /**
+ * Set the secret volume.
+ *
+ * @param secret the secret value to set
+ * @return the Volume object itself.
+ */
+ public Volume withSecret(Map secret) {
+ this.secret = secret;
+ return this;
+ }
+
+ /**
+ * Get the git repo volume.
+ *
+ * @return the gitRepo value
+ */
+ public GitRepoVolume gitRepo() {
+ return this.gitRepo;
+ }
+
+ /**
+ * Set the git repo volume.
+ *
+ * @param gitRepo the gitRepo value to set
+ * @return the Volume object itself.
+ */
+ public Volume withGitRepo(GitRepoVolume gitRepo) {
+ this.gitRepo = gitRepo;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/VolumeMount.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/VolumeMount.java
new file mode 100644
index 000000000000..204590b1a950
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/VolumeMount.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of the volume mount.
+ */
+public class VolumeMount {
+ /**
+ * The name of the volume mount.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The path within the container where the volume should be mounted. Must
+ * not contain colon (:).
+ */
+ @JsonProperty(value = "mountPath", required = true)
+ private String mountPath;
+
+ /**
+ * The flag indicating whether the volume mount is read-only.
+ */
+ @JsonProperty(value = "readOnly")
+ private Boolean readOnly;
+
+ /**
+ * Get the name of the volume mount.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the volume mount.
+ *
+ * @param name the name value to set
+ * @return the VolumeMount object itself.
+ */
+ public VolumeMount withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the path within the container where the volume should be mounted. Must not contain colon (:).
+ *
+ * @return the mountPath value
+ */
+ public String mountPath() {
+ return this.mountPath;
+ }
+
+ /**
+ * Set the path within the container where the volume should be mounted. Must not contain colon (:).
+ *
+ * @param mountPath the mountPath value to set
+ * @return the VolumeMount object itself.
+ */
+ public VolumeMount withMountPath(String mountPath) {
+ this.mountPath = mountPath;
+ return this;
+ }
+
+ /**
+ * Get the flag indicating whether the volume mount is read-only.
+ *
+ * @return the readOnly value
+ */
+ public Boolean readOnly() {
+ return this.readOnly;
+ }
+
+ /**
+ * Set the flag indicating whether the volume mount is read-only.
+ *
+ * @param readOnly the readOnly value to set
+ * @return the VolumeMount object itself.
+ */
+ public VolumeMount withReadOnly(Boolean readOnly) {
+ this.readOnly = readOnly;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerExecResponseImpl.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerExecResponseImpl.java
new file mode 100644
index 000000000000..573cae4d68a6
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerExecResponseImpl.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01.implementation;
+
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerExecResponse;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+
+class ContainerExecResponseImpl extends WrapperImpl implements ContainerExecResponse {
+ private final ContainerInstanceManager manager;
+ ContainerExecResponseImpl(ContainerExecResponseInner inner, ContainerInstanceManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ContainerInstanceManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String password() {
+ return this.inner().password();
+ }
+
+ @Override
+ public String webSocketUri() {
+ return this.inner().webSocketUri();
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerExecResponseInner.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerExecResponseInner.java
new file mode 100644
index 000000000000..5efee9d6b1c5
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerExecResponseInner.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The information for the container exec command.
+ */
+public class ContainerExecResponseInner {
+ /**
+ * The uri for the exec websocket.
+ */
+ @JsonProperty(value = "webSocketUri")
+ private String webSocketUri;
+
+ /**
+ * The password to start the exec command.
+ */
+ @JsonProperty(value = "password")
+ private String password;
+
+ /**
+ * Get the uri for the exec websocket.
+ *
+ * @return the webSocketUri value
+ */
+ public String webSocketUri() {
+ return this.webSocketUri;
+ }
+
+ /**
+ * Set the uri for the exec websocket.
+ *
+ * @param webSocketUri the webSocketUri value to set
+ * @return the ContainerExecResponseInner object itself.
+ */
+ public ContainerExecResponseInner withWebSocketUri(String webSocketUri) {
+ this.webSocketUri = webSocketUri;
+ return this;
+ }
+
+ /**
+ * Get the password to start the exec command.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set the password to start the exec command.
+ *
+ * @param password the password value to set
+ * @return the ContainerExecResponseInner object itself.
+ */
+ public ContainerExecResponseInner withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupImpl.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupImpl.java
new file mode 100644
index 000000000000..fda0d91a01ef
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupImpl.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01.implementation;
+
+import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroup;
+import rx.Observable;
+import com.microsoft.azure.Resource;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupIdentity;
+import java.util.List;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ImageRegistryCredential;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupRestartPolicy;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.IpAddress;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.OperatingSystemTypes;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.Volume;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupPropertiesInstanceView;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupDiagnostics;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupNetworkProfile;
+import java.util.ArrayList;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.;
+import rx.functions.Func1;
+
+class ContainerGroupImpl extends GroupableResourceCoreImpl implements ContainerGroup, ContainerGroup.Definition, ContainerGroup.Update {
+ private Resource updateParameter;
+ ContainerGroupImpl(String name, ContainerGroupInner inner, ContainerInstanceManager manager) {
+ super(name, inner, manager);
+ this.updateParameter = new Resource();
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ ContainerGroupsInner client = this.manager().inner().containerGroups();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(new Func1() {
+ @Override
+ public ContainerGroupInner call(ContainerGroupInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ ContainerGroupsInner client = this.manager().inner().containerGroups();
+ return client.updateAsync(this.resourceGroupName(), this.name(), this.updateParameter)
+ .map(new Func1() {
+ @Override
+ public ContainerGroupInner call(ContainerGroupInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ ContainerGroupsInner client = this.manager().inner().containerGroups();
+ return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+ private void resetCreateUpdateParameters() {
+ this.updateParameter = new Resource();
+ }
+
+ @Override
+ public List containers() {
+ return this.inner().containers();
+ }
+
+ @Override
+ public ContainerGroupDiagnostics diagnostics() {
+ return this.inner().diagnostics();
+ }
+
+ @Override
+ public ContainerGroupIdentity identity() {
+ return this.inner().identity();
+ }
+
+ @Override
+ public List imageRegistryCredentials() {
+ return this.inner().imageRegistryCredentials();
+ }
+
+ @Override
+ public ContainerGroupPropertiesInstanceView instanceView() {
+ return this.inner().instanceView();
+ }
+
+ @Override
+ public IpAddress ipAddress() {
+ return this.inner().ipAddress();
+ }
+
+ @Override
+ public ContainerGroupNetworkProfile networkProfile() {
+ return this.inner().networkProfile();
+ }
+
+ @Override
+ public OperatingSystemTypes osType() {
+ return this.inner().osType();
+ }
+
+ @Override
+ public String provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public ContainerGroupRestartPolicy restartPolicy() {
+ return this.inner().restartPolicy();
+ }
+
+ @Override
+ public List volumes() {
+ return this.inner().volumes();
+ }
+
+ @Override
+ public ContainerGroupImpl withContainers(List containers) {
+ this.inner().withContainers(containers);
+ return this;
+ }
+
+ @Override
+ public ContainerGroupImpl withOsType(OperatingSystemTypes osType) {
+ this.inner().withOsType(osType);
+ return this;
+ }
+
+ @Override
+ public ContainerGroupImpl withDiagnostics(ContainerGroupDiagnostics diagnostics) {
+ this.inner().withDiagnostics(diagnostics);
+ return this;
+ }
+
+ @Override
+ public ContainerGroupImpl withIdentity(ContainerGroupIdentity identity) {
+ this.inner().withIdentity(identity);
+ return this;
+ }
+
+ @Override
+ public ContainerGroupImpl withImageRegistryCredentials(List imageRegistryCredentials) {
+ this.inner().withImageRegistryCredentials(imageRegistryCredentials);
+ return this;
+ }
+
+ @Override
+ public ContainerGroupImpl withIpAddress(IpAddress ipAddress) {
+ this.inner().withIpAddress(ipAddress);
+ return this;
+ }
+
+ @Override
+ public ContainerGroupImpl withNetworkProfile(ContainerGroupNetworkProfile networkProfile) {
+ this.inner().withNetworkProfile(networkProfile);
+ return this;
+ }
+
+ @Override
+ public ContainerGroupImpl withRestartPolicy(ContainerGroupRestartPolicy restartPolicy) {
+ this.inner().withRestartPolicy(restartPolicy);
+ return this;
+ }
+
+ @Override
+ public ContainerGroupImpl withVolumes(List volumes) {
+ this.inner().withVolumes(volumes);
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupInner.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupInner.java
new file mode 100644
index 000000000000..327495bf409a
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupInner.java
@@ -0,0 +1,312 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01.implementation;
+
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupIdentity;
+import java.util.List;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ImageRegistryCredential;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupRestartPolicy;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.IpAddress;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.OperatingSystemTypes;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.Volume;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupPropertiesInstanceView;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupDiagnostics;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupNetworkProfile;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.rest.SkipParentValidation;
+import com.microsoft.azure.Resource;
+
+/**
+ * A container group.
+ */
+@JsonFlatten
+@SkipParentValidation
+public class ContainerGroupInner extends Resource {
+ /**
+ * The identity of the container group, if configured.
+ */
+ @JsonProperty(value = "identity")
+ private ContainerGroupIdentity identity;
+
+ /**
+ * The provisioning state of the container group. This only appears in the
+ * response.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * The containers within the container group.
+ */
+ @JsonProperty(value = "properties.containers", required = true)
+ private List containers;
+
+ /**
+ * The image registry credentials by which the container group is created
+ * from.
+ */
+ @JsonProperty(value = "properties.imageRegistryCredentials")
+ private List imageRegistryCredentials;
+
+ /**
+ * Restart policy for all containers within the container group.
+ * - `Always` Always restart
+ * - `OnFailure` Restart on failure
+ * - `Never` Never restart
+ * . Possible values include: 'Always', 'OnFailure', 'Never'.
+ */
+ @JsonProperty(value = "properties.restartPolicy")
+ private ContainerGroupRestartPolicy restartPolicy;
+
+ /**
+ * The IP address type of the container group.
+ */
+ @JsonProperty(value = "properties.ipAddress")
+ private IpAddress ipAddress;
+
+ /**
+ * The operating system type required by the containers in the container
+ * group. Possible values include: 'Windows', 'Linux'.
+ */
+ @JsonProperty(value = "properties.osType", required = true)
+ private OperatingSystemTypes osType;
+
+ /**
+ * The list of volumes that can be mounted by containers in this container
+ * group.
+ */
+ @JsonProperty(value = "properties.volumes")
+ private List volumes;
+
+ /**
+ * The instance view of the container group. Only valid in response.
+ */
+ @JsonProperty(value = "properties.instanceView", access = JsonProperty.Access.WRITE_ONLY)
+ private ContainerGroupPropertiesInstanceView instanceView;
+
+ /**
+ * The diagnostic information for a container group.
+ */
+ @JsonProperty(value = "properties.diagnostics")
+ private ContainerGroupDiagnostics diagnostics;
+
+ /**
+ * The network profile information for a container group.
+ */
+ @JsonProperty(value = "properties.networkProfile")
+ private ContainerGroupNetworkProfile networkProfile;
+
+ /**
+ * Get the identity of the container group, if configured.
+ *
+ * @return the identity value
+ */
+ public ContainerGroupIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity of the container group, if configured.
+ *
+ * @param identity the identity value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withIdentity(ContainerGroupIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the provisioning state of the container group. This only appears in the response.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the containers within the container group.
+ *
+ * @return the containers value
+ */
+ public List containers() {
+ return this.containers;
+ }
+
+ /**
+ * Set the containers within the container group.
+ *
+ * @param containers the containers value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withContainers(List containers) {
+ this.containers = containers;
+ return this;
+ }
+
+ /**
+ * Get the image registry credentials by which the container group is created from.
+ *
+ * @return the imageRegistryCredentials value
+ */
+ public List imageRegistryCredentials() {
+ return this.imageRegistryCredentials;
+ }
+
+ /**
+ * Set the image registry credentials by which the container group is created from.
+ *
+ * @param imageRegistryCredentials the imageRegistryCredentials value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withImageRegistryCredentials(List imageRegistryCredentials) {
+ this.imageRegistryCredentials = imageRegistryCredentials;
+ return this;
+ }
+
+ /**
+ * Get restart policy for all containers within the container group.
+ - `Always` Always restart
+ - `OnFailure` Restart on failure
+ - `Never` Never restart
+ . Possible values include: 'Always', 'OnFailure', 'Never'.
+ *
+ * @return the restartPolicy value
+ */
+ public ContainerGroupRestartPolicy restartPolicy() {
+ return this.restartPolicy;
+ }
+
+ /**
+ * Set restart policy for all containers within the container group.
+ - `Always` Always restart
+ - `OnFailure` Restart on failure
+ - `Never` Never restart
+ . Possible values include: 'Always', 'OnFailure', 'Never'.
+ *
+ * @param restartPolicy the restartPolicy value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withRestartPolicy(ContainerGroupRestartPolicy restartPolicy) {
+ this.restartPolicy = restartPolicy;
+ return this;
+ }
+
+ /**
+ * Get the IP address type of the container group.
+ *
+ * @return the ipAddress value
+ */
+ public IpAddress ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Set the IP address type of the container group.
+ *
+ * @param ipAddress the ipAddress value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withIpAddress(IpAddress ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+ /**
+ * Get the operating system type required by the containers in the container group. Possible values include: 'Windows', 'Linux'.
+ *
+ * @return the osType value
+ */
+ public OperatingSystemTypes osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the operating system type required by the containers in the container group. Possible values include: 'Windows', 'Linux'.
+ *
+ * @param osType the osType value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withOsType(OperatingSystemTypes osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the list of volumes that can be mounted by containers in this container group.
+ *
+ * @return the volumes value
+ */
+ public List volumes() {
+ return this.volumes;
+ }
+
+ /**
+ * Set the list of volumes that can be mounted by containers in this container group.
+ *
+ * @param volumes the volumes value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withVolumes(List volumes) {
+ this.volumes = volumes;
+ return this;
+ }
+
+ /**
+ * Get the instance view of the container group. Only valid in response.
+ *
+ * @return the instanceView value
+ */
+ public ContainerGroupPropertiesInstanceView instanceView() {
+ return this.instanceView;
+ }
+
+ /**
+ * Get the diagnostic information for a container group.
+ *
+ * @return the diagnostics value
+ */
+ public ContainerGroupDiagnostics diagnostics() {
+ return this.diagnostics;
+ }
+
+ /**
+ * Set the diagnostic information for a container group.
+ *
+ * @param diagnostics the diagnostics value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withDiagnostics(ContainerGroupDiagnostics diagnostics) {
+ this.diagnostics = diagnostics;
+ return this;
+ }
+
+ /**
+ * Get the network profile information for a container group.
+ *
+ * @return the networkProfile value
+ */
+ public ContainerGroupNetworkProfile networkProfile() {
+ return this.networkProfile;
+ }
+
+ /**
+ * Set the network profile information for a container group.
+ *
+ * @param networkProfile the networkProfile value to set
+ * @return the ContainerGroupInner object itself.
+ */
+ public ContainerGroupInner withNetworkProfile(ContainerGroupNetworkProfile networkProfile) {
+ this.networkProfile = networkProfile;
+ return this;
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupUsagesImpl.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupUsagesImpl.java
new file mode 100644
index 000000000000..566bdf198436
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupUsagesImpl.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * abc
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupUsages;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.UsageListResult;
+
+class ContainerGroupUsagesImpl extends WrapperImpl implements ContainerGroupUsages {
+ private final ContainerInstanceManager manager;
+
+ ContainerGroupUsagesImpl(ContainerInstanceManager manager) {
+ super(manager.inner().containerGroupUsages());
+ this.manager = manager;
+ }
+
+ public ContainerInstanceManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable listAsync(String location) {
+ ContainerGroupUsagesInner client = this.inner();
+ return client.listAsync(location)
+ .map(new Func1() {
+ @Override
+ public UsageListResult call(UsageListResultInner inner) {
+ return new UsageListResultImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupUsagesInner.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupUsagesInner.java
new file mode 100644
index 000000000000..021ce0305a99
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupUsagesInner.java
@@ -0,0 +1,139 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01.implementation;
+
+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 java.io.IOException;
+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 ContainerGroupUsages.
+ */
+public class ContainerGroupUsagesInner {
+ /** The Retrofit service to perform REST calls. */
+ private ContainerGroupUsagesService service;
+ /** The service client containing this operation class. */
+ private ContainerInstanceManagementClientImpl client;
+
+ /**
+ * Initializes an instance of ContainerGroupUsagesInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public ContainerGroupUsagesInner(Retrofit retrofit, ContainerInstanceManagementClientImpl client) {
+ this.service = retrofit.create(ContainerGroupUsagesService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ContainerGroupUsages to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ContainerGroupUsagesService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroupUsages list" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.ContainerInstance/locations/{location}/usages")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Path("location") String location, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Get the usage for a subscription.
+ *
+ * @param location The identifier for the physical azure location.
+ * @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 UsageListResultInner object if successful.
+ */
+ public UsageListResultInner list(String location) {
+ return listWithServiceResponseAsync(location).toBlocking().single().body();
+ }
+
+ /**
+ * Get the usage for a subscription.
+ *
+ * @param location The identifier for the physical azure location.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture listAsync(String location, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(listWithServiceResponseAsync(location), serviceCallback);
+ }
+
+ /**
+ * Get the usage for a subscription.
+ *
+ * @param location The identifier for the physical azure location.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the UsageListResultInner object
+ */
+ public Observable listAsync(String location) {
+ return listWithServiceResponseAsync(location).map(new Func1, UsageListResultInner>() {
+ @Override
+ public UsageListResultInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Get the usage for a subscription.
+ *
+ * @param location The identifier for the physical azure location.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the UsageListResultInner object
+ */
+ public Observable> listWithServiceResponseAsync(String location) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (location == null) {
+ throw new IllegalArgumentException("Parameter location 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(), location, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = listDelegate(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().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupsImpl.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupsImpl.java
new file mode 100644
index 000000000000..fe33eecd4ccd
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupsImpl.java
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights 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.containerinstance.v2018_10_01.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroups;
+import com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroup;
+import rx.Observable;
+import rx.Completable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import com.microsoft.azure.arm.resources.ResourceUtilsCore;
+import com.microsoft.azure.arm.utils.RXMapper;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+
+class ContainerGroupsImpl extends GroupableResourcesCoreImpl implements ContainerGroups {
+ protected ContainerGroupsImpl(ContainerInstanceManager manager) {
+ super(manager.inner().containerGroups(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ ContainerGroupsInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ ContainerGroupsInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, name).toCompletable();
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(Collection ids) {
+ if (ids == null || ids.isEmpty()) {
+ return Observable.empty();
+ }
+ Collection> observables = new ArrayList<>();
+ for (String id : ids) {
+ final String resourceGroupName = ResourceUtilsCore.groupFromResourceId(id);
+ final String name = ResourceUtilsCore.nameFromResourceId(id);
+ Observable o = RXMapper.map(this.inner().deleteAsync(resourceGroupName, name), id);
+ observables.add(o);
+ }
+ return Observable.mergeDelayError(observables);
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(String...ids) {
+ return this.deleteByIdsAsync(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public void deleteByIds(Collection ids) {
+ if (ids != null && !ids.isEmpty()) {
+ this.deleteByIdsAsync(ids).toBlocking().last();
+ }
+ }
+
+ @Override
+ public void deleteByIds(String...ids) {
+ this.deleteByIds(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public PagedList listByResourceGroup(String resourceGroupName) {
+ ContainerGroupsInner client = this.inner();
+ return this.wrapList(client.listByResourceGroup(resourceGroupName));
+ }
+
+ @Override
+ public Observable listByResourceGroupAsync(String resourceGroupName) {
+ ContainerGroupsInner client = this.inner();
+ return client.listByResourceGroupAsync(resourceGroupName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public ContainerGroup call(ContainerGroupInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public PagedList list() {
+ ContainerGroupsInner client = this.inner();
+ return this.wrapList(client.list());
+ }
+
+ @Override
+ public Observable listAsync() {
+ ContainerGroupsInner client = this.inner();
+ return client.listAsync()
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public ContainerGroup call(ContainerGroupInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public ContainerGroupImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ @Override
+ public Completable restartAsync(String resourceGroupName, String containerGroupName) {
+ ContainerGroupsInner client = this.inner();
+ return client.restartAsync(resourceGroupName, containerGroupName).toCompletable();
+ }
+
+ @Override
+ public Completable stopAsync(String resourceGroupName, String containerGroupName) {
+ ContainerGroupsInner client = this.inner();
+ return client.stopAsync(resourceGroupName, containerGroupName).toCompletable();
+ }
+
+ @Override
+ protected ContainerGroupImpl wrapModel(ContainerGroupInner inner) {
+ return new ContainerGroupImpl(inner.name(), inner, manager());
+ }
+
+ @Override
+ protected ContainerGroupImpl wrapModel(String name) {
+ return new ContainerGroupImpl(name, new ContainerGroupInner(), this.manager());
+ }
+
+}
diff --git a/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupsInner.java b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupsInner.java
new file mode 100644
index 000000000000..bed713aad934
--- /dev/null
+++ b/containerinstance/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/containerinstance/v2018_10_01/implementation/ContainerGroupsInner.java
@@ -0,0 +1,1293 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerinstance.v2018_10_01.implementation;
+
+import com.microsoft.azure.arm.collection.InnerSupportsGet;
+import com.microsoft.azure.arm.collection.InnerSupportsDelete;
+import com.microsoft.azure.arm.collection.InnerSupportsListing;
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Resource;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.PATCH;
+import retrofit2.http.Path;
+import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in ContainerGroups.
+ */
+public class ContainerGroupsInner implements InnerSupportsGet, InnerSupportsDelete, InnerSupportsListing {
+ /** The Retrofit service to perform REST calls. */
+ private ContainerGroupsService service;
+ /** The service client containing this operation class. */
+ private ContainerInstanceManagementClientImpl client;
+
+ /**
+ * Initializes an instance of ContainerGroupsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public ContainerGroupsInner(Retrofit retrofit, ContainerInstanceManagementClientImpl client) {
+ this.service = retrofit.create(ContainerGroupsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ContainerGroups to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ContainerGroupsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroups list" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.ContainerInstance/containerGroups")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroups listByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups")
+ Observable> listByResourceGroup(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @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.containerinstance.v2018_10_01.ContainerGroups getByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}")
+ Observable> getByResourceGroup(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("containerGroupName") String containerGroupName, @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.containerinstance.v2018_10_01.ContainerGroups createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}")
+ Observable> createOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("containerGroupName") String containerGroupName, @Query("api-version") String apiVersion, @Body ContainerGroupInner containerGroup, @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.containerinstance.v2018_10_01.ContainerGroups beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}")
+ Observable> beginCreateOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("containerGroupName") String containerGroupName, @Query("api-version") String apiVersion, @Body ContainerGroupInner containerGroup, @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.containerinstance.v2018_10_01.ContainerGroups update" })
+ @PATCH("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}")
+ Observable> update(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("containerGroupName") String containerGroupName, @Query("api-version") String apiVersion, @Body Resource resource, @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.containerinstance.v2018_10_01.ContainerGroups delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("containerGroupName") String containerGroupName, @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.containerinstance.v2018_10_01.ContainerGroups restart" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/restart")
+ Observable> restart(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("containerGroupName") String containerGroupName, @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.containerinstance.v2018_10_01.ContainerGroups beginRestart" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/restart")
+ Observable> beginRestart(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("containerGroupName") String containerGroupName, @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.containerinstance.v2018_10_01.ContainerGroups stop" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/stop")
+ Observable> stop(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("containerGroupName") String containerGroupName, @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.containerinstance.v2018_10_01.ContainerGroups listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.containerinstance.v2018_10_01.ContainerGroups listByResourceGroupNext" })
+ @GET
+ Observable> listByResourceGroupNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription.
+ * Get a list of container groups in the specified subscription. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ContainerGroupInner> object if successful.
+ */
+ public PagedList list() {
+ ServiceResponse> response = listSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription.
+ * Get a list of container groups in the specified subscription. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listAsync(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription.
+ * Get a list of container groups in the specified subscription. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ContainerGroupInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription.
+ * Get a list of container groups in the specified subscription. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ContainerGroupInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ return listSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription.
+ * Get a list of container groups in the specified subscription. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ContainerGroupInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync() {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription and resource group.
+ * Get a list of container groups in a specified subscription and resource group. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ContainerGroupInner> object if successful.
+ */
+ public PagedList listByResourceGroup(final String resourceGroupName) {
+ ServiceResponse> response = listByResourceGroupSinglePageAsync(resourceGroupName).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listByResourceGroupNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription and resource group.
+ * Get a list of container groups in a specified subscription and resource group. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listByResourceGroupAsync(final String resourceGroupName, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listByResourceGroupSinglePageAsync(resourceGroupName),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listByResourceGroupNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription and resource group.
+ * Get a list of container groups in a specified subscription and resource group. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ContainerGroupInner> object
+ */
+ public Observable> listByResourceGroupAsync(final String resourceGroupName) {
+ return listByResourceGroupWithServiceResponseAsync(resourceGroupName)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription and resource group.
+ * Get a list of container groups in a specified subscription and resource group. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ContainerGroupInner> object
+ */
+ public Observable>> listByResourceGroupWithServiceResponseAsync(final String resourceGroupName) {
+ return listByResourceGroupSinglePageAsync(resourceGroupName)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listByResourceGroupNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Get a list of container groups in the specified subscription and resource group.
+ * Get a list of container groups in a specified subscription and resource group. This operation returns properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ ServiceResponse> * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ContainerGroupInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listByResourceGroupSinglePageAsync(final String resourceGroupName) {
+ 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 (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.listByResourceGroup(this.client.subscriptionId(), resourceGroupName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listByResourceGroupDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listByResourceGroupDelegate(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);
+ }
+
+ /**
+ * Get the properties of the specified container group.
+ * Gets the properties of the specified container group in the specified subscription and resource group. The operation returns the properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @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 ContainerGroupInner object if successful.
+ */
+ public ContainerGroupInner getByResourceGroup(String resourceGroupName, String containerGroupName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, containerGroupName).toBlocking().single().body();
+ }
+
+ /**
+ * Get the properties of the specified container group.
+ * Gets the properties of the specified container group in the specified subscription and resource group. The operation returns the properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @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 containerGroupName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getByResourceGroupWithServiceResponseAsync(resourceGroupName, containerGroupName), serviceCallback);
+ }
+
+ /**
+ * Get the properties of the specified container group.
+ * Gets the properties of the specified container group in the specified subscription and resource group. The operation returns the properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ContainerGroupInner object
+ */
+ public Observable getByResourceGroupAsync(String resourceGroupName, String containerGroupName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, containerGroupName).map(new Func1, ContainerGroupInner>() {
+ @Override
+ public ContainerGroupInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Get the properties of the specified container group.
+ * Gets the properties of the specified container group in the specified subscription and resource group. The operation returns the properties of each container group including containers, image registry credentials, restart policy, IP address type, OS type, state, and volumes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ContainerGroupInner object
+ */
+ public Observable> getByResourceGroupWithServiceResponseAsync(String resourceGroupName, String containerGroupName) {
+ 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 (containerGroupName == null) {
+ throw new IllegalArgumentException("Parameter containerGroupName 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, containerGroupName, 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);
+ }
+
+ /**
+ * Create or update container groups.
+ * Create or update container groups with specified configurations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerGroup The properties of the container group to be created or updated.
+ * @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 ContainerGroupInner object if successful.
+ */
+ public ContainerGroupInner createOrUpdate(String resourceGroupName, String containerGroupName, ContainerGroupInner containerGroup) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, containerGroupName, containerGroup).toBlocking().last().body();
+ }
+
+ /**
+ * Create or update container groups.
+ * Create or update container groups with specified configurations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerGroup The properties of the container group to be created or updated.
+ * @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 containerGroupName, ContainerGroupInner containerGroup, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, containerGroupName, containerGroup), serviceCallback);
+ }
+
+ /**
+ * Create or update container groups.
+ * Create or update container groups with specified configurations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerGroup The properties of the container group to be created or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String containerGroupName, ContainerGroupInner containerGroup) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, containerGroupName, containerGroup).map(new Func1, ContainerGroupInner>() {
+ @Override
+ public ContainerGroupInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update container groups.
+ * Create or update container groups with specified configurations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerGroup The properties of the container group to be created or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String containerGroupName, ContainerGroupInner containerGroup) {
+ 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 (containerGroupName == null) {
+ throw new IllegalArgumentException("Parameter containerGroupName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (containerGroup == null) {
+ throw new IllegalArgumentException("Parameter containerGroup is required and cannot be null.");
+ }
+ Validator.validate(containerGroup);
+ Observable> observable = service.createOrUpdate(this.client.subscriptionId(), resourceGroupName, containerGroupName, this.client.apiVersion(), containerGroup, this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPutOrPatchResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Create or update container groups.
+ * Create or update container groups with specified configurations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerGroup The properties of the container group to be created or updated.
+ * @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 ContainerGroupInner object if successful.
+ */
+ public ContainerGroupInner beginCreateOrUpdate(String resourceGroupName, String containerGroupName, ContainerGroupInner containerGroup) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, containerGroupName, containerGroup).toBlocking().single().body();
+ }
+
+ /**
+ * Create or update container groups.
+ * Create or update container groups with specified configurations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerGroup The properties of the container group to be created or updated.
+ * @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 beginCreateOrUpdateAsync(String resourceGroupName, String containerGroupName, ContainerGroupInner containerGroup, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, containerGroupName, containerGroup), serviceCallback);
+ }
+
+ /**
+ * Create or update container groups.
+ * Create or update container groups with specified configurations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerGroup The properties of the container group to be created or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ContainerGroupInner object
+ */
+ public Observable beginCreateOrUpdateAsync(String resourceGroupName, String containerGroupName, ContainerGroupInner containerGroup) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, containerGroupName, containerGroup).map(new Func1, ContainerGroupInner>() {
+ @Override
+ public ContainerGroupInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update container groups.
+ * Create or update container groups with specified configurations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param containerGroup The properties of the container group to be created or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ContainerGroupInner object
+ */
+ public Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String containerGroupName, ContainerGroupInner containerGroup) {
+ 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 (containerGroupName == null) {
+ throw new IllegalArgumentException("Parameter containerGroupName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (containerGroup == null) {
+ throw new IllegalArgumentException("Parameter containerGroup is required and cannot be null.");
+ }
+ Validator.validate(containerGroup);
+ return service.beginCreateOrUpdate(this.client.subscriptionId(), resourceGroupName, containerGroupName, this.client.apiVersion(), containerGroup, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginCreateOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginCreateOrUpdateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(201, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Update container groups.
+ * Updates container group tags with specified values.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param resource The container group resource with just the tags to be updated.
+ * @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 ContainerGroupInner object if successful.
+ */
+ public ContainerGroupInner update(String resourceGroupName, String containerGroupName, Resource resource) {
+ return updateWithServiceResponseAsync(resourceGroupName, containerGroupName, resource).toBlocking().single().body();
+ }
+
+ /**
+ * Update container groups.
+ * Updates container group tags with specified values.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param resource The container group resource with just the tags to be updated.
+ * @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 updateAsync(String resourceGroupName, String containerGroupName, Resource resource, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(updateWithServiceResponseAsync(resourceGroupName, containerGroupName, resource), serviceCallback);
+ }
+
+ /**
+ * Update container groups.
+ * Updates container group tags with specified values.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param resource The container group resource with just the tags to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ContainerGroupInner object
+ */
+ public Observable updateAsync(String resourceGroupName, String containerGroupName, Resource resource) {
+ return updateWithServiceResponseAsync(resourceGroupName, containerGroupName, resource).map(new Func1, ContainerGroupInner>() {
+ @Override
+ public ContainerGroupInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Update container groups.
+ * Updates container group tags with specified values.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param containerGroupName The name of the container group.
+ * @param resource The container group resource with just the tags to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ContainerGroupInner object
+ */
+ public Observable> updateWithServiceResponseAsync(String resourceGroupName, String containerGroupName, Resource resource) {
+ 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 (containerGroupName == null) {
+ throw new IllegalArgumentException("Parameter containerGroupName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (resource == null) {
+ throw new IllegalArgumentException("Parameter resource is required and cannot be null.");
+ }
+ Validator.validate(resource);
+ return service.update(this.client.subscriptionId(), resourceGroupName, containerGroupName, this.client.apiVersion(), resource, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1