diff --git a/sdk/containerservice/mgmt-v2020_06_01/pom.xml b/sdk/containerservice/mgmt-v2020_06_01/pom.xml
new file mode 100644
index 0000000000000..a418342bb6572
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPool.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPool.java
new file mode 100644
index 0000000000000..44b43137e805c
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPool.java
@@ -0,0 +1,762 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT 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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_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 proximityPlacementGroupID value.
+ */
+ String proximityPlacementGroupID();
+
+ /**
+ * @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 ProximityPlacementGroupID.
+ */
+ interface WithProximityPlacementGroupID {
+ /**
+ * Specifies proximityPlacementGroupID.
+ * @param proximityPlacementGroupID The ID for Proximity Placement Group
+ * @return the next definition stage
+ */
+ WithCreate withProximityPlacementGroupID(String proximityPlacementGroupID);
+ }
+
+ /**
+ * 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.WithProximityPlacementGroupID, 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.WithProximityPlacementGroupID, 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 ProximityPlacementGroupID.
+ */
+ interface WithProximityPlacementGroupID {
+ /**
+ * Specifies proximityPlacementGroupID.
+ * @param proximityPlacementGroupID The ID for Proximity Placement Group
+ * @return the next update stage
+ */
+ Update withProximityPlacementGroupID(String proximityPlacementGroupID);
+ }
+
+ /**
+ * 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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolAvailableVersions.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolAvailableVersions.java
new file mode 100644
index 0000000000000..73f547649316a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem.java
new file mode 100644
index 0000000000000..1964c2b9f63b4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolMode.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolMode.java
new file mode 100644
index 0000000000000..1fc89538bbaba
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolType.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolType.java
new file mode 100644
index 0000000000000..1460de832bcc8
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolUpgradeProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolUpgradeProfile.java
new file mode 100644
index 0000000000000..a6a351e1bb884
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolUpgradeProfilePropertiesUpgradesItem.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolUpgradeProfilePropertiesUpgradesItem.java
new file mode 100644
index 0000000000000..c60f1cbfae988
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolUpgradeSettings.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPoolUpgradeSettings.java
new file mode 100644
index 0000000000000..412d14f7c9d29
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPools.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/AgentPools.java
new file mode 100644
index 0000000000000..f03c593e5f117
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ConnectionStatus.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ConnectionStatus.java
new file mode 100644
index 0000000000000..54cc43fd65d97
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ConnectionStatus.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_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ConnectionStatus.
+ */
+public final class ConnectionStatus extends ExpandableStringEnum {
+ /** Static value Pending for ConnectionStatus. */
+ public static final ConnectionStatus PENDING = fromString("Pending");
+
+ /** Static value Approved for ConnectionStatus. */
+ public static final ConnectionStatus APPROVED = fromString("Approved");
+
+ /** Static value Rejected for ConnectionStatus. */
+ public static final ConnectionStatus REJECTED = fromString("Rejected");
+
+ /** Static value Disconnected for ConnectionStatus. */
+ public static final ConnectionStatus DISCONNECTED = fromString("Disconnected");
+
+ /**
+ * Creates or finds a ConnectionStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ConnectionStatus
+ */
+ @JsonCreator
+ public static ConnectionStatus fromString(String name) {
+ return fromString(name, ConnectionStatus.class);
+ }
+
+ /**
+ * @return known ConnectionStatus values
+ */
+ public static Collection values() {
+ return values(ConnectionStatus.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerService.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerService.java
new file mode 100644
index 0000000000000..1c70d7a3101a0
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01.implementation.ContainerServiceManager;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceAgentPoolProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceAgentPoolProfile.java
new file mode 100644
index 0000000000000..121e1c0948cce
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceCustomProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceCustomProfile.java
new file mode 100644
index 0000000000000..cd12686beeb22
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceDiagnosticsProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceDiagnosticsProfile.java
new file mode 100644
index 0000000000000..471c70f00ff14
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceLinuxProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceLinuxProfile.java
new file mode 100644
index 0000000000000..faf3039745021
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceMasterProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceMasterProfile.java
new file mode 100644
index 0000000000000..abdd358d9b924
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceNetworkProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceNetworkProfile.java
new file mode 100644
index 0000000000000..a85b91d32b3df
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceOrchestratorProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceOrchestratorProfile.java
new file mode 100644
index 0000000000000..36003b2455c84
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceOrchestratorTypes.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceOrchestratorTypes.java
new file mode 100644
index 0000000000000..9b365197cc525
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceServicePrincipalProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceServicePrincipalProfile.java
new file mode 100644
index 0000000000000..a2fea4971b1d8
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceSshConfiguration.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceSshConfiguration.java
new file mode 100644
index 0000000000000..326cb960c31d6
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceSshPublicKey.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceSshPublicKey.java
new file mode 100644
index 0000000000000..a76f9e543daeb
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceStorageProfileTypes.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceStorageProfileTypes.java
new file mode 100644
index 0000000000000..112cf1256fe6a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceVMDiagnostics.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceVMDiagnostics.java
new file mode 100644
index 0000000000000..c849030c858e8
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceVMSizeTypes.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceVMSizeTypes.java
new file mode 100644
index 0000000000000..26ffc971fcb32
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceWindowsProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServiceWindowsProfile.java
new file mode 100644
index 0000000000000..644f3c32f3304
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServices.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ContainerServices.java
new file mode 100644
index 0000000000000..93c5caad0ecfc
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/CredentialResult.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/CredentialResult.java
new file mode 100644
index 0000000000000..7ff8539407e25
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/CredentialResults.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/CredentialResults.java
new file mode 100644
index 0000000000000..eaad06d21213f
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/KeyVaultSecretRef.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/KeyVaultSecretRef.java
new file mode 100644
index 0000000000000..4299616b6a1d3
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/LoadBalancerSku.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/LoadBalancerSku.java
new file mode 100644
index 0000000000000..b8f16827ce543
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedCluster.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedCluster.java
new file mode 100644
index 0000000000000..43e6678cbf980
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01.implementation.ContainerServiceManager;
+import java.util.List;
+import java.util.Map;
+import com.microsoft.azure.management.containerservice.v2020_06_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 (PREVIEW) Whether to enable Kubernetes Pod security policy
+ * @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 (PREVIEW) Whether to enable Kubernetes Pod security policy
+ * @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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAADProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAADProfile.java
new file mode 100644
index 0000000000000..09932fd4db074
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAADProfile.java
@@ -0,0 +1,201 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT 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_06_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;
+
+ /**
+ * Whether to enable Azure RBAC for Kubernetes authorization.
+ */
+ @JsonProperty(value = "enableAzureRBAC")
+ private Boolean enableAzureRBAC;
+
+ /**
+ * 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 whether to enable Azure RBAC for Kubernetes authorization.
+ *
+ * @return the enableAzureRBAC value
+ */
+ public Boolean enableAzureRBAC() {
+ return this.enableAzureRBAC;
+ }
+
+ /**
+ * Set whether to enable Azure RBAC for Kubernetes authorization.
+ *
+ * @param enableAzureRBAC the enableAzureRBAC value to set
+ * @return the ManagedClusterAADProfile object itself.
+ */
+ public ManagedClusterAADProfile withEnableAzureRBAC(Boolean enableAzureRBAC) {
+ this.enableAzureRBAC = enableAzureRBAC;
+ 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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAPIServerAccessProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAPIServerAccessProfile.java
new file mode 100644
index 0000000000000..469ffb1df74cd
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAccessProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAccessProfile.java
new file mode 100644
index 0000000000000..99d25a21beb21
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAddonProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAddonProfile.java
new file mode 100644
index 0000000000000..b82388294fbed
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAddonProfileIdentity.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAddonProfileIdentity.java
new file mode 100644
index 0000000000000..0b6b9fc5f7dee
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+
+/**
+ * Information of user assigned identity used by this add-on.
+ */
+public class ManagedClusterAddonProfileIdentity extends UserAssignedIdentity {
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAgentPoolProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAgentPoolProfile.java
new file mode 100644
index 0000000000000..6f72db96c3199
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAgentPoolProfileProperties.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAgentPoolProfileProperties.java
new file mode 100644
index 0000000000000..5da9ffbfcb195
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterAgentPoolProfileProperties.java
@@ -0,0 +1,700 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT 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_06_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;
+
+ /**
+ * The ID for Proximity Placement Group.
+ */
+ @JsonProperty(value = "proximityPlacementGroupID")
+ private String proximityPlacementGroupID;
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get the ID for Proximity Placement Group.
+ *
+ * @return the proximityPlacementGroupID value
+ */
+ public String proximityPlacementGroupID() {
+ return this.proximityPlacementGroupID;
+ }
+
+ /**
+ * Set the ID for Proximity Placement Group.
+ *
+ * @param proximityPlacementGroupID the proximityPlacementGroupID value to set
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withProximityPlacementGroupID(String proximityPlacementGroupID) {
+ this.proximityPlacementGroupID = proximityPlacementGroupID;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterIdentity.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterIdentity.java
new file mode 100644
index 0000000000000..770274c12684a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterIdentity.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_06_01;
+
+import java.util.Map;
+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', 'UserAssigned', 'None'.
+ */
+ @JsonProperty(value = "type")
+ private ResourceIdentityType type;
+
+ /**
+ * The user identity associated with the managed cluster. This identity
+ * will be used in control plane and only one user assigned identity is
+ * allowed. The user identity dictionary key references will be ARM
+ * resource ids in the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ */
+ @JsonProperty(value = "userAssignedIdentities")
+ private Map userAssignedIdentities;
+
+ /**
+ * Get the principal id of the 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', 'UserAssigned', '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', 'UserAssigned', 'None'.
+ *
+ * @param type the type value to set
+ * @return the ManagedClusterIdentity object itself.
+ */
+ public ManagedClusterIdentity withType(ResourceIdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the user identity associated with the managed cluster. This identity will be used in control plane and only one user assigned identity is allowed. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @return the userAssignedIdentities value
+ */
+ public Map userAssignedIdentities() {
+ return this.userAssignedIdentities;
+ }
+
+ /**
+ * Set the user identity associated with the managed cluster. This identity will be used in control plane and only one user assigned identity is allowed. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @param userAssignedIdentities the userAssignedIdentities value to set
+ * @return the ManagedClusterIdentity object itself.
+ */
+ public ManagedClusterIdentity withUserAssignedIdentities(Map userAssignedIdentities) {
+ this.userAssignedIdentities = userAssignedIdentities;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterIdentityUserAssignedIdentitiesValue.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterIdentityUserAssignedIdentitiesValue.java
new file mode 100644
index 0000000000000..0252891b5c4b6
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterIdentityUserAssignedIdentitiesValue.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_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ManagedClusterIdentityUserAssignedIdentitiesValue model.
+ */
+public class ManagedClusterIdentityUserAssignedIdentitiesValue {
+ /**
+ * The principal id of user assigned identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The client id of user assigned identity.
+ */
+ @JsonProperty(value = "clientId", access = JsonProperty.Access.WRITE_ONLY)
+ private String clientId;
+
+ /**
+ * Get the principal id of user assigned identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the client id of user assigned identity.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterLoadBalancerProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterLoadBalancerProfile.java
new file mode 100644
index 0000000000000..e2a802c72f9d4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterLoadBalancerProfileManagedOutboundIPs.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterLoadBalancerProfileManagedOutboundIPs.java
new file mode 100644
index 0000000000000..d7daccfe6f5d5
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterLoadBalancerProfileOutboundIPPrefixes.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterLoadBalancerProfileOutboundIPPrefixes.java
new file mode 100644
index 0000000000000..e5fd601f08cd2
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterLoadBalancerProfileOutboundIPs.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterLoadBalancerProfileOutboundIPs.java
new file mode 100644
index 0000000000000..71309400f0a43
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterPoolUpgradeProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterPoolUpgradeProfile.java
new file mode 100644
index 0000000000000..7993609779fc5
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterPoolUpgradeProfileUpgradesItem.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterPoolUpgradeProfileUpgradesItem.java
new file mode 100644
index 0000000000000..d94038b7c44c4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterPropertiesAutoScalerProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterPropertiesAutoScalerProfile.java
new file mode 100644
index 0000000000000..30be19db0b99b
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterPropertiesIdentityProfileValue.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterPropertiesIdentityProfileValue.java
new file mode 100644
index 0000000000000..65b9c1b22f74b
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+
+/**
+ * The ManagedClusterPropertiesIdentityProfileValue model.
+ */
+public class ManagedClusterPropertiesIdentityProfileValue extends UserAssignedIdentity {
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterSKU.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterSKU.java
new file mode 100644
index 0000000000000..50e8c69c80ec8
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterSKUName.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterSKUName.java
new file mode 100644
index 0000000000000..254a6a54067ec
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterSKUTier.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterSKUTier.java
new file mode 100644
index 0000000000000..4b65e5cb1de68
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterServicePrincipalProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterServicePrincipalProfile.java
new file mode 100644
index 0000000000000..69ec4c7e8b9a8
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterUpgradeProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterUpgradeProfile.java
new file mode 100644
index 0000000000000..cbe9ed2cd1f02
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterWindowsProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterWindowsProfile.java
new file mode 100644
index 0000000000000..e96f9bc505925
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusterWindowsProfile.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_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for Windows VMs in the container service cluster.
+ */
+public class ManagedClusterWindowsProfile {
+ /**
+ * 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")
+ 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 ManagedClusterWindowsProfile object itself.
+ */
+ public ManagedClusterWindowsProfile 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 ManagedClusterWindowsProfile object itself.
+ */
+ public ManagedClusterWindowsProfile withAdminPassword(String adminPassword) {
+ this.adminPassword = adminPassword;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusters.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ManagedClusters.java
new file mode 100644
index 0000000000000..fa359946f7af9
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/NetworkMode.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/NetworkMode.java
new file mode 100644
index 0000000000000..159beab3e9ba4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/NetworkPlugin.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/NetworkPlugin.java
new file mode 100644
index 0000000000000..d06be7d6cca42
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/NetworkPolicy.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/NetworkPolicy.java
new file mode 100644
index 0000000000000..d5e60a8be9e40
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/NetworkProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/NetworkProfile.java
new file mode 100644
index 0000000000000..c87a2c6e7cea9
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OSType.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OSType.java
new file mode 100644
index 0000000000000..fe7d18b4b2f10
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftAgentPoolProfileRole.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftAgentPoolProfileRole.java
new file mode 100644
index 0000000000000..0d3705acec6f4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftContainerServiceVMSize.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftContainerServiceVMSize.java
new file mode 100644
index 0000000000000..fdee6ddc1c464
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedCluster.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedCluster.java
new file mode 100644
index 0000000000000..4fa9c738cdc64
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01.implementation.ContainerServiceManager;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterAADIdentityProvider.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterAADIdentityProvider.java
new file mode 100644
index 0000000000000..cc50d8261f380
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterAgentPoolProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterAgentPoolProfile.java
new file mode 100644
index 0000000000000..eeefe794500a6
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterAuthProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterAuthProfile.java
new file mode 100644
index 0000000000000..652cf2d6e9747
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterBaseIdentityProvider.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterBaseIdentityProvider.java
new file mode 100644
index 0000000000000..4304fb5110324
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterIdentityProvider.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterIdentityProvider.java
new file mode 100644
index 0000000000000..628b7dd72958e
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterMasterPoolProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusterMasterPoolProfile.java
new file mode 100644
index 0000000000000..ce4bce73d5022
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusters.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftManagedClusters.java
new file mode 100644
index 0000000000000..155d19d5faeaa
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftRouterProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OpenShiftRouterProfile.java
new file mode 100644
index 0000000000000..0a5746b380cdc
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OperationValue.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OperationValue.java
new file mode 100644
index 0000000000000..183327e0e4c37
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/Operations.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/Operations.java
new file mode 100644
index 0000000000000..7db253b03f5ae
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OrchestratorProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OrchestratorProfile.java
new file mode 100644
index 0000000000000..fd78143c69412
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OrchestratorVersionProfile.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OrchestratorVersionProfile.java
new file mode 100644
index 0000000000000..90f21b026ac50
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OrchestratorVersionProfileListResult.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OrchestratorVersionProfileListResult.java
new file mode 100644
index 0000000000000..50e3d19de8ced
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OutboundType.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/OutboundType.java
new file mode 100644
index 0000000000000..9be7475cb6bb5
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpoint.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpoint.java
new file mode 100644
index 0000000000000..071f3f39351b4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpoint.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_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Private endpoint which a connection belongs to.
+ */
+public class PrivateEndpoint {
+ /**
+ * The resource Id for private endpoint.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Get the resource Id for private endpoint.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the resource Id for private endpoint.
+ *
+ * @param id the id value to set
+ * @return the PrivateEndpoint object itself.
+ */
+ public PrivateEndpoint withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnection.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnection.java
new file mode 100644
index 0000000000000..5a9dd6dcda9da
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnection.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.PrivateEndpointConnectionInner;
+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.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+
+/**
+ * Type representing PrivateEndpointConnection.
+ */
+public interface PrivateEndpointConnection extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the privateEndpoint value.
+ */
+ PrivateEndpoint privateEndpoint();
+
+ /**
+ * @return the privateLinkServiceConnectionState value.
+ */
+ PrivateLinkServiceConnectionState privateLinkServiceConnectionState();
+
+ /**
+ * @return the provisioningState value.
+ */
+ PrivateEndpointConnectionProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The template for a PrivateEndpointConnection update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithPrivateEndpoint {
+ }
+
+ /**
+ * Grouping of PrivateEndpointConnection update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the privateendpointconnection update allowing to specify PrivateEndpoint.
+ */
+ interface WithPrivateEndpoint {
+ /**
+ * Specifies privateEndpoint.
+ * @param privateEndpoint The resource of private endpoint
+ * @return the next update stage
+ */
+ Update withPrivateEndpoint(PrivateEndpoint privateEndpoint);
+ }
+
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnectionListResult.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnectionListResult.java
new file mode 100644
index 0000000000000..346110e89a443
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnectionListResult.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_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.ContainerServiceManager;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.PrivateEndpointConnectionListResultInner;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.PrivateEndpointConnectionInner;
+import java.util.List;
+
+/**
+ * Type representing PrivateEndpointConnectionListResult.
+ */
+public interface PrivateEndpointConnectionListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnectionProvisioningState.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnectionProvisioningState.java
new file mode 100644
index 0000000000000..662c1f7525cd1
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnectionProvisioningState.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_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PrivateEndpointConnectionProvisioningState.
+ */
+public final class PrivateEndpointConnectionProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for PrivateEndpointConnectionProvisioningState. */
+ public static final PrivateEndpointConnectionProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Creating for PrivateEndpointConnectionProvisioningState. */
+ public static final PrivateEndpointConnectionProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Deleting for PrivateEndpointConnectionProvisioningState. */
+ public static final PrivateEndpointConnectionProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Failed for PrivateEndpointConnectionProvisioningState. */
+ public static final PrivateEndpointConnectionProvisioningState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a PrivateEndpointConnectionProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PrivateEndpointConnectionProvisioningState
+ */
+ @JsonCreator
+ public static PrivateEndpointConnectionProvisioningState fromString(String name) {
+ return fromString(name, PrivateEndpointConnectionProvisioningState.class);
+ }
+
+ /**
+ * @return known PrivateEndpointConnectionProvisioningState values
+ */
+ public static Collection values() {
+ return values(PrivateEndpointConnectionProvisioningState.class);
+ }
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnections.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnections.java
new file mode 100644
index 0000000000000..73d3d1655db3a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateEndpointConnections.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerservice.v2020_06_01;
+
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.containerservice.v2020_06_01.implementation.PrivateEndpointConnectionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PrivateEndpointConnections.
+ */
+public interface PrivateEndpointConnections extends HasInner {
+ /**
+ * Gets a list of private endpoint connections in the specified managed cluster.
+ * Gets a list of private endpoint connections in the specified managed cluster. The operation returns properties of each private endpoint connection.
+ *
+ * @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(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets the private endpoint connection.
+ * Gets the details of the private endpoint connection by managed cluster and resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String resourceName, String privateEndpointConnectionName);
+
+ /**
+ * Deletes a private endpoint connection.
+ * Deletes the private endpoint connection in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String resourceName, String privateEndpointConnectionName);
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateLinkServiceConnectionState.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateLinkServiceConnectionState.java
new file mode 100644
index 0000000000000..5a1a5d5d6220a
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PrivateLinkServiceConnectionState.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_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The state of a private link service connection.
+ */
+public class PrivateLinkServiceConnectionState {
+ /**
+ * The private link service connection status. Possible values include:
+ * 'Pending', 'Approved', 'Rejected', 'Disconnected'.
+ */
+ @JsonProperty(value = "status")
+ private ConnectionStatus status;
+
+ /**
+ * The private link service connection description.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get the private link service connection status. Possible values include: 'Pending', 'Approved', 'Rejected', 'Disconnected'.
+ *
+ * @return the status value
+ */
+ public ConnectionStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the private link service connection status. Possible values include: 'Pending', 'Approved', 'Rejected', 'Disconnected'.
+ *
+ * @param status the status value to set
+ * @return the PrivateLinkServiceConnectionState object itself.
+ */
+ public PrivateLinkServiceConnectionState withStatus(ConnectionStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the private link service connection description.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the private link service connection description.
+ *
+ * @param description the description value to set
+ * @return the PrivateLinkServiceConnectionState object itself.
+ */
+ public PrivateLinkServiceConnectionState withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PurchasePlan.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/PurchasePlan.java
new file mode 100644
index 0000000000000..1f1253d27d334
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ResourceIdentityType.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ResourceIdentityType.java
new file mode 100644
index 0000000000000..768c7dfb216df
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ResourceIdentityType.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_06_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ResourceIdentityType.
+ */
+public enum ResourceIdentityType {
+ /** Enum value SystemAssigned. */
+ SYSTEM_ASSIGNED("SystemAssigned"),
+
+ /** Enum value UserAssigned. */
+ USER_ASSIGNED("UserAssigned"),
+
+ /** Enum value 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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ResourceReference.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ResourceReference.java
new file mode 100644
index 0000000000000..c1278e7d22ae0
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ScaleSetEvictionPolicy.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ScaleSetEvictionPolicy.java
new file mode 100644
index 0000000000000..31731dc5974ea
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ScaleSetPriority.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/ScaleSetPriority.java
new file mode 100644
index 0000000000000..bd525d1f4d80c
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/TagsObject.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/TagsObject.java
new file mode 100644
index 0000000000000..a23d9496c1387
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/UserAssignedIdentity.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/UserAssignedIdentity.java
new file mode 100644
index 0000000000000..db79b52026c2e
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolAvailableVersionsImpl.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolAvailableVersionsImpl.java
new file mode 100644
index 0000000000000..c497c47897de4
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolAvailableVersions;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolAvailableVersionsInner.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolAvailableVersionsInner.java
new file mode 100644
index 0000000000000..a0d0f052df943
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01.implementation;
+
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolImpl.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolImpl.java
new file mode 100644
index 0000000000000..cea7ce54a8098
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolImpl.java
@@ -0,0 +1,361 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT 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_06_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPool;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.containerservice.v2020_06_01.ContainerServiceVMSizeTypes;
+import com.microsoft.azure.management.containerservice.v2020_06_01.OSType;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolType;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolMode;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolUpgradeSettings;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_06_01.ScaleSetPriority;
+import com.microsoft.azure.management.containerservice.v2020_06_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 String proximityPlacementGroupID() {
+ return this.inner().proximityPlacementGroupID();
+ }
+
+ @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 withProximityPlacementGroupID(String proximityPlacementGroupID) {
+ this.inner().withProximityPlacementGroupID(proximityPlacementGroupID);
+ 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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolInner.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolInner.java
new file mode 100644
index 0000000000000..66ec68076dae3
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolInner.java
@@ -0,0 +1,741 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT 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_06_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_06_01.ContainerServiceVMSizeTypes;
+import com.microsoft.azure.management.containerservice.v2020_06_01.OSType;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolType;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolMode;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolUpgradeSettings;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_06_01.ScaleSetPriority;
+import com.microsoft.azure.management.containerservice.v2020_06_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 ID for Proximity Placement Group.
+ */
+ @JsonProperty(value = "properties.proximityPlacementGroupID")
+ private String proximityPlacementGroupID;
+
+ /**
+ * 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 ID for Proximity Placement Group.
+ *
+ * @return the proximityPlacementGroupID value
+ */
+ public String proximityPlacementGroupID() {
+ return this.proximityPlacementGroupID;
+ }
+
+ /**
+ * Set the ID for Proximity Placement Group.
+ *
+ * @param proximityPlacementGroupID the proximityPlacementGroupID value to set
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withProximityPlacementGroupID(String proximityPlacementGroupID) {
+ this.proximityPlacementGroupID = proximityPlacementGroupID;
+ 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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolUpgradeProfileImpl.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolUpgradeProfileImpl.java
new file mode 100644
index 0000000000000..d5a180d545adb
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolUpgradeProfile;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.containerservice.v2020_06_01.OSType;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolUpgradeProfileInner.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolUpgradeProfileInner.java
new file mode 100644
index 0000000000000..f405292677fbd
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01.implementation;
+
+import com.microsoft.azure.management.containerservice.v2020_06_01.OSType;
+import java.util.List;
+import com.microsoft.azure.management.containerservice.v2020_06_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_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolsImpl.java b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_01/implementation/AgentPoolsImpl.java
new file mode 100644
index 0000000000000..4fc1012887dbd
--- /dev/null
+++ b/sdk/containerservice/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/containerservice/v2020_06_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_06_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPools;
+import rx.Completable;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPool;
+import com.microsoft.azure.management.containerservice.v2020_06_01.AgentPoolUpgradeProfile;
+import com.microsoft.azure.management.containerservice.v2020_06_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