diff --git a/sdk/containerservice/mgmt-v2020_04_01/pom.xml b/sdk/containerservice/mgmt-v2020_04_01/pom.xml
new file mode 100644
index 0000000000000..99d8cea811e78
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.containerservice.v2020_04_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-containerservice
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for ContainerService Management
+ This package contains Microsoft ContainerService Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPool.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPool.java
new file mode 100644
index 0000000000000..dfccbd95e7155
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPool.java
@@ -0,0 +1,733 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.AgentPoolInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Type representing AgentPool.
+ */
+public interface AgentPool extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the agentPoolType value.
+ */
+ AgentPoolType agentPoolType();
+
+ /**
+ * @return the availabilityZones value.
+ */
+ List availabilityZones();
+
+ /**
+ * @return the count value.
+ */
+ Integer count();
+
+ /**
+ * @return the enableAutoScaling value.
+ */
+ Boolean enableAutoScaling();
+
+ /**
+ * @return the enableNodePublicIP value.
+ */
+ Boolean enableNodePublicIP();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the maxCount value.
+ */
+ Integer maxCount();
+
+ /**
+ * @return the maxPods value.
+ */
+ Integer maxPods();
+
+ /**
+ * @return the minCount value.
+ */
+ Integer minCount();
+
+ /**
+ * @return the mode value.
+ */
+ AgentPoolMode mode();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the nodeImageVersion value.
+ */
+ String nodeImageVersion();
+
+ /**
+ * @return the nodeLabels value.
+ */
+ Map nodeLabels();
+
+ /**
+ * @return the nodeTaints value.
+ */
+ List nodeTaints();
+
+ /**
+ * @return the orchestratorVersion value.
+ */
+ String orchestratorVersion();
+
+ /**
+ * @return the osDiskSizeGB value.
+ */
+ Integer osDiskSizeGB();
+
+ /**
+ * @return the osType value.
+ */
+ OSType osType();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the scaleSetEvictionPolicy value.
+ */
+ ScaleSetEvictionPolicy scaleSetEvictionPolicy();
+
+ /**
+ * @return the scaleSetPriority value.
+ */
+ ScaleSetPriority scaleSetPriority();
+
+ /**
+ * @return the spotMaxPrice value.
+ */
+ Double spotMaxPrice();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the upgradeSettings value.
+ */
+ AgentPoolUpgradeSettings upgradeSettings();
+
+ /**
+ * @return the vmSize value.
+ */
+ ContainerServiceVMSizeTypes vmSize();
+
+ /**
+ * @return the vnetSubnetID value.
+ */
+ String vnetSubnetID();
+
+ /**
+ * The entirety of the AgentPool definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithManagedCluster, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of AgentPool definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a AgentPool definition.
+ */
+ interface Blank extends WithManagedCluster {
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify ManagedCluster.
+ */
+ interface WithManagedCluster {
+ /**
+ * Specifies resourceGroupName, resourceName.
+ * @param resourceGroupName The name of the resource group
+ * @param resourceName The name of the managed cluster resource
+ * @return the next definition stage
+ */
+ WithCreate withExistingManagedCluster(String resourceGroupName, String resourceName);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify AgentPoolType.
+ */
+ interface WithAgentPoolType {
+ /**
+ * Specifies agentPoolType.
+ * @param agentPoolType AgentPoolType represents types of an agent pool. Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet'
+ * @return the next definition stage
+ */
+ WithCreate withAgentPoolType(AgentPoolType agentPoolType);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify AvailabilityZones.
+ */
+ interface WithAvailabilityZones {
+ /**
+ * Specifies availabilityZones.
+ * @param availabilityZones Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType
+ * @return the next definition stage
+ */
+ WithCreate withAvailabilityZones(List availabilityZones);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Count.
+ */
+ interface WithCount {
+ /**
+ * Specifies count.
+ * @param count Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1
+ * @return the next definition stage
+ */
+ WithCreate withCount(Integer count);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify EnableAutoScaling.
+ */
+ interface WithEnableAutoScaling {
+ /**
+ * Specifies enableAutoScaling.
+ * @param enableAutoScaling Whether to enable auto-scaler
+ * @return the next definition stage
+ */
+ WithCreate withEnableAutoScaling(Boolean enableAutoScaling);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify EnableNodePublicIP.
+ */
+ interface WithEnableNodePublicIP {
+ /**
+ * Specifies enableNodePublicIP.
+ * @param enableNodePublicIP Enable public IP for nodes
+ * @return the next definition stage
+ */
+ WithCreate withEnableNodePublicIP(Boolean enableNodePublicIP);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify MaxCount.
+ */
+ interface WithMaxCount {
+ /**
+ * Specifies maxCount.
+ * @param maxCount Maximum number of nodes for auto-scaling
+ * @return the next definition stage
+ */
+ WithCreate withMaxCount(Integer maxCount);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify MaxPods.
+ */
+ interface WithMaxPods {
+ /**
+ * Specifies maxPods.
+ * @param maxPods Maximum number of pods that can run on a node
+ * @return the next definition stage
+ */
+ WithCreate withMaxPods(Integer maxPods);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify MinCount.
+ */
+ interface WithMinCount {
+ /**
+ * Specifies minCount.
+ * @param minCount Minimum number of nodes for auto-scaling
+ * @return the next definition stage
+ */
+ WithCreate withMinCount(Integer minCount);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Mode.
+ */
+ interface WithMode {
+ /**
+ * Specifies mode.
+ * @param mode AgentPoolMode represents mode of an agent pool. Possible values include: 'System', 'User'
+ * @return the next definition stage
+ */
+ WithCreate withMode(AgentPoolMode mode);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify NodeImageVersion.
+ */
+ interface WithNodeImageVersion {
+ /**
+ * Specifies nodeImageVersion.
+ * @param nodeImageVersion Version of node image
+ * @return the next definition stage
+ */
+ WithCreate withNodeImageVersion(String nodeImageVersion);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify NodeLabels.
+ */
+ interface WithNodeLabels {
+ /**
+ * Specifies nodeLabels.
+ * @param nodeLabels Agent pool node labels to be persisted across all nodes in agent pool
+ * @return the next definition stage
+ */
+ WithCreate withNodeLabels(Map nodeLabels);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify NodeTaints.
+ */
+ interface WithNodeTaints {
+ /**
+ * Specifies nodeTaints.
+ * @param nodeTaints Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule
+ * @return the next definition stage
+ */
+ WithCreate withNodeTaints(List nodeTaints);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify OrchestratorVersion.
+ */
+ interface WithOrchestratorVersion {
+ /**
+ * Specifies orchestratorVersion.
+ * @param orchestratorVersion Version of orchestrator specified when creating the managed cluster
+ * @return the next definition stage
+ */
+ WithCreate withOrchestratorVersion(String orchestratorVersion);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify OsDiskSizeGB.
+ */
+ interface WithOsDiskSizeGB {
+ /**
+ * Specifies osDiskSizeGB.
+ * @param osDiskSizeGB OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified
+ * @return the next definition stage
+ */
+ WithCreate withOsDiskSizeGB(Integer osDiskSizeGB);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify OsType.
+ */
+ interface WithOsType {
+ /**
+ * Specifies osType.
+ * @param osType OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'
+ * @return the next definition stage
+ */
+ WithCreate withOsType(OSType osType);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify ScaleSetEvictionPolicy.
+ */
+ interface WithScaleSetEvictionPolicy {
+ /**
+ * Specifies scaleSetEvictionPolicy.
+ * @param scaleSetEvictionPolicy ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. Possible values include: 'Delete', 'Deallocate'
+ * @return the next definition stage
+ */
+ WithCreate withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify ScaleSetPriority.
+ */
+ interface WithScaleSetPriority {
+ /**
+ * Specifies scaleSetPriority.
+ * @param scaleSetPriority ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. Possible values include: 'Spot', 'Regular'
+ * @return the next definition stage
+ */
+ WithCreate withScaleSetPriority(ScaleSetPriority scaleSetPriority);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify SpotMaxPrice.
+ */
+ interface WithSpotMaxPrice {
+ /**
+ * Specifies spotMaxPrice.
+ * @param spotMaxPrice SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand
+ * @return the next definition stage
+ */
+ WithCreate withSpotMaxPrice(Double spotMaxPrice);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Agent pool tags to be persisted on the agent pool virtual machine scale set
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify UpgradeSettings.
+ */
+ interface WithUpgradeSettings {
+ /**
+ * Specifies upgradeSettings.
+ * @param upgradeSettings Settings for upgrading the agentpool
+ * @return the next definition stage
+ */
+ WithCreate withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify VmSize.
+ */
+ interface WithVmSize {
+ /**
+ * Specifies vmSize.
+ * @param vmSize Size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'
+ * @return the next definition stage
+ */
+ WithCreate withVmSize(ContainerServiceVMSizeTypes vmSize);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify VnetSubnetID.
+ */
+ interface WithVnetSubnetID {
+ /**
+ * Specifies vnetSubnetID.
+ * @param vnetSubnetID VNet SubnetID specifies the VNet's subnet identifier
+ * @return the next definition stage
+ */
+ WithCreate withVnetSubnetID(String vnetSubnetID);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithAgentPoolType, DefinitionStages.WithAvailabilityZones, DefinitionStages.WithCount, DefinitionStages.WithEnableAutoScaling, DefinitionStages.WithEnableNodePublicIP, DefinitionStages.WithMaxCount, DefinitionStages.WithMaxPods, DefinitionStages.WithMinCount, DefinitionStages.WithMode, DefinitionStages.WithNodeImageVersion, DefinitionStages.WithNodeLabels, DefinitionStages.WithNodeTaints, DefinitionStages.WithOrchestratorVersion, DefinitionStages.WithOsDiskSizeGB, DefinitionStages.WithOsType, DefinitionStages.WithScaleSetEvictionPolicy, DefinitionStages.WithScaleSetPriority, DefinitionStages.WithSpotMaxPrice, DefinitionStages.WithTags, DefinitionStages.WithUpgradeSettings, DefinitionStages.WithVmSize, DefinitionStages.WithVnetSubnetID {
+ }
+ }
+ /**
+ * The template for a AgentPool update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAgentPoolType, UpdateStages.WithAvailabilityZones, UpdateStages.WithCount, UpdateStages.WithEnableAutoScaling, UpdateStages.WithEnableNodePublicIP, UpdateStages.WithMaxCount, UpdateStages.WithMaxPods, UpdateStages.WithMinCount, UpdateStages.WithMode, UpdateStages.WithNodeImageVersion, UpdateStages.WithNodeLabels, UpdateStages.WithNodeTaints, UpdateStages.WithOrchestratorVersion, UpdateStages.WithOsDiskSizeGB, UpdateStages.WithOsType, UpdateStages.WithScaleSetEvictionPolicy, UpdateStages.WithScaleSetPriority, UpdateStages.WithSpotMaxPrice, UpdateStages.WithTags, UpdateStages.WithUpgradeSettings, UpdateStages.WithVmSize, UpdateStages.WithVnetSubnetID {
+ }
+
+ /**
+ * Grouping of AgentPool update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the agentpool update allowing to specify AgentPoolType.
+ */
+ interface WithAgentPoolType {
+ /**
+ * Specifies agentPoolType.
+ * @param agentPoolType AgentPoolType represents types of an agent pool. Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet'
+ * @return the next update stage
+ */
+ Update withAgentPoolType(AgentPoolType agentPoolType);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify AvailabilityZones.
+ */
+ interface WithAvailabilityZones {
+ /**
+ * Specifies availabilityZones.
+ * @param availabilityZones Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType
+ * @return the next update stage
+ */
+ Update withAvailabilityZones(List availabilityZones);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify Count.
+ */
+ interface WithCount {
+ /**
+ * Specifies count.
+ * @param count Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1
+ * @return the next update stage
+ */
+ Update withCount(Integer count);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify EnableAutoScaling.
+ */
+ interface WithEnableAutoScaling {
+ /**
+ * Specifies enableAutoScaling.
+ * @param enableAutoScaling Whether to enable auto-scaler
+ * @return the next update stage
+ */
+ Update withEnableAutoScaling(Boolean enableAutoScaling);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify EnableNodePublicIP.
+ */
+ interface WithEnableNodePublicIP {
+ /**
+ * Specifies enableNodePublicIP.
+ * @param enableNodePublicIP Enable public IP for nodes
+ * @return the next update stage
+ */
+ Update withEnableNodePublicIP(Boolean enableNodePublicIP);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify MaxCount.
+ */
+ interface WithMaxCount {
+ /**
+ * Specifies maxCount.
+ * @param maxCount Maximum number of nodes for auto-scaling
+ * @return the next update stage
+ */
+ Update withMaxCount(Integer maxCount);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify MaxPods.
+ */
+ interface WithMaxPods {
+ /**
+ * Specifies maxPods.
+ * @param maxPods Maximum number of pods that can run on a node
+ * @return the next update stage
+ */
+ Update withMaxPods(Integer maxPods);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify MinCount.
+ */
+ interface WithMinCount {
+ /**
+ * Specifies minCount.
+ * @param minCount Minimum number of nodes for auto-scaling
+ * @return the next update stage
+ */
+ Update withMinCount(Integer minCount);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify Mode.
+ */
+ interface WithMode {
+ /**
+ * Specifies mode.
+ * @param mode AgentPoolMode represents mode of an agent pool. Possible values include: 'System', 'User'
+ * @return the next update stage
+ */
+ Update withMode(AgentPoolMode mode);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify NodeImageVersion.
+ */
+ interface WithNodeImageVersion {
+ /**
+ * Specifies nodeImageVersion.
+ * @param nodeImageVersion Version of node image
+ * @return the next update stage
+ */
+ Update withNodeImageVersion(String nodeImageVersion);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify NodeLabels.
+ */
+ interface WithNodeLabels {
+ /**
+ * Specifies nodeLabels.
+ * @param nodeLabels Agent pool node labels to be persisted across all nodes in agent pool
+ * @return the next update stage
+ */
+ Update withNodeLabels(Map nodeLabels);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify NodeTaints.
+ */
+ interface WithNodeTaints {
+ /**
+ * Specifies nodeTaints.
+ * @param nodeTaints Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule
+ * @return the next update stage
+ */
+ Update withNodeTaints(List nodeTaints);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify OrchestratorVersion.
+ */
+ interface WithOrchestratorVersion {
+ /**
+ * Specifies orchestratorVersion.
+ * @param orchestratorVersion Version of orchestrator specified when creating the managed cluster
+ * @return the next update stage
+ */
+ Update withOrchestratorVersion(String orchestratorVersion);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify OsDiskSizeGB.
+ */
+ interface WithOsDiskSizeGB {
+ /**
+ * Specifies osDiskSizeGB.
+ * @param osDiskSizeGB OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified
+ * @return the next update stage
+ */
+ Update withOsDiskSizeGB(Integer osDiskSizeGB);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify OsType.
+ */
+ interface WithOsType {
+ /**
+ * Specifies osType.
+ * @param osType OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'
+ * @return the next update stage
+ */
+ Update withOsType(OSType osType);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify ScaleSetEvictionPolicy.
+ */
+ interface WithScaleSetEvictionPolicy {
+ /**
+ * Specifies scaleSetEvictionPolicy.
+ * @param scaleSetEvictionPolicy ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. Possible values include: 'Delete', 'Deallocate'
+ * @return the next update stage
+ */
+ Update withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify ScaleSetPriority.
+ */
+ interface WithScaleSetPriority {
+ /**
+ * Specifies scaleSetPriority.
+ * @param scaleSetPriority ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. Possible values include: 'Spot', 'Regular'
+ * @return the next update stage
+ */
+ Update withScaleSetPriority(ScaleSetPriority scaleSetPriority);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify SpotMaxPrice.
+ */
+ interface WithSpotMaxPrice {
+ /**
+ * Specifies spotMaxPrice.
+ * @param spotMaxPrice SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand
+ * @return the next update stage
+ */
+ Update withSpotMaxPrice(Double spotMaxPrice);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Agent pool tags to be persisted on the agent pool virtual machine scale set
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify UpgradeSettings.
+ */
+ interface WithUpgradeSettings {
+ /**
+ * Specifies upgradeSettings.
+ * @param upgradeSettings Settings for upgrading the agentpool
+ * @return the next update stage
+ */
+ Update withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify VmSize.
+ */
+ interface WithVmSize {
+ /**
+ * Specifies vmSize.
+ * @param vmSize Size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'
+ * @return the next update stage
+ */
+ Update withVmSize(ContainerServiceVMSizeTypes vmSize);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify VnetSubnetID.
+ */
+ interface WithVnetSubnetID {
+ /**
+ * Specifies vnetSubnetID.
+ * @param vnetSubnetID VNet SubnetID specifies the VNet's subnet identifier
+ * @return the next update stage
+ */
+ Update withVnetSubnetID(String vnetSubnetID);
+ }
+
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolAvailableVersions.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolAvailableVersions.java
new file mode 100644
index 0000000000000..83f9249b4af10
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolAvailableVersions.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.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.AgentPoolAvailableVersionsInner;
+import java.util.List;
+
+/**
+ * Type representing AgentPoolAvailableVersions.
+ */
+public interface AgentPoolAvailableVersions extends HasInner, HasManager {
+ /**
+ * @return the agentPoolVersions value.
+ */
+ List agentPoolVersions();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem.java
new file mode 100644
index 0000000000000..c83ce295f52d0
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem model.
+ */
+public class AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem {
+ /**
+ * Whether this version is the default agent pool version.
+ */
+ @JsonProperty(value = "default")
+ private Boolean defaultProperty;
+
+ /**
+ * Kubernetes version (major, minor, patch).
+ */
+ @JsonProperty(value = "kubernetesVersion")
+ private String kubernetesVersion;
+
+ /**
+ * Whether Kubernetes version is currently in preview.
+ */
+ @JsonProperty(value = "isPreview")
+ private Boolean isPreview;
+
+ /**
+ * Get whether this version is the default agent pool version.
+ *
+ * @return the defaultProperty value
+ */
+ public Boolean defaultProperty() {
+ return this.defaultProperty;
+ }
+
+ /**
+ * Set whether this version is the default agent pool version.
+ *
+ * @param defaultProperty the defaultProperty value to set
+ * @return the AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem object itself.
+ */
+ public AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem withDefaultProperty(Boolean defaultProperty) {
+ this.defaultProperty = defaultProperty;
+ return this;
+ }
+
+ /**
+ * Get kubernetes version (major, minor, patch).
+ *
+ * @return the kubernetesVersion value
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set kubernetes version (major, minor, patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set
+ * @return the AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem object itself.
+ */
+ public AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get whether Kubernetes version is currently in preview.
+ *
+ * @return the isPreview value
+ */
+ public Boolean isPreview() {
+ return this.isPreview;
+ }
+
+ /**
+ * Set whether Kubernetes version is currently in preview.
+ *
+ * @param isPreview the isPreview value to set
+ * @return the AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem object itself.
+ */
+ public AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem withIsPreview(Boolean isPreview) {
+ this.isPreview = isPreview;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolMode.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolMode.java
new file mode 100644
index 0000000000000..23c2295359cf4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolMode.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AgentPoolMode.
+ */
+public final class AgentPoolMode extends ExpandableStringEnum {
+ /** Static value System for AgentPoolMode. */
+ public static final AgentPoolMode SYSTEM = fromString("System");
+
+ /** Static value User for AgentPoolMode. */
+ public static final AgentPoolMode USER = fromString("User");
+
+ /**
+ * Creates or finds a AgentPoolMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AgentPoolMode
+ */
+ @JsonCreator
+ public static AgentPoolMode fromString(String name) {
+ return fromString(name, AgentPoolMode.class);
+ }
+
+ /**
+ * @return known AgentPoolMode values
+ */
+ public static Collection values() {
+ return values(AgentPoolMode.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolType.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolType.java
new file mode 100644
index 0000000000000..d65a1fc0481aa
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolType.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AgentPoolType.
+ */
+public final class AgentPoolType extends ExpandableStringEnum {
+ /** Static value VirtualMachineScaleSets for AgentPoolType. */
+ public static final AgentPoolType VIRTUAL_MACHINE_SCALE_SETS = fromString("VirtualMachineScaleSets");
+
+ /** Static value AvailabilitySet for AgentPoolType. */
+ public static final AgentPoolType AVAILABILITY_SET = fromString("AvailabilitySet");
+
+ /**
+ * Creates or finds a AgentPoolType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AgentPoolType
+ */
+ @JsonCreator
+ public static AgentPoolType fromString(String name) {
+ return fromString(name, AgentPoolType.class);
+ }
+
+ /**
+ * @return known AgentPoolType values
+ */
+ public static Collection values() {
+ return values(AgentPoolType.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeProfile.java
new file mode 100644
index 0000000000000..badd42ac1c2c0
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeProfile.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.AgentPoolUpgradeProfileInner;
+import java.util.List;
+
+/**
+ * Type representing AgentPoolUpgradeProfile.
+ */
+public interface AgentPoolUpgradeProfile extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kubernetesVersion value.
+ */
+ String kubernetesVersion();
+
+ /**
+ * @return the latestNodeImageVersion value.
+ */
+ String latestNodeImageVersion();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the osType value.
+ */
+ OSType osType();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the upgrades value.
+ */
+ List upgrades();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeProfilePropertiesUpgradesItem.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeProfilePropertiesUpgradesItem.java
new file mode 100644
index 0000000000000..3207c4577b6b7
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeProfilePropertiesUpgradesItem.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The AgentPoolUpgradeProfilePropertiesUpgradesItem model.
+ */
+public class AgentPoolUpgradeProfilePropertiesUpgradesItem {
+ /**
+ * Kubernetes version (major, minor, patch).
+ */
+ @JsonProperty(value = "kubernetesVersion")
+ private String kubernetesVersion;
+
+ /**
+ * Whether Kubernetes version is currently in preview.
+ */
+ @JsonProperty(value = "isPreview")
+ private Boolean isPreview;
+
+ /**
+ * Get kubernetes version (major, minor, patch).
+ *
+ * @return the kubernetesVersion value
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set kubernetes version (major, minor, patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set
+ * @return the AgentPoolUpgradeProfilePropertiesUpgradesItem object itself.
+ */
+ public AgentPoolUpgradeProfilePropertiesUpgradesItem withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get whether Kubernetes version is currently in preview.
+ *
+ * @return the isPreview value
+ */
+ public Boolean isPreview() {
+ return this.isPreview;
+ }
+
+ /**
+ * Set whether Kubernetes version is currently in preview.
+ *
+ * @param isPreview the isPreview value to set
+ * @return the AgentPoolUpgradeProfilePropertiesUpgradesItem object itself.
+ */
+ public AgentPoolUpgradeProfilePropertiesUpgradesItem withIsPreview(Boolean isPreview) {
+ this.isPreview = isPreview;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeSettings.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeSettings.java
new file mode 100644
index 0000000000000..1c3f026e1a36a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPoolUpgradeSettings.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Settings for upgrading an agentpool.
+ */
+public class AgentPoolUpgradeSettings {
+ /**
+ * Count or percentage of additional nodes to be added during upgrade. If
+ * empty uses AKS default.
+ */
+ @JsonProperty(value = "maxSurge")
+ private String maxSurge;
+
+ /**
+ * Get count or percentage of additional nodes to be added during upgrade. If empty uses AKS default.
+ *
+ * @return the maxSurge value
+ */
+ public String maxSurge() {
+ return this.maxSurge;
+ }
+
+ /**
+ * Set count or percentage of additional nodes to be added during upgrade. If empty uses AKS default.
+ *
+ * @param maxSurge the maxSurge value to set
+ * @return the AgentPoolUpgradeSettings object itself.
+ */
+ public AgentPoolUpgradeSettings withMaxSurge(String maxSurge) {
+ this.maxSurge = maxSurge;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPools.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPools.java
new file mode 100644
index 0000000000000..917a687a2d0a0
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/AgentPools.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.AgentPoolsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing AgentPools.
+ */
+public interface AgentPools extends SupportsCreating, HasInner {
+ /**
+ * Gets the agent pool.
+ * Gets the details of the agent pool by managed cluster and resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Gets a list of agent pools in the specified managed cluster.
+ * Gets a list of agent pools in the specified managed cluster. The operation returns properties of each agent pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String resourceName);
+
+ /**
+ * Deletes an agent pool.
+ * Deletes the agent pool in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Gets upgrade profile for an agent pool.
+ * Gets the details of the upgrade profile for an agent pool with a specified resource group and managed cluster name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getUpgradeProfileAsync(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Gets a list of supported versions for the specified agent pool.
+ * Gets a list of supported versions for the specified agent pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAvailableAgentPoolVersionsAsync(String resourceGroupName, String resourceName);
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerService.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerService.java
new file mode 100644
index 0000000000000..497667e22df9d
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerService.java
@@ -0,0 +1,270 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_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.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceInner;
+
+/**
+ * Type representing ContainerService.
+ */
+public interface ContainerService extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the agentPoolProfiles value.
+ */
+ List agentPoolProfiles();
+
+ /**
+ * @return the customProfile value.
+ */
+ ContainerServiceCustomProfile customProfile();
+
+ /**
+ * @return the diagnosticsProfile value.
+ */
+ ContainerServiceDiagnosticsProfile diagnosticsProfile();
+
+ /**
+ * @return the linuxProfile value.
+ */
+ ContainerServiceLinuxProfile linuxProfile();
+
+ /**
+ * @return the masterProfile value.
+ */
+ ContainerServiceMasterProfile masterProfile();
+
+ /**
+ * @return the orchestratorProfile value.
+ */
+ ContainerServiceOrchestratorProfile orchestratorProfile();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the servicePrincipalProfile value.
+ */
+ ContainerServiceServicePrincipalProfile servicePrincipalProfile();
+
+ /**
+ * @return the windowsProfile value.
+ */
+ ContainerServiceWindowsProfile windowsProfile();
+
+ /**
+ * The entirety of the ContainerService definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithLinuxProfile, DefinitionStages.WithMasterProfile, DefinitionStages.WithOrchestratorProfile, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ContainerService definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ContainerService definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ContainerService definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the containerservice definition allowing to specify LinuxProfile.
+ */
+ interface WithLinuxProfile {
+ /**
+ * Specifies linuxProfile.
+ * @param linuxProfile Profile for Linux VMs in the container service cluster
+ * @return the next definition stage
+*/
+ WithMasterProfile withLinuxProfile(ContainerServiceLinuxProfile linuxProfile);
+ }
+
+ /**
+ * The stage of the containerservice definition allowing to specify MasterProfile.
+ */
+ interface WithMasterProfile {
+ /**
+ * Specifies masterProfile.
+ * @param masterProfile Profile for the container service master
+ * @return the next definition stage
+*/
+ WithOrchestratorProfile withMasterProfile(ContainerServiceMasterProfile masterProfile);
+ }
+
+ /**
+ * The stage of the containerservice definition allowing to specify OrchestratorProfile.
+ */
+ interface WithOrchestratorProfile {
+ /**
+ * Specifies orchestratorProfile.
+ * @param orchestratorProfile Profile for the container service orchestrator
+ * @return the next definition stage
+*/
+ WithCreate withOrchestratorProfile(ContainerServiceOrchestratorProfile orchestratorProfile);
+ }
+
+ /**
+ * The stage of the containerservice definition allowing to specify AgentPoolProfiles.
+ */
+ interface WithAgentPoolProfiles {
+ /**
+ * Specifies agentPoolProfiles.
+ * @param agentPoolProfiles Properties of the agent pool
+ * @return the next definition stage
+ */
+ WithCreate withAgentPoolProfiles(List agentPoolProfiles);
+ }
+
+ /**
+ * The stage of the containerservice definition allowing to specify CustomProfile.
+ */
+ interface WithCustomProfile {
+ /**
+ * Specifies customProfile.
+ * @param customProfile Properties to configure a custom container service cluster
+ * @return the next definition stage
+ */
+ WithCreate withCustomProfile(ContainerServiceCustomProfile customProfile);
+ }
+
+ /**
+ * The stage of the containerservice definition allowing to specify DiagnosticsProfile.
+ */
+ interface WithDiagnosticsProfile {
+ /**
+ * Specifies diagnosticsProfile.
+ * @param diagnosticsProfile Profile for diagnostics in the container service cluster
+ * @return the next definition stage
+ */
+ WithCreate withDiagnosticsProfile(ContainerServiceDiagnosticsProfile diagnosticsProfile);
+ }
+
+ /**
+ * The stage of the containerservice definition allowing to specify ServicePrincipalProfile.
+ */
+ interface WithServicePrincipalProfile {
+ /**
+ * Specifies servicePrincipalProfile.
+ * @param servicePrincipalProfile Information about a service principal identity for the cluster to use for manipulating Azure APIs. Exact one of secret or keyVaultSecretRef need to be specified
+ * @return the next definition stage
+ */
+ WithCreate withServicePrincipalProfile(ContainerServiceServicePrincipalProfile servicePrincipalProfile);
+ }
+
+ /**
+ * The stage of the containerservice definition allowing to specify WindowsProfile.
+ */
+ interface WithWindowsProfile {
+ /**
+ * Specifies windowsProfile.
+ * @param windowsProfile Profile for Windows VMs in the container service cluster
+ * @return the next definition stage
+ */
+ WithCreate withWindowsProfile(ContainerServiceWindowsProfile windowsProfile);
+ }
+
+ /**
+ * 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.WithAgentPoolProfiles, DefinitionStages.WithCustomProfile, DefinitionStages.WithDiagnosticsProfile, DefinitionStages.WithServicePrincipalProfile, DefinitionStages.WithWindowsProfile {
+ }
+ }
+ /**
+ * The template for a ContainerService update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithAgentPoolProfiles, UpdateStages.WithCustomProfile, UpdateStages.WithDiagnosticsProfile, UpdateStages.WithServicePrincipalProfile, UpdateStages.WithWindowsProfile {
+ }
+
+ /**
+ * Grouping of ContainerService update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the containerservice update allowing to specify AgentPoolProfiles.
+ */
+ interface WithAgentPoolProfiles {
+ /**
+ * Specifies agentPoolProfiles.
+ * @param agentPoolProfiles Properties of the agent pool
+ * @return the next update stage
+ */
+ Update withAgentPoolProfiles(List agentPoolProfiles);
+ }
+
+ /**
+ * The stage of the containerservice update allowing to specify CustomProfile.
+ */
+ interface WithCustomProfile {
+ /**
+ * Specifies customProfile.
+ * @param customProfile Properties to configure a custom container service cluster
+ * @return the next update stage
+ */
+ Update withCustomProfile(ContainerServiceCustomProfile customProfile);
+ }
+
+ /**
+ * The stage of the containerservice update allowing to specify DiagnosticsProfile.
+ */
+ interface WithDiagnosticsProfile {
+ /**
+ * Specifies diagnosticsProfile.
+ * @param diagnosticsProfile Profile for diagnostics in the container service cluster
+ * @return the next update stage
+ */
+ Update withDiagnosticsProfile(ContainerServiceDiagnosticsProfile diagnosticsProfile);
+ }
+
+ /**
+ * The stage of the containerservice update allowing to specify ServicePrincipalProfile.
+ */
+ interface WithServicePrincipalProfile {
+ /**
+ * Specifies servicePrincipalProfile.
+ * @param servicePrincipalProfile Information about a service principal identity for the cluster to use for manipulating Azure APIs. Exact one of secret or keyVaultSecretRef need to be specified
+ * @return the next update stage
+ */
+ Update withServicePrincipalProfile(ContainerServiceServicePrincipalProfile servicePrincipalProfile);
+ }
+
+ /**
+ * The stage of the containerservice update allowing to specify WindowsProfile.
+ */
+ interface WithWindowsProfile {
+ /**
+ * Specifies windowsProfile.
+ * @param windowsProfile Profile for Windows VMs in the container service cluster
+ * @return the next update stage
+ */
+ Update withWindowsProfile(ContainerServiceWindowsProfile windowsProfile);
+ }
+
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceAgentPoolProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceAgentPoolProfile.java
new file mode 100644
index 0000000000000..b8fe8537d648c
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceAgentPoolProfile.java
@@ -0,0 +1,327 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for the container service agent pool.
+ */
+public class ContainerServiceAgentPoolProfile {
+ /**
+ * Unique name of the agent pool profile in the context of the subscription
+ * and resource group.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Number of agents (VMs) to host docker containers. Allowed values must be
+ * in the range of 1 to 100 (inclusive). The default value is 1.
+ */
+ @JsonProperty(value = "count")
+ private Integer count;
+
+ /**
+ * Size of agent VMs. Possible values include: 'Standard_A1',
+ * 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2',
+ * 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4',
+ * 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6',
+ * 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2',
+ * 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms',
+ * 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2',
+ * 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2',
+ * 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2',
+ * 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2',
+ * 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3',
+ * 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2',
+ * 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3',
+ * 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2',
+ * 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2',
+ * 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3',
+ * 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3',
+ * 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1',
+ * 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo',
+ * 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo',
+ * 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2',
+ * 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14',
+ * 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2',
+ * 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2',
+ * 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo',
+ * 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo',
+ * 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo',
+ * 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3',
+ * 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3',
+ * 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3',
+ * 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3',
+ * 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3',
+ * 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1',
+ * 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s',
+ * 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2',
+ * 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2',
+ * 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2',
+ * 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4',
+ * 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3',
+ * 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5',
+ * 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m',
+ * 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m',
+ * 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s',
+ * 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms',
+ * 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms',
+ * 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2',
+ * 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r',
+ * 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2',
+ * 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2',
+ * 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs',
+ * 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24',
+ * 'Standard_NV6'.
+ */
+ @JsonProperty(value = "vmSize", required = true)
+ private ContainerServiceVMSizeTypes vmSize;
+
+ /**
+ * OS Disk Size in GB to be used to specify the disk size for every machine
+ * in this master/agent pool. If you specify 0, it will apply the default
+ * osDisk size according to the vmSize specified.
+ */
+ @JsonProperty(value = "osDiskSizeGB")
+ private Integer osDiskSizeGB;
+
+ /**
+ * DNS prefix to be used to create the FQDN for the agent pool.
+ */
+ @JsonProperty(value = "dnsPrefix")
+ private String dnsPrefix;
+
+ /**
+ * FQDN for the agent pool.
+ */
+ @JsonProperty(value = "fqdn", access = JsonProperty.Access.WRITE_ONLY)
+ private String fqdn;
+
+ /**
+ * Ports number array used to expose on this agent pool. The default opened
+ * ports are different based on your choice of orchestrator.
+ */
+ @JsonProperty(value = "ports")
+ private List ports;
+
+ /**
+ * Storage profile specifies what kind of storage used. Choose from
+ * StorageAccount and ManagedDisks. Leave it empty, we will choose for you
+ * based on the orchestrator choice. Possible values include:
+ * 'StorageAccount', 'ManagedDisks'.
+ */
+ @JsonProperty(value = "storageProfile")
+ private ContainerServiceStorageProfileTypes storageProfile;
+
+ /**
+ * VNet SubnetID specifies the VNet's subnet identifier.
+ */
+ @JsonProperty(value = "vnetSubnetID")
+ private String vnetSubnetID;
+
+ /**
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux. Possible values include: 'Linux', 'Windows'.
+ */
+ @JsonProperty(value = "osType")
+ private OSType osType;
+
+ /**
+ * Get unique name of the agent pool profile in the context of the subscription and resource group.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set unique name of the agent pool profile in the context of the subscription and resource group.
+ *
+ * @param name the name value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get number of agents (VMs) to host docker containers. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1.
+ *
+ * @return the count value
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set number of agents (VMs) to host docker containers. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1.
+ *
+ * @param count the count value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withCount(Integer count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'.
+ *
+ * @return the vmSize value
+ */
+ public ContainerServiceVMSizeTypes vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'.
+ *
+ * @param vmSize the vmSize value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withVmSize(ContainerServiceVMSizeTypes vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get oS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @return the osDiskSizeGB value
+ */
+ public Integer osDiskSizeGB() {
+ return this.osDiskSizeGB;
+ }
+
+ /**
+ * Set oS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @param osDiskSizeGB the osDiskSizeGB value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withOsDiskSizeGB(Integer osDiskSizeGB) {
+ this.osDiskSizeGB = osDiskSizeGB;
+ return this;
+ }
+
+ /**
+ * Get dNS prefix to be used to create the FQDN for the agent pool.
+ *
+ * @return the dnsPrefix value
+ */
+ public String dnsPrefix() {
+ return this.dnsPrefix;
+ }
+
+ /**
+ * Set dNS prefix to be used to create the FQDN for the agent pool.
+ *
+ * @param dnsPrefix the dnsPrefix value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withDnsPrefix(String dnsPrefix) {
+ this.dnsPrefix = dnsPrefix;
+ return this;
+ }
+
+ /**
+ * Get fQDN for the agent pool.
+ *
+ * @return the fqdn value
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+ /**
+ * Get ports number array used to expose on this agent pool. The default opened ports are different based on your choice of orchestrator.
+ *
+ * @return the ports value
+ */
+ public List ports() {
+ return this.ports;
+ }
+
+ /**
+ * Set ports number array used to expose on this agent pool. The default opened ports are different based on your choice of orchestrator.
+ *
+ * @param ports the ports value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withPorts(List ports) {
+ this.ports = ports;
+ return this;
+ }
+
+ /**
+ * Get storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice. Possible values include: 'StorageAccount', 'ManagedDisks'.
+ *
+ * @return the storageProfile value
+ */
+ public ContainerServiceStorageProfileTypes storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice. Possible values include: 'StorageAccount', 'ManagedDisks'.
+ *
+ * @param storageProfile the storageProfile value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withStorageProfile(ContainerServiceStorageProfileTypes storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+ /**
+ * Get vNet SubnetID specifies the VNet's subnet identifier.
+ *
+ * @return the vnetSubnetID value
+ */
+ public String vnetSubnetID() {
+ return this.vnetSubnetID;
+ }
+
+ /**
+ * Set vNet SubnetID specifies the VNet's subnet identifier.
+ *
+ * @param vnetSubnetID the vnetSubnetID value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withVnetSubnetID(String vnetSubnetID) {
+ this.vnetSubnetID = vnetSubnetID;
+ return this;
+ }
+
+ /**
+ * Get osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @param osType the osType value to set
+ * @return the ContainerServiceAgentPoolProfile object itself.
+ */
+ public ContainerServiceAgentPoolProfile withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceCustomProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceCustomProfile.java
new file mode 100644
index 0000000000000..e9b17ae8863cb
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceCustomProfile.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties to configure a custom container service cluster.
+ */
+public class ContainerServiceCustomProfile {
+ /**
+ * The name of the custom orchestrator to use.
+ */
+ @JsonProperty(value = "orchestrator", required = true)
+ private String orchestrator;
+
+ /**
+ * Get the name of the custom orchestrator to use.
+ *
+ * @return the orchestrator value
+ */
+ public String orchestrator() {
+ return this.orchestrator;
+ }
+
+ /**
+ * Set the name of the custom orchestrator to use.
+ *
+ * @param orchestrator the orchestrator value to set
+ * @return the ContainerServiceCustomProfile object itself.
+ */
+ public ContainerServiceCustomProfile withOrchestrator(String orchestrator) {
+ this.orchestrator = orchestrator;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceDiagnosticsProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceDiagnosticsProfile.java
new file mode 100644
index 0000000000000..2c6d2a59a8b1c
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceDiagnosticsProfile.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for diagnostics on the container service cluster.
+ */
+public class ContainerServiceDiagnosticsProfile {
+ /**
+ * Profile for diagnostics on the container service VMs.
+ */
+ @JsonProperty(value = "vmDiagnostics", required = true)
+ private ContainerServiceVMDiagnostics vmDiagnostics;
+
+ /**
+ * Get profile for diagnostics on the container service VMs.
+ *
+ * @return the vmDiagnostics value
+ */
+ public ContainerServiceVMDiagnostics vmDiagnostics() {
+ return this.vmDiagnostics;
+ }
+
+ /**
+ * Set profile for diagnostics on the container service VMs.
+ *
+ * @param vmDiagnostics the vmDiagnostics value to set
+ * @return the ContainerServiceDiagnosticsProfile object itself.
+ */
+ public ContainerServiceDiagnosticsProfile withVmDiagnostics(ContainerServiceVMDiagnostics vmDiagnostics) {
+ this.vmDiagnostics = vmDiagnostics;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceLinuxProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceLinuxProfile.java
new file mode 100644
index 0000000000000..e481b24c177f9
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceLinuxProfile.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for Linux VMs in the container service cluster.
+ */
+public class ContainerServiceLinuxProfile {
+ /**
+ * The administrator username to use for Linux VMs.
+ */
+ @JsonProperty(value = "adminUsername", required = true)
+ private String adminUsername;
+
+ /**
+ * SSH configuration for Linux-based VMs running on Azure.
+ */
+ @JsonProperty(value = "ssh", required = true)
+ private ContainerServiceSshConfiguration ssh;
+
+ /**
+ * Get the administrator username to use for Linux VMs.
+ *
+ * @return the adminUsername value
+ */
+ public String adminUsername() {
+ return this.adminUsername;
+ }
+
+ /**
+ * Set the administrator username to use for Linux VMs.
+ *
+ * @param adminUsername the adminUsername value to set
+ * @return the ContainerServiceLinuxProfile object itself.
+ */
+ public ContainerServiceLinuxProfile withAdminUsername(String adminUsername) {
+ this.adminUsername = adminUsername;
+ return this;
+ }
+
+ /**
+ * Get sSH configuration for Linux-based VMs running on Azure.
+ *
+ * @return the ssh value
+ */
+ public ContainerServiceSshConfiguration ssh() {
+ return this.ssh;
+ }
+
+ /**
+ * Set sSH configuration for Linux-based VMs running on Azure.
+ *
+ * @param ssh the ssh value to set
+ * @return the ContainerServiceLinuxProfile object itself.
+ */
+ public ContainerServiceLinuxProfile withSsh(ContainerServiceSshConfiguration ssh) {
+ this.ssh = ssh;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceMasterProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceMasterProfile.java
new file mode 100644
index 0000000000000..4dde0f32d8e3c
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceMasterProfile.java
@@ -0,0 +1,271 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for the container service master.
+ */
+public class ContainerServiceMasterProfile {
+ /**
+ * Number of masters (VMs) in the container service cluster. Allowed values
+ * are 1, 3, and 5. The default value is 1.
+ */
+ @JsonProperty(value = "count")
+ private Integer count;
+
+ /**
+ * DNS prefix to be used to create the FQDN for the master pool.
+ */
+ @JsonProperty(value = "dnsPrefix", required = true)
+ private String dnsPrefix;
+
+ /**
+ * Size of agent VMs. Possible values include: 'Standard_A1',
+ * 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2',
+ * 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4',
+ * 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6',
+ * 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2',
+ * 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms',
+ * 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2',
+ * 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2',
+ * 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2',
+ * 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2',
+ * 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3',
+ * 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2',
+ * 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3',
+ * 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2',
+ * 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2',
+ * 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3',
+ * 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3',
+ * 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1',
+ * 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo',
+ * 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo',
+ * 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2',
+ * 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14',
+ * 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2',
+ * 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2',
+ * 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo',
+ * 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo',
+ * 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo',
+ * 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3',
+ * 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3',
+ * 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3',
+ * 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3',
+ * 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3',
+ * 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1',
+ * 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s',
+ * 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2',
+ * 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2',
+ * 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2',
+ * 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4',
+ * 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3',
+ * 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5',
+ * 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m',
+ * 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m',
+ * 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s',
+ * 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms',
+ * 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms',
+ * 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2',
+ * 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r',
+ * 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2',
+ * 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2',
+ * 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs',
+ * 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24',
+ * 'Standard_NV6'.
+ */
+ @JsonProperty(value = "vmSize", required = true)
+ private ContainerServiceVMSizeTypes vmSize;
+
+ /**
+ * OS Disk Size in GB to be used to specify the disk size for every machine
+ * in this master/agent pool. If you specify 0, it will apply the default
+ * osDisk size according to the vmSize specified.
+ */
+ @JsonProperty(value = "osDiskSizeGB")
+ private Integer osDiskSizeGB;
+
+ /**
+ * VNet SubnetID specifies the VNet's subnet identifier.
+ */
+ @JsonProperty(value = "vnetSubnetID")
+ private String vnetSubnetID;
+
+ /**
+ * FirstConsecutiveStaticIP used to specify the first static ip of masters.
+ */
+ @JsonProperty(value = "firstConsecutiveStaticIP")
+ private String firstConsecutiveStaticIP;
+
+ /**
+ * Storage profile specifies what kind of storage used. Choose from
+ * StorageAccount and ManagedDisks. Leave it empty, we will choose for you
+ * based on the orchestrator choice. Possible values include:
+ * 'StorageAccount', 'ManagedDisks'.
+ */
+ @JsonProperty(value = "storageProfile")
+ private ContainerServiceStorageProfileTypes storageProfile;
+
+ /**
+ * FQDN for the master pool.
+ */
+ @JsonProperty(value = "fqdn", access = JsonProperty.Access.WRITE_ONLY)
+ private String fqdn;
+
+ /**
+ * Get number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1.
+ *
+ * @return the count value
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1.
+ *
+ * @param count the count value to set
+ * @return the ContainerServiceMasterProfile object itself.
+ */
+ public ContainerServiceMasterProfile withCount(Integer count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get dNS prefix to be used to create the FQDN for the master pool.
+ *
+ * @return the dnsPrefix value
+ */
+ public String dnsPrefix() {
+ return this.dnsPrefix;
+ }
+
+ /**
+ * Set dNS prefix to be used to create the FQDN for the master pool.
+ *
+ * @param dnsPrefix the dnsPrefix value to set
+ * @return the ContainerServiceMasterProfile object itself.
+ */
+ public ContainerServiceMasterProfile withDnsPrefix(String dnsPrefix) {
+ this.dnsPrefix = dnsPrefix;
+ return this;
+ }
+
+ /**
+ * Get size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'.
+ *
+ * @return the vmSize value
+ */
+ public ContainerServiceVMSizeTypes vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'.
+ *
+ * @param vmSize the vmSize value to set
+ * @return the ContainerServiceMasterProfile object itself.
+ */
+ public ContainerServiceMasterProfile withVmSize(ContainerServiceVMSizeTypes vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get oS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @return the osDiskSizeGB value
+ */
+ public Integer osDiskSizeGB() {
+ return this.osDiskSizeGB;
+ }
+
+ /**
+ * Set oS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @param osDiskSizeGB the osDiskSizeGB value to set
+ * @return the ContainerServiceMasterProfile object itself.
+ */
+ public ContainerServiceMasterProfile withOsDiskSizeGB(Integer osDiskSizeGB) {
+ this.osDiskSizeGB = osDiskSizeGB;
+ return this;
+ }
+
+ /**
+ * Get vNet SubnetID specifies the VNet's subnet identifier.
+ *
+ * @return the vnetSubnetID value
+ */
+ public String vnetSubnetID() {
+ return this.vnetSubnetID;
+ }
+
+ /**
+ * Set vNet SubnetID specifies the VNet's subnet identifier.
+ *
+ * @param vnetSubnetID the vnetSubnetID value to set
+ * @return the ContainerServiceMasterProfile object itself.
+ */
+ public ContainerServiceMasterProfile withVnetSubnetID(String vnetSubnetID) {
+ this.vnetSubnetID = vnetSubnetID;
+ return this;
+ }
+
+ /**
+ * Get firstConsecutiveStaticIP used to specify the first static ip of masters.
+ *
+ * @return the firstConsecutiveStaticIP value
+ */
+ public String firstConsecutiveStaticIP() {
+ return this.firstConsecutiveStaticIP;
+ }
+
+ /**
+ * Set firstConsecutiveStaticIP used to specify the first static ip of masters.
+ *
+ * @param firstConsecutiveStaticIP the firstConsecutiveStaticIP value to set
+ * @return the ContainerServiceMasterProfile object itself.
+ */
+ public ContainerServiceMasterProfile withFirstConsecutiveStaticIP(String firstConsecutiveStaticIP) {
+ this.firstConsecutiveStaticIP = firstConsecutiveStaticIP;
+ return this;
+ }
+
+ /**
+ * Get storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice. Possible values include: 'StorageAccount', 'ManagedDisks'.
+ *
+ * @return the storageProfile value
+ */
+ public ContainerServiceStorageProfileTypes storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice. Possible values include: 'StorageAccount', 'ManagedDisks'.
+ *
+ * @param storageProfile the storageProfile value to set
+ * @return the ContainerServiceMasterProfile object itself.
+ */
+ public ContainerServiceMasterProfile withStorageProfile(ContainerServiceStorageProfileTypes storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+ /**
+ * Get fQDN for the master pool.
+ *
+ * @return the fqdn value
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceNetworkProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceNetworkProfile.java
new file mode 100644
index 0000000000000..bb9bfe65475de
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceNetworkProfile.java
@@ -0,0 +1,287 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile of network configuration.
+ */
+public class ContainerServiceNetworkProfile {
+ /**
+ * Network plugin used for building Kubernetes network. Possible values
+ * include: 'azure', 'kubenet'.
+ */
+ @JsonProperty(value = "networkPlugin")
+ private NetworkPlugin networkPlugin;
+
+ /**
+ * Network policy used for building Kubernetes network. Possible values
+ * include: 'calico', 'azure'.
+ */
+ @JsonProperty(value = "networkPolicy")
+ private NetworkPolicy networkPolicy;
+
+ /**
+ * Network mode used for building Kubernetes network. Possible values
+ * include: 'transparent', 'bridge'.
+ */
+ @JsonProperty(value = "networkMode")
+ private NetworkMode networkMode;
+
+ /**
+ * A CIDR notation IP range from which to assign pod IPs when kubenet is
+ * used.
+ */
+ @JsonProperty(value = "podCidr")
+ private String podCidr;
+
+ /**
+ * A CIDR notation IP range from which to assign service cluster IPs. It
+ * must not overlap with any Subnet IP ranges.
+ */
+ @JsonProperty(value = "serviceCidr")
+ private String serviceCidr;
+
+ /**
+ * An IP address assigned to the Kubernetes DNS service. It must be within
+ * the Kubernetes service address range specified in serviceCidr.
+ */
+ @JsonProperty(value = "dnsServiceIP")
+ private String dnsServiceIP;
+
+ /**
+ * A CIDR notation IP range assigned to the Docker bridge network. It must
+ * not overlap with any Subnet IP ranges or the Kubernetes service address
+ * range.
+ */
+ @JsonProperty(value = "dockerBridgeCidr")
+ private String dockerBridgeCidr;
+
+ /**
+ * The outbound (egress) routing method. Possible values include:
+ * 'loadBalancer', 'userDefinedRouting'.
+ */
+ @JsonProperty(value = "outboundType")
+ private OutboundType outboundType;
+
+ /**
+ * The load balancer sku for the managed cluster. Possible values include:
+ * 'standard', 'basic'.
+ */
+ @JsonProperty(value = "loadBalancerSku")
+ private LoadBalancerSku loadBalancerSku;
+
+ /**
+ * Profile of the cluster load balancer.
+ */
+ @JsonProperty(value = "loadBalancerProfile")
+ private ManagedClusterLoadBalancerProfile loadBalancerProfile;
+
+ /**
+ * Get network plugin used for building Kubernetes network. Possible values include: 'azure', 'kubenet'.
+ *
+ * @return the networkPlugin value
+ */
+ public NetworkPlugin networkPlugin() {
+ return this.networkPlugin;
+ }
+
+ /**
+ * Set network plugin used for building Kubernetes network. Possible values include: 'azure', 'kubenet'.
+ *
+ * @param networkPlugin the networkPlugin value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withNetworkPlugin(NetworkPlugin networkPlugin) {
+ this.networkPlugin = networkPlugin;
+ return this;
+ }
+
+ /**
+ * Get network policy used for building Kubernetes network. Possible values include: 'calico', 'azure'.
+ *
+ * @return the networkPolicy value
+ */
+ public NetworkPolicy networkPolicy() {
+ return this.networkPolicy;
+ }
+
+ /**
+ * Set network policy used for building Kubernetes network. Possible values include: 'calico', 'azure'.
+ *
+ * @param networkPolicy the networkPolicy value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withNetworkPolicy(NetworkPolicy networkPolicy) {
+ this.networkPolicy = networkPolicy;
+ return this;
+ }
+
+ /**
+ * Get network mode used for building Kubernetes network. Possible values include: 'transparent', 'bridge'.
+ *
+ * @return the networkMode value
+ */
+ public NetworkMode networkMode() {
+ return this.networkMode;
+ }
+
+ /**
+ * Set network mode used for building Kubernetes network. Possible values include: 'transparent', 'bridge'.
+ *
+ * @param networkMode the networkMode value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withNetworkMode(NetworkMode networkMode) {
+ this.networkMode = networkMode;
+ return this;
+ }
+
+ /**
+ * Get a CIDR notation IP range from which to assign pod IPs when kubenet is used.
+ *
+ * @return the podCidr value
+ */
+ public String podCidr() {
+ return this.podCidr;
+ }
+
+ /**
+ * Set a CIDR notation IP range from which to assign pod IPs when kubenet is used.
+ *
+ * @param podCidr the podCidr value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withPodCidr(String podCidr) {
+ this.podCidr = podCidr;
+ return this;
+ }
+
+ /**
+ * Get a CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.
+ *
+ * @return the serviceCidr value
+ */
+ public String serviceCidr() {
+ return this.serviceCidr;
+ }
+
+ /**
+ * Set a CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.
+ *
+ * @param serviceCidr the serviceCidr value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withServiceCidr(String serviceCidr) {
+ this.serviceCidr = serviceCidr;
+ return this;
+ }
+
+ /**
+ * Get an IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.
+ *
+ * @return the dnsServiceIP value
+ */
+ public String dnsServiceIP() {
+ return this.dnsServiceIP;
+ }
+
+ /**
+ * Set an IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.
+ *
+ * @param dnsServiceIP the dnsServiceIP value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withDnsServiceIP(String dnsServiceIP) {
+ this.dnsServiceIP = dnsServiceIP;
+ return this;
+ }
+
+ /**
+ * Get a CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range.
+ *
+ * @return the dockerBridgeCidr value
+ */
+ public String dockerBridgeCidr() {
+ return this.dockerBridgeCidr;
+ }
+
+ /**
+ * Set a CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range.
+ *
+ * @param dockerBridgeCidr the dockerBridgeCidr value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withDockerBridgeCidr(String dockerBridgeCidr) {
+ this.dockerBridgeCidr = dockerBridgeCidr;
+ return this;
+ }
+
+ /**
+ * Get the outbound (egress) routing method. Possible values include: 'loadBalancer', 'userDefinedRouting'.
+ *
+ * @return the outboundType value
+ */
+ public OutboundType outboundType() {
+ return this.outboundType;
+ }
+
+ /**
+ * Set the outbound (egress) routing method. Possible values include: 'loadBalancer', 'userDefinedRouting'.
+ *
+ * @param outboundType the outboundType value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withOutboundType(OutboundType outboundType) {
+ this.outboundType = outboundType;
+ return this;
+ }
+
+ /**
+ * Get the load balancer sku for the managed cluster. Possible values include: 'standard', 'basic'.
+ *
+ * @return the loadBalancerSku value
+ */
+ public LoadBalancerSku loadBalancerSku() {
+ return this.loadBalancerSku;
+ }
+
+ /**
+ * Set the load balancer sku for the managed cluster. Possible values include: 'standard', 'basic'.
+ *
+ * @param loadBalancerSku the loadBalancerSku value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withLoadBalancerSku(LoadBalancerSku loadBalancerSku) {
+ this.loadBalancerSku = loadBalancerSku;
+ return this;
+ }
+
+ /**
+ * Get profile of the cluster load balancer.
+ *
+ * @return the loadBalancerProfile value
+ */
+ public ManagedClusterLoadBalancerProfile loadBalancerProfile() {
+ return this.loadBalancerProfile;
+ }
+
+ /**
+ * Set profile of the cluster load balancer.
+ *
+ * @param loadBalancerProfile the loadBalancerProfile value to set
+ * @return the ContainerServiceNetworkProfile object itself.
+ */
+ public ContainerServiceNetworkProfile withLoadBalancerProfile(ManagedClusterLoadBalancerProfile loadBalancerProfile) {
+ this.loadBalancerProfile = loadBalancerProfile;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceOrchestratorProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceOrchestratorProfile.java
new file mode 100644
index 0000000000000..6626fd4fa2e42
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceOrchestratorProfile.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for the container service orchestrator.
+ */
+public class ContainerServiceOrchestratorProfile {
+ /**
+ * The orchestrator to use to manage container service cluster resources.
+ * Valid values are Kubernetes, Swarm, DCOS, DockerCE and Custom. Possible
+ * values include: 'Kubernetes', 'Swarm', 'DCOS', 'DockerCE', 'Custom'.
+ */
+ @JsonProperty(value = "orchestratorType", required = true)
+ private ContainerServiceOrchestratorTypes orchestratorType;
+
+ /**
+ * The version of the orchestrator to use. You can specify the
+ * major.minor.patch part of the actual version.For example, you can
+ * specify version as "1.6.11".
+ */
+ @JsonProperty(value = "orchestratorVersion")
+ private String orchestratorVersion;
+
+ /**
+ * Get the orchestrator to use to manage container service cluster resources. Valid values are Kubernetes, Swarm, DCOS, DockerCE and Custom. Possible values include: 'Kubernetes', 'Swarm', 'DCOS', 'DockerCE', 'Custom'.
+ *
+ * @return the orchestratorType value
+ */
+ public ContainerServiceOrchestratorTypes orchestratorType() {
+ return this.orchestratorType;
+ }
+
+ /**
+ * Set the orchestrator to use to manage container service cluster resources. Valid values are Kubernetes, Swarm, DCOS, DockerCE and Custom. Possible values include: 'Kubernetes', 'Swarm', 'DCOS', 'DockerCE', 'Custom'.
+ *
+ * @param orchestratorType the orchestratorType value to set
+ * @return the ContainerServiceOrchestratorProfile object itself.
+ */
+ public ContainerServiceOrchestratorProfile withOrchestratorType(ContainerServiceOrchestratorTypes orchestratorType) {
+ this.orchestratorType = orchestratorType;
+ return this;
+ }
+
+ /**
+ * Get the version of the orchestrator to use. You can specify the major.minor.patch part of the actual version.For example, you can specify version as "1.6.11".
+ *
+ * @return the orchestratorVersion value
+ */
+ public String orchestratorVersion() {
+ return this.orchestratorVersion;
+ }
+
+ /**
+ * Set the version of the orchestrator to use. You can specify the major.minor.patch part of the actual version.For example, you can specify version as "1.6.11".
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set
+ * @return the ContainerServiceOrchestratorProfile object itself.
+ */
+ public ContainerServiceOrchestratorProfile withOrchestratorVersion(String orchestratorVersion) {
+ this.orchestratorVersion = orchestratorVersion;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceOrchestratorTypes.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceOrchestratorTypes.java
new file mode 100644
index 0000000000000..c3b6431a21b22
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceOrchestratorTypes.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerServiceOrchestratorTypes.
+ */
+public final class ContainerServiceOrchestratorTypes extends ExpandableStringEnum {
+ /** Static value Kubernetes for ContainerServiceOrchestratorTypes. */
+ public static final ContainerServiceOrchestratorTypes KUBERNETES = fromString("Kubernetes");
+
+ /** Static value Swarm for ContainerServiceOrchestratorTypes. */
+ public static final ContainerServiceOrchestratorTypes SWARM = fromString("Swarm");
+
+ /** Static value DCOS for ContainerServiceOrchestratorTypes. */
+ public static final ContainerServiceOrchestratorTypes DCOS = fromString("DCOS");
+
+ /** Static value DockerCE for ContainerServiceOrchestratorTypes. */
+ public static final ContainerServiceOrchestratorTypes DOCKER_CE = fromString("DockerCE");
+
+ /** Static value Custom for ContainerServiceOrchestratorTypes. */
+ public static final ContainerServiceOrchestratorTypes CUSTOM = fromString("Custom");
+
+ /**
+ * Creates or finds a ContainerServiceOrchestratorTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerServiceOrchestratorTypes
+ */
+ @JsonCreator
+ public static ContainerServiceOrchestratorTypes fromString(String name) {
+ return fromString(name, ContainerServiceOrchestratorTypes.class);
+ }
+
+ /**
+ * @return known ContainerServiceOrchestratorTypes values
+ */
+ public static Collection values() {
+ return values(ContainerServiceOrchestratorTypes.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceServicePrincipalProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceServicePrincipalProfile.java
new file mode 100644
index 0000000000000..1bacadf7fbdc7
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceServicePrincipalProfile.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Information about a service principal identity for the cluster to use for
+ * manipulating Azure APIs. Either secret or keyVaultSecretRef must be
+ * specified.
+ */
+public class ContainerServiceServicePrincipalProfile {
+ /**
+ * The ID for the service principal.
+ */
+ @JsonProperty(value = "clientId", required = true)
+ private String clientId;
+
+ /**
+ * The secret password associated with the service principal in plain text.
+ */
+ @JsonProperty(value = "secret")
+ private String secret;
+
+ /**
+ * Reference to a secret stored in Azure Key Vault.
+ */
+ @JsonProperty(value = "keyVaultSecretRef")
+ private KeyVaultSecretRef keyVaultSecretRef;
+
+ /**
+ * Get the ID for the service principal.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+ /**
+ * Set the ID for the service principal.
+ *
+ * @param clientId the clientId value to set
+ * @return the ContainerServiceServicePrincipalProfile object itself.
+ */
+ public ContainerServiceServicePrincipalProfile withClientId(String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ /**
+ * Get the secret password associated with the service principal in plain text.
+ *
+ * @return the secret value
+ */
+ public String secret() {
+ return this.secret;
+ }
+
+ /**
+ * Set the secret password associated with the service principal in plain text.
+ *
+ * @param secret the secret value to set
+ * @return the ContainerServiceServicePrincipalProfile object itself.
+ */
+ public ContainerServiceServicePrincipalProfile withSecret(String secret) {
+ this.secret = secret;
+ return this;
+ }
+
+ /**
+ * Get reference to a secret stored in Azure Key Vault.
+ *
+ * @return the keyVaultSecretRef value
+ */
+ public KeyVaultSecretRef keyVaultSecretRef() {
+ return this.keyVaultSecretRef;
+ }
+
+ /**
+ * Set reference to a secret stored in Azure Key Vault.
+ *
+ * @param keyVaultSecretRef the keyVaultSecretRef value to set
+ * @return the ContainerServiceServicePrincipalProfile object itself.
+ */
+ public ContainerServiceServicePrincipalProfile withKeyVaultSecretRef(KeyVaultSecretRef keyVaultSecretRef) {
+ this.keyVaultSecretRef = keyVaultSecretRef;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceSshConfiguration.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceSshConfiguration.java
new file mode 100644
index 0000000000000..f6ad653f809ab
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceSshConfiguration.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * SSH configuration for Linux-based VMs running on Azure.
+ */
+public class ContainerServiceSshConfiguration {
+ /**
+ * The list of SSH public keys used to authenticate with Linux-based VMs.
+ * Only expect one key specified.
+ */
+ @JsonProperty(value = "publicKeys", required = true)
+ private List publicKeys;
+
+ /**
+ * Get the list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified.
+ *
+ * @return the publicKeys value
+ */
+ public List publicKeys() {
+ return this.publicKeys;
+ }
+
+ /**
+ * Set the list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified.
+ *
+ * @param publicKeys the publicKeys value to set
+ * @return the ContainerServiceSshConfiguration object itself.
+ */
+ public ContainerServiceSshConfiguration withPublicKeys(List publicKeys) {
+ this.publicKeys = publicKeys;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceSshPublicKey.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceSshPublicKey.java
new file mode 100644
index 0000000000000..4e3570d351e43
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceSshPublicKey.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Contains information about SSH certificate public key data.
+ */
+public class ContainerServiceSshPublicKey {
+ /**
+ * Certificate public key used to authenticate with VMs through SSH. The
+ * certificate must be in PEM format with or without headers.
+ */
+ @JsonProperty(value = "keyData", required = true)
+ private String keyData;
+
+ /**
+ * Get certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers.
+ *
+ * @return the keyData value
+ */
+ public String keyData() {
+ return this.keyData;
+ }
+
+ /**
+ * Set certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers.
+ *
+ * @param keyData the keyData value to set
+ * @return the ContainerServiceSshPublicKey object itself.
+ */
+ public ContainerServiceSshPublicKey withKeyData(String keyData) {
+ this.keyData = keyData;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceStorageProfileTypes.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceStorageProfileTypes.java
new file mode 100644
index 0000000000000..733de305ec054
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceStorageProfileTypes.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerServiceStorageProfileTypes.
+ */
+public final class ContainerServiceStorageProfileTypes extends ExpandableStringEnum {
+ /** Static value StorageAccount for ContainerServiceStorageProfileTypes. */
+ public static final ContainerServiceStorageProfileTypes STORAGE_ACCOUNT = fromString("StorageAccount");
+
+ /** Static value ManagedDisks for ContainerServiceStorageProfileTypes. */
+ public static final ContainerServiceStorageProfileTypes MANAGED_DISKS = fromString("ManagedDisks");
+
+ /**
+ * Creates or finds a ContainerServiceStorageProfileTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerServiceStorageProfileTypes
+ */
+ @JsonCreator
+ public static ContainerServiceStorageProfileTypes fromString(String name) {
+ return fromString(name, ContainerServiceStorageProfileTypes.class);
+ }
+
+ /**
+ * @return known ContainerServiceStorageProfileTypes values
+ */
+ public static Collection values() {
+ return values(ContainerServiceStorageProfileTypes.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceVMDiagnostics.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceVMDiagnostics.java
new file mode 100644
index 0000000000000..7776e1572df33
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceVMDiagnostics.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for diagnostics on the container service VMs.
+ */
+public class ContainerServiceVMDiagnostics {
+ /**
+ * Whether the VM diagnostic agent is provisioned on the VM.
+ */
+ @JsonProperty(value = "enabled", required = true)
+ private boolean enabled;
+
+ /**
+ * The URI of the storage account where diagnostics are stored.
+ */
+ @JsonProperty(value = "storageUri", access = JsonProperty.Access.WRITE_ONLY)
+ private String storageUri;
+
+ /**
+ * Get whether the VM diagnostic agent is provisioned on the VM.
+ *
+ * @return the enabled value
+ */
+ public boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set whether the VM diagnostic agent is provisioned on the VM.
+ *
+ * @param enabled the enabled value to set
+ * @return the ContainerServiceVMDiagnostics object itself.
+ */
+ public ContainerServiceVMDiagnostics withEnabled(boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get the URI of the storage account where diagnostics are stored.
+ *
+ * @return the storageUri value
+ */
+ public String storageUri() {
+ return this.storageUri;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceVMSizeTypes.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceVMSizeTypes.java
new file mode 100644
index 0000000000000..e397642ae5c32
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceVMSizeTypes.java
@@ -0,0 +1,557 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerServiceVMSizeTypes.
+ */
+public final class ContainerServiceVMSizeTypes extends ExpandableStringEnum {
+ /** Static value Standard_A1 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A1 = fromString("Standard_A1");
+
+ /** Static value Standard_A10 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A10 = fromString("Standard_A10");
+
+ /** Static value Standard_A11 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A11 = fromString("Standard_A11");
+
+ /** Static value Standard_A1_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A1_V2 = fromString("Standard_A1_v2");
+
+ /** Static value Standard_A2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A2 = fromString("Standard_A2");
+
+ /** Static value Standard_A2_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A2_V2 = fromString("Standard_A2_v2");
+
+ /** Static value Standard_A2m_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A2M_V2 = fromString("Standard_A2m_v2");
+
+ /** Static value Standard_A3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A3 = fromString("Standard_A3");
+
+ /** Static value Standard_A4 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A4 = fromString("Standard_A4");
+
+ /** Static value Standard_A4_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A4_V2 = fromString("Standard_A4_v2");
+
+ /** Static value Standard_A4m_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A4M_V2 = fromString("Standard_A4m_v2");
+
+ /** Static value Standard_A5 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A5 = fromString("Standard_A5");
+
+ /** Static value Standard_A6 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A6 = fromString("Standard_A6");
+
+ /** Static value Standard_A7 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A7 = fromString("Standard_A7");
+
+ /** Static value Standard_A8 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A8 = fromString("Standard_A8");
+
+ /** Static value Standard_A8_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A8_V2 = fromString("Standard_A8_v2");
+
+ /** Static value Standard_A8m_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A8M_V2 = fromString("Standard_A8m_v2");
+
+ /** Static value Standard_A9 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_A9 = fromString("Standard_A9");
+
+ /** Static value Standard_B2ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_B2MS = fromString("Standard_B2ms");
+
+ /** Static value Standard_B2s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_B2S = fromString("Standard_B2s");
+
+ /** Static value Standard_B4ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_B4MS = fromString("Standard_B4ms");
+
+ /** Static value Standard_B8ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_B8MS = fromString("Standard_B8ms");
+
+ /** Static value Standard_D1 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D1 = fromString("Standard_D1");
+
+ /** Static value Standard_D11 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D11 = fromString("Standard_D11");
+
+ /** Static value Standard_D11_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D11_V2 = fromString("Standard_D11_v2");
+
+ /** Static value Standard_D11_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D11_V2_PROMO = fromString("Standard_D11_v2_Promo");
+
+ /** Static value Standard_D12 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D12 = fromString("Standard_D12");
+
+ /** Static value Standard_D12_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D12_V2 = fromString("Standard_D12_v2");
+
+ /** Static value Standard_D12_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D12_V2_PROMO = fromString("Standard_D12_v2_Promo");
+
+ /** Static value Standard_D13 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D13 = fromString("Standard_D13");
+
+ /** Static value Standard_D13_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D13_V2 = fromString("Standard_D13_v2");
+
+ /** Static value Standard_D13_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D13_V2_PROMO = fromString("Standard_D13_v2_Promo");
+
+ /** Static value Standard_D14 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D14 = fromString("Standard_D14");
+
+ /** Static value Standard_D14_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D14_V2 = fromString("Standard_D14_v2");
+
+ /** Static value Standard_D14_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D14_V2_PROMO = fromString("Standard_D14_v2_Promo");
+
+ /** Static value Standard_D15_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D15_V2 = fromString("Standard_D15_v2");
+
+ /** Static value Standard_D16_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D16_V3 = fromString("Standard_D16_v3");
+
+ /** Static value Standard_D16s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D16S_V3 = fromString("Standard_D16s_v3");
+
+ /** Static value Standard_D1_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D1_V2 = fromString("Standard_D1_v2");
+
+ /** Static value Standard_D2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D2 = fromString("Standard_D2");
+
+ /** Static value Standard_D2_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D2_V2 = fromString("Standard_D2_v2");
+
+ /** Static value Standard_D2_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D2_V2_PROMO = fromString("Standard_D2_v2_Promo");
+
+ /** Static value Standard_D2_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D2_V3 = fromString("Standard_D2_v3");
+
+ /** Static value Standard_D2s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D2S_V3 = fromString("Standard_D2s_v3");
+
+ /** Static value Standard_D3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D3 = fromString("Standard_D3");
+
+ /** Static value Standard_D32_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D32_V3 = fromString("Standard_D32_v3");
+
+ /** Static value Standard_D32s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D32S_V3 = fromString("Standard_D32s_v3");
+
+ /** Static value Standard_D3_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D3_V2 = fromString("Standard_D3_v2");
+
+ /** Static value Standard_D3_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D3_V2_PROMO = fromString("Standard_D3_v2_Promo");
+
+ /** Static value Standard_D4 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D4 = fromString("Standard_D4");
+
+ /** Static value Standard_D4_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D4_V2 = fromString("Standard_D4_v2");
+
+ /** Static value Standard_D4_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D4_V2_PROMO = fromString("Standard_D4_v2_Promo");
+
+ /** Static value Standard_D4_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D4_V3 = fromString("Standard_D4_v3");
+
+ /** Static value Standard_D4s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D4S_V3 = fromString("Standard_D4s_v3");
+
+ /** Static value Standard_D5_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D5_V2 = fromString("Standard_D5_v2");
+
+ /** Static value Standard_D5_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D5_V2_PROMO = fromString("Standard_D5_v2_Promo");
+
+ /** Static value Standard_D64_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D64_V3 = fromString("Standard_D64_v3");
+
+ /** Static value Standard_D64s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D64S_V3 = fromString("Standard_D64s_v3");
+
+ /** Static value Standard_D8_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D8_V3 = fromString("Standard_D8_v3");
+
+ /** Static value Standard_D8s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_D8S_V3 = fromString("Standard_D8s_v3");
+
+ /** Static value Standard_DS1 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS1 = fromString("Standard_DS1");
+
+ /** Static value Standard_DS11 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS11 = fromString("Standard_DS11");
+
+ /** Static value Standard_DS11_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS11_V2 = fromString("Standard_DS11_v2");
+
+ /** Static value Standard_DS11_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS11_V2_PROMO = fromString("Standard_DS11_v2_Promo");
+
+ /** Static value Standard_DS12 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS12 = fromString("Standard_DS12");
+
+ /** Static value Standard_DS12_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS12_V2 = fromString("Standard_DS12_v2");
+
+ /** Static value Standard_DS12_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS12_V2_PROMO = fromString("Standard_DS12_v2_Promo");
+
+ /** Static value Standard_DS13 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS13 = fromString("Standard_DS13");
+
+ /** Static value Standard_DS13-2_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS13_2_V2 = fromString("Standard_DS13-2_v2");
+
+ /** Static value Standard_DS13-4_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS13_4_V2 = fromString("Standard_DS13-4_v2");
+
+ /** Static value Standard_DS13_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS13_V2 = fromString("Standard_DS13_v2");
+
+ /** Static value Standard_DS13_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS13_V2_PROMO = fromString("Standard_DS13_v2_Promo");
+
+ /** Static value Standard_DS14 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS14 = fromString("Standard_DS14");
+
+ /** Static value Standard_DS14-4_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS14_4_V2 = fromString("Standard_DS14-4_v2");
+
+ /** Static value Standard_DS14-8_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS14_8_V2 = fromString("Standard_DS14-8_v2");
+
+ /** Static value Standard_DS14_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS14_V2 = fromString("Standard_DS14_v2");
+
+ /** Static value Standard_DS14_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS14_V2_PROMO = fromString("Standard_DS14_v2_Promo");
+
+ /** Static value Standard_DS15_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS15_V2 = fromString("Standard_DS15_v2");
+
+ /** Static value Standard_DS1_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS1_V2 = fromString("Standard_DS1_v2");
+
+ /** Static value Standard_DS2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS2 = fromString("Standard_DS2");
+
+ /** Static value Standard_DS2_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS2_V2 = fromString("Standard_DS2_v2");
+
+ /** Static value Standard_DS2_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS2_V2_PROMO = fromString("Standard_DS2_v2_Promo");
+
+ /** Static value Standard_DS3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS3 = fromString("Standard_DS3");
+
+ /** Static value Standard_DS3_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS3_V2 = fromString("Standard_DS3_v2");
+
+ /** Static value Standard_DS3_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS3_V2_PROMO = fromString("Standard_DS3_v2_Promo");
+
+ /** Static value Standard_DS4 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS4 = fromString("Standard_DS4");
+
+ /** Static value Standard_DS4_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS4_V2 = fromString("Standard_DS4_v2");
+
+ /** Static value Standard_DS4_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS4_V2_PROMO = fromString("Standard_DS4_v2_Promo");
+
+ /** Static value Standard_DS5_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS5_V2 = fromString("Standard_DS5_v2");
+
+ /** Static value Standard_DS5_v2_Promo for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_DS5_V2_PROMO = fromString("Standard_DS5_v2_Promo");
+
+ /** Static value Standard_E16_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E16_V3 = fromString("Standard_E16_v3");
+
+ /** Static value Standard_E16s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E16S_V3 = fromString("Standard_E16s_v3");
+
+ /** Static value Standard_E2_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E2_V3 = fromString("Standard_E2_v3");
+
+ /** Static value Standard_E2s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E2S_V3 = fromString("Standard_E2s_v3");
+
+ /** Static value Standard_E32-16s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E32_16S_V3 = fromString("Standard_E32-16s_v3");
+
+ /** Static value Standard_E32-8s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E32_8S_V3 = fromString("Standard_E32-8s_v3");
+
+ /** Static value Standard_E32_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E32_V3 = fromString("Standard_E32_v3");
+
+ /** Static value Standard_E32s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E32S_V3 = fromString("Standard_E32s_v3");
+
+ /** Static value Standard_E4_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E4_V3 = fromString("Standard_E4_v3");
+
+ /** Static value Standard_E4s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E4S_V3 = fromString("Standard_E4s_v3");
+
+ /** Static value Standard_E64-16s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E64_16S_V3 = fromString("Standard_E64-16s_v3");
+
+ /** Static value Standard_E64-32s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E64_32S_V3 = fromString("Standard_E64-32s_v3");
+
+ /** Static value Standard_E64_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E64_V3 = fromString("Standard_E64_v3");
+
+ /** Static value Standard_E64s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E64S_V3 = fromString("Standard_E64s_v3");
+
+ /** Static value Standard_E8_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E8_V3 = fromString("Standard_E8_v3");
+
+ /** Static value Standard_E8s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_E8S_V3 = fromString("Standard_E8s_v3");
+
+ /** Static value Standard_F1 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F1 = fromString("Standard_F1");
+
+ /** Static value Standard_F16 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F16 = fromString("Standard_F16");
+
+ /** Static value Standard_F16s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F16S = fromString("Standard_F16s");
+
+ /** Static value Standard_F16s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F16S_V2 = fromString("Standard_F16s_v2");
+
+ /** Static value Standard_F1s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F1S = fromString("Standard_F1s");
+
+ /** Static value Standard_F2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F2 = fromString("Standard_F2");
+
+ /** Static value Standard_F2s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F2S = fromString("Standard_F2s");
+
+ /** Static value Standard_F2s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F2S_V2 = fromString("Standard_F2s_v2");
+
+ /** Static value Standard_F32s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F32S_V2 = fromString("Standard_F32s_v2");
+
+ /** Static value Standard_F4 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F4 = fromString("Standard_F4");
+
+ /** Static value Standard_F4s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F4S = fromString("Standard_F4s");
+
+ /** Static value Standard_F4s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F4S_V2 = fromString("Standard_F4s_v2");
+
+ /** Static value Standard_F64s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F64S_V2 = fromString("Standard_F64s_v2");
+
+ /** Static value Standard_F72s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F72S_V2 = fromString("Standard_F72s_v2");
+
+ /** Static value Standard_F8 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F8 = fromString("Standard_F8");
+
+ /** Static value Standard_F8s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F8S = fromString("Standard_F8s");
+
+ /** Static value Standard_F8s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_F8S_V2 = fromString("Standard_F8s_v2");
+
+ /** Static value Standard_G1 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_G1 = fromString("Standard_G1");
+
+ /** Static value Standard_G2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_G2 = fromString("Standard_G2");
+
+ /** Static value Standard_G3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_G3 = fromString("Standard_G3");
+
+ /** Static value Standard_G4 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_G4 = fromString("Standard_G4");
+
+ /** Static value Standard_G5 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_G5 = fromString("Standard_G5");
+
+ /** Static value Standard_GS1 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS1 = fromString("Standard_GS1");
+
+ /** Static value Standard_GS2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS2 = fromString("Standard_GS2");
+
+ /** Static value Standard_GS3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS3 = fromString("Standard_GS3");
+
+ /** Static value Standard_GS4 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS4 = fromString("Standard_GS4");
+
+ /** Static value Standard_GS4-4 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS4_4 = fromString("Standard_GS4-4");
+
+ /** Static value Standard_GS4-8 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS4_8 = fromString("Standard_GS4-8");
+
+ /** Static value Standard_GS5 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS5 = fromString("Standard_GS5");
+
+ /** Static value Standard_GS5-16 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS5_16 = fromString("Standard_GS5-16");
+
+ /** Static value Standard_GS5-8 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_GS5_8 = fromString("Standard_GS5-8");
+
+ /** Static value Standard_H16 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_H16 = fromString("Standard_H16");
+
+ /** Static value Standard_H16m for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_H16M = fromString("Standard_H16m");
+
+ /** Static value Standard_H16mr for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_H16MR = fromString("Standard_H16mr");
+
+ /** Static value Standard_H16r for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_H16R = fromString("Standard_H16r");
+
+ /** Static value Standard_H8 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_H8 = fromString("Standard_H8");
+
+ /** Static value Standard_H8m for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_H8M = fromString("Standard_H8m");
+
+ /** Static value Standard_L16s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_L16S = fromString("Standard_L16s");
+
+ /** Static value Standard_L32s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_L32S = fromString("Standard_L32s");
+
+ /** Static value Standard_L4s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_L4S = fromString("Standard_L4s");
+
+ /** Static value Standard_L8s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_L8S = fromString("Standard_L8s");
+
+ /** Static value Standard_M128-32ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_M128_32MS = fromString("Standard_M128-32ms");
+
+ /** Static value Standard_M128-64ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_M128_64MS = fromString("Standard_M128-64ms");
+
+ /** Static value Standard_M128ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_M128MS = fromString("Standard_M128ms");
+
+ /** Static value Standard_M128s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_M128S = fromString("Standard_M128s");
+
+ /** Static value Standard_M64-16ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_M64_16MS = fromString("Standard_M64-16ms");
+
+ /** Static value Standard_M64-32ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_M64_32MS = fromString("Standard_M64-32ms");
+
+ /** Static value Standard_M64ms for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_M64MS = fromString("Standard_M64ms");
+
+ /** Static value Standard_M64s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_M64S = fromString("Standard_M64s");
+
+ /** Static value Standard_NC12 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC12 = fromString("Standard_NC12");
+
+ /** Static value Standard_NC12s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC12S_V2 = fromString("Standard_NC12s_v2");
+
+ /** Static value Standard_NC12s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC12S_V3 = fromString("Standard_NC12s_v3");
+
+ /** Static value Standard_NC24 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC24 = fromString("Standard_NC24");
+
+ /** Static value Standard_NC24r for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC24R = fromString("Standard_NC24r");
+
+ /** Static value Standard_NC24rs_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC24RS_V2 = fromString("Standard_NC24rs_v2");
+
+ /** Static value Standard_NC24rs_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC24RS_V3 = fromString("Standard_NC24rs_v3");
+
+ /** Static value Standard_NC24s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC24S_V2 = fromString("Standard_NC24s_v2");
+
+ /** Static value Standard_NC24s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC24S_V3 = fromString("Standard_NC24s_v3");
+
+ /** Static value Standard_NC6 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC6 = fromString("Standard_NC6");
+
+ /** Static value Standard_NC6s_v2 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC6S_V2 = fromString("Standard_NC6s_v2");
+
+ /** Static value Standard_NC6s_v3 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NC6S_V3 = fromString("Standard_NC6s_v3");
+
+ /** Static value Standard_ND12s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_ND12S = fromString("Standard_ND12s");
+
+ /** Static value Standard_ND24rs for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_ND24RS = fromString("Standard_ND24rs");
+
+ /** Static value Standard_ND24s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_ND24S = fromString("Standard_ND24s");
+
+ /** Static value Standard_ND6s for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_ND6S = fromString("Standard_ND6s");
+
+ /** Static value Standard_NV12 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NV12 = fromString("Standard_NV12");
+
+ /** Static value Standard_NV24 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NV24 = fromString("Standard_NV24");
+
+ /** Static value Standard_NV6 for ContainerServiceVMSizeTypes. */
+ public static final ContainerServiceVMSizeTypes STANDARD_NV6 = fromString("Standard_NV6");
+
+ /**
+ * Creates or finds a ContainerServiceVMSizeTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerServiceVMSizeTypes
+ */
+ @JsonCreator
+ public static ContainerServiceVMSizeTypes fromString(String name) {
+ return fromString(name, ContainerServiceVMSizeTypes.class);
+ }
+
+ /**
+ * @return known ContainerServiceVMSizeTypes values
+ */
+ public static Collection values() {
+ return values(ContainerServiceVMSizeTypes.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceWindowsProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceWindowsProfile.java
new file mode 100644
index 0000000000000..e9b37099680f4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServiceWindowsProfile.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for Windows VMs in the container service cluster.
+ */
+public class ContainerServiceWindowsProfile {
+ /**
+ * The administrator username to use for Windows VMs.
+ */
+ @JsonProperty(value = "adminUsername", required = true)
+ private String adminUsername;
+
+ /**
+ * The administrator password to use for Windows VMs.
+ */
+ @JsonProperty(value = "adminPassword", required = true)
+ private String adminPassword;
+
+ /**
+ * Get the administrator username to use for Windows VMs.
+ *
+ * @return the adminUsername value
+ */
+ public String adminUsername() {
+ return this.adminUsername;
+ }
+
+ /**
+ * Set the administrator username to use for Windows VMs.
+ *
+ * @param adminUsername the adminUsername value to set
+ * @return the ContainerServiceWindowsProfile object itself.
+ */
+ public ContainerServiceWindowsProfile withAdminUsername(String adminUsername) {
+ this.adminUsername = adminUsername;
+ return this;
+ }
+
+ /**
+ * Get the administrator password to use for Windows VMs.
+ *
+ * @return the adminPassword value
+ */
+ public String adminPassword() {
+ return this.adminPassword;
+ }
+
+ /**
+ * Set the administrator password to use for Windows VMs.
+ *
+ * @param adminPassword the adminPassword value to set
+ * @return the ContainerServiceWindowsProfile object itself.
+ */
+ public ContainerServiceWindowsProfile withAdminPassword(String adminPassword) {
+ this.adminPassword = adminPassword;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServices.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServices.java
new file mode 100644
index 0000000000000..81073d8a99acf
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ContainerServices.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServicesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ContainerServices.
+ */
+public interface ContainerServices extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Gets a list of supported orchestrators in the specified subscription.
+ * Gets a list of supported orchestrators in the specified subscription. The operation returns properties of each orchestrator including version, available upgrades and whether that version or upgrades are in preview.
+ *
+ * @param location The name of a supported Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listOrchestratorsAsync(String location);
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/CredentialResult.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/CredentialResult.java
new file mode 100644
index 0000000000000..22724e1fe89ff
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/CredentialResult.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The credential result response.
+ */
+public class CredentialResult {
+ /**
+ * The name of the credential.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Base64-encoded Kubernetes configuration file.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private byte[] value;
+
+ /**
+ * Get the name of the credential.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get base64-encoded Kubernetes configuration file.
+ *
+ * @return the value value
+ */
+ public byte[] value() {
+ return this.value;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/CredentialResults.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/CredentialResults.java
new file mode 100644
index 0000000000000..ca6f9175806c3
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/CredentialResults.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.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.CredentialResultsInner;
+import java.util.List;
+
+/**
+ * Type representing CredentialResults.
+ */
+public interface CredentialResults extends HasInner, HasManager {
+ /**
+ * @return the kubeconfigs value.
+ */
+ List kubeconfigs();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/KeyVaultSecretRef.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/KeyVaultSecretRef.java
new file mode 100644
index 0000000000000..a4a95a6c9587e
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/KeyVaultSecretRef.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Reference to a secret stored in Azure Key Vault.
+ */
+public class KeyVaultSecretRef {
+ /**
+ * Key vault identifier.
+ */
+ @JsonProperty(value = "vaultID", required = true)
+ private String vaultID;
+
+ /**
+ * The secret name.
+ */
+ @JsonProperty(value = "secretName", required = true)
+ private String secretName;
+
+ /**
+ * The secret version.
+ */
+ @JsonProperty(value = "version")
+ private String version;
+
+ /**
+ * Get key vault identifier.
+ *
+ * @return the vaultID value
+ */
+ public String vaultID() {
+ return this.vaultID;
+ }
+
+ /**
+ * Set key vault identifier.
+ *
+ * @param vaultID the vaultID value to set
+ * @return the KeyVaultSecretRef object itself.
+ */
+ public KeyVaultSecretRef withVaultID(String vaultID) {
+ this.vaultID = vaultID;
+ return this;
+ }
+
+ /**
+ * Get the secret name.
+ *
+ * @return the secretName value
+ */
+ public String secretName() {
+ return this.secretName;
+ }
+
+ /**
+ * Set the secret name.
+ *
+ * @param secretName the secretName value to set
+ * @return the KeyVaultSecretRef object itself.
+ */
+ public KeyVaultSecretRef withSecretName(String secretName) {
+ this.secretName = secretName;
+ return this;
+ }
+
+ /**
+ * Get the secret version.
+ *
+ * @return the version value
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the secret version.
+ *
+ * @param version the version value to set
+ * @return the KeyVaultSecretRef object itself.
+ */
+ public KeyVaultSecretRef withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/LoadBalancerSku.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/LoadBalancerSku.java
new file mode 100644
index 0000000000000..7f4b36abba80a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/LoadBalancerSku.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LoadBalancerSku.
+ */
+public final class LoadBalancerSku extends ExpandableStringEnum {
+ /** Static value standard for LoadBalancerSku. */
+ public static final LoadBalancerSku STANDARD = fromString("standard");
+
+ /** Static value basic for LoadBalancerSku. */
+ public static final LoadBalancerSku BASIC = fromString("basic");
+
+ /**
+ * Creates or finds a LoadBalancerSku from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LoadBalancerSku
+ */
+ @JsonCreator
+ public static LoadBalancerSku fromString(String name) {
+ return fromString(name, LoadBalancerSku.class);
+ }
+
+ /**
+ * @return known LoadBalancerSku values
+ */
+ public static Collection values() {
+ return values(LoadBalancerSku.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedCluster.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedCluster.java
new file mode 100644
index 0000000000000..d9a2240eaa161
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedCluster.java
@@ -0,0 +1,612 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_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.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import java.util.List;
+import java.util.Map;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ManagedClusterInner;
+
+/**
+ * Type representing ManagedCluster.
+ */
+public interface ManagedCluster extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the aadProfile value.
+ */
+ ManagedClusterAADProfile aadProfile();
+
+ /**
+ * @return the addonProfiles value.
+ */
+ Map addonProfiles();
+
+ /**
+ * @return the agentPoolProfiles value.
+ */
+ List agentPoolProfiles();
+
+ /**
+ * @return the apiServerAccessProfile value.
+ */
+ ManagedClusterAPIServerAccessProfile apiServerAccessProfile();
+
+ /**
+ * @return the autoScalerProfile value.
+ */
+ ManagedClusterPropertiesAutoScalerProfile autoScalerProfile();
+
+ /**
+ * @return the diskEncryptionSetID value.
+ */
+ String diskEncryptionSetID();
+
+ /**
+ * @return the dnsPrefix value.
+ */
+ String dnsPrefix();
+
+ /**
+ * @return the enablePodSecurityPolicy value.
+ */
+ Boolean enablePodSecurityPolicy();
+
+ /**
+ * @return the enableRBAC value.
+ */
+ Boolean enableRBAC();
+
+ /**
+ * @return the fqdn value.
+ */
+ String fqdn();
+
+ /**
+ * @return the identity value.
+ */
+ ManagedClusterIdentity identity();
+
+ /**
+ * @return the identityProfile value.
+ */
+ Map identityProfile();
+
+ /**
+ * @return the kubernetesVersion value.
+ */
+ String kubernetesVersion();
+
+ /**
+ * @return the linuxProfile value.
+ */
+ ContainerServiceLinuxProfile linuxProfile();
+
+ /**
+ * @return the maxAgentPools value.
+ */
+ Integer maxAgentPools();
+
+ /**
+ * @return the networkProfile value.
+ */
+ ContainerServiceNetworkProfile networkProfile();
+
+ /**
+ * @return the nodeResourceGroup value.
+ */
+ String nodeResourceGroup();
+
+ /**
+ * @return the privateFQDN value.
+ */
+ String privateFQDN();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the servicePrincipalProfile value.
+ */
+ ManagedClusterServicePrincipalProfile servicePrincipalProfile();
+
+ /**
+ * @return the sku value.
+ */
+ ManagedClusterSKU sku();
+
+ /**
+ * @return the windowsProfile value.
+ */
+ ManagedClusterWindowsProfile windowsProfile();
+
+ /**
+ * The entirety of the ManagedCluster definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ManagedCluster definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ManagedCluster definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ManagedCluster definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify AadProfile.
+ */
+ interface WithAadProfile {
+ /**
+ * Specifies aadProfile.
+ * @param aadProfile Profile of Azure Active Directory configuration
+ * @return the next definition stage
+ */
+ WithCreate withAadProfile(ManagedClusterAADProfile aadProfile);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify AddonProfiles.
+ */
+ interface WithAddonProfiles {
+ /**
+ * Specifies addonProfiles.
+ * @param addonProfiles Profile of managed cluster add-on
+ * @return the next definition stage
+ */
+ WithCreate withAddonProfiles(Map addonProfiles);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify AgentPoolProfiles.
+ */
+ interface WithAgentPoolProfiles {
+ /**
+ * Specifies agentPoolProfiles.
+ * @param agentPoolProfiles Properties of the agent pool
+ * @return the next definition stage
+ */
+ WithCreate withAgentPoolProfiles(List agentPoolProfiles);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify ApiServerAccessProfile.
+ */
+ interface WithApiServerAccessProfile {
+ /**
+ * Specifies apiServerAccessProfile.
+ * @param apiServerAccessProfile Access profile for managed cluster API server
+ * @return the next definition stage
+ */
+ WithCreate withApiServerAccessProfile(ManagedClusterAPIServerAccessProfile apiServerAccessProfile);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify AutoScalerProfile.
+ */
+ interface WithAutoScalerProfile {
+ /**
+ * Specifies autoScalerProfile.
+ * @param autoScalerProfile Parameters to be applied to the cluster-autoscaler when enabled
+ * @return the next definition stage
+ */
+ WithCreate withAutoScalerProfile(ManagedClusterPropertiesAutoScalerProfile autoScalerProfile);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify DiskEncryptionSetID.
+ */
+ interface WithDiskEncryptionSetID {
+ /**
+ * Specifies diskEncryptionSetID.
+ * @param diskEncryptionSetID ResourceId of the disk encryption set to use for enabling encryption at rest
+ * @return the next definition stage
+ */
+ WithCreate withDiskEncryptionSetID(String diskEncryptionSetID);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify DnsPrefix.
+ */
+ interface WithDnsPrefix {
+ /**
+ * Specifies dnsPrefix.
+ * @param dnsPrefix DNS prefix specified when creating the managed cluster
+ * @return the next definition stage
+ */
+ WithCreate withDnsPrefix(String dnsPrefix);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify EnablePodSecurityPolicy.
+ */
+ interface WithEnablePodSecurityPolicy {
+ /**
+ * Specifies enablePodSecurityPolicy.
+ * @param enablePodSecurityPolicy (DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy
+ * @return the next definition stage
+ */
+ WithCreate withEnablePodSecurityPolicy(Boolean enablePodSecurityPolicy);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify EnableRBAC.
+ */
+ interface WithEnableRBAC {
+ /**
+ * Specifies enableRBAC.
+ * @param enableRBAC Whether to enable Kubernetes Role-Based Access Control
+ * @return the next definition stage
+ */
+ WithCreate withEnableRBAC(Boolean enableRBAC);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the managed cluster, if configured
+ * @return the next definition stage
+ */
+ WithCreate withIdentity(ManagedClusterIdentity identity);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify IdentityProfile.
+ */
+ interface WithIdentityProfile {
+ /**
+ * Specifies identityProfile.
+ * @param identityProfile Identities associated with the cluster
+ * @return the next definition stage
+ */
+ WithCreate withIdentityProfile(Map identityProfile);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify KubernetesVersion.
+ */
+ interface WithKubernetesVersion {
+ /**
+ * Specifies kubernetesVersion.
+ * @param kubernetesVersion Version of Kubernetes specified when creating the managed cluster
+ * @return the next definition stage
+ */
+ WithCreate withKubernetesVersion(String kubernetesVersion);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify LinuxProfile.
+ */
+ interface WithLinuxProfile {
+ /**
+ * Specifies linuxProfile.
+ * @param linuxProfile Profile for Linux VMs in the container service cluster
+ * @return the next definition stage
+ */
+ WithCreate withLinuxProfile(ContainerServiceLinuxProfile linuxProfile);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify NetworkProfile.
+ */
+ interface WithNetworkProfile {
+ /**
+ * Specifies networkProfile.
+ * @param networkProfile Profile of network configuration
+ * @return the next definition stage
+ */
+ WithCreate withNetworkProfile(ContainerServiceNetworkProfile networkProfile);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify NodeResourceGroup.
+ */
+ interface WithNodeResourceGroup {
+ /**
+ * Specifies nodeResourceGroup.
+ * @param nodeResourceGroup Name of the resource group containing agent pool nodes
+ * @return the next definition stage
+ */
+ WithCreate withNodeResourceGroup(String nodeResourceGroup);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify ServicePrincipalProfile.
+ */
+ interface WithServicePrincipalProfile {
+ /**
+ * Specifies servicePrincipalProfile.
+ * @param servicePrincipalProfile Information about a service principal identity for the cluster to use for manipulating Azure APIs
+ * @return the next definition stage
+ */
+ WithCreate withServicePrincipalProfile(ManagedClusterServicePrincipalProfile servicePrincipalProfile);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The managed cluster SKU
+ * @return the next definition stage
+ */
+ WithCreate withSku(ManagedClusterSKU sku);
+ }
+
+ /**
+ * The stage of the managedcluster definition allowing to specify WindowsProfile.
+ */
+ interface WithWindowsProfile {
+ /**
+ * Specifies windowsProfile.
+ * @param windowsProfile Profile for Windows VMs in the container service cluster
+ * @return the next definition stage
+ */
+ WithCreate withWindowsProfile(ManagedClusterWindowsProfile windowsProfile);
+ }
+
+ /**
+ * 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.WithAadProfile, DefinitionStages.WithAddonProfiles, DefinitionStages.WithAgentPoolProfiles, DefinitionStages.WithApiServerAccessProfile, DefinitionStages.WithAutoScalerProfile, DefinitionStages.WithDiskEncryptionSetID, DefinitionStages.WithDnsPrefix, DefinitionStages.WithEnablePodSecurityPolicy, DefinitionStages.WithEnableRBAC, DefinitionStages.WithIdentity, DefinitionStages.WithIdentityProfile, DefinitionStages.WithKubernetesVersion, DefinitionStages.WithLinuxProfile, DefinitionStages.WithNetworkProfile, DefinitionStages.WithNodeResourceGroup, DefinitionStages.WithServicePrincipalProfile, DefinitionStages.WithSku, DefinitionStages.WithWindowsProfile {
+ }
+ }
+ /**
+ * The template for a ManagedCluster update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithAadProfile, UpdateStages.WithAddonProfiles, UpdateStages.WithAgentPoolProfiles, UpdateStages.WithApiServerAccessProfile, UpdateStages.WithAutoScalerProfile, UpdateStages.WithDiskEncryptionSetID, UpdateStages.WithDnsPrefix, UpdateStages.WithEnablePodSecurityPolicy, UpdateStages.WithEnableRBAC, UpdateStages.WithIdentity, UpdateStages.WithIdentityProfile, UpdateStages.WithKubernetesVersion, UpdateStages.WithLinuxProfile, UpdateStages.WithNetworkProfile, UpdateStages.WithNodeResourceGroup, UpdateStages.WithServicePrincipalProfile, UpdateStages.WithSku, UpdateStages.WithWindowsProfile {
+ }
+
+ /**
+ * Grouping of ManagedCluster update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the managedcluster update allowing to specify AadProfile.
+ */
+ interface WithAadProfile {
+ /**
+ * Specifies aadProfile.
+ * @param aadProfile Profile of Azure Active Directory configuration
+ * @return the next update stage
+ */
+ Update withAadProfile(ManagedClusterAADProfile aadProfile);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify AddonProfiles.
+ */
+ interface WithAddonProfiles {
+ /**
+ * Specifies addonProfiles.
+ * @param addonProfiles Profile of managed cluster add-on
+ * @return the next update stage
+ */
+ Update withAddonProfiles(Map addonProfiles);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify AgentPoolProfiles.
+ */
+ interface WithAgentPoolProfiles {
+ /**
+ * Specifies agentPoolProfiles.
+ * @param agentPoolProfiles Properties of the agent pool
+ * @return the next update stage
+ */
+ Update withAgentPoolProfiles(List agentPoolProfiles);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify ApiServerAccessProfile.
+ */
+ interface WithApiServerAccessProfile {
+ /**
+ * Specifies apiServerAccessProfile.
+ * @param apiServerAccessProfile Access profile for managed cluster API server
+ * @return the next update stage
+ */
+ Update withApiServerAccessProfile(ManagedClusterAPIServerAccessProfile apiServerAccessProfile);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify AutoScalerProfile.
+ */
+ interface WithAutoScalerProfile {
+ /**
+ * Specifies autoScalerProfile.
+ * @param autoScalerProfile Parameters to be applied to the cluster-autoscaler when enabled
+ * @return the next update stage
+ */
+ Update withAutoScalerProfile(ManagedClusterPropertiesAutoScalerProfile autoScalerProfile);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify DiskEncryptionSetID.
+ */
+ interface WithDiskEncryptionSetID {
+ /**
+ * Specifies diskEncryptionSetID.
+ * @param diskEncryptionSetID ResourceId of the disk encryption set to use for enabling encryption at rest
+ * @return the next update stage
+ */
+ Update withDiskEncryptionSetID(String diskEncryptionSetID);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify DnsPrefix.
+ */
+ interface WithDnsPrefix {
+ /**
+ * Specifies dnsPrefix.
+ * @param dnsPrefix DNS prefix specified when creating the managed cluster
+ * @return the next update stage
+ */
+ Update withDnsPrefix(String dnsPrefix);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify EnablePodSecurityPolicy.
+ */
+ interface WithEnablePodSecurityPolicy {
+ /**
+ * Specifies enablePodSecurityPolicy.
+ * @param enablePodSecurityPolicy (DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy
+ * @return the next update stage
+ */
+ Update withEnablePodSecurityPolicy(Boolean enablePodSecurityPolicy);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify EnableRBAC.
+ */
+ interface WithEnableRBAC {
+ /**
+ * Specifies enableRBAC.
+ * @param enableRBAC Whether to enable Kubernetes Role-Based Access Control
+ * @return the next update stage
+ */
+ Update withEnableRBAC(Boolean enableRBAC);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the managed cluster, if configured
+ * @return the next update stage
+ */
+ Update withIdentity(ManagedClusterIdentity identity);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify IdentityProfile.
+ */
+ interface WithIdentityProfile {
+ /**
+ * Specifies identityProfile.
+ * @param identityProfile Identities associated with the cluster
+ * @return the next update stage
+ */
+ Update withIdentityProfile(Map identityProfile);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify KubernetesVersion.
+ */
+ interface WithKubernetesVersion {
+ /**
+ * Specifies kubernetesVersion.
+ * @param kubernetesVersion Version of Kubernetes specified when creating the managed cluster
+ * @return the next update stage
+ */
+ Update withKubernetesVersion(String kubernetesVersion);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify LinuxProfile.
+ */
+ interface WithLinuxProfile {
+ /**
+ * Specifies linuxProfile.
+ * @param linuxProfile Profile for Linux VMs in the container service cluster
+ * @return the next update stage
+ */
+ Update withLinuxProfile(ContainerServiceLinuxProfile linuxProfile);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify NetworkProfile.
+ */
+ interface WithNetworkProfile {
+ /**
+ * Specifies networkProfile.
+ * @param networkProfile Profile of network configuration
+ * @return the next update stage
+ */
+ Update withNetworkProfile(ContainerServiceNetworkProfile networkProfile);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify NodeResourceGroup.
+ */
+ interface WithNodeResourceGroup {
+ /**
+ * Specifies nodeResourceGroup.
+ * @param nodeResourceGroup Name of the resource group containing agent pool nodes
+ * @return the next update stage
+ */
+ Update withNodeResourceGroup(String nodeResourceGroup);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify ServicePrincipalProfile.
+ */
+ interface WithServicePrincipalProfile {
+ /**
+ * Specifies servicePrincipalProfile.
+ * @param servicePrincipalProfile Information about a service principal identity for the cluster to use for manipulating Azure APIs
+ * @return the next update stage
+ */
+ Update withServicePrincipalProfile(ManagedClusterServicePrincipalProfile servicePrincipalProfile);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The managed cluster SKU
+ * @return the next update stage
+ */
+ Update withSku(ManagedClusterSKU sku);
+ }
+
+ /**
+ * The stage of the managedcluster update allowing to specify WindowsProfile.
+ */
+ interface WithWindowsProfile {
+ /**
+ * Specifies windowsProfile.
+ * @param windowsProfile Profile for Windows VMs in the container service cluster
+ * @return the next update stage
+ */
+ Update withWindowsProfile(ManagedClusterWindowsProfile windowsProfile);
+ }
+
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAADProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAADProfile.java
new file mode 100644
index 0000000000000..75d94a4c68a2a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAADProfile.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * AADProfile specifies attributes for Azure Active Directory integration.
+ */
+public class ManagedClusterAADProfile {
+ /**
+ * Whether to enable managed AAD.
+ */
+ @JsonProperty(value = "managed")
+ private Boolean managed;
+
+ /**
+ * AAD group object IDs that will have admin role of the cluster.
+ */
+ @JsonProperty(value = "adminGroupObjectIDs")
+ private List adminGroupObjectIDs;
+
+ /**
+ * The client AAD application ID.
+ */
+ @JsonProperty(value = "clientAppID")
+ private String clientAppID;
+
+ /**
+ * The server AAD application ID.
+ */
+ @JsonProperty(value = "serverAppID")
+ private String serverAppID;
+
+ /**
+ * The server AAD application secret.
+ */
+ @JsonProperty(value = "serverAppSecret")
+ private String serverAppSecret;
+
+ /**
+ * The AAD tenant ID to use for authentication. If not specified, will use
+ * the tenant of the deployment subscription.
+ */
+ @JsonProperty(value = "tenantID")
+ private String tenantID;
+
+ /**
+ * Get whether to enable managed AAD.
+ *
+ * @return the managed value
+ */
+ public Boolean managed() {
+ return this.managed;
+ }
+
+ /**
+ * Set whether to enable managed AAD.
+ *
+ * @param managed the managed value to set
+ * @return the ManagedClusterAADProfile object itself.
+ */
+ public ManagedClusterAADProfile withManaged(Boolean managed) {
+ this.managed = managed;
+ return this;
+ }
+
+ /**
+ * Get aAD group object IDs that will have admin role of the cluster.
+ *
+ * @return the adminGroupObjectIDs value
+ */
+ public List adminGroupObjectIDs() {
+ return this.adminGroupObjectIDs;
+ }
+
+ /**
+ * Set aAD group object IDs that will have admin role of the cluster.
+ *
+ * @param adminGroupObjectIDs the adminGroupObjectIDs value to set
+ * @return the ManagedClusterAADProfile object itself.
+ */
+ public ManagedClusterAADProfile withAdminGroupObjectIDs(List adminGroupObjectIDs) {
+ this.adminGroupObjectIDs = adminGroupObjectIDs;
+ return this;
+ }
+
+ /**
+ * Get the client AAD application ID.
+ *
+ * @return the clientAppID value
+ */
+ public String clientAppID() {
+ return this.clientAppID;
+ }
+
+ /**
+ * Set the client AAD application ID.
+ *
+ * @param clientAppID the clientAppID value to set
+ * @return the ManagedClusterAADProfile object itself.
+ */
+ public ManagedClusterAADProfile withClientAppID(String clientAppID) {
+ this.clientAppID = clientAppID;
+ return this;
+ }
+
+ /**
+ * Get the server AAD application ID.
+ *
+ * @return the serverAppID value
+ */
+ public String serverAppID() {
+ return this.serverAppID;
+ }
+
+ /**
+ * Set the server AAD application ID.
+ *
+ * @param serverAppID the serverAppID value to set
+ * @return the ManagedClusterAADProfile object itself.
+ */
+ public ManagedClusterAADProfile withServerAppID(String serverAppID) {
+ this.serverAppID = serverAppID;
+ return this;
+ }
+
+ /**
+ * Get the server AAD application secret.
+ *
+ * @return the serverAppSecret value
+ */
+ public String serverAppSecret() {
+ return this.serverAppSecret;
+ }
+
+ /**
+ * Set the server AAD application secret.
+ *
+ * @param serverAppSecret the serverAppSecret value to set
+ * @return the ManagedClusterAADProfile object itself.
+ */
+ public ManagedClusterAADProfile withServerAppSecret(String serverAppSecret) {
+ this.serverAppSecret = serverAppSecret;
+ return this;
+ }
+
+ /**
+ * Get the AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment subscription.
+ *
+ * @return the tenantID value
+ */
+ public String tenantID() {
+ return this.tenantID;
+ }
+
+ /**
+ * Set the AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment subscription.
+ *
+ * @param tenantID the tenantID value to set
+ * @return the ManagedClusterAADProfile object itself.
+ */
+ public ManagedClusterAADProfile withTenantID(String tenantID) {
+ this.tenantID = tenantID;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAPIServerAccessProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAPIServerAccessProfile.java
new file mode 100644
index 0000000000000..542afe039482e
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAPIServerAccessProfile.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.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Access profile for managed cluster API server.
+ */
+public class ManagedClusterAPIServerAccessProfile {
+ /**
+ * Authorized IP Ranges to kubernetes API server.
+ */
+ @JsonProperty(value = "authorizedIPRanges")
+ private List authorizedIPRanges;
+
+ /**
+ * Whether to create the cluster as a private cluster or not.
+ */
+ @JsonProperty(value = "enablePrivateCluster")
+ private Boolean enablePrivateCluster;
+
+ /**
+ * Get authorized IP Ranges to kubernetes API server.
+ *
+ * @return the authorizedIPRanges value
+ */
+ public List authorizedIPRanges() {
+ return this.authorizedIPRanges;
+ }
+
+ /**
+ * Set authorized IP Ranges to kubernetes API server.
+ *
+ * @param authorizedIPRanges the authorizedIPRanges value to set
+ * @return the ManagedClusterAPIServerAccessProfile object itself.
+ */
+ public ManagedClusterAPIServerAccessProfile withAuthorizedIPRanges(List authorizedIPRanges) {
+ this.authorizedIPRanges = authorizedIPRanges;
+ return this;
+ }
+
+ /**
+ * Get whether to create the cluster as a private cluster or not.
+ *
+ * @return the enablePrivateCluster value
+ */
+ public Boolean enablePrivateCluster() {
+ return this.enablePrivateCluster;
+ }
+
+ /**
+ * Set whether to create the cluster as a private cluster or not.
+ *
+ * @param enablePrivateCluster the enablePrivateCluster value to set
+ * @return the ManagedClusterAPIServerAccessProfile object itself.
+ */
+ public ManagedClusterAPIServerAccessProfile withEnablePrivateCluster(Boolean enablePrivateCluster) {
+ this.enablePrivateCluster = enablePrivateCluster;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAccessProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAccessProfile.java
new file mode 100644
index 0000000000000..ae62e3bb13d6a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAccessProfile.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ManagedClusterAccessProfileInner;
+import java.util.Map;
+
+/**
+ * Type representing ManagedClusterAccessProfile.
+ */
+public interface ManagedClusterAccessProfile extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kubeConfig value.
+ */
+ byte[] kubeConfig();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAddonProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAddonProfile.java
new file mode 100644
index 0000000000000..80a3d76bfb7a6
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAddonProfile.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A Kubernetes add-on profile for a managed cluster.
+ */
+public class ManagedClusterAddonProfile {
+ /**
+ * Whether the add-on is enabled or not.
+ */
+ @JsonProperty(value = "enabled", required = true)
+ private boolean enabled;
+
+ /**
+ * Key-value pairs for configuring an add-on.
+ */
+ @JsonProperty(value = "config")
+ private Map config;
+
+ /**
+ * Information of user assigned identity used by this add-on.
+ */
+ @JsonProperty(value = "identity", access = JsonProperty.Access.WRITE_ONLY)
+ private ManagedClusterAddonProfileIdentity identity;
+
+ /**
+ * Get whether the add-on is enabled or not.
+ *
+ * @return the enabled value
+ */
+ public boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set whether the add-on is enabled or not.
+ *
+ * @param enabled the enabled value to set
+ * @return the ManagedClusterAddonProfile object itself.
+ */
+ public ManagedClusterAddonProfile withEnabled(boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get key-value pairs for configuring an add-on.
+ *
+ * @return the config value
+ */
+ public Map config() {
+ return this.config;
+ }
+
+ /**
+ * Set key-value pairs for configuring an add-on.
+ *
+ * @param config the config value to set
+ * @return the ManagedClusterAddonProfile object itself.
+ */
+ public ManagedClusterAddonProfile withConfig(Map config) {
+ this.config = config;
+ return this;
+ }
+
+ /**
+ * Get information of user assigned identity used by this add-on.
+ *
+ * @return the identity value
+ */
+ public ManagedClusterAddonProfileIdentity identity() {
+ return this.identity;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAddonProfileIdentity.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAddonProfileIdentity.java
new file mode 100644
index 0000000000000..6ab817a1b090e
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAddonProfileIdentity.java
@@ -0,0 +1,16 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+
+/**
+ * Information of user assigned identity used by this add-on.
+ */
+public class ManagedClusterAddonProfileIdentity extends UserAssignedIdentity {
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAgentPoolProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAgentPoolProfile.java
new file mode 100644
index 0000000000000..77e5c5f605665
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAgentPoolProfile.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for the container service agent pool.
+ */
+public class ManagedClusterAgentPoolProfile extends ManagedClusterAgentPoolProfileProperties {
+ /**
+ * Unique name of the agent pool profile in the context of the subscription
+ * and resource group.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Get unique name of the agent pool profile in the context of the subscription and resource group.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set unique name of the agent pool profile in the context of the subscription and resource group.
+ *
+ * @param name the name value to set
+ * @return the ManagedClusterAgentPoolProfile object itself.
+ */
+ public ManagedClusterAgentPoolProfile withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAgentPoolProfileProperties.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAgentPoolProfileProperties.java
new file mode 100644
index 0000000000000..03e093a31178d
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterAgentPoolProfileProperties.java
@@ -0,0 +1,674 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties for the container service agent pool profile.
+ */
+public class ManagedClusterAgentPoolProfileProperties {
+ /**
+ * Number of agents (VMs) to host docker containers. Allowed values must be
+ * in the range of 0 to 100 (inclusive) for user pools and in the range of
+ * 1 to 100 (inclusive) for system pools. The default value is 1.
+ */
+ @JsonProperty(value = "count")
+ private Integer count;
+
+ /**
+ * Size of agent VMs. Possible values include: 'Standard_A1',
+ * 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2',
+ * 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4',
+ * 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6',
+ * 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2',
+ * 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms',
+ * 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2',
+ * 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2',
+ * 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2',
+ * 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2',
+ * 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3',
+ * 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2',
+ * 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3',
+ * 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2',
+ * 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2',
+ * 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3',
+ * 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3',
+ * 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1',
+ * 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo',
+ * 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo',
+ * 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2',
+ * 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14',
+ * 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2',
+ * 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2',
+ * 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo',
+ * 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo',
+ * 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo',
+ * 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3',
+ * 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3',
+ * 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3',
+ * 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3',
+ * 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3',
+ * 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1',
+ * 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s',
+ * 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2',
+ * 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2',
+ * 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2',
+ * 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4',
+ * 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3',
+ * 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5',
+ * 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m',
+ * 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m',
+ * 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s',
+ * 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms',
+ * 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms',
+ * 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2',
+ * 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r',
+ * 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2',
+ * 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2',
+ * 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs',
+ * 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24',
+ * 'Standard_NV6'.
+ */
+ @JsonProperty(value = "vmSize")
+ private ContainerServiceVMSizeTypes vmSize;
+
+ /**
+ * OS Disk Size in GB to be used to specify the disk size for every machine
+ * in this master/agent pool. If you specify 0, it will apply the default
+ * osDisk size according to the vmSize specified.
+ */
+ @JsonProperty(value = "osDiskSizeGB")
+ private Integer osDiskSizeGB;
+
+ /**
+ * VNet SubnetID specifies the VNet's subnet identifier.
+ */
+ @JsonProperty(value = "vnetSubnetID")
+ private String vnetSubnetID;
+
+ /**
+ * Maximum number of pods that can run on a node.
+ */
+ @JsonProperty(value = "maxPods")
+ private Integer maxPods;
+
+ /**
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux. Possible values include: 'Linux', 'Windows'.
+ */
+ @JsonProperty(value = "osType")
+ private OSType osType;
+
+ /**
+ * Maximum number of nodes for auto-scaling.
+ */
+ @JsonProperty(value = "maxCount")
+ private Integer maxCount;
+
+ /**
+ * Minimum number of nodes for auto-scaling.
+ */
+ @JsonProperty(value = "minCount")
+ private Integer minCount;
+
+ /**
+ * Whether to enable auto-scaler.
+ */
+ @JsonProperty(value = "enableAutoScaling")
+ private Boolean enableAutoScaling;
+
+ /**
+ * AgentPoolType represents types of an agent pool. Possible values
+ * include: 'VirtualMachineScaleSets', 'AvailabilitySet'.
+ */
+ @JsonProperty(value = "type")
+ private AgentPoolType type;
+
+ /**
+ * AgentPoolMode represents mode of an agent pool. Possible values include:
+ * 'System', 'User'.
+ */
+ @JsonProperty(value = "mode")
+ private AgentPoolMode mode;
+
+ /**
+ * Version of orchestrator specified when creating the managed cluster.
+ */
+ @JsonProperty(value = "orchestratorVersion")
+ private String orchestratorVersion;
+
+ /**
+ * Version of node image.
+ */
+ @JsonProperty(value = "nodeImageVersion")
+ private String nodeImageVersion;
+
+ /**
+ * Settings for upgrading the agentpool.
+ */
+ @JsonProperty(value = "upgradeSettings")
+ private AgentPoolUpgradeSettings upgradeSettings;
+
+ /**
+ * The current deployment or provisioning state, which only appears in the
+ * response.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Availability zones for nodes. Must use VirtualMachineScaleSets
+ * AgentPoolType.
+ */
+ @JsonProperty(value = "availabilityZones")
+ private List availabilityZones;
+
+ /**
+ * Enable public IP for nodes.
+ */
+ @JsonProperty(value = "enableNodePublicIP")
+ private Boolean enableNodePublicIP;
+
+ /**
+ * ScaleSetPriority to be used to specify virtual machine scale set
+ * priority. Default to regular. Possible values include: 'Spot',
+ * 'Regular'.
+ */
+ @JsonProperty(value = "scaleSetPriority")
+ private ScaleSetPriority scaleSetPriority;
+
+ /**
+ * ScaleSetEvictionPolicy to be used to specify eviction policy for Spot
+ * virtual machine scale set. Default to Delete. Possible values include:
+ * 'Delete', 'Deallocate'.
+ */
+ @JsonProperty(value = "scaleSetEvictionPolicy")
+ private ScaleSetEvictionPolicy scaleSetEvictionPolicy;
+
+ /**
+ * SpotMaxPrice to be used to specify the maximum price you are willing to
+ * pay in US Dollars. Possible values are any decimal value greater than
+ * zero or -1 which indicates default price to be up-to on-demand.
+ */
+ @JsonProperty(value = "spotMaxPrice")
+ private Double spotMaxPrice;
+
+ /**
+ * Agent pool tags to be persisted on the agent pool virtual machine scale
+ * set.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Agent pool node labels to be persisted across all nodes in agent pool.
+ */
+ @JsonProperty(value = "nodeLabels")
+ private Map nodeLabels;
+
+ /**
+ * Taints added to new nodes during node pool create and scale. For
+ * example, key=value:NoSchedule.
+ */
+ @JsonProperty(value = "nodeTaints")
+ private List nodeTaints;
+
+ /**
+ * Get number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1.
+ *
+ * @return the count value
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1.
+ *
+ * @param count the count value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withCount(Integer count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'.
+ *
+ * @return the vmSize value
+ */
+ public ContainerServiceVMSizeTypes vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'.
+ *
+ * @param vmSize the vmSize value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withVmSize(ContainerServiceVMSizeTypes vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get oS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @return the osDiskSizeGB value
+ */
+ public Integer osDiskSizeGB() {
+ return this.osDiskSizeGB;
+ }
+
+ /**
+ * Set oS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @param osDiskSizeGB the osDiskSizeGB value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsDiskSizeGB(Integer osDiskSizeGB) {
+ this.osDiskSizeGB = osDiskSizeGB;
+ return this;
+ }
+
+ /**
+ * Get vNet SubnetID specifies the VNet's subnet identifier.
+ *
+ * @return the vnetSubnetID value
+ */
+ public String vnetSubnetID() {
+ return this.vnetSubnetID;
+ }
+
+ /**
+ * Set vNet SubnetID specifies the VNet's subnet identifier.
+ *
+ * @param vnetSubnetID the vnetSubnetID value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withVnetSubnetID(String vnetSubnetID) {
+ this.vnetSubnetID = vnetSubnetID;
+ return this;
+ }
+
+ /**
+ * Get maximum number of pods that can run on a node.
+ *
+ * @return the maxPods value
+ */
+ public Integer maxPods() {
+ return this.maxPods;
+ }
+
+ /**
+ * Set maximum number of pods that can run on a node.
+ *
+ * @param maxPods the maxPods value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMaxPods(Integer maxPods) {
+ this.maxPods = maxPods;
+ return this;
+ }
+
+ /**
+ * Get osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @param osType the osType value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get maximum number of nodes for auto-scaling.
+ *
+ * @return the maxCount value
+ */
+ public Integer maxCount() {
+ return this.maxCount;
+ }
+
+ /**
+ * Set maximum number of nodes for auto-scaling.
+ *
+ * @param maxCount the maxCount value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMaxCount(Integer maxCount) {
+ this.maxCount = maxCount;
+ return this;
+ }
+
+ /**
+ * Get minimum number of nodes for auto-scaling.
+ *
+ * @return the minCount value
+ */
+ public Integer minCount() {
+ return this.minCount;
+ }
+
+ /**
+ * Set minimum number of nodes for auto-scaling.
+ *
+ * @param minCount the minCount value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMinCount(Integer minCount) {
+ this.minCount = minCount;
+ return this;
+ }
+
+ /**
+ * Get whether to enable auto-scaler.
+ *
+ * @return the enableAutoScaling value
+ */
+ public Boolean enableAutoScaling() {
+ return this.enableAutoScaling;
+ }
+
+ /**
+ * Set whether to enable auto-scaler.
+ *
+ * @param enableAutoScaling the enableAutoScaling value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableAutoScaling(Boolean enableAutoScaling) {
+ this.enableAutoScaling = enableAutoScaling;
+ return this;
+ }
+
+ /**
+ * Get agentPoolType represents types of an agent pool. Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet'.
+ *
+ * @return the type value
+ */
+ public AgentPoolType type() {
+ return this.type;
+ }
+
+ /**
+ * Set agentPoolType represents types of an agent pool. Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet'.
+ *
+ * @param type the type value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withType(AgentPoolType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get agentPoolMode represents mode of an agent pool. Possible values include: 'System', 'User'.
+ *
+ * @return the mode value
+ */
+ public AgentPoolMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set agentPoolMode represents mode of an agent pool. Possible values include: 'System', 'User'.
+ *
+ * @param mode the mode value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMode(AgentPoolMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+ /**
+ * Get version of orchestrator specified when creating the managed cluster.
+ *
+ * @return the orchestratorVersion value
+ */
+ public String orchestratorVersion() {
+ return this.orchestratorVersion;
+ }
+
+ /**
+ * Set version of orchestrator specified when creating the managed cluster.
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOrchestratorVersion(String orchestratorVersion) {
+ this.orchestratorVersion = orchestratorVersion;
+ return this;
+ }
+
+ /**
+ * Get version of node image.
+ *
+ * @return the nodeImageVersion value
+ */
+ public String nodeImageVersion() {
+ return this.nodeImageVersion;
+ }
+
+ /**
+ * Set version of node image.
+ *
+ * @param nodeImageVersion the nodeImageVersion value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withNodeImageVersion(String nodeImageVersion) {
+ this.nodeImageVersion = nodeImageVersion;
+ return this;
+ }
+
+ /**
+ * Get settings for upgrading the agentpool.
+ *
+ * @return the upgradeSettings value
+ */
+ public AgentPoolUpgradeSettings upgradeSettings() {
+ return this.upgradeSettings;
+ }
+
+ /**
+ * Set settings for upgrading the agentpool.
+ *
+ * @param upgradeSettings the upgradeSettings value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings) {
+ this.upgradeSettings = upgradeSettings;
+ return this;
+ }
+
+ /**
+ * Get the current deployment or provisioning state, which only appears in the response.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType.
+ *
+ * @return the availabilityZones value
+ */
+ public List availabilityZones() {
+ return this.availabilityZones;
+ }
+
+ /**
+ * Set availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType.
+ *
+ * @param availabilityZones the availabilityZones value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withAvailabilityZones(List availabilityZones) {
+ this.availabilityZones = availabilityZones;
+ return this;
+ }
+
+ /**
+ * Get enable public IP for nodes.
+ *
+ * @return the enableNodePublicIP value
+ */
+ public Boolean enableNodePublicIP() {
+ return this.enableNodePublicIP;
+ }
+
+ /**
+ * Set enable public IP for nodes.
+ *
+ * @param enableNodePublicIP the enableNodePublicIP value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableNodePublicIP(Boolean enableNodePublicIP) {
+ this.enableNodePublicIP = enableNodePublicIP;
+ return this;
+ }
+
+ /**
+ * Get scaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. Possible values include: 'Spot', 'Regular'.
+ *
+ * @return the scaleSetPriority value
+ */
+ public ScaleSetPriority scaleSetPriority() {
+ return this.scaleSetPriority;
+ }
+
+ /**
+ * Set scaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. Possible values include: 'Spot', 'Regular'.
+ *
+ * @param scaleSetPriority the scaleSetPriority value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withScaleSetPriority(ScaleSetPriority scaleSetPriority) {
+ this.scaleSetPriority = scaleSetPriority;
+ return this;
+ }
+
+ /**
+ * Get scaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. Possible values include: 'Delete', 'Deallocate'.
+ *
+ * @return the scaleSetEvictionPolicy value
+ */
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.scaleSetEvictionPolicy;
+ }
+
+ /**
+ * Set scaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. Possible values include: 'Delete', 'Deallocate'.
+ *
+ * @param scaleSetEvictionPolicy the scaleSetEvictionPolicy value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy) {
+ this.scaleSetEvictionPolicy = scaleSetEvictionPolicy;
+ return this;
+ }
+
+ /**
+ * Get spotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * @return the spotMaxPrice value
+ */
+ public Double spotMaxPrice() {
+ return this.spotMaxPrice;
+ }
+
+ /**
+ * Set spotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * @param spotMaxPrice the spotMaxPrice value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withSpotMaxPrice(Double spotMaxPrice) {
+ this.spotMaxPrice = spotMaxPrice;
+ return this;
+ }
+
+ /**
+ * Get agent pool tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set agent pool tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @param tags the tags value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get agent pool node labels to be persisted across all nodes in agent pool.
+ *
+ * @return the nodeLabels value
+ */
+ public Map nodeLabels() {
+ return this.nodeLabels;
+ }
+
+ /**
+ * Set agent pool node labels to be persisted across all nodes in agent pool.
+ *
+ * @param nodeLabels the nodeLabels value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withNodeLabels(Map nodeLabels) {
+ this.nodeLabels = nodeLabels;
+ return this;
+ }
+
+ /**
+ * Get taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
+ *
+ * @return the nodeTaints value
+ */
+ public List nodeTaints() {
+ return this.nodeTaints;
+ }
+
+ /**
+ * Set taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
+ *
+ * @param nodeTaints the nodeTaints value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withNodeTaints(List nodeTaints) {
+ this.nodeTaints = nodeTaints;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterIdentity.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterIdentity.java
new file mode 100644
index 0000000000000..22a6ae1f9100b
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterIdentity.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity for the managed cluster.
+ */
+public class ManagedClusterIdentity {
+ /**
+ * The principal id of the system assigned identity which is used by master
+ * components.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The tenant id of the system assigned identity which is used by master
+ * components.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String tenantId;
+
+ /**
+ * The type of identity used for the managed cluster. Type 'SystemAssigned'
+ * will use an implicitly created identity in master components and an
+ * auto-created user assigned identity in MC_ resource group in agent
+ * nodes. Type 'None' will not use MSI for the managed cluster, service
+ * principal will be used instead. Possible values include:
+ * 'SystemAssigned', 'None'.
+ */
+ @JsonProperty(value = "type")
+ private ResourceIdentityType type;
+
+ /**
+ * Get the principal id of the system assigned identity which is used by master components.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the tenant id of the system assigned identity which is used by master components.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Get the type of identity used for the managed cluster. Type 'SystemAssigned' will use an implicitly created identity in master components and an auto-created user assigned identity in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, service principal will be used instead. Possible values include: 'SystemAssigned', 'None'.
+ *
+ * @return the type value
+ */
+ public ResourceIdentityType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of identity used for the managed cluster. Type 'SystemAssigned' will use an implicitly created identity in master components and an auto-created user assigned identity in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, service principal will be used instead. Possible values include: 'SystemAssigned', 'None'.
+ *
+ * @param type the type value to set
+ * @return the ManagedClusterIdentity object itself.
+ */
+ public ManagedClusterIdentity withType(ResourceIdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfile.java
new file mode 100644
index 0000000000000..828e090b0430f
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfile.java
@@ -0,0 +1,177 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile of the managed cluster load balancer.
+ */
+public class ManagedClusterLoadBalancerProfile {
+ /**
+ * Desired managed outbound IPs for the cluster load balancer.
+ */
+ @JsonProperty(value = "managedOutboundIPs")
+ private ManagedClusterLoadBalancerProfileManagedOutboundIPs managedOutboundIPs;
+
+ /**
+ * Desired outbound IP Prefix resources for the cluster load balancer.
+ */
+ @JsonProperty(value = "outboundIPPrefixes")
+ private ManagedClusterLoadBalancerProfileOutboundIPPrefixes outboundIPPrefixes;
+
+ /**
+ * Desired outbound IP resources for the cluster load balancer.
+ */
+ @JsonProperty(value = "outboundIPs")
+ private ManagedClusterLoadBalancerProfileOutboundIPs outboundIPs;
+
+ /**
+ * The effective outbound IP resources of the cluster load balancer.
+ */
+ @JsonProperty(value = "effectiveOutboundIPs")
+ private List effectiveOutboundIPs;
+
+ /**
+ * Desired number of allocated SNAT ports per VM. Allowed values must be in
+ * the range of 0 to 64000 (inclusive). The default value is 0 which
+ * results in Azure dynamically allocating ports.
+ */
+ @JsonProperty(value = "allocatedOutboundPorts")
+ private Integer allocatedOutboundPorts;
+
+ /**
+ * Desired outbound flow idle timeout in minutes. Allowed values must be in
+ * the range of 4 to 120 (inclusive). The default value is 30 minutes.
+ */
+ @JsonProperty(value = "idleTimeoutInMinutes")
+ private Integer idleTimeoutInMinutes;
+
+ /**
+ * Get desired managed outbound IPs for the cluster load balancer.
+ *
+ * @return the managedOutboundIPs value
+ */
+ public ManagedClusterLoadBalancerProfileManagedOutboundIPs managedOutboundIPs() {
+ return this.managedOutboundIPs;
+ }
+
+ /**
+ * Set desired managed outbound IPs for the cluster load balancer.
+ *
+ * @param managedOutboundIPs the managedOutboundIPs value to set
+ * @return the ManagedClusterLoadBalancerProfile object itself.
+ */
+ public ManagedClusterLoadBalancerProfile withManagedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPs managedOutboundIPs) {
+ this.managedOutboundIPs = managedOutboundIPs;
+ return this;
+ }
+
+ /**
+ * Get desired outbound IP Prefix resources for the cluster load balancer.
+ *
+ * @return the outboundIPPrefixes value
+ */
+ public ManagedClusterLoadBalancerProfileOutboundIPPrefixes outboundIPPrefixes() {
+ return this.outboundIPPrefixes;
+ }
+
+ /**
+ * Set desired outbound IP Prefix resources for the cluster load balancer.
+ *
+ * @param outboundIPPrefixes the outboundIPPrefixes value to set
+ * @return the ManagedClusterLoadBalancerProfile object itself.
+ */
+ public ManagedClusterLoadBalancerProfile withOutboundIPPrefixes(ManagedClusterLoadBalancerProfileOutboundIPPrefixes outboundIPPrefixes) {
+ this.outboundIPPrefixes = outboundIPPrefixes;
+ return this;
+ }
+
+ /**
+ * Get desired outbound IP resources for the cluster load balancer.
+ *
+ * @return the outboundIPs value
+ */
+ public ManagedClusterLoadBalancerProfileOutboundIPs outboundIPs() {
+ return this.outboundIPs;
+ }
+
+ /**
+ * Set desired outbound IP resources for the cluster load balancer.
+ *
+ * @param outboundIPs the outboundIPs value to set
+ * @return the ManagedClusterLoadBalancerProfile object itself.
+ */
+ public ManagedClusterLoadBalancerProfile withOutboundIPs(ManagedClusterLoadBalancerProfileOutboundIPs outboundIPs) {
+ this.outboundIPs = outboundIPs;
+ return this;
+ }
+
+ /**
+ * Get the effective outbound IP resources of the cluster load balancer.
+ *
+ * @return the effectiveOutboundIPs value
+ */
+ public List effectiveOutboundIPs() {
+ return this.effectiveOutboundIPs;
+ }
+
+ /**
+ * Set the effective outbound IP resources of the cluster load balancer.
+ *
+ * @param effectiveOutboundIPs the effectiveOutboundIPs value to set
+ * @return the ManagedClusterLoadBalancerProfile object itself.
+ */
+ public ManagedClusterLoadBalancerProfile withEffectiveOutboundIPs(List effectiveOutboundIPs) {
+ this.effectiveOutboundIPs = effectiveOutboundIPs;
+ return this;
+ }
+
+ /**
+ * Get desired number of allocated SNAT ports per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure dynamically allocating ports.
+ *
+ * @return the allocatedOutboundPorts value
+ */
+ public Integer allocatedOutboundPorts() {
+ return this.allocatedOutboundPorts;
+ }
+
+ /**
+ * Set desired number of allocated SNAT ports per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure dynamically allocating ports.
+ *
+ * @param allocatedOutboundPorts the allocatedOutboundPorts value to set
+ * @return the ManagedClusterLoadBalancerProfile object itself.
+ */
+ public ManagedClusterLoadBalancerProfile withAllocatedOutboundPorts(Integer allocatedOutboundPorts) {
+ this.allocatedOutboundPorts = allocatedOutboundPorts;
+ return this;
+ }
+
+ /**
+ * Get desired outbound flow idle timeout in minutes. Allowed values must be in the range of 4 to 120 (inclusive). The default value is 30 minutes.
+ *
+ * @return the idleTimeoutInMinutes value
+ */
+ public Integer idleTimeoutInMinutes() {
+ return this.idleTimeoutInMinutes;
+ }
+
+ /**
+ * Set desired outbound flow idle timeout in minutes. Allowed values must be in the range of 4 to 120 (inclusive). The default value is 30 minutes.
+ *
+ * @param idleTimeoutInMinutes the idleTimeoutInMinutes value to set
+ * @return the ManagedClusterLoadBalancerProfile object itself.
+ */
+ public ManagedClusterLoadBalancerProfile withIdleTimeoutInMinutes(Integer idleTimeoutInMinutes) {
+ this.idleTimeoutInMinutes = idleTimeoutInMinutes;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileManagedOutboundIPs.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileManagedOutboundIPs.java
new file mode 100644
index 0000000000000..9527e60b4fe73
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileManagedOutboundIPs.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Desired managed outbound IPs for the cluster load balancer.
+ */
+public class ManagedClusterLoadBalancerProfileManagedOutboundIPs {
+ /**
+ * Desired number of outbound IP created/managed by Azure for the cluster
+ * load balancer. Allowed values must be in the range of 1 to 100
+ * (inclusive). The default value is 1.
+ */
+ @JsonProperty(value = "count")
+ private Integer count;
+
+ /**
+ * Get desired number of outbound IP created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1.
+ *
+ * @return the count value
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set desired number of outbound IP created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1.
+ *
+ * @param count the count value to set
+ * @return the ManagedClusterLoadBalancerProfileManagedOutboundIPs object itself.
+ */
+ public ManagedClusterLoadBalancerProfileManagedOutboundIPs withCount(Integer count) {
+ this.count = count;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileOutboundIPPrefixes.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileOutboundIPPrefixes.java
new file mode 100644
index 0000000000000..24f8c6992f5a5
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileOutboundIPPrefixes.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.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Desired outbound IP Prefix resources for the cluster load balancer.
+ */
+public class ManagedClusterLoadBalancerProfileOutboundIPPrefixes {
+ /**
+ * A list of public IP prefix resources.
+ */
+ @JsonProperty(value = "publicIPPrefixes")
+ private List publicIPPrefixes;
+
+ /**
+ * Get a list of public IP prefix resources.
+ *
+ * @return the publicIPPrefixes value
+ */
+ public List publicIPPrefixes() {
+ return this.publicIPPrefixes;
+ }
+
+ /**
+ * Set a list of public IP prefix resources.
+ *
+ * @param publicIPPrefixes the publicIPPrefixes value to set
+ * @return the ManagedClusterLoadBalancerProfileOutboundIPPrefixes object itself.
+ */
+ public ManagedClusterLoadBalancerProfileOutboundIPPrefixes withPublicIPPrefixes(List publicIPPrefixes) {
+ this.publicIPPrefixes = publicIPPrefixes;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileOutboundIPs.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileOutboundIPs.java
new file mode 100644
index 0000000000000..d729a45f24aeb
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterLoadBalancerProfileOutboundIPs.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.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Desired outbound IP resources for the cluster load balancer.
+ */
+public class ManagedClusterLoadBalancerProfileOutboundIPs {
+ /**
+ * A list of public IP resources.
+ */
+ @JsonProperty(value = "publicIPs")
+ private List publicIPs;
+
+ /**
+ * Get a list of public IP resources.
+ *
+ * @return the publicIPs value
+ */
+ public List publicIPs() {
+ return this.publicIPs;
+ }
+
+ /**
+ * Set a list of public IP resources.
+ *
+ * @param publicIPs the publicIPs value to set
+ * @return the ManagedClusterLoadBalancerProfileOutboundIPs object itself.
+ */
+ public ManagedClusterLoadBalancerProfileOutboundIPs withPublicIPs(List publicIPs) {
+ this.publicIPs = publicIPs;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPoolUpgradeProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPoolUpgradeProfile.java
new file mode 100644
index 0000000000000..d51796d310ea3
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPoolUpgradeProfile.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.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The list of available upgrade versions.
+ */
+public class ManagedClusterPoolUpgradeProfile {
+ /**
+ * Kubernetes version (major, minor, patch).
+ */
+ @JsonProperty(value = "kubernetesVersion", required = true)
+ private String kubernetesVersion;
+
+ /**
+ * Pool name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux. Possible values include: 'Linux', 'Windows'.
+ */
+ @JsonProperty(value = "osType", required = true)
+ private OSType osType;
+
+ /**
+ * List of orchestrator types and versions available for upgrade.
+ */
+ @JsonProperty(value = "upgrades")
+ private List upgrades;
+
+ /**
+ * Get kubernetes version (major, minor, patch).
+ *
+ * @return the kubernetesVersion value
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set kubernetes version (major, minor, patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set
+ * @return the ManagedClusterPoolUpgradeProfile object itself.
+ */
+ public ManagedClusterPoolUpgradeProfile withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get pool name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set pool name.
+ *
+ * @param name the name value to set
+ * @return the ManagedClusterPoolUpgradeProfile object itself.
+ */
+ public ManagedClusterPoolUpgradeProfile withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @param osType the osType value to set
+ * @return the ManagedClusterPoolUpgradeProfile object itself.
+ */
+ public ManagedClusterPoolUpgradeProfile withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get list of orchestrator types and versions available for upgrade.
+ *
+ * @return the upgrades value
+ */
+ public List upgrades() {
+ return this.upgrades;
+ }
+
+ /**
+ * Set list of orchestrator types and versions available for upgrade.
+ *
+ * @param upgrades the upgrades value to set
+ * @return the ManagedClusterPoolUpgradeProfile object itself.
+ */
+ public ManagedClusterPoolUpgradeProfile withUpgrades(List upgrades) {
+ this.upgrades = upgrades;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPoolUpgradeProfileUpgradesItem.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPoolUpgradeProfileUpgradesItem.java
new file mode 100644
index 0000000000000..5f549065406ab
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPoolUpgradeProfileUpgradesItem.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ManagedClusterPoolUpgradeProfileUpgradesItem model.
+ */
+public class ManagedClusterPoolUpgradeProfileUpgradesItem {
+ /**
+ * Kubernetes version (major, minor, patch).
+ */
+ @JsonProperty(value = "kubernetesVersion")
+ private String kubernetesVersion;
+
+ /**
+ * Whether Kubernetes version is currently in preview.
+ */
+ @JsonProperty(value = "isPreview")
+ private Boolean isPreview;
+
+ /**
+ * Get kubernetes version (major, minor, patch).
+ *
+ * @return the kubernetesVersion value
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set kubernetes version (major, minor, patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set
+ * @return the ManagedClusterPoolUpgradeProfileUpgradesItem object itself.
+ */
+ public ManagedClusterPoolUpgradeProfileUpgradesItem withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get whether Kubernetes version is currently in preview.
+ *
+ * @return the isPreview value
+ */
+ public Boolean isPreview() {
+ return this.isPreview;
+ }
+
+ /**
+ * Set whether Kubernetes version is currently in preview.
+ *
+ * @param isPreview the isPreview value to set
+ * @return the ManagedClusterPoolUpgradeProfileUpgradesItem object itself.
+ */
+ public ManagedClusterPoolUpgradeProfileUpgradesItem withIsPreview(Boolean isPreview) {
+ this.isPreview = isPreview;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPropertiesAutoScalerProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPropertiesAutoScalerProfile.java
new file mode 100644
index 0000000000000..3d78041af993d
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPropertiesAutoScalerProfile.java
@@ -0,0 +1,251 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Parameters to be applied to the cluster-autoscaler when enabled.
+ */
+public class ManagedClusterPropertiesAutoScalerProfile {
+ /**
+ * The balanceSimilarNodeGroups property.
+ */
+ @JsonProperty(value = "balance-similar-node-groups")
+ private String balanceSimilarNodeGroups;
+
+ /**
+ * The scanInterval property.
+ */
+ @JsonProperty(value = "scan-interval")
+ private String scanInterval;
+
+ /**
+ * The scaleDownDelayAfterAdd property.
+ */
+ @JsonProperty(value = "scale-down-delay-after-add")
+ private String scaleDownDelayAfterAdd;
+
+ /**
+ * The scaleDownDelayAfterDelete property.
+ */
+ @JsonProperty(value = "scale-down-delay-after-delete")
+ private String scaleDownDelayAfterDelete;
+
+ /**
+ * The scaleDownDelayAfterFailure property.
+ */
+ @JsonProperty(value = "scale-down-delay-after-failure")
+ private String scaleDownDelayAfterFailure;
+
+ /**
+ * The scaleDownUnneededTime property.
+ */
+ @JsonProperty(value = "scale-down-unneeded-time")
+ private String scaleDownUnneededTime;
+
+ /**
+ * The scaleDownUnreadyTime property.
+ */
+ @JsonProperty(value = "scale-down-unready-time")
+ private String scaleDownUnreadyTime;
+
+ /**
+ * The scaleDownUtilizationThreshold property.
+ */
+ @JsonProperty(value = "scale-down-utilization-threshold")
+ private String scaleDownUtilizationThreshold;
+
+ /**
+ * The maxGracefulTerminationSec property.
+ */
+ @JsonProperty(value = "max-graceful-termination-sec")
+ private String maxGracefulTerminationSec;
+
+ /**
+ * Get the balanceSimilarNodeGroups value.
+ *
+ * @return the balanceSimilarNodeGroups value
+ */
+ public String balanceSimilarNodeGroups() {
+ return this.balanceSimilarNodeGroups;
+ }
+
+ /**
+ * Set the balanceSimilarNodeGroups value.
+ *
+ * @param balanceSimilarNodeGroups the balanceSimilarNodeGroups value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withBalanceSimilarNodeGroups(String balanceSimilarNodeGroups) {
+ this.balanceSimilarNodeGroups = balanceSimilarNodeGroups;
+ return this;
+ }
+
+ /**
+ * Get the scanInterval value.
+ *
+ * @return the scanInterval value
+ */
+ public String scanInterval() {
+ return this.scanInterval;
+ }
+
+ /**
+ * Set the scanInterval value.
+ *
+ * @param scanInterval the scanInterval value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withScanInterval(String scanInterval) {
+ this.scanInterval = scanInterval;
+ return this;
+ }
+
+ /**
+ * Get the scaleDownDelayAfterAdd value.
+ *
+ * @return the scaleDownDelayAfterAdd value
+ */
+ public String scaleDownDelayAfterAdd() {
+ return this.scaleDownDelayAfterAdd;
+ }
+
+ /**
+ * Set the scaleDownDelayAfterAdd value.
+ *
+ * @param scaleDownDelayAfterAdd the scaleDownDelayAfterAdd value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withScaleDownDelayAfterAdd(String scaleDownDelayAfterAdd) {
+ this.scaleDownDelayAfterAdd = scaleDownDelayAfterAdd;
+ return this;
+ }
+
+ /**
+ * Get the scaleDownDelayAfterDelete value.
+ *
+ * @return the scaleDownDelayAfterDelete value
+ */
+ public String scaleDownDelayAfterDelete() {
+ return this.scaleDownDelayAfterDelete;
+ }
+
+ /**
+ * Set the scaleDownDelayAfterDelete value.
+ *
+ * @param scaleDownDelayAfterDelete the scaleDownDelayAfterDelete value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withScaleDownDelayAfterDelete(String scaleDownDelayAfterDelete) {
+ this.scaleDownDelayAfterDelete = scaleDownDelayAfterDelete;
+ return this;
+ }
+
+ /**
+ * Get the scaleDownDelayAfterFailure value.
+ *
+ * @return the scaleDownDelayAfterFailure value
+ */
+ public String scaleDownDelayAfterFailure() {
+ return this.scaleDownDelayAfterFailure;
+ }
+
+ /**
+ * Set the scaleDownDelayAfterFailure value.
+ *
+ * @param scaleDownDelayAfterFailure the scaleDownDelayAfterFailure value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withScaleDownDelayAfterFailure(String scaleDownDelayAfterFailure) {
+ this.scaleDownDelayAfterFailure = scaleDownDelayAfterFailure;
+ return this;
+ }
+
+ /**
+ * Get the scaleDownUnneededTime value.
+ *
+ * @return the scaleDownUnneededTime value
+ */
+ public String scaleDownUnneededTime() {
+ return this.scaleDownUnneededTime;
+ }
+
+ /**
+ * Set the scaleDownUnneededTime value.
+ *
+ * @param scaleDownUnneededTime the scaleDownUnneededTime value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withScaleDownUnneededTime(String scaleDownUnneededTime) {
+ this.scaleDownUnneededTime = scaleDownUnneededTime;
+ return this;
+ }
+
+ /**
+ * Get the scaleDownUnreadyTime value.
+ *
+ * @return the scaleDownUnreadyTime value
+ */
+ public String scaleDownUnreadyTime() {
+ return this.scaleDownUnreadyTime;
+ }
+
+ /**
+ * Set the scaleDownUnreadyTime value.
+ *
+ * @param scaleDownUnreadyTime the scaleDownUnreadyTime value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withScaleDownUnreadyTime(String scaleDownUnreadyTime) {
+ this.scaleDownUnreadyTime = scaleDownUnreadyTime;
+ return this;
+ }
+
+ /**
+ * Get the scaleDownUtilizationThreshold value.
+ *
+ * @return the scaleDownUtilizationThreshold value
+ */
+ public String scaleDownUtilizationThreshold() {
+ return this.scaleDownUtilizationThreshold;
+ }
+
+ /**
+ * Set the scaleDownUtilizationThreshold value.
+ *
+ * @param scaleDownUtilizationThreshold the scaleDownUtilizationThreshold value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withScaleDownUtilizationThreshold(String scaleDownUtilizationThreshold) {
+ this.scaleDownUtilizationThreshold = scaleDownUtilizationThreshold;
+ return this;
+ }
+
+ /**
+ * Get the maxGracefulTerminationSec value.
+ *
+ * @return the maxGracefulTerminationSec value
+ */
+ public String maxGracefulTerminationSec() {
+ return this.maxGracefulTerminationSec;
+ }
+
+ /**
+ * Set the maxGracefulTerminationSec value.
+ *
+ * @param maxGracefulTerminationSec the maxGracefulTerminationSec value to set
+ * @return the ManagedClusterPropertiesAutoScalerProfile object itself.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile withMaxGracefulTerminationSec(String maxGracefulTerminationSec) {
+ this.maxGracefulTerminationSec = maxGracefulTerminationSec;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPropertiesIdentityProfileValue.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPropertiesIdentityProfileValue.java
new file mode 100644
index 0000000000000..61aa00a0c253f
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterPropertiesIdentityProfileValue.java
@@ -0,0 +1,16 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+
+/**
+ * The ManagedClusterPropertiesIdentityProfileValue model.
+ */
+public class ManagedClusterPropertiesIdentityProfileValue extends UserAssignedIdentity {
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKU.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKU.java
new file mode 100644
index 0000000000000..5bd94596b3195
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKU.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ManagedClusterSKU model.
+ */
+public class ManagedClusterSKU {
+ /**
+ * Name of a managed cluster SKU. Possible values include: 'Basic'.
+ */
+ @JsonProperty(value = "name")
+ private ManagedClusterSKUName name;
+
+ /**
+ * Tier of a managed cluster SKU. Possible values include: 'Paid', 'Free'.
+ */
+ @JsonProperty(value = "tier")
+ private ManagedClusterSKUTier tier;
+
+ /**
+ * Get name of a managed cluster SKU. Possible values include: 'Basic'.
+ *
+ * @return the name value
+ */
+ public ManagedClusterSKUName name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of a managed cluster SKU. Possible values include: 'Basic'.
+ *
+ * @param name the name value to set
+ * @return the ManagedClusterSKU object itself.
+ */
+ public ManagedClusterSKU withName(ManagedClusterSKUName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get tier of a managed cluster SKU. Possible values include: 'Paid', 'Free'.
+ *
+ * @return the tier value
+ */
+ public ManagedClusterSKUTier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set tier of a managed cluster SKU. Possible values include: 'Paid', 'Free'.
+ *
+ * @param tier the tier value to set
+ * @return the ManagedClusterSKU object itself.
+ */
+ public ManagedClusterSKU withTier(ManagedClusterSKUTier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKUName.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKUName.java
new file mode 100644
index 0000000000000..cfb82da53535a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKUName.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ManagedClusterSKUName.
+ */
+public final class ManagedClusterSKUName extends ExpandableStringEnum {
+ /** Static value Basic for ManagedClusterSKUName. */
+ public static final ManagedClusterSKUName BASIC = fromString("Basic");
+
+ /**
+ * Creates or finds a ManagedClusterSKUName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ManagedClusterSKUName
+ */
+ @JsonCreator
+ public static ManagedClusterSKUName fromString(String name) {
+ return fromString(name, ManagedClusterSKUName.class);
+ }
+
+ /**
+ * @return known ManagedClusterSKUName values
+ */
+ public static Collection values() {
+ return values(ManagedClusterSKUName.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKUTier.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKUTier.java
new file mode 100644
index 0000000000000..13e8c0e0fd76d
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterSKUTier.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ManagedClusterSKUTier.
+ */
+public final class ManagedClusterSKUTier extends ExpandableStringEnum {
+ /** Static value Paid for ManagedClusterSKUTier. */
+ public static final ManagedClusterSKUTier PAID = fromString("Paid");
+
+ /** Static value Free for ManagedClusterSKUTier. */
+ public static final ManagedClusterSKUTier FREE = fromString("Free");
+
+ /**
+ * Creates or finds a ManagedClusterSKUTier from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ManagedClusterSKUTier
+ */
+ @JsonCreator
+ public static ManagedClusterSKUTier fromString(String name) {
+ return fromString(name, ManagedClusterSKUTier.class);
+ }
+
+ /**
+ * @return known ManagedClusterSKUTier values
+ */
+ public static Collection values() {
+ return values(ManagedClusterSKUTier.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterServicePrincipalProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterServicePrincipalProfile.java
new file mode 100644
index 0000000000000..8624ad95ebc36
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterServicePrincipalProfile.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Information about a service principal identity for the cluster to use for
+ * manipulating Azure APIs.
+ */
+public class ManagedClusterServicePrincipalProfile {
+ /**
+ * The ID for the service principal.
+ */
+ @JsonProperty(value = "clientId", required = true)
+ private String clientId;
+
+ /**
+ * The secret password associated with the service principal in plain text.
+ */
+ @JsonProperty(value = "secret")
+ private String secret;
+
+ /**
+ * Get the ID for the service principal.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+ /**
+ * Set the ID for the service principal.
+ *
+ * @param clientId the clientId value to set
+ * @return the ManagedClusterServicePrincipalProfile object itself.
+ */
+ public ManagedClusterServicePrincipalProfile withClientId(String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ /**
+ * Get the secret password associated with the service principal in plain text.
+ *
+ * @return the secret value
+ */
+ public String secret() {
+ return this.secret;
+ }
+
+ /**
+ * Set the secret password associated with the service principal in plain text.
+ *
+ * @param secret the secret value to set
+ * @return the ManagedClusterServicePrincipalProfile object itself.
+ */
+ public ManagedClusterServicePrincipalProfile withSecret(String secret) {
+ this.secret = secret;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterUpgradeProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterUpgradeProfile.java
new file mode 100644
index 0000000000000..52e8371903b1f
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterUpgradeProfile.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ManagedClusterUpgradeProfileInner;
+import java.util.List;
+
+/**
+ * Type representing ManagedClusterUpgradeProfile.
+ */
+public interface ManagedClusterUpgradeProfile extends HasInner, HasManager {
+ /**
+ * @return the agentPoolProfiles value.
+ */
+ List agentPoolProfiles();
+
+ /**
+ * @return the controlPlaneProfile value.
+ */
+ ManagedClusterPoolUpgradeProfile controlPlaneProfile();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterWindowsProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterWindowsProfile.java
new file mode 100644
index 0000000000000..30c82ce899c57
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusterWindowsProfile.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for Windows VMs in the container service cluster.
+ */
+public class ManagedClusterWindowsProfile {
+ /**
+ * Specifies the name of the administrator account. <br><br>
+ * **restriction:** Cannot end in "." <br><br> **Disallowed
+ * values:** "administrator", "admin", "user", "user1", "test", "user2",
+ * "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2",
+ * "aspnet", "backup", "console", "david", "guest", "john", "owner",
+ * "root", "server", "sql", "support", "support_388945a0", "sys", "test2",
+ * "test3", "user4", "user5". <br><br> **Minimum-length:** 1
+ * character <br><br> **Max-length:** 20 characters.
+ */
+ @JsonProperty(value = "adminUsername", required = true)
+ private String adminUsername;
+
+ /**
+ * Specifies the password of the administrator account.
+ * <br><br> **Minimum-length:** 8 characters
+ * <br><br> **Max-length:** 123 characters <br><br>
+ * **Complexity requirements:** 3 out of 4 conditions below need to be
+ * fulfilled <br> Has lower characters <br>Has upper characters
+ * <br> Has a digit <br> Has a special character (Regex match
+ * [\W_]) <br><br> **Disallowed values:** "abc@123",
+ * "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1",
+ * "Password!", "Password1", "Password22", "iloveyou!".
+ */
+ @JsonProperty(value = "adminPassword")
+ private String adminPassword;
+
+ /**
+ * Get specifies the name of the administrator account. <br><br> **restriction:** Cannot end in "." <br><br> **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". <br><br> **Minimum-length:** 1 character <br><br> **Max-length:** 20 characters.
+ *
+ * @return the adminUsername value
+ */
+ public String adminUsername() {
+ return this.adminUsername;
+ }
+
+ /**
+ * Set specifies the name of the administrator account. <br><br> **restriction:** Cannot end in "." <br><br> **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". <br><br> **Minimum-length:** 1 character <br><br> **Max-length:** 20 characters.
+ *
+ * @param adminUsername the adminUsername value to set
+ * @return the ManagedClusterWindowsProfile object itself.
+ */
+ public ManagedClusterWindowsProfile withAdminUsername(String adminUsername) {
+ this.adminUsername = adminUsername;
+ return this;
+ }
+
+ /**
+ * Get specifies the password of the administrator account. <br><br> **Minimum-length:** 8 characters <br><br> **Max-length:** 123 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!".
+ *
+ * @return the adminPassword value
+ */
+ public String adminPassword() {
+ return this.adminPassword;
+ }
+
+ /**
+ * Set specifies the password of the administrator account. <br><br> **Minimum-length:** 8 characters <br><br> **Max-length:** 123 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!".
+ *
+ * @param adminPassword the adminPassword value to set
+ * @return the ManagedClusterWindowsProfile object itself.
+ */
+ public ManagedClusterWindowsProfile withAdminPassword(String adminPassword) {
+ this.adminPassword = adminPassword;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusters.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusters.java
new file mode 100644
index 0000000000000..fe9f02f5962be
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ManagedClusters.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_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.containerservice.v2020_04_01.implementation.ManagedClustersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ManagedClusters.
+ */
+public interface ManagedClusters extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Gets cluster admin credential of a managed cluster.
+ * Gets cluster admin credential of the managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listClusterAdminCredentialsAsync(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets cluster user credential of a managed cluster.
+ * Gets cluster user credential of the managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listClusterUserCredentialsAsync(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets cluster monitoring user credential of a managed cluster.
+ * Gets cluster monitoring user credential of the managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listClusterMonitoringUserCredentialsAsync(String resourceGroupName, String resourceName);
+
+ /**
+ * Reset Service Principal Profile of a managed cluster.
+ * Update the service principal Profile for a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Reset Service Principal Profile operation for a Managed Cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable resetServicePrincipalProfileAsync(String resourceGroupName, String resourceName, ManagedClusterServicePrincipalProfile parameters);
+
+ /**
+ * Reset AAD Profile of a managed cluster.
+ * Update the AAD Profile for a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Reset AAD Profile operation for a Managed Cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable resetAADProfileAsync(String resourceGroupName, String resourceName, ManagedClusterAADProfile parameters);
+
+ /**
+ * Rotate certificates of a managed cluster.
+ * Rotate certificates of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable rotateClusterCertificatesAsync(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets upgrade profile for a managed cluster.
+ * Gets the details of the upgrade profile for a managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getUpgradeProfileAsync(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets an access profile of a managed cluster.
+ * Gets the accessProfile for the specified role name of the managed cluster with a specified resource group and name. **WARNING**: This API will be deprecated. Instead use [ListClusterUserCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusterusercredentials) or [ListClusterAdminCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusteradmincredentials) .
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param roleName The name of the role for managed cluster accessProfile resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAccessProfileAsync(String resourceGroupName, String resourceName, String roleName);
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkMode.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkMode.java
new file mode 100644
index 0000000000000..06826455f6e25
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkMode.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NetworkMode.
+ */
+public final class NetworkMode extends ExpandableStringEnum {
+ /** Static value transparent for NetworkMode. */
+ public static final NetworkMode TRANSPARENT = fromString("transparent");
+
+ /** Static value bridge for NetworkMode. */
+ public static final NetworkMode BRIDGE = fromString("bridge");
+
+ /**
+ * Creates or finds a NetworkMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NetworkMode
+ */
+ @JsonCreator
+ public static NetworkMode fromString(String name) {
+ return fromString(name, NetworkMode.class);
+ }
+
+ /**
+ * @return known NetworkMode values
+ */
+ public static Collection values() {
+ return values(NetworkMode.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkPlugin.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkPlugin.java
new file mode 100644
index 0000000000000..2a5b7d6a5d0e3
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkPlugin.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NetworkPlugin.
+ */
+public final class NetworkPlugin extends ExpandableStringEnum {
+ /** Static value azure for NetworkPlugin. */
+ public static final NetworkPlugin AZURE = fromString("azure");
+
+ /** Static value kubenet for NetworkPlugin. */
+ public static final NetworkPlugin KUBENET = fromString("kubenet");
+
+ /**
+ * Creates or finds a NetworkPlugin from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NetworkPlugin
+ */
+ @JsonCreator
+ public static NetworkPlugin fromString(String name) {
+ return fromString(name, NetworkPlugin.class);
+ }
+
+ /**
+ * @return known NetworkPlugin values
+ */
+ public static Collection values() {
+ return values(NetworkPlugin.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkPolicy.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkPolicy.java
new file mode 100644
index 0000000000000..58703ee002bb4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkPolicy.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NetworkPolicy.
+ */
+public final class NetworkPolicy extends ExpandableStringEnum {
+ /** Static value calico for NetworkPolicy. */
+ public static final NetworkPolicy CALICO = fromString("calico");
+
+ /** Static value azure for NetworkPolicy. */
+ public static final NetworkPolicy AZURE = fromString("azure");
+
+ /**
+ * Creates or finds a NetworkPolicy from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NetworkPolicy
+ */
+ @JsonCreator
+ public static NetworkPolicy fromString(String name) {
+ return fromString(name, NetworkPolicy.class);
+ }
+
+ /**
+ * @return known NetworkPolicy values
+ */
+ public static Collection values() {
+ return values(NetworkPolicy.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkProfile.java
new file mode 100644
index 0000000000000..0d4075a4ccce2
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/NetworkProfile.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents the OpenShift networking configuration.
+ */
+public class NetworkProfile {
+ /**
+ * CIDR for the OpenShift Vnet.
+ */
+ @JsonProperty(value = "vnetCidr")
+ private String vnetCidr;
+
+ /**
+ * CIDR of the Vnet to peer.
+ */
+ @JsonProperty(value = "peerVnetId")
+ private String peerVnetId;
+
+ /**
+ * ID of the Vnet created for OSA cluster.
+ */
+ @JsonProperty(value = "vnetId")
+ private String vnetId;
+
+ /**
+ * Get cIDR for the OpenShift Vnet.
+ *
+ * @return the vnetCidr value
+ */
+ public String vnetCidr() {
+ return this.vnetCidr;
+ }
+
+ /**
+ * Set cIDR for the OpenShift Vnet.
+ *
+ * @param vnetCidr the vnetCidr value to set
+ * @return the NetworkProfile object itself.
+ */
+ public NetworkProfile withVnetCidr(String vnetCidr) {
+ this.vnetCidr = vnetCidr;
+ return this;
+ }
+
+ /**
+ * Get cIDR of the Vnet to peer.
+ *
+ * @return the peerVnetId value
+ */
+ public String peerVnetId() {
+ return this.peerVnetId;
+ }
+
+ /**
+ * Set cIDR of the Vnet to peer.
+ *
+ * @param peerVnetId the peerVnetId value to set
+ * @return the NetworkProfile object itself.
+ */
+ public NetworkProfile withPeerVnetId(String peerVnetId) {
+ this.peerVnetId = peerVnetId;
+ return this;
+ }
+
+ /**
+ * Get iD of the Vnet created for OSA cluster.
+ *
+ * @return the vnetId value
+ */
+ public String vnetId() {
+ return this.vnetId;
+ }
+
+ /**
+ * Set iD of the Vnet created for OSA cluster.
+ *
+ * @param vnetId the vnetId value to set
+ * @return the NetworkProfile object itself.
+ */
+ public NetworkProfile withVnetId(String vnetId) {
+ this.vnetId = vnetId;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OSType.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OSType.java
new file mode 100644
index 0000000000000..c96d27eae9ff3
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OSType.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OSType.
+ */
+public final class OSType extends ExpandableStringEnum {
+ /** Static value Linux for OSType. */
+ public static final OSType LINUX = fromString("Linux");
+
+ /** Static value Windows for OSType. */
+ public static final OSType WINDOWS = fromString("Windows");
+
+ /**
+ * Creates or finds a OSType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OSType
+ */
+ @JsonCreator
+ public static OSType fromString(String name) {
+ return fromString(name, OSType.class);
+ }
+
+ /**
+ * @return known OSType values
+ */
+ public static Collection values() {
+ return values(OSType.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftAgentPoolProfileRole.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftAgentPoolProfileRole.java
new file mode 100644
index 0000000000000..028238ba0f358
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftAgentPoolProfileRole.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OpenShiftAgentPoolProfileRole.
+ */
+public final class OpenShiftAgentPoolProfileRole extends ExpandableStringEnum {
+ /** Static value compute for OpenShiftAgentPoolProfileRole. */
+ public static final OpenShiftAgentPoolProfileRole COMPUTE = fromString("compute");
+
+ /** Static value infra for OpenShiftAgentPoolProfileRole. */
+ public static final OpenShiftAgentPoolProfileRole INFRA = fromString("infra");
+
+ /**
+ * Creates or finds a OpenShiftAgentPoolProfileRole from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OpenShiftAgentPoolProfileRole
+ */
+ @JsonCreator
+ public static OpenShiftAgentPoolProfileRole fromString(String name) {
+ return fromString(name, OpenShiftAgentPoolProfileRole.class);
+ }
+
+ /**
+ * @return known OpenShiftAgentPoolProfileRole values
+ */
+ public static Collection values() {
+ return values(OpenShiftAgentPoolProfileRole.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftContainerServiceVMSize.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftContainerServiceVMSize.java
new file mode 100644
index 0000000000000..ae180b02cefc2
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftContainerServiceVMSize.java
@@ -0,0 +1,134 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OpenShiftContainerServiceVMSize.
+ */
+public final class OpenShiftContainerServiceVMSize extends ExpandableStringEnum {
+ /** Static value Standard_D2s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_D2S_V3 = fromString("Standard_D2s_v3");
+
+ /** Static value Standard_D4s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_D4S_V3 = fromString("Standard_D4s_v3");
+
+ /** Static value Standard_D8s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_D8S_V3 = fromString("Standard_D8s_v3");
+
+ /** Static value Standard_D16s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_D16S_V3 = fromString("Standard_D16s_v3");
+
+ /** Static value Standard_D32s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_D32S_V3 = fromString("Standard_D32s_v3");
+
+ /** Static value Standard_D64s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_D64S_V3 = fromString("Standard_D64s_v3");
+
+ /** Static value Standard_DS4_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_DS4_V2 = fromString("Standard_DS4_v2");
+
+ /** Static value Standard_DS5_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_DS5_V2 = fromString("Standard_DS5_v2");
+
+ /** Static value Standard_F8s_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_F8S_V2 = fromString("Standard_F8s_v2");
+
+ /** Static value Standard_F16s_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_F16S_V2 = fromString("Standard_F16s_v2");
+
+ /** Static value Standard_F32s_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_F32S_V2 = fromString("Standard_F32s_v2");
+
+ /** Static value Standard_F64s_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_F64S_V2 = fromString("Standard_F64s_v2");
+
+ /** Static value Standard_F72s_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_F72S_V2 = fromString("Standard_F72s_v2");
+
+ /** Static value Standard_F8s for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_F8S = fromString("Standard_F8s");
+
+ /** Static value Standard_F16s for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_F16S = fromString("Standard_F16s");
+
+ /** Static value Standard_E4s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_E4S_V3 = fromString("Standard_E4s_v3");
+
+ /** Static value Standard_E8s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_E8S_V3 = fromString("Standard_E8s_v3");
+
+ /** Static value Standard_E16s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_E16S_V3 = fromString("Standard_E16s_v3");
+
+ /** Static value Standard_E20s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_E20S_V3 = fromString("Standard_E20s_v3");
+
+ /** Static value Standard_E32s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_E32S_V3 = fromString("Standard_E32s_v3");
+
+ /** Static value Standard_E64s_v3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_E64S_V3 = fromString("Standard_E64s_v3");
+
+ /** Static value Standard_GS2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_GS2 = fromString("Standard_GS2");
+
+ /** Static value Standard_GS3 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_GS3 = fromString("Standard_GS3");
+
+ /** Static value Standard_GS4 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_GS4 = fromString("Standard_GS4");
+
+ /** Static value Standard_GS5 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_GS5 = fromString("Standard_GS5");
+
+ /** Static value Standard_DS12_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_DS12_V2 = fromString("Standard_DS12_v2");
+
+ /** Static value Standard_DS13_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_DS13_V2 = fromString("Standard_DS13_v2");
+
+ /** Static value Standard_DS14_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_DS14_V2 = fromString("Standard_DS14_v2");
+
+ /** Static value Standard_DS15_v2 for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_DS15_V2 = fromString("Standard_DS15_v2");
+
+ /** Static value Standard_L4s for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_L4S = fromString("Standard_L4s");
+
+ /** Static value Standard_L8s for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_L8S = fromString("Standard_L8s");
+
+ /** Static value Standard_L16s for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_L16S = fromString("Standard_L16s");
+
+ /** Static value Standard_L32s for OpenShiftContainerServiceVMSize. */
+ public static final OpenShiftContainerServiceVMSize STANDARD_L32S = fromString("Standard_L32s");
+
+ /**
+ * Creates or finds a OpenShiftContainerServiceVMSize from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OpenShiftContainerServiceVMSize
+ */
+ @JsonCreator
+ public static OpenShiftContainerServiceVMSize fromString(String name) {
+ return fromString(name, OpenShiftContainerServiceVMSize.class);
+ }
+
+ /**
+ * @return known OpenShiftContainerServiceVMSize values
+ */
+ public static Collection values() {
+ return values(OpenShiftContainerServiceVMSize.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedCluster.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedCluster.java
new file mode 100644
index 0000000000000..fbc24c97c6910
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedCluster.java
@@ -0,0 +1,280 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_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.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.OpenShiftManagedClusterInner;
+
+/**
+ * Type representing OpenShiftManagedCluster.
+ */
+public interface OpenShiftManagedCluster extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the agentPoolProfiles value.
+ */
+ List agentPoolProfiles();
+
+ /**
+ * @return the authProfile value.
+ */
+ OpenShiftManagedClusterAuthProfile authProfile();
+
+ /**
+ * @return the clusterVersion value.
+ */
+ String clusterVersion();
+
+ /**
+ * @return the fqdn value.
+ */
+ String fqdn();
+
+ /**
+ * @return the masterPoolProfile value.
+ */
+ OpenShiftManagedClusterMasterPoolProfile masterPoolProfile();
+
+ /**
+ * @return the networkProfile value.
+ */
+ NetworkProfile networkProfile();
+
+ /**
+ * @return the openShiftVersion value.
+ */
+ String openShiftVersion();
+
+ /**
+ * @return the plan value.
+ */
+ PurchasePlan plan();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the publicHostname value.
+ */
+ String publicHostname();
+
+ /**
+ * @return the routerProfiles value.
+ */
+ List routerProfiles();
+
+ /**
+ * The entirety of the OpenShiftManagedCluster definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithOpenShiftVersion, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of OpenShiftManagedCluster definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a OpenShiftManagedCluster definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the OpenShiftManagedCluster definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster definition allowing to specify OpenShiftVersion.
+ */
+ interface WithOpenShiftVersion {
+ /**
+ * Specifies openShiftVersion.
+ * @param openShiftVersion Version of OpenShift specified when creating the cluster
+ * @return the next definition stage
+*/
+ WithCreate withOpenShiftVersion(String openShiftVersion);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster definition allowing to specify AgentPoolProfiles.
+ */
+ interface WithAgentPoolProfiles {
+ /**
+ * Specifies agentPoolProfiles.
+ * @param agentPoolProfiles Configuration of OpenShift cluster VMs
+ * @return the next definition stage
+ */
+ WithCreate withAgentPoolProfiles(List agentPoolProfiles);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster definition allowing to specify AuthProfile.
+ */
+ interface WithAuthProfile {
+ /**
+ * Specifies authProfile.
+ * @param authProfile Configures OpenShift authentication
+ * @return the next definition stage
+ */
+ WithCreate withAuthProfile(OpenShiftManagedClusterAuthProfile authProfile);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster definition allowing to specify MasterPoolProfile.
+ */
+ interface WithMasterPoolProfile {
+ /**
+ * Specifies masterPoolProfile.
+ * @param masterPoolProfile Configuration for OpenShift master VMs
+ * @return the next definition stage
+ */
+ WithCreate withMasterPoolProfile(OpenShiftManagedClusterMasterPoolProfile masterPoolProfile);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster definition allowing to specify NetworkProfile.
+ */
+ interface WithNetworkProfile {
+ /**
+ * Specifies networkProfile.
+ * @param networkProfile Configuration for OpenShift networking
+ * @return the next definition stage
+ */
+ WithCreate withNetworkProfile(NetworkProfile networkProfile);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster definition allowing to specify Plan.
+ */
+ interface WithPlan {
+ /**
+ * Specifies plan.
+ * @param plan Define the resource plan as required by ARM for billing purposes
+ * @return the next definition stage
+ */
+ WithCreate withPlan(PurchasePlan plan);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster definition allowing to specify RouterProfiles.
+ */
+ interface WithRouterProfiles {
+ /**
+ * Specifies routerProfiles.
+ * @param routerProfiles Configuration for OpenShift router(s)
+ * @return the next definition stage
+ */
+ WithCreate withRouterProfiles(List routerProfiles);
+ }
+
+ /**
+ * 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.WithAgentPoolProfiles, DefinitionStages.WithAuthProfile, DefinitionStages.WithMasterPoolProfile, DefinitionStages.WithNetworkProfile, DefinitionStages.WithPlan, DefinitionStages.WithRouterProfiles {
+ }
+ }
+ /**
+ * The template for a OpenShiftManagedCluster update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithAgentPoolProfiles, UpdateStages.WithAuthProfile, UpdateStages.WithMasterPoolProfile, UpdateStages.WithNetworkProfile, UpdateStages.WithPlan, UpdateStages.WithRouterProfiles {
+ }
+
+ /**
+ * Grouping of OpenShiftManagedCluster update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the openshiftmanagedcluster update allowing to specify AgentPoolProfiles.
+ */
+ interface WithAgentPoolProfiles {
+ /**
+ * Specifies agentPoolProfiles.
+ * @param agentPoolProfiles Configuration of OpenShift cluster VMs
+ * @return the next update stage
+ */
+ Update withAgentPoolProfiles(List agentPoolProfiles);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster update allowing to specify AuthProfile.
+ */
+ interface WithAuthProfile {
+ /**
+ * Specifies authProfile.
+ * @param authProfile Configures OpenShift authentication
+ * @return the next update stage
+ */
+ Update withAuthProfile(OpenShiftManagedClusterAuthProfile authProfile);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster update allowing to specify MasterPoolProfile.
+ */
+ interface WithMasterPoolProfile {
+ /**
+ * Specifies masterPoolProfile.
+ * @param masterPoolProfile Configuration for OpenShift master VMs
+ * @return the next update stage
+ */
+ Update withMasterPoolProfile(OpenShiftManagedClusterMasterPoolProfile masterPoolProfile);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster update allowing to specify NetworkProfile.
+ */
+ interface WithNetworkProfile {
+ /**
+ * Specifies networkProfile.
+ * @param networkProfile Configuration for OpenShift networking
+ * @return the next update stage
+ */
+ Update withNetworkProfile(NetworkProfile networkProfile);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster update allowing to specify Plan.
+ */
+ interface WithPlan {
+ /**
+ * Specifies plan.
+ * @param plan Define the resource plan as required by ARM for billing purposes
+ * @return the next update stage
+ */
+ Update withPlan(PurchasePlan plan);
+ }
+
+ /**
+ * The stage of the openshiftmanagedcluster update allowing to specify RouterProfiles.
+ */
+ interface WithRouterProfiles {
+ /**
+ * Specifies routerProfiles.
+ * @param routerProfiles Configuration for OpenShift router(s)
+ * @return the next update stage
+ */
+ Update withRouterProfiles(List routerProfiles);
+ }
+
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAADIdentityProvider.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAADIdentityProvider.java
new file mode 100644
index 0000000000000..daa750823ebec
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAADIdentityProvider.java
@@ -0,0 +1,125 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Defines the Identity provider for MS AAD.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = OpenShiftManagedClusterAADIdentityProvider.class)
+@JsonTypeName("AADIdentityProvider")
+public class OpenShiftManagedClusterAADIdentityProvider extends OpenShiftManagedClusterBaseIdentityProvider {
+ /**
+ * The clientId password associated with the provider.
+ */
+ @JsonProperty(value = "clientId")
+ private String clientId;
+
+ /**
+ * The secret password associated with the provider.
+ */
+ @JsonProperty(value = "secret")
+ private String secret;
+
+ /**
+ * The tenantId associated with the provider.
+ */
+ @JsonProperty(value = "tenantId")
+ private String tenantId;
+
+ /**
+ * The groupId to be granted cluster admin role.
+ */
+ @JsonProperty(value = "customerAdminGroupId")
+ private String customerAdminGroupId;
+
+ /**
+ * Get the clientId password associated with the provider.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+ /**
+ * Set the clientId password associated with the provider.
+ *
+ * @param clientId the clientId value to set
+ * @return the OpenShiftManagedClusterAADIdentityProvider object itself.
+ */
+ public OpenShiftManagedClusterAADIdentityProvider withClientId(String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ /**
+ * Get the secret password associated with the provider.
+ *
+ * @return the secret value
+ */
+ public String secret() {
+ return this.secret;
+ }
+
+ /**
+ * Set the secret password associated with the provider.
+ *
+ * @param secret the secret value to set
+ * @return the OpenShiftManagedClusterAADIdentityProvider object itself.
+ */
+ public OpenShiftManagedClusterAADIdentityProvider withSecret(String secret) {
+ this.secret = secret;
+ return this;
+ }
+
+ /**
+ * Get the tenantId associated with the provider.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Set the tenantId associated with the provider.
+ *
+ * @param tenantId the tenantId value to set
+ * @return the OpenShiftManagedClusterAADIdentityProvider object itself.
+ */
+ public OpenShiftManagedClusterAADIdentityProvider withTenantId(String tenantId) {
+ this.tenantId = tenantId;
+ return this;
+ }
+
+ /**
+ * Get the groupId to be granted cluster admin role.
+ *
+ * @return the customerAdminGroupId value
+ */
+ public String customerAdminGroupId() {
+ return this.customerAdminGroupId;
+ }
+
+ /**
+ * Set the groupId to be granted cluster admin role.
+ *
+ * @param customerAdminGroupId the customerAdminGroupId value to set
+ * @return the OpenShiftManagedClusterAADIdentityProvider object itself.
+ */
+ public OpenShiftManagedClusterAADIdentityProvider withCustomerAdminGroupId(String customerAdminGroupId) {
+ this.customerAdminGroupId = customerAdminGroupId;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAgentPoolProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAgentPoolProfile.java
new file mode 100644
index 0000000000000..31472798031b4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAgentPoolProfile.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines the configuration of the OpenShift cluster VMs.
+ */
+public class OpenShiftManagedClusterAgentPoolProfile {
+ /**
+ * Unique name of the pool profile in the context of the subscription and
+ * resource group.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Number of agents (VMs) to host docker containers.
+ */
+ @JsonProperty(value = "count", required = true)
+ private int count;
+
+ /**
+ * Size of agent VMs. Possible values include: 'Standard_D2s_v3',
+ * 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3',
+ * 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_DS4_v2',
+ * 'Standard_DS5_v2', 'Standard_F8s_v2', 'Standard_F16s_v2',
+ * 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2',
+ * 'Standard_F8s', 'Standard_F16s', 'Standard_E4s_v3', 'Standard_E8s_v3',
+ * 'Standard_E16s_v3', 'Standard_E20s_v3', 'Standard_E32s_v3',
+ * 'Standard_E64s_v3', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4',
+ * 'Standard_GS5', 'Standard_DS12_v2', 'Standard_DS13_v2',
+ * 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_L4s', 'Standard_L8s',
+ * 'Standard_L16s', 'Standard_L32s'.
+ */
+ @JsonProperty(value = "vmSize", required = true)
+ private OpenShiftContainerServiceVMSize vmSize;
+
+ /**
+ * Subnet CIDR for the peering.
+ */
+ @JsonProperty(value = "subnetCidr")
+ private String subnetCidr;
+
+ /**
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux. Possible values include: 'Linux', 'Windows'.
+ */
+ @JsonProperty(value = "osType")
+ private OSType osType;
+
+ /**
+ * Define the role of the AgentPoolProfile. Possible values include:
+ * 'compute', 'infra'.
+ */
+ @JsonProperty(value = "role")
+ private OpenShiftAgentPoolProfileRole role;
+
+ /**
+ * Get unique name of the pool profile in the context of the subscription and resource group.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set unique name of the pool profile in the context of the subscription and resource group.
+ *
+ * @param name the name value to set
+ * @return the OpenShiftManagedClusterAgentPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterAgentPoolProfile withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get number of agents (VMs) to host docker containers.
+ *
+ * @return the count value
+ */
+ public int count() {
+ return this.count;
+ }
+
+ /**
+ * Set number of agents (VMs) to host docker containers.
+ *
+ * @param count the count value to set
+ * @return the OpenShiftManagedClusterAgentPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterAgentPoolProfile withCount(int count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get size of agent VMs. Possible values include: 'Standard_D2s_v3', 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3', 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_DS4_v2', 'Standard_DS5_v2', 'Standard_F8s_v2', 'Standard_F16s_v2', 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8s', 'Standard_F16s', 'Standard_E4s_v3', 'Standard_E8s_v3', 'Standard_E16s_v3', 'Standard_E20s_v3', 'Standard_E32s_v3', 'Standard_E64s_v3', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5', 'Standard_DS12_v2', 'Standard_DS13_v2', 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_L4s', 'Standard_L8s', 'Standard_L16s', 'Standard_L32s'.
+ *
+ * @return the vmSize value
+ */
+ public OpenShiftContainerServiceVMSize vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set size of agent VMs. Possible values include: 'Standard_D2s_v3', 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3', 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_DS4_v2', 'Standard_DS5_v2', 'Standard_F8s_v2', 'Standard_F16s_v2', 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8s', 'Standard_F16s', 'Standard_E4s_v3', 'Standard_E8s_v3', 'Standard_E16s_v3', 'Standard_E20s_v3', 'Standard_E32s_v3', 'Standard_E64s_v3', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5', 'Standard_DS12_v2', 'Standard_DS13_v2', 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_L4s', 'Standard_L8s', 'Standard_L16s', 'Standard_L32s'.
+ *
+ * @param vmSize the vmSize value to set
+ * @return the OpenShiftManagedClusterAgentPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterAgentPoolProfile withVmSize(OpenShiftContainerServiceVMSize vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get subnet CIDR for the peering.
+ *
+ * @return the subnetCidr value
+ */
+ public String subnetCidr() {
+ return this.subnetCidr;
+ }
+
+ /**
+ * Set subnet CIDR for the peering.
+ *
+ * @param subnetCidr the subnetCidr value to set
+ * @return the OpenShiftManagedClusterAgentPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterAgentPoolProfile withSubnetCidr(String subnetCidr) {
+ this.subnetCidr = subnetCidr;
+ return this;
+ }
+
+ /**
+ * Get osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @param osType the osType value to set
+ * @return the OpenShiftManagedClusterAgentPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterAgentPoolProfile withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get define the role of the AgentPoolProfile. Possible values include: 'compute', 'infra'.
+ *
+ * @return the role value
+ */
+ public OpenShiftAgentPoolProfileRole role() {
+ return this.role;
+ }
+
+ /**
+ * Set define the role of the AgentPoolProfile. Possible values include: 'compute', 'infra'.
+ *
+ * @param role the role value to set
+ * @return the OpenShiftManagedClusterAgentPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterAgentPoolProfile withRole(OpenShiftAgentPoolProfileRole role) {
+ this.role = role;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAuthProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAuthProfile.java
new file mode 100644
index 0000000000000..2efba6a7ef55e
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterAuthProfile.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.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines all possible authentication profiles for the OpenShift cluster.
+ */
+public class OpenShiftManagedClusterAuthProfile {
+ /**
+ * Type of authentication profile to use.
+ */
+ @JsonProperty(value = "identityProviders")
+ private List identityProviders;
+
+ /**
+ * Get type of authentication profile to use.
+ *
+ * @return the identityProviders value
+ */
+ public List identityProviders() {
+ return this.identityProviders;
+ }
+
+ /**
+ * Set type of authentication profile to use.
+ *
+ * @param identityProviders the identityProviders value to set
+ * @return the OpenShiftManagedClusterAuthProfile object itself.
+ */
+ public OpenShiftManagedClusterAuthProfile withIdentityProviders(List identityProviders) {
+ this.identityProviders = identityProviders;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterBaseIdentityProvider.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterBaseIdentityProvider.java
new file mode 100644
index 0000000000000..69d3b3c7e47df
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterBaseIdentityProvider.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Structure for any Identity provider.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = OpenShiftManagedClusterBaseIdentityProvider.class)
+@JsonTypeName("OpenShiftManagedClusterBaseIdentityProvider")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AADIdentityProvider", value = OpenShiftManagedClusterAADIdentityProvider.class)
+})
+public class OpenShiftManagedClusterBaseIdentityProvider {
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterIdentityProvider.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterIdentityProvider.java
new file mode 100644
index 0000000000000..b0e10f31e1c8d
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterIdentityProvider.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines the configuration of the identity providers to be used in the
+ * OpenShift cluster.
+ */
+public class OpenShiftManagedClusterIdentityProvider {
+ /**
+ * Name of the provider.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Configuration of the provider.
+ */
+ @JsonProperty(value = "provider")
+ private OpenShiftManagedClusterBaseIdentityProvider provider;
+
+ /**
+ * Get name of the provider.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the provider.
+ *
+ * @param name the name value to set
+ * @return the OpenShiftManagedClusterIdentityProvider object itself.
+ */
+ public OpenShiftManagedClusterIdentityProvider withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get configuration of the provider.
+ *
+ * @return the provider value
+ */
+ public OpenShiftManagedClusterBaseIdentityProvider provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set configuration of the provider.
+ *
+ * @param provider the provider value to set
+ * @return the OpenShiftManagedClusterIdentityProvider object itself.
+ */
+ public OpenShiftManagedClusterIdentityProvider withProvider(OpenShiftManagedClusterBaseIdentityProvider provider) {
+ this.provider = provider;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterMasterPoolProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterMasterPoolProfile.java
new file mode 100644
index 0000000000000..3d1d5ce314319
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusterMasterPoolProfile.java
@@ -0,0 +1,161 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * OpenShiftManagedClusterMaterPoolProfile contains configuration for OpenShift
+ * master VMs.
+ */
+public class OpenShiftManagedClusterMasterPoolProfile {
+ /**
+ * Unique name of the master pool profile in the context of the
+ * subscription and resource group.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Number of masters (VMs) to host docker containers. The default value is
+ * 3.
+ */
+ @JsonProperty(value = "count", required = true)
+ private int count;
+
+ /**
+ * Size of agent VMs. Possible values include: 'Standard_D2s_v3',
+ * 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3',
+ * 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_DS4_v2',
+ * 'Standard_DS5_v2', 'Standard_F8s_v2', 'Standard_F16s_v2',
+ * 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2',
+ * 'Standard_F8s', 'Standard_F16s', 'Standard_E4s_v3', 'Standard_E8s_v3',
+ * 'Standard_E16s_v3', 'Standard_E20s_v3', 'Standard_E32s_v3',
+ * 'Standard_E64s_v3', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4',
+ * 'Standard_GS5', 'Standard_DS12_v2', 'Standard_DS13_v2',
+ * 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_L4s', 'Standard_L8s',
+ * 'Standard_L16s', 'Standard_L32s'.
+ */
+ @JsonProperty(value = "vmSize", required = true)
+ private OpenShiftContainerServiceVMSize vmSize;
+
+ /**
+ * Subnet CIDR for the peering.
+ */
+ @JsonProperty(value = "subnetCidr")
+ private String subnetCidr;
+
+ /**
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux. Possible values include: 'Linux', 'Windows'.
+ */
+ @JsonProperty(value = "osType")
+ private OSType osType;
+
+ /**
+ * Get unique name of the master pool profile in the context of the subscription and resource group.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set unique name of the master pool profile in the context of the subscription and resource group.
+ *
+ * @param name the name value to set
+ * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterMasterPoolProfile withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get number of masters (VMs) to host docker containers. The default value is 3.
+ *
+ * @return the count value
+ */
+ public int count() {
+ return this.count;
+ }
+
+ /**
+ * Set number of masters (VMs) to host docker containers. The default value is 3.
+ *
+ * @param count the count value to set
+ * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterMasterPoolProfile withCount(int count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get size of agent VMs. Possible values include: 'Standard_D2s_v3', 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3', 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_DS4_v2', 'Standard_DS5_v2', 'Standard_F8s_v2', 'Standard_F16s_v2', 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8s', 'Standard_F16s', 'Standard_E4s_v3', 'Standard_E8s_v3', 'Standard_E16s_v3', 'Standard_E20s_v3', 'Standard_E32s_v3', 'Standard_E64s_v3', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5', 'Standard_DS12_v2', 'Standard_DS13_v2', 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_L4s', 'Standard_L8s', 'Standard_L16s', 'Standard_L32s'.
+ *
+ * @return the vmSize value
+ */
+ public OpenShiftContainerServiceVMSize vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set size of agent VMs. Possible values include: 'Standard_D2s_v3', 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3', 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_DS4_v2', 'Standard_DS5_v2', 'Standard_F8s_v2', 'Standard_F16s_v2', 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8s', 'Standard_F16s', 'Standard_E4s_v3', 'Standard_E8s_v3', 'Standard_E16s_v3', 'Standard_E20s_v3', 'Standard_E32s_v3', 'Standard_E64s_v3', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5', 'Standard_DS12_v2', 'Standard_DS13_v2', 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_L4s', 'Standard_L8s', 'Standard_L16s', 'Standard_L32s'.
+ *
+ * @param vmSize the vmSize value to set
+ * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterMasterPoolProfile withVmSize(OpenShiftContainerServiceVMSize vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get subnet CIDR for the peering.
+ *
+ * @return the subnetCidr value
+ */
+ public String subnetCidr() {
+ return this.subnetCidr;
+ }
+
+ /**
+ * Set subnet CIDR for the peering.
+ *
+ * @param subnetCidr the subnetCidr value to set
+ * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterMasterPoolProfile withSubnetCidr(String subnetCidr) {
+ this.subnetCidr = subnetCidr;
+ return this;
+ }
+
+ /**
+ * Get osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @param osType the osType value to set
+ * @return the OpenShiftManagedClusterMasterPoolProfile object itself.
+ */
+ public OpenShiftManagedClusterMasterPoolProfile withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusters.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusters.java
new file mode 100644
index 0000000000000..d0475863161db
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftManagedClusters.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.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.OpenShiftManagedClustersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing OpenShiftManagedClusters.
+ */
+public interface OpenShiftManagedClusters extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftRouterProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftRouterProfile.java
new file mode 100644
index 0000000000000..ce17591f0cb29
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OpenShiftRouterProfile.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents an OpenShift router.
+ */
+public class OpenShiftRouterProfile {
+ /**
+ * Name of the router profile.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * DNS subdomain for OpenShift router.
+ */
+ @JsonProperty(value = "publicSubdomain", access = JsonProperty.Access.WRITE_ONLY)
+ private String publicSubdomain;
+
+ /**
+ * Auto-allocated FQDN for the OpenShift router.
+ */
+ @JsonProperty(value = "fqdn", access = JsonProperty.Access.WRITE_ONLY)
+ private String fqdn;
+
+ /**
+ * Get name of the router profile.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the router profile.
+ *
+ * @param name the name value to set
+ * @return the OpenShiftRouterProfile object itself.
+ */
+ public OpenShiftRouterProfile withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get dNS subdomain for OpenShift router.
+ *
+ * @return the publicSubdomain value
+ */
+ public String publicSubdomain() {
+ return this.publicSubdomain;
+ }
+
+ /**
+ * Get auto-allocated FQDN for the OpenShift router.
+ *
+ * @return the fqdn value
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OperationValue.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OperationValue.java
new file mode 100644
index 0000000000000..2f5005fae2f76
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OperationValue.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.OperationValueInner;
+
+/**
+ * Type representing OperationValue.
+ */
+public interface OperationValue extends HasInner, HasManager {
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the operation value.
+ */
+ String operation();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the provider value.
+ */
+ String provider();
+
+ /**
+ * @return the resource value.
+ */
+ String resource();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/Operations.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/Operations.java
new file mode 100644
index 0000000000000..287e56dbfc190
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_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.containerservice.v2020_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Gets a list of compute operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorProfile.java
new file mode 100644
index 0000000000000..8fd72d431e65c
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorProfile.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Contains information about orchestrator.
+ */
+public class OrchestratorProfile {
+ /**
+ * Orchestrator type.
+ */
+ @JsonProperty(value = "orchestratorType")
+ private String orchestratorType;
+
+ /**
+ * Orchestrator version (major, minor, patch).
+ */
+ @JsonProperty(value = "orchestratorVersion", required = true)
+ private String orchestratorVersion;
+
+ /**
+ * Whether Kubernetes version is currently in preview.
+ */
+ @JsonProperty(value = "isPreview")
+ private Boolean isPreview;
+
+ /**
+ * Get orchestrator type.
+ *
+ * @return the orchestratorType value
+ */
+ public String orchestratorType() {
+ return this.orchestratorType;
+ }
+
+ /**
+ * Set orchestrator type.
+ *
+ * @param orchestratorType the orchestratorType value to set
+ * @return the OrchestratorProfile object itself.
+ */
+ public OrchestratorProfile withOrchestratorType(String orchestratorType) {
+ this.orchestratorType = orchestratorType;
+ return this;
+ }
+
+ /**
+ * Get orchestrator version (major, minor, patch).
+ *
+ * @return the orchestratorVersion value
+ */
+ public String orchestratorVersion() {
+ return this.orchestratorVersion;
+ }
+
+ /**
+ * Set orchestrator version (major, minor, patch).
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set
+ * @return the OrchestratorProfile object itself.
+ */
+ public OrchestratorProfile withOrchestratorVersion(String orchestratorVersion) {
+ this.orchestratorVersion = orchestratorVersion;
+ return this;
+ }
+
+ /**
+ * Get whether Kubernetes version is currently in preview.
+ *
+ * @return the isPreview value
+ */
+ public Boolean isPreview() {
+ return this.isPreview;
+ }
+
+ /**
+ * Set whether Kubernetes version is currently in preview.
+ *
+ * @param isPreview the isPreview value to set
+ * @return the OrchestratorProfile object itself.
+ */
+ public OrchestratorProfile withIsPreview(Boolean isPreview) {
+ this.isPreview = isPreview;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorVersionProfile.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorVersionProfile.java
new file mode 100644
index 0000000000000..23f8341151959
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorVersionProfile.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.containerservice.v2020_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The profile of an orchestrator and its available versions.
+ */
+public class OrchestratorVersionProfile {
+ /**
+ * Orchestrator type.
+ */
+ @JsonProperty(value = "orchestratorType", required = true)
+ private String orchestratorType;
+
+ /**
+ * Orchestrator version (major, minor, patch).
+ */
+ @JsonProperty(value = "orchestratorVersion", required = true)
+ private String orchestratorVersion;
+
+ /**
+ * Installed by default if version is not specified.
+ */
+ @JsonProperty(value = "default")
+ private Boolean defaultProperty;
+
+ /**
+ * Whether Kubernetes version is currently in preview.
+ */
+ @JsonProperty(value = "isPreview")
+ private Boolean isPreview;
+
+ /**
+ * The list of available upgrade versions.
+ */
+ @JsonProperty(value = "upgrades")
+ private List upgrades;
+
+ /**
+ * Get orchestrator type.
+ *
+ * @return the orchestratorType value
+ */
+ public String orchestratorType() {
+ return this.orchestratorType;
+ }
+
+ /**
+ * Set orchestrator type.
+ *
+ * @param orchestratorType the orchestratorType value to set
+ * @return the OrchestratorVersionProfile object itself.
+ */
+ public OrchestratorVersionProfile withOrchestratorType(String orchestratorType) {
+ this.orchestratorType = orchestratorType;
+ return this;
+ }
+
+ /**
+ * Get orchestrator version (major, minor, patch).
+ *
+ * @return the orchestratorVersion value
+ */
+ public String orchestratorVersion() {
+ return this.orchestratorVersion;
+ }
+
+ /**
+ * Set orchestrator version (major, minor, patch).
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set
+ * @return the OrchestratorVersionProfile object itself.
+ */
+ public OrchestratorVersionProfile withOrchestratorVersion(String orchestratorVersion) {
+ this.orchestratorVersion = orchestratorVersion;
+ return this;
+ }
+
+ /**
+ * Get installed by default if version is not specified.
+ *
+ * @return the defaultProperty value
+ */
+ public Boolean defaultProperty() {
+ return this.defaultProperty;
+ }
+
+ /**
+ * Set installed by default if version is not specified.
+ *
+ * @param defaultProperty the defaultProperty value to set
+ * @return the OrchestratorVersionProfile object itself.
+ */
+ public OrchestratorVersionProfile withDefaultProperty(Boolean defaultProperty) {
+ this.defaultProperty = defaultProperty;
+ return this;
+ }
+
+ /**
+ * Get whether Kubernetes version is currently in preview.
+ *
+ * @return the isPreview value
+ */
+ public Boolean isPreview() {
+ return this.isPreview;
+ }
+
+ /**
+ * Set whether Kubernetes version is currently in preview.
+ *
+ * @param isPreview the isPreview value to set
+ * @return the OrchestratorVersionProfile object itself.
+ */
+ public OrchestratorVersionProfile withIsPreview(Boolean isPreview) {
+ this.isPreview = isPreview;
+ return this;
+ }
+
+ /**
+ * Get the list of available upgrade versions.
+ *
+ * @return the upgrades value
+ */
+ public List upgrades() {
+ return this.upgrades;
+ }
+
+ /**
+ * Set the list of available upgrade versions.
+ *
+ * @param upgrades the upgrades value to set
+ * @return the OrchestratorVersionProfile object itself.
+ */
+ public OrchestratorVersionProfile withUpgrades(List upgrades) {
+ this.upgrades = upgrades;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorVersionProfileListResult.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorVersionProfileListResult.java
new file mode 100644
index 0000000000000..f567209e4516c
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OrchestratorVersionProfileListResult.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.containerservice.v2020_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_04_01.implementation.OrchestratorVersionProfileListResultInner;
+import java.util.List;
+
+/**
+ * Type representing OrchestratorVersionProfileListResult.
+ */
+public interface OrchestratorVersionProfileListResult extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the orchestrators value.
+ */
+ List orchestrators();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OutboundType.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OutboundType.java
new file mode 100644
index 0000000000000..359cec42003c6
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/OutboundType.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OutboundType.
+ */
+public final class OutboundType extends ExpandableStringEnum {
+ /** Static value loadBalancer for OutboundType. */
+ public static final OutboundType LOAD_BALANCER = fromString("loadBalancer");
+
+ /** Static value userDefinedRouting for OutboundType. */
+ public static final OutboundType USER_DEFINED_ROUTING = fromString("userDefinedRouting");
+
+ /**
+ * Creates or finds a OutboundType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OutboundType
+ */
+ @JsonCreator
+ public static OutboundType fromString(String name) {
+ return fromString(name, OutboundType.class);
+ }
+
+ /**
+ * @return known OutboundType values
+ */
+ public static Collection values() {
+ return values(OutboundType.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/PurchasePlan.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/PurchasePlan.java
new file mode 100644
index 0000000000000..b7176f2f1980e
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/PurchasePlan.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Used for establishing the purchase context of any 3rd Party artifact through
+ * MarketPlace.
+ */
+public class PurchasePlan {
+ /**
+ * The plan ID.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Specifies the product of the image from the marketplace. This is the
+ * same value as Offer under the imageReference element.
+ */
+ @JsonProperty(value = "product")
+ private String product;
+
+ /**
+ * The promotion code.
+ */
+ @JsonProperty(value = "promotionCode")
+ private String promotionCode;
+
+ /**
+ * The plan ID.
+ */
+ @JsonProperty(value = "publisher")
+ private String publisher;
+
+ /**
+ * Get the plan ID.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the plan ID.
+ *
+ * @param name the name value to set
+ * @return the PurchasePlan object itself.
+ */
+ public PurchasePlan withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
+ *
+ * @return the product value
+ */
+ public String product() {
+ return this.product;
+ }
+
+ /**
+ * Set specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
+ *
+ * @param product the product value to set
+ * @return the PurchasePlan object itself.
+ */
+ public PurchasePlan withProduct(String product) {
+ this.product = product;
+ return this;
+ }
+
+ /**
+ * Get the promotion code.
+ *
+ * @return the promotionCode value
+ */
+ public String promotionCode() {
+ return this.promotionCode;
+ }
+
+ /**
+ * Set the promotion code.
+ *
+ * @param promotionCode the promotionCode value to set
+ * @return the PurchasePlan object itself.
+ */
+ public PurchasePlan withPromotionCode(String promotionCode) {
+ this.promotionCode = promotionCode;
+ return this;
+ }
+
+ /**
+ * Get the plan ID.
+ *
+ * @return the publisher value
+ */
+ public String publisher() {
+ return this.publisher;
+ }
+
+ /**
+ * Set the plan ID.
+ *
+ * @param publisher the publisher value to set
+ * @return the PurchasePlan object itself.
+ */
+ public PurchasePlan withPublisher(String publisher) {
+ this.publisher = publisher;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ResourceIdentityType.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ResourceIdentityType.java
new file mode 100644
index 0000000000000..932015552252c
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ResourceIdentityType.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_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 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/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ResourceReference.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ResourceReference.java
new file mode 100644
index 0000000000000..cefb79b92d569
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ResourceReference.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A reference to an Azure resource.
+ */
+public class ResourceReference {
+ /**
+ * The fully qualified Azure resource id.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Get the fully qualified Azure resource id.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the fully qualified Azure resource id.
+ *
+ * @param id the id value to set
+ * @return the ResourceReference object itself.
+ */
+ public ResourceReference withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ScaleSetEvictionPolicy.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ScaleSetEvictionPolicy.java
new file mode 100644
index 0000000000000..311fe9ee66c8f
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ScaleSetEvictionPolicy.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ScaleSetEvictionPolicy.
+ */
+public final class ScaleSetEvictionPolicy extends ExpandableStringEnum {
+ /** Static value Delete for ScaleSetEvictionPolicy. */
+ public static final ScaleSetEvictionPolicy DELETE = fromString("Delete");
+
+ /** Static value Deallocate for ScaleSetEvictionPolicy. */
+ public static final ScaleSetEvictionPolicy DEALLOCATE = fromString("Deallocate");
+
+ /**
+ * Creates or finds a ScaleSetEvictionPolicy from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ScaleSetEvictionPolicy
+ */
+ @JsonCreator
+ public static ScaleSetEvictionPolicy fromString(String name) {
+ return fromString(name, ScaleSetEvictionPolicy.class);
+ }
+
+ /**
+ * @return known ScaleSetEvictionPolicy values
+ */
+ public static Collection values() {
+ return values(ScaleSetEvictionPolicy.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ScaleSetPriority.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ScaleSetPriority.java
new file mode 100644
index 0000000000000..acee49ece5377
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/ScaleSetPriority.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.containerservice.v2020_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ScaleSetPriority.
+ */
+public final class ScaleSetPriority extends ExpandableStringEnum {
+ /** Static value Spot for ScaleSetPriority. */
+ public static final ScaleSetPriority SPOT = fromString("Spot");
+
+ /** Static value Regular for ScaleSetPriority. */
+ public static final ScaleSetPriority REGULAR = fromString("Regular");
+
+ /**
+ * Creates or finds a ScaleSetPriority from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ScaleSetPriority
+ */
+ @JsonCreator
+ public static ScaleSetPriority fromString(String name) {
+ return fromString(name, ScaleSetPriority.class);
+ }
+
+ /**
+ * @return known ScaleSetPriority values
+ */
+ public static Collection values() {
+ return values(ScaleSetPriority.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/TagsObject.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/TagsObject.java
new file mode 100644
index 0000000000000..ee63f11829242
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/TagsObject.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.containerservice.v2020_04_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Tags object for patch operations.
+ */
+public class TagsObject {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the TagsObject object itself.
+ */
+ public TagsObject withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/UserAssignedIdentity.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/UserAssignedIdentity.java
new file mode 100644
index 0000000000000..5323066a1c047
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/UserAssignedIdentity.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.containerservice.v2020_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The UserAssignedIdentity model.
+ */
+public class UserAssignedIdentity {
+ /**
+ * The resource id of the user assigned identity.
+ */
+ @JsonProperty(value = "resourceId")
+ private String resourceId;
+
+ /**
+ * The client id of the user assigned identity.
+ */
+ @JsonProperty(value = "clientId")
+ private String clientId;
+
+ /**
+ * The object id of the user assigned identity.
+ */
+ @JsonProperty(value = "objectId")
+ private String objectId;
+
+ /**
+ * Get the resource id of the user assigned identity.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the resource id of the user assigned identity.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the UserAssignedIdentity object itself.
+ */
+ public UserAssignedIdentity withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get the client id of the user assigned identity.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+ /**
+ * Set the client id of the user assigned identity.
+ *
+ * @param clientId the clientId value to set
+ * @return the UserAssignedIdentity object itself.
+ */
+ public UserAssignedIdentity withClientId(String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ /**
+ * Get the object id of the user assigned identity.
+ *
+ * @return the objectId value
+ */
+ public String objectId() {
+ return this.objectId;
+ }
+
+ /**
+ * Set the object id of the user assigned identity.
+ *
+ * @param objectId the objectId value to set
+ * @return the UserAssignedIdentity object itself.
+ */
+ public UserAssignedIdentity withObjectId(String objectId) {
+ this.objectId = objectId;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolAvailableVersionsImpl.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolAvailableVersionsImpl.java
new file mode 100644
index 0000000000000..d69cab20a1418
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolAvailableVersionsImpl.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.containerservice.v2020_04_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolAvailableVersions;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+
+class AgentPoolAvailableVersionsImpl extends WrapperImpl implements AgentPoolAvailableVersions {
+ private final ContainerServiceManager manager;
+ AgentPoolAvailableVersionsImpl(AgentPoolAvailableVersionsInner inner, ContainerServiceManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ContainerServiceManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public List agentPoolVersions() {
+ return this.inner().agentPoolVersions();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolAvailableVersionsInner.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolAvailableVersionsInner.java
new file mode 100644
index 0000000000000..c9fcf8eace348
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolAvailableVersionsInner.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01.implementation;
+
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The list of available versions for an agent pool.
+ */
+@JsonFlatten
+public class AgentPoolAvailableVersionsInner {
+ /**
+ * Id of the agent pool available versions.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Name of the agent pool available versions.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Type of the agent pool available versions.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * List of versions available for agent pool.
+ */
+ @JsonProperty(value = "properties.agentPoolVersions")
+ private List agentPoolVersions;
+
+ /**
+ * Get id of the agent pool available versions.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get name of the agent pool available versions.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get type of the agent pool available versions.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get list of versions available for agent pool.
+ *
+ * @return the agentPoolVersions value
+ */
+ public List agentPoolVersions() {
+ return this.agentPoolVersions;
+ }
+
+ /**
+ * Set list of versions available for agent pool.
+ *
+ * @param agentPoolVersions the agentPoolVersions value to set
+ * @return the AgentPoolAvailableVersionsInner object itself.
+ */
+ public AgentPoolAvailableVersionsInner withAgentPoolVersions(List agentPoolVersions) {
+ this.agentPoolVersions = agentPoolVersions;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolImpl.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolImpl.java
new file mode 100644
index 0000000000000..a4539f397c236
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolImpl.java
@@ -0,0 +1,350 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPool;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.containerservice.v2020_04_01.ContainerServiceVMSizeTypes;
+import com.microsoft.azure.management.containerservice.v2020_04_01.OSType;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolType;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolMode;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolUpgradeSettings;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_04_01.ScaleSetPriority;
+import com.microsoft.azure.management.containerservice.v2020_04_01.ScaleSetEvictionPolicy;
+import java.util.Map;
+
+class AgentPoolImpl extends CreatableUpdatableImpl implements AgentPool, AgentPool.Definition, AgentPool.Update {
+ private final ContainerServiceManager manager;
+ private String resourceGroupName;
+ private String resourceName;
+ private String agentPoolName;
+
+ AgentPoolImpl(String name, ContainerServiceManager manager) {
+ super(name, new AgentPoolInner());
+ this.manager = manager;
+ // Set resource name
+ this.agentPoolName = name;
+ //
+ }
+
+ AgentPoolImpl(AgentPoolInner inner, ContainerServiceManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.agentPoolName = inner.name();
+ // set resource ancestor and positional variables
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.resourceName = IdParsingUtils.getValueFromIdByName(inner.id(), "managedClusters");
+ this.agentPoolName = IdParsingUtils.getValueFromIdByName(inner.id(), "agentPools");
+ //
+ }
+
+ @Override
+ public ContainerServiceManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ AgentPoolsInner client = this.manager().inner().agentPools();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.resourceName, this.agentPoolName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ AgentPoolsInner client = this.manager().inner().agentPools();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.resourceName, this.agentPoolName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ AgentPoolsInner client = this.manager().inner().agentPools();
+ return client.getAsync(this.resourceGroupName, this.resourceName, this.agentPoolName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public AgentPoolType agentPoolType() {
+ return this.inner().agentPoolType();
+ }
+
+ @Override
+ public List availabilityZones() {
+ return this.inner().availabilityZones();
+ }
+
+ @Override
+ public Integer count() {
+ return this.inner().count();
+ }
+
+ @Override
+ public Boolean enableAutoScaling() {
+ return this.inner().enableAutoScaling();
+ }
+
+ @Override
+ public Boolean enableNodePublicIP() {
+ return this.inner().enableNodePublicIP();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public Integer maxCount() {
+ return this.inner().maxCount();
+ }
+
+ @Override
+ public Integer maxPods() {
+ return this.inner().maxPods();
+ }
+
+ @Override
+ public Integer minCount() {
+ return this.inner().minCount();
+ }
+
+ @Override
+ public AgentPoolMode mode() {
+ return this.inner().mode();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String nodeImageVersion() {
+ return this.inner().nodeImageVersion();
+ }
+
+ @Override
+ public Map nodeLabels() {
+ return this.inner().nodeLabels();
+ }
+
+ @Override
+ public List nodeTaints() {
+ return this.inner().nodeTaints();
+ }
+
+ @Override
+ public String orchestratorVersion() {
+ return this.inner().orchestratorVersion();
+ }
+
+ @Override
+ public Integer osDiskSizeGB() {
+ return this.inner().osDiskSizeGB();
+ }
+
+ @Override
+ public OSType osType() {
+ return this.inner().osType();
+ }
+
+ @Override
+ public String provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.inner().scaleSetEvictionPolicy();
+ }
+
+ @Override
+ public ScaleSetPriority scaleSetPriority() {
+ return this.inner().scaleSetPriority();
+ }
+
+ @Override
+ public Double spotMaxPrice() {
+ return this.inner().spotMaxPrice();
+ }
+
+ @Override
+ public Map tags() {
+ return this.inner().tags();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public AgentPoolUpgradeSettings upgradeSettings() {
+ return this.inner().upgradeSettings();
+ }
+
+ @Override
+ public ContainerServiceVMSizeTypes vmSize() {
+ return this.inner().vmSize();
+ }
+
+ @Override
+ public String vnetSubnetID() {
+ return this.inner().vnetSubnetID();
+ }
+
+ @Override
+ public AgentPoolImpl withExistingManagedCluster(String resourceGroupName, String resourceName) {
+ this.resourceGroupName = resourceGroupName;
+ this.resourceName = resourceName;
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withAgentPoolType(AgentPoolType agentPoolType) {
+ this.inner().withAgentPoolType(agentPoolType);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withAvailabilityZones(List availabilityZones) {
+ this.inner().withAvailabilityZones(availabilityZones);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withCount(Integer count) {
+ this.inner().withCount(count);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withEnableAutoScaling(Boolean enableAutoScaling) {
+ this.inner().withEnableAutoScaling(enableAutoScaling);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withEnableNodePublicIP(Boolean enableNodePublicIP) {
+ this.inner().withEnableNodePublicIP(enableNodePublicIP);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withMaxCount(Integer maxCount) {
+ this.inner().withMaxCount(maxCount);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withMaxPods(Integer maxPods) {
+ this.inner().withMaxPods(maxPods);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withMinCount(Integer minCount) {
+ this.inner().withMinCount(minCount);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withMode(AgentPoolMode mode) {
+ this.inner().withMode(mode);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withNodeImageVersion(String nodeImageVersion) {
+ this.inner().withNodeImageVersion(nodeImageVersion);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withNodeLabels(Map nodeLabels) {
+ this.inner().withNodeLabels(nodeLabels);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withNodeTaints(List nodeTaints) {
+ this.inner().withNodeTaints(nodeTaints);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withOrchestratorVersion(String orchestratorVersion) {
+ this.inner().withOrchestratorVersion(orchestratorVersion);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withOsDiskSizeGB(Integer osDiskSizeGB) {
+ this.inner().withOsDiskSizeGB(osDiskSizeGB);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withOsType(OSType osType) {
+ this.inner().withOsType(osType);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy) {
+ this.inner().withScaleSetEvictionPolicy(scaleSetEvictionPolicy);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withScaleSetPriority(ScaleSetPriority scaleSetPriority) {
+ this.inner().withScaleSetPriority(scaleSetPriority);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withSpotMaxPrice(Double spotMaxPrice) {
+ this.inner().withSpotMaxPrice(spotMaxPrice);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withTags(Map tags) {
+ this.inner().withTags(tags);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings) {
+ this.inner().withUpgradeSettings(upgradeSettings);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withVmSize(ContainerServiceVMSizeTypes vmSize) {
+ this.inner().withVmSize(vmSize);
+ return this;
+ }
+
+ @Override
+ public AgentPoolImpl withVnetSubnetID(String vnetSubnetID) {
+ this.inner().withVnetSubnetID(vnetSubnetID);
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolInner.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolInner.java
new file mode 100644
index 0000000000000..4aa8dd64c46bf
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolInner.java
@@ -0,0 +1,715 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_04_01.ContainerServiceVMSizeTypes;
+import com.microsoft.azure.management.containerservice.v2020_04_01.OSType;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolType;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolMode;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolUpgradeSettings;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_04_01.ScaleSetPriority;
+import com.microsoft.azure.management.containerservice.v2020_04_01.ScaleSetEvictionPolicy;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.SubResource;
+
+/**
+ * Agent Pool.
+ */
+@JsonFlatten
+public class AgentPoolInner extends SubResource {
+ /**
+ * Number of agents (VMs) to host docker containers. Allowed values must be
+ * in the range of 0 to 100 (inclusive) for user pools and in the range of
+ * 1 to 100 (inclusive) for system pools. The default value is 1.
+ */
+ @JsonProperty(value = "properties.count")
+ private Integer count;
+
+ /**
+ * Size of agent VMs. Possible values include: 'Standard_A1',
+ * 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2',
+ * 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4',
+ * 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6',
+ * 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2',
+ * 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms',
+ * 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2',
+ * 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2',
+ * 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2',
+ * 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2',
+ * 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3',
+ * 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2',
+ * 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3',
+ * 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2',
+ * 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2',
+ * 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3',
+ * 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3',
+ * 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1',
+ * 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo',
+ * 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo',
+ * 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2',
+ * 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14',
+ * 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2',
+ * 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2',
+ * 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo',
+ * 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo',
+ * 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo',
+ * 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3',
+ * 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3',
+ * 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3',
+ * 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3',
+ * 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3',
+ * 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1',
+ * 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s',
+ * 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2',
+ * 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2',
+ * 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2',
+ * 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4',
+ * 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3',
+ * 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5',
+ * 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m',
+ * 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m',
+ * 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s',
+ * 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms',
+ * 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms',
+ * 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2',
+ * 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r',
+ * 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2',
+ * 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2',
+ * 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs',
+ * 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24',
+ * 'Standard_NV6'.
+ */
+ @JsonProperty(value = "properties.vmSize")
+ private ContainerServiceVMSizeTypes vmSize;
+
+ /**
+ * OS Disk Size in GB to be used to specify the disk size for every machine
+ * in this master/agent pool. If you specify 0, it will apply the default
+ * osDisk size according to the vmSize specified.
+ */
+ @JsonProperty(value = "properties.osDiskSizeGB")
+ private Integer osDiskSizeGB;
+
+ /**
+ * VNet SubnetID specifies the VNet's subnet identifier.
+ */
+ @JsonProperty(value = "properties.vnetSubnetID")
+ private String vnetSubnetID;
+
+ /**
+ * Maximum number of pods that can run on a node.
+ */
+ @JsonProperty(value = "properties.maxPods")
+ private Integer maxPods;
+
+ /**
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux. Possible values include: 'Linux', 'Windows'.
+ */
+ @JsonProperty(value = "properties.osType")
+ private OSType osType;
+
+ /**
+ * Maximum number of nodes for auto-scaling.
+ */
+ @JsonProperty(value = "properties.maxCount")
+ private Integer maxCount;
+
+ /**
+ * Minimum number of nodes for auto-scaling.
+ */
+ @JsonProperty(value = "properties.minCount")
+ private Integer minCount;
+
+ /**
+ * Whether to enable auto-scaler.
+ */
+ @JsonProperty(value = "properties.enableAutoScaling")
+ private Boolean enableAutoScaling;
+
+ /**
+ * AgentPoolType represents types of an agent pool. Possible values
+ * include: 'VirtualMachineScaleSets', 'AvailabilitySet'.
+ */
+ @JsonProperty(value = "properties.type")
+ private AgentPoolType agentPoolType;
+
+ /**
+ * AgentPoolMode represents mode of an agent pool. Possible values include:
+ * 'System', 'User'.
+ */
+ @JsonProperty(value = "properties.mode")
+ private AgentPoolMode mode;
+
+ /**
+ * Version of orchestrator specified when creating the managed cluster.
+ */
+ @JsonProperty(value = "properties.orchestratorVersion")
+ private String orchestratorVersion;
+
+ /**
+ * Version of node image.
+ */
+ @JsonProperty(value = "properties.nodeImageVersion")
+ private String nodeImageVersion;
+
+ /**
+ * Settings for upgrading the agentpool.
+ */
+ @JsonProperty(value = "properties.upgradeSettings")
+ private AgentPoolUpgradeSettings upgradeSettings;
+
+ /**
+ * The current deployment or provisioning state, which only appears in the
+ * response.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Availability zones for nodes. Must use VirtualMachineScaleSets
+ * AgentPoolType.
+ */
+ @JsonProperty(value = "properties.availabilityZones")
+ private List availabilityZones;
+
+ /**
+ * Enable public IP for nodes.
+ */
+ @JsonProperty(value = "properties.enableNodePublicIP")
+ private Boolean enableNodePublicIP;
+
+ /**
+ * ScaleSetPriority to be used to specify virtual machine scale set
+ * priority. Default to regular. Possible values include: 'Spot',
+ * 'Regular'.
+ */
+ @JsonProperty(value = "properties.scaleSetPriority")
+ private ScaleSetPriority scaleSetPriority;
+
+ /**
+ * ScaleSetEvictionPolicy to be used to specify eviction policy for Spot
+ * virtual machine scale set. Default to Delete. Possible values include:
+ * 'Delete', 'Deallocate'.
+ */
+ @JsonProperty(value = "properties.scaleSetEvictionPolicy")
+ private ScaleSetEvictionPolicy scaleSetEvictionPolicy;
+
+ /**
+ * SpotMaxPrice to be used to specify the maximum price you are willing to
+ * pay in US Dollars. Possible values are any decimal value greater than
+ * zero or -1 which indicates default price to be up-to on-demand.
+ */
+ @JsonProperty(value = "properties.spotMaxPrice")
+ private Double spotMaxPrice;
+
+ /**
+ * Agent pool tags to be persisted on the agent pool virtual machine scale
+ * set.
+ */
+ @JsonProperty(value = "properties.tags")
+ private Map tags;
+
+ /**
+ * Agent pool node labels to be persisted across all nodes in agent pool.
+ */
+ @JsonProperty(value = "properties.nodeLabels")
+ private Map nodeLabels;
+
+ /**
+ * Taints added to new nodes during node pool create and scale. For
+ * example, key=value:NoSchedule.
+ */
+ @JsonProperty(value = "properties.nodeTaints")
+ private List nodeTaints;
+
+ /**
+ * The name of the resource that is unique within a resource group. This
+ * name can be used to access the resource.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Resource type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * Get number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1.
+ *
+ * @return the count value
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1.
+ *
+ * @param count the count value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withCount(Integer count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'.
+ *
+ * @return the vmSize value
+ */
+ public ContainerServiceVMSizeTypes vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set size of agent VMs. Possible values include: 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6'.
+ *
+ * @param vmSize the vmSize value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withVmSize(ContainerServiceVMSizeTypes vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get oS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @return the osDiskSizeGB value
+ */
+ public Integer osDiskSizeGB() {
+ return this.osDiskSizeGB;
+ }
+
+ /**
+ * Set oS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @param osDiskSizeGB the osDiskSizeGB value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsDiskSizeGB(Integer osDiskSizeGB) {
+ this.osDiskSizeGB = osDiskSizeGB;
+ return this;
+ }
+
+ /**
+ * Get vNet SubnetID specifies the VNet's subnet identifier.
+ *
+ * @return the vnetSubnetID value
+ */
+ public String vnetSubnetID() {
+ return this.vnetSubnetID;
+ }
+
+ /**
+ * Set vNet SubnetID specifies the VNet's subnet identifier.
+ *
+ * @param vnetSubnetID the vnetSubnetID value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withVnetSubnetID(String vnetSubnetID) {
+ this.vnetSubnetID = vnetSubnetID;
+ return this;
+ }
+
+ /**
+ * Get maximum number of pods that can run on a node.
+ *
+ * @return the maxPods value
+ */
+ public Integer maxPods() {
+ return this.maxPods;
+ }
+
+ /**
+ * Set maximum number of pods that can run on a node.
+ *
+ * @param maxPods the maxPods value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMaxPods(Integer maxPods) {
+ this.maxPods = maxPods;
+ return this;
+ }
+
+ /**
+ * Get osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @param osType the osType value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get maximum number of nodes for auto-scaling.
+ *
+ * @return the maxCount value
+ */
+ public Integer maxCount() {
+ return this.maxCount;
+ }
+
+ /**
+ * Set maximum number of nodes for auto-scaling.
+ *
+ * @param maxCount the maxCount value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMaxCount(Integer maxCount) {
+ this.maxCount = maxCount;
+ return this;
+ }
+
+ /**
+ * Get minimum number of nodes for auto-scaling.
+ *
+ * @return the minCount value
+ */
+ public Integer minCount() {
+ return this.minCount;
+ }
+
+ /**
+ * Set minimum number of nodes for auto-scaling.
+ *
+ * @param minCount the minCount value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMinCount(Integer minCount) {
+ this.minCount = minCount;
+ return this;
+ }
+
+ /**
+ * Get whether to enable auto-scaler.
+ *
+ * @return the enableAutoScaling value
+ */
+ public Boolean enableAutoScaling() {
+ return this.enableAutoScaling;
+ }
+
+ /**
+ * Set whether to enable auto-scaler.
+ *
+ * @param enableAutoScaling the enableAutoScaling value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableAutoScaling(Boolean enableAutoScaling) {
+ this.enableAutoScaling = enableAutoScaling;
+ return this;
+ }
+
+ /**
+ * Get agentPoolType represents types of an agent pool. Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet'.
+ *
+ * @return the agentPoolType value
+ */
+ public AgentPoolType agentPoolType() {
+ return this.agentPoolType;
+ }
+
+ /**
+ * Set agentPoolType represents types of an agent pool. Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet'.
+ *
+ * @param agentPoolType the agentPoolType value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withAgentPoolType(AgentPoolType agentPoolType) {
+ this.agentPoolType = agentPoolType;
+ return this;
+ }
+
+ /**
+ * Get agentPoolMode represents mode of an agent pool. Possible values include: 'System', 'User'.
+ *
+ * @return the mode value
+ */
+ public AgentPoolMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set agentPoolMode represents mode of an agent pool. Possible values include: 'System', 'User'.
+ *
+ * @param mode the mode value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMode(AgentPoolMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+ /**
+ * Get version of orchestrator specified when creating the managed cluster.
+ *
+ * @return the orchestratorVersion value
+ */
+ public String orchestratorVersion() {
+ return this.orchestratorVersion;
+ }
+
+ /**
+ * Set version of orchestrator specified when creating the managed cluster.
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOrchestratorVersion(String orchestratorVersion) {
+ this.orchestratorVersion = orchestratorVersion;
+ return this;
+ }
+
+ /**
+ * Get version of node image.
+ *
+ * @return the nodeImageVersion value
+ */
+ public String nodeImageVersion() {
+ return this.nodeImageVersion;
+ }
+
+ /**
+ * Set version of node image.
+ *
+ * @param nodeImageVersion the nodeImageVersion value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNodeImageVersion(String nodeImageVersion) {
+ this.nodeImageVersion = nodeImageVersion;
+ return this;
+ }
+
+ /**
+ * Get settings for upgrading the agentpool.
+ *
+ * @return the upgradeSettings value
+ */
+ public AgentPoolUpgradeSettings upgradeSettings() {
+ return this.upgradeSettings;
+ }
+
+ /**
+ * Set settings for upgrading the agentpool.
+ *
+ * @param upgradeSettings the upgradeSettings value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings) {
+ this.upgradeSettings = upgradeSettings;
+ return this;
+ }
+
+ /**
+ * Get the current deployment or provisioning state, which only appears in the response.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType.
+ *
+ * @return the availabilityZones value
+ */
+ public List availabilityZones() {
+ return this.availabilityZones;
+ }
+
+ /**
+ * Set availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType.
+ *
+ * @param availabilityZones the availabilityZones value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withAvailabilityZones(List availabilityZones) {
+ this.availabilityZones = availabilityZones;
+ return this;
+ }
+
+ /**
+ * Get enable public IP for nodes.
+ *
+ * @return the enableNodePublicIP value
+ */
+ public Boolean enableNodePublicIP() {
+ return this.enableNodePublicIP;
+ }
+
+ /**
+ * Set enable public IP for nodes.
+ *
+ * @param enableNodePublicIP the enableNodePublicIP value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableNodePublicIP(Boolean enableNodePublicIP) {
+ this.enableNodePublicIP = enableNodePublicIP;
+ return this;
+ }
+
+ /**
+ * Get scaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. Possible values include: 'Spot', 'Regular'.
+ *
+ * @return the scaleSetPriority value
+ */
+ public ScaleSetPriority scaleSetPriority() {
+ return this.scaleSetPriority;
+ }
+
+ /**
+ * Set scaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. Possible values include: 'Spot', 'Regular'.
+ *
+ * @param scaleSetPriority the scaleSetPriority value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withScaleSetPriority(ScaleSetPriority scaleSetPriority) {
+ this.scaleSetPriority = scaleSetPriority;
+ return this;
+ }
+
+ /**
+ * Get scaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. Possible values include: 'Delete', 'Deallocate'.
+ *
+ * @return the scaleSetEvictionPolicy value
+ */
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.scaleSetEvictionPolicy;
+ }
+
+ /**
+ * Set scaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. Possible values include: 'Delete', 'Deallocate'.
+ *
+ * @param scaleSetEvictionPolicy the scaleSetEvictionPolicy value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy) {
+ this.scaleSetEvictionPolicy = scaleSetEvictionPolicy;
+ return this;
+ }
+
+ /**
+ * Get spotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * @return the spotMaxPrice value
+ */
+ public Double spotMaxPrice() {
+ return this.spotMaxPrice;
+ }
+
+ /**
+ * Set spotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * @param spotMaxPrice the spotMaxPrice value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withSpotMaxPrice(Double spotMaxPrice) {
+ this.spotMaxPrice = spotMaxPrice;
+ return this;
+ }
+
+ /**
+ * Get agent pool tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set agent pool tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @param tags the tags value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get agent pool node labels to be persisted across all nodes in agent pool.
+ *
+ * @return the nodeLabels value
+ */
+ public Map nodeLabels() {
+ return this.nodeLabels;
+ }
+
+ /**
+ * Set agent pool node labels to be persisted across all nodes in agent pool.
+ *
+ * @param nodeLabels the nodeLabels value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNodeLabels(Map nodeLabels) {
+ this.nodeLabels = nodeLabels;
+ return this;
+ }
+
+ /**
+ * Get taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
+ *
+ * @return the nodeTaints value
+ */
+ public List nodeTaints() {
+ return this.nodeTaints;
+ }
+
+ /**
+ * Set taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
+ *
+ * @param nodeTaints the nodeTaints value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNodeTaints(List nodeTaints) {
+ this.nodeTaints = nodeTaints;
+ return this;
+ }
+
+ /**
+ * Get the name of the resource that is unique within a resource group. This name can be used to access the resource.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get resource type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolUpgradeProfileImpl.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolUpgradeProfileImpl.java
new file mode 100644
index 0000000000000..37707930f8e63
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolUpgradeProfileImpl.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolUpgradeProfile;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.containerservice.v2020_04_01.OSType;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+
+class AgentPoolUpgradeProfileImpl extends WrapperImpl implements AgentPoolUpgradeProfile {
+ private final ContainerServiceManager manager;
+ AgentPoolUpgradeProfileImpl(AgentPoolUpgradeProfileInner inner, ContainerServiceManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ContainerServiceManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String kubernetesVersion() {
+ return this.inner().kubernetesVersion();
+ }
+
+ @Override
+ public String latestNodeImageVersion() {
+ return this.inner().latestNodeImageVersion();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public OSType osType() {
+ return this.inner().osType();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public List upgrades() {
+ return this.inner().upgrades();
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolUpgradeProfileInner.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolUpgradeProfileInner.java
new file mode 100644
index 0000000000000..c81d14b79f8c4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolUpgradeProfileInner.java
@@ -0,0 +1,172 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_04_01.OSType;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The list of available upgrades for an agent pool.
+ */
+@JsonFlatten
+public class AgentPoolUpgradeProfileInner {
+ /**
+ * Id of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Name of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Type of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * Kubernetes version (major, minor, patch).
+ */
+ @JsonProperty(value = "properties.kubernetesVersion", required = true)
+ private String kubernetesVersion;
+
+ /**
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux. Possible values include: 'Linux', 'Windows'.
+ */
+ @JsonProperty(value = "properties.osType", required = true)
+ private OSType osType;
+
+ /**
+ * List of orchestrator types and versions available for upgrade.
+ */
+ @JsonProperty(value = "properties.upgrades")
+ private List upgrades;
+
+ /**
+ * LatestNodeImageVersion is the latest AKS supported node image version.
+ */
+ @JsonProperty(value = "properties.latestNodeImageVersion")
+ private String latestNodeImageVersion;
+
+ /**
+ * Get id of the agent pool upgrade profile.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get name of the agent pool upgrade profile.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get type of the agent pool upgrade profile.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get kubernetes version (major, minor, patch).
+ *
+ * @return the kubernetesVersion value
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set kubernetes version (major, minor, patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set osType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows'.
+ *
+ * @param osType the osType value to set
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get list of orchestrator types and versions available for upgrade.
+ *
+ * @return the upgrades value
+ */
+ public List upgrades() {
+ return this.upgrades;
+ }
+
+ /**
+ * Set list of orchestrator types and versions available for upgrade.
+ *
+ * @param upgrades the upgrades value to set
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withUpgrades(List upgrades) {
+ this.upgrades = upgrades;
+ return this;
+ }
+
+ /**
+ * Get latestNodeImageVersion is the latest AKS supported node image version.
+ *
+ * @return the latestNodeImageVersion value
+ */
+ public String latestNodeImageVersion() {
+ return this.latestNodeImageVersion;
+ }
+
+ /**
+ * Set latestNodeImageVersion is the latest AKS supported node image version.
+ *
+ * @param latestNodeImageVersion the latestNodeImageVersion value to set
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withLatestNodeImageVersion(String latestNodeImageVersion) {
+ this.latestNodeImageVersion = latestNodeImageVersion;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolsImpl.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolsImpl.java
new file mode 100644
index 0000000000000..52f2049275868
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolsImpl.java
@@ -0,0 +1,111 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ *
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPools;
+import rx.Completable;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPool;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolUpgradeProfile;
+import com.microsoft.azure.management.containerservice.v2020_04_01.AgentPoolAvailableVersions;
+
+class AgentPoolsImpl extends WrapperImpl implements AgentPools {
+ private final ContainerServiceManager manager;
+
+ AgentPoolsImpl(ContainerServiceManager manager) {
+ super(manager.inner().agentPools());
+ this.manager = manager;
+ }
+
+ public ContainerServiceManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public AgentPoolImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ private AgentPoolImpl wrapModel(AgentPoolInner inner) {
+ return new AgentPoolImpl(inner, manager());
+ }
+
+ private AgentPoolImpl wrapModel(String name) {
+ return new AgentPoolImpl(name, this.manager());
+ }
+
+ @Override
+ public Observable listAsync(final String resourceGroupName, final String resourceName) {
+ AgentPoolsInner client = this.inner();
+ return client.listAsync(resourceGroupName, resourceName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public AgentPool call(AgentPoolInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Observable getAsync(String resourceGroupName, String resourceName, String agentPoolName) {
+ AgentPoolsInner client = this.inner();
+ return client.getAsync(resourceGroupName, resourceName, agentPoolName)
+ .flatMap(new Func1>() {
+ @Override
+ public Observable call(AgentPoolInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((AgentPool)wrapModel(inner));
+ }
+ }
+ });
+ }
+
+ @Override
+ public Completable deleteAsync(String resourceGroupName, String resourceName, String agentPoolName) {
+ AgentPoolsInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, resourceName, agentPoolName).toCompletable();
+ }
+
+ @Override
+ public Observable getUpgradeProfileAsync(String resourceGroupName, String resourceName, String agentPoolName) {
+ AgentPoolsInner client = this.inner();
+ return client.getUpgradeProfileAsync(resourceGroupName, resourceName, agentPoolName)
+ .map(new Func1() {
+ @Override
+ public AgentPoolUpgradeProfile call(AgentPoolUpgradeProfileInner inner) {
+ return new AgentPoolUpgradeProfileImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public Observable getAvailableAgentPoolVersionsAsync(String resourceGroupName, String resourceName) {
+ AgentPoolsInner client = this.inner();
+ return client.getAvailableAgentPoolVersionsAsync(resourceGroupName, resourceName)
+ .map(new Func1() {
+ @Override
+ public AgentPoolAvailableVersions call(AgentPoolAvailableVersionsInner inner) {
+ return new AgentPoolAvailableVersionsImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolsInner.java b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolsInner.java
new file mode 100644
index 0000000000000..12a7813ef7520
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_04_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_04_01/implementation/AgentPoolsInner.java
@@ -0,0 +1,984 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_04_01.implementation;
+
+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.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.Path;
+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 AgentPools.
+ */
+public class AgentPoolsInner {
+ /** The Retrofit service to perform REST calls. */
+ private AgentPoolsService service;
+ /** The service client containing this operation class. */
+ private ContainerServiceManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AgentPoolsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public AgentPoolsInner(Retrofit retrofit, ContainerServiceManagementClientImpl client) {
+ this.service = retrofit.create(AgentPoolsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AgentPools to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface AgentPoolsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.containerservice.v2020_04_01.AgentPools list" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("resourceName") String resourceName, @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.containerservice.v2020_04_01.AgentPools get" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}")
+ Observable> get(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("resourceName") String resourceName, @Path("agentPoolName") String agentPoolName, @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.containerservice.v2020_04_01.AgentPools createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}")
+ Observable> createOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("resourceName") String resourceName, @Path("agentPoolName") String agentPoolName, @Query("api-version") String apiVersion, @Body AgentPoolInner parameters, @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.containerservice.v2020_04_01.AgentPools beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}")
+ Observable> beginCreateOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("resourceName") String resourceName, @Path("agentPoolName") String agentPoolName, @Query("api-version") String apiVersion, @Body AgentPoolInner parameters, @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.containerservice.v2020_04_01.AgentPools delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("resourceName") String resourceName, @Path("agentPoolName") String agentPoolName, @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.containerservice.v2020_04_01.AgentPools beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("resourceName") String resourceName, @Path("agentPoolName") String agentPoolName, @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.containerservice.v2020_04_01.AgentPools getUpgradeProfile" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeProfiles/default")
+ Observable