diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 28fd51760cde3..5017344097b2b 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -335,6 +335,7 @@ com.azure.resourcemanager:azure-resourcemanager-automanage;1.0.0-beta.1;1.0.0-be
com.azure.resourcemanager:azure-resourcemanager-edgeorder;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-securityinsights;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-oep;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-containerservice-generated;1.0.0-beta.1;1.0.0-beta.1
com.azure.tools:azure-sdk-archetype;1.0.0;1.0.0
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
diff --git a/pom.xml b/pom.xml
index b0c1dafb9f652..0a03ac65cf588 100644
--- a/pom.xml
+++ b/pom.xml
@@ -867,6 +867,7 @@
sdk/confluent
sdk/consumption
sdk/containerregistry
+ sdk/containerservice
sdk/core
sdk/cosmos
sdk/costmanagement
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/CHANGELOG.md b/sdk/containerservice/azure-resourcemanager-containerservice-generated/CHANGELOG.md
new file mode 100644
index 0000000000000..74e0570267e37
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2022-02-18)
+
+- Azure Resource Manager ContainerService client library for Java. This package contains Microsoft Azure SDK for ContainerService Management SDK. Container Service Client. Package tag package-preview-2022-01. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/README.md b/sdk/containerservice/azure-resourcemanager-containerservice-generated/README.md
new file mode 100644
index 0000000000000..c1104da6d50ac
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/README.md
@@ -0,0 +1,102 @@
+# Azure Resource Manager ContainerService client library for Java
+
+Azure Resource Manager ContainerService client library for Java.
+
+This package contains Microsoft Azure SDK for ContainerService Management SDK. Container Service Client. Package tag package-preview-2022-01. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
+
+## We'd love to hear your feedback
+
+We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.
+
+If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.
+
+Thank you in advance for your collaboration. We really appreciate your time!
+
+## Documentation
+
+Various documentation is available to help you get started
+
+- [API reference documentation][docs]
+
+## Getting started
+
+### Prerequisites
+
+- [Java Development Kit (JDK)][jdk] with version 8 or above
+- [Azure Subscription][azure_subscription]
+
+### Adding the package to your product
+
+[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-containerservice-generated;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-containerservice-generated
+ 1.0.0-beta.1
+
+```
+[//]: # ({x-version-update-end})
+
+### Include the recommended packages
+
+Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
+
+[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
+
+### Authentication
+
+By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
+
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
+
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, `azure` client can be authenticated by following code:
+
+```java
+AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
+TokenCredential credential = new DefaultAzureCredentialBuilder()
+ .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
+ .build();
+ContainerServiceManager manager = ContainerServiceManager
+ .authenticate(credential, profile);
+```
+
+The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
+
+See [Authentication][authenticate] for more options.
+
+## Key concepts
+
+See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
+
+## Examples
+
+[Code snippets and samples](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/containerservice/azure-resourcemanager-containerservice-generated/SAMPLE.md)
+
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/main/CONTRIBUTING.md).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
+[docs]: https://azure.github.io/azure-sdk-for-java/
+[jdk]: https://docs.microsoft.com/java/azure/jdk/
+[azure_subscription]: https://azure.microsoft.com/free/
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/SAMPLE.md b/sdk/containerservice/azure-resourcemanager-containerservice-generated/SAMPLE.md
new file mode 100644
index 0000000000000..69e48d5fa7df7
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/SAMPLE.md
@@ -0,0 +1,3526 @@
+# Code snippets and samples
+
+
+## AgentPools
+
+- [CreateOrUpdate](#agentpools_createorupdate)
+- [Delete](#agentpools_delete)
+- [Get](#agentpools_get)
+- [GetAvailableAgentPoolVersions](#agentpools_getavailableagentpoolversions)
+- [GetUpgradeProfile](#agentpools_getupgradeprofile)
+- [List](#agentpools_list)
+- [UpgradeNodeImageVersion](#agentpools_upgradenodeimageversion)
+
+## ContainerServices
+
+- [ListOrchestrators](#containerservices_listorchestrators)
+
+## MaintenanceConfigurations
+
+- [CreateOrUpdate](#maintenanceconfigurations_createorupdate)
+- [Delete](#maintenanceconfigurations_delete)
+- [Get](#maintenanceconfigurations_get)
+- [ListByManagedCluster](#maintenanceconfigurations_listbymanagedcluster)
+
+## ManagedClusters
+
+- [CreateOrUpdate](#managedclusters_createorupdate)
+- [Delete](#managedclusters_delete)
+- [GetAccessProfile](#managedclusters_getaccessprofile)
+- [GetByResourceGroup](#managedclusters_getbyresourcegroup)
+- [GetCommandResult](#managedclusters_getcommandresult)
+- [GetOSOptions](#managedclusters_getosoptions)
+- [GetUpgradeProfile](#managedclusters_getupgradeprofile)
+- [List](#managedclusters_list)
+- [ListByResourceGroup](#managedclusters_listbyresourcegroup)
+- [ListClusterAdminCredentials](#managedclusters_listclusteradmincredentials)
+- [ListClusterMonitoringUserCredentials](#managedclusters_listclustermonitoringusercredentials)
+- [ListClusterUserCredentials](#managedclusters_listclusterusercredentials)
+- [ListOutboundNetworkDependenciesEndpoints](#managedclusters_listoutboundnetworkdependenciesendpoints)
+- [ResetAadProfile](#managedclusters_resetaadprofile)
+- [ResetServicePrincipalProfile](#managedclusters_resetserviceprincipalprofile)
+- [RotateClusterCertificates](#managedclusters_rotateclustercertificates)
+- [RunCommand](#managedclusters_runcommand)
+- [Start](#managedclusters_start)
+- [Stop](#managedclusters_stop)
+- [UpdateTags](#managedclusters_updatetags)
+
+## OpenShiftManagedClusters
+
+- [CreateOrUpdate](#openshiftmanagedclusters_createorupdate)
+- [Delete](#openshiftmanagedclusters_delete)
+- [GetByResourceGroup](#openshiftmanagedclusters_getbyresourcegroup)
+- [List](#openshiftmanagedclusters_list)
+- [ListByResourceGroup](#openshiftmanagedclusters_listbyresourcegroup)
+- [UpdateTags](#openshiftmanagedclusters_updatetags)
+
+## Operations
+
+- [List](#operations_list)
+
+## PrivateEndpointConnections
+
+- [Delete](#privateendpointconnections_delete)
+- [Get](#privateendpointconnections_get)
+- [List](#privateendpointconnections_list)
+- [Update](#privateendpointconnections_update)
+
+## PrivateLinkResources
+
+- [List](#privatelinkresources_list)
+
+## ResolvePrivateLinkServiceId
+
+- [Post](#resolveprivatelinkserviceid_post)
+
+## Snapshots
+
+- [CreateOrUpdate](#snapshots_createorupdate)
+- [Delete](#snapshots_delete)
+- [GetByResourceGroup](#snapshots_getbyresourcegroup)
+- [List](#snapshots_list)
+- [ListByResourceGroup](#snapshots_listbyresourcegroup)
+- [UpdateTags](#snapshots_updatetags)
+### AgentPools_CreateOrUpdate
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPool;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservice.generated.models.Code;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.GpuInstanceProfile;
+import com.azure.resourcemanager.containerservice.generated.models.KubeletConfig;
+import com.azure.resourcemanager.containerservice.generated.models.LinuxOSConfig;
+import com.azure.resourcemanager.containerservice.generated.models.OSDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.Ossku;
+import com.azure.resourcemanager.containerservice.generated.models.PowerState;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleSetEvictionPolicy;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleSetPriority;
+import com.azure.resourcemanager.containerservice.generated.models.SysctlConfig;
+import com.azure.resourcemanager.containerservice.generated.models.WorkloadRuntime;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for AgentPools CreateOrUpdate. */
+public final class AgentPoolsCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_EnableFIPS.json
+ */
+ /**
+ * Sample code: Create Agent Pool with FIPS enabled OS.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithFIPSEnabledOS(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withEnableFips(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_GPUMIG.json
+ */
+ /**
+ * Sample code: Create Agent Pool with GPUMIG.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithGPUMIG(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_ND96asr_v4")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withKubeletConfig(
+ new KubeletConfig()
+ .withCpuManagerPolicy("static")
+ .withCpuCfsQuota(true)
+ .withCpuCfsQuotaPeriod("200ms")
+ .withImageGcHighThreshold(90)
+ .withImageGcLowThreshold(70)
+ .withTopologyManagerPolicy("best-effort")
+ .withAllowedUnsafeSysctls(Arrays.asList("kernel.msg*", "net.core.somaxconn"))
+ .withFailSwapOn(false))
+ .withLinuxOSConfig(
+ new LinuxOSConfig()
+ .withSysctls(
+ new SysctlConfig()
+ .withNetCoreWmemDefault(12345)
+ .withNetIpv4TcpTwReuse(true)
+ .withNetIpv4IpLocalPortRange("20000 60000")
+ .withKernelThreadsMax(99999))
+ .withTransparentHugePageEnabled("always")
+ .withTransparentHugePageDefrag("madvise")
+ .withSwapFileSizeMB(1500))
+ .withGpuInstanceProfile(GpuInstanceProfile.MIG2G)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_DedicatedHostGroup.json
+ */
+ /**
+ * Sample code: Create Agent Pool with Dedicated Host Group.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithDedicatedHostGroup(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withHostGroupId(
+ "/subscriptions/subid1/resourcegroups/rg/providers/Microsoft.Compute/hostGroups/hostgroup1")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_Update.json
+ */
+ /**
+ * Sample code: Create/Update Agent Pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withTags(mapOf("name1", "val1"))
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withMode(AgentPoolMode.USER)
+ .withOrchestratorVersion("")
+ .withScaleSetPriority(ScaleSetPriority.SPOT)
+ .withScaleSetEvictionPolicy(ScaleSetEvictionPolicy.DELETE)
+ .withNodeLabels(mapOf("key1", "val1"))
+ .withNodeTaints(Arrays.asList("Key1=Value1:NoSchedule"))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPools_Start.json
+ */
+ /**
+ * Sample code: Start Agent Pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void startAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withPowerState(new PowerState().withCode(Code.RUNNING))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_Spot.json
+ */
+ /**
+ * Sample code: Create Spot Agent Pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createSpotAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withTags(mapOf("name1", "val1"))
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withScaleSetPriority(ScaleSetPriority.SPOT)
+ .withScaleSetEvictionPolicy(ScaleSetEvictionPolicy.DELETE)
+ .withNodeLabels(mapOf("key1", "val1"))
+ .withNodeTaints(Arrays.asList("Key1=Value1:NoSchedule"))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_Ephemeral.json
+ */
+ /**
+ * Sample code: Create Agent Pool with Ephemeral OS Disk.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithEphemeralOSDisk(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsDiskSizeGB(64)
+ .withOsDiskType(OSDiskType.EPHEMERAL)
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsAssociate_CRG.json
+ */
+ /**
+ * Sample code: Associate Agent Pool with Capacity Reservation Group.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void associateAgentPoolWithCapacityReservationGroup(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withCapacityReservationGroupId(
+ "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/CapacityReservationGroups/crg1")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_EnableEncryptionAtHost.json
+ */
+ /**
+ * Sample code: Create Agent Pool with EncryptionAtHost enabled.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithEncryptionAtHostEnabled(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withEnableEncryptionAtHost(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_EnableUltraSSD.json
+ */
+ /**
+ * Sample code: Create Agent Pool with UltraSSD enabled.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithUltraSSDEnabled(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withEnableUltraSsd(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_WasmWasi.json
+ */
+ /**
+ * Sample code: Create Agent Pool with Krustlet and the WASI runtime.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithKrustletAndTheWASIRuntime(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsDiskSizeGB(64)
+ .withWorkloadRuntime(WorkloadRuntime.WASM_WASI)
+ .withOsType(OSType.LINUX)
+ .withMode(AgentPoolMode.USER)
+ .withOrchestratorVersion("")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_Snapshot.json
+ */
+ /**
+ * Sample code: Create Agent Pool using an agent pool snapshot.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolUsingAnAgentPoolSnapshot(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withEnableFips(true)
+ .withCreationData(
+ new CreationData()
+ .withSourceResourceId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.ContainerService/snapshots/snapshot1"))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_PPG.json
+ */
+ /**
+ * Sample code: Create Agent Pool with PPG.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithPPG(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withProximityPlacementGroupId(
+ "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_CustomNodeConfig.json
+ */
+ /**
+ * Sample code: Create Agent Pool with KubeletConfig and LinuxOSConfig.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithKubeletConfigAndLinuxOSConfig(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOrchestratorVersion("")
+ .withKubeletConfig(
+ new KubeletConfig()
+ .withCpuManagerPolicy("static")
+ .withCpuCfsQuota(true)
+ .withCpuCfsQuotaPeriod("200ms")
+ .withImageGcHighThreshold(90)
+ .withImageGcLowThreshold(70)
+ .withTopologyManagerPolicy("best-effort")
+ .withAllowedUnsafeSysctls(Arrays.asList("kernel.msg*", "net.core.somaxconn"))
+ .withFailSwapOn(false))
+ .withLinuxOSConfig(
+ new LinuxOSConfig()
+ .withSysctls(
+ new SysctlConfig()
+ .withNetCoreWmemDefault(12345)
+ .withNetIpv4TcpTwReuse(true)
+ .withNetIpv4IpLocalPortRange("20000 60000")
+ .withKernelThreadsMax(99999))
+ .withTransparentHugePageEnabled("always")
+ .withTransparentHugePageDefrag("madvise")
+ .withSwapFileSizeMB(1500))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPools_Stop.json
+ */
+ /**
+ * Sample code: Stop Agent Pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void stopAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withPowerState(new PowerState().withCode(Code.STOPPED))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_MessageOfTheDay.json
+ */
+ /**
+ * Sample code: Create Agent Pool with Message of the Day.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithMessageOfTheDay(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsDiskSizeGB(64)
+ .withMessageOfTheDay("Zm9vCg==")
+ .withOsType(OSType.LINUX)
+ .withMode(AgentPoolMode.USER)
+ .withOrchestratorVersion("")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsCreate_OSSKU.json
+ */
+ /**
+ * Sample code: Create Agent Pool with OSSKU.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createAgentPoolWithOSSKU(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .agentPools()
+ .define("agentpool1")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOsSku(Ossku.CBLMARINER)
+ .withOrchestratorVersion("")
+ .withKubeletConfig(
+ new KubeletConfig()
+ .withCpuManagerPolicy("static")
+ .withCpuCfsQuota(true)
+ .withCpuCfsQuotaPeriod("200ms")
+ .withImageGcHighThreshold(90)
+ .withImageGcLowThreshold(70)
+ .withTopologyManagerPolicy("best-effort")
+ .withAllowedUnsafeSysctls(Arrays.asList("kernel.msg*", "net.core.somaxconn"))
+ .withFailSwapOn(false))
+ .withLinuxOSConfig(
+ new LinuxOSConfig()
+ .withSysctls(
+ new SysctlConfig()
+ .withNetCoreWmemDefault(12345)
+ .withNetIpv4TcpTwReuse(true)
+ .withNetIpv4IpLocalPortRange("20000 60000")
+ .withKernelThreadsMax(99999))
+ .withTransparentHugePageEnabled("always")
+ .withTransparentHugePageDefrag("madvise")
+ .withSwapFileSizeMB(1500))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPools_Update.json
+ */
+ /**
+ * Sample code: Update Agent Pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void updateAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ AgentPool resource =
+ manager.agentPools().getWithResponse("rg1", "clustername1", "agentpool1", Context.NONE).getValue();
+ resource
+ .update()
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withMaxCount(2)
+ .withMinCount(2)
+ .withEnableAutoScaling(true)
+ .withOrchestratorVersion("")
+ .withScaleSetPriority(ScaleSetPriority.SPOT)
+ .withScaleSetEvictionPolicy(ScaleSetEvictionPolicy.DELETE)
+ .withNodeTaints(Arrays.asList("Key1=Value1:NoSchedule"))
+ .apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### AgentPools_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for AgentPools Delete. */
+public final class AgentPoolsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsDelete.json
+ */
+ /**
+ * Sample code: Delete Agent Pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void deleteAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.agentPools().delete("rg1", "clustername1", "agentpool1", Context.NONE);
+ }
+}
+```
+
+### AgentPools_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for AgentPools Get. */
+public final class AgentPoolsGetSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsGet.json
+ */
+ /**
+ * Sample code: Get Agent Pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.agentPools().getWithResponse("rg1", "clustername1", "agentpool1", Context.NONE);
+ }
+}
+```
+
+### AgentPools_GetAvailableAgentPoolVersions
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for AgentPools GetAvailableAgentPoolVersions. */
+public final class AgentPoolsGetAvailableAgentPoolVersionsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsGetAgentPoolAvailableVersions.json
+ */
+ /**
+ * Sample code: Get available versions for agent pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getAvailableVersionsForAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.agentPools().getAvailableAgentPoolVersionsWithResponse("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### AgentPools_GetUpgradeProfile
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for AgentPools GetUpgradeProfile. */
+public final class AgentPoolsGetUpgradeProfileSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsGetUpgradeProfile.json
+ */
+ /**
+ * Sample code: Get Upgrade Profile for Agent Pool.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getUpgradeProfileForAgentPool(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.agentPools().getUpgradeProfileWithResponse("rg1", "clustername1", "agentpool1", Context.NONE);
+ }
+}
+```
+
+### AgentPools_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for AgentPools List. */
+public final class AgentPoolsListSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsList.json
+ */
+ /**
+ * Sample code: List Agent Pools by Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listAgentPoolsByManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.agentPools().list("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### AgentPools_UpgradeNodeImageVersion
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for AgentPools UpgradeNodeImageVersion. */
+public final class AgentPoolsUpgradeNodeImageVersionSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/AgentPoolsUpgradeNodeImageVersion.json
+ */
+ /**
+ * Sample code: Upgrade Agent Pool Node Image Version.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void upgradeAgentPoolNodeImageVersion(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.agentPools().upgradeNodeImageVersion("rg1", "clustername1", "agentpool1", Context.NONE);
+ }
+}
+```
+
+### ContainerServices_ListOrchestrators
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ContainerServices ListOrchestrators. */
+public final class ContainerServicesListOrchestratorsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/examples/ContainerServiceListOrchestrators.json
+ */
+ /**
+ * Sample code: List Container Service Orchestrators.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listContainerServiceOrchestrators(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.containerServices().listOrchestratorsWithResponse("location1", null, Context.NONE);
+ }
+}
+```
+
+### MaintenanceConfigurations_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.containerservice.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservice.generated.models.TimeSpan;
+import com.azure.resourcemanager.containerservice.generated.models.WeekDay;
+import java.time.OffsetDateTime;
+import java.util.Arrays;
+
+/** Samples for MaintenanceConfigurations CreateOrUpdate. */
+public final class MaintenanceConfigurationsCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/MaintenanceConfigurationsCreate_Update.json
+ */
+ /**
+ * Sample code: Create/Update Maintenance Configuration.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateMaintenanceConfiguration(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .maintenanceConfigurations()
+ .define("default")
+ .withExistingManagedCluster("rg1", "clustername1")
+ .withTimeInWeek(Arrays.asList(new TimeInWeek().withDay(WeekDay.MONDAY).withHourSlots(Arrays.asList(1, 2))))
+ .withNotAllowedTime(
+ Arrays
+ .asList(
+ new TimeSpan()
+ .withStart(OffsetDateTime.parse("2020-11-26T03:00:00Z"))
+ .withEnd(OffsetDateTime.parse("2020-11-30T12:00:00Z"))))
+ .create();
+ }
+}
+```
+
+### MaintenanceConfigurations_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for MaintenanceConfigurations Delete. */
+public final class MaintenanceConfigurationsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/MaintenanceConfigurationsDelete.json
+ */
+ /**
+ * Sample code: Delete Maintenance Configuration.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void deleteMaintenanceConfiguration(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.maintenanceConfigurations().deleteWithResponse("rg1", "clustername1", "default", Context.NONE);
+ }
+}
+```
+
+### MaintenanceConfigurations_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for MaintenanceConfigurations Get. */
+public final class MaintenanceConfigurationsGetSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/MaintenanceConfigurationsGet.json
+ */
+ /**
+ * Sample code: Get Maintenance Configuration.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getMaintenanceConfiguration(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.maintenanceConfigurations().getWithResponse("rg1", "clustername1", "default", Context.NONE);
+ }
+}
+```
+
+### MaintenanceConfigurations_ListByManagedCluster
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for MaintenanceConfigurations ListByManagedCluster. */
+public final class MaintenanceConfigurationsListByManagedClusterSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/MaintenanceConfigurationsList.json
+ */
+ /**
+ * Sample code: List maintenance configurations by Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listMaintenanceConfigurationsByManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.maintenanceConfigurations().listByManagedCluster("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolType;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceSshConfiguration;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceSshPublicKey;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.Expander;
+import com.azure.resourcemanager.containerservice.generated.models.GpuInstanceProfile;
+import com.azure.resourcemanager.containerservice.generated.models.IpFamily;
+import com.azure.resourcemanager.containerservice.generated.models.LicenseType;
+import com.azure.resourcemanager.containerservice.generated.models.LoadBalancerSku;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAadProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterApiServerAccessProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterHttpProxyConfig;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterIdentity;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterLoadBalancerProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterLoadBalancerProfileManagedOutboundIPs;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterManagedOutboundIpProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterNatGatewayProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPodIdentityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPropertiesAutoScalerProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSecurityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSecurityProfileAzureDefender;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterServicePrincipalProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSku;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSkuName;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSkuTier;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterWindowsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedServiceIdentityUserAssignedIdentitiesValue;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.Ossku;
+import com.azure.resourcemanager.containerservice.generated.models.OutboundType;
+import com.azure.resourcemanager.containerservice.generated.models.ResourceIdentityType;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleDownMode;
+import com.azure.resourcemanager.containerservice.generated.models.WindowsGmsaProfile;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for ManagedClusters CreateOrUpdate. */
+public final class ManagedClustersCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_HTTPProxy.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with HTTP proxy configured.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithHTTPProxyConfigured(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .withHttpProxyConfig(
+ new ManagedClusterHttpProxyConfig()
+ .withHttpProxy("http://myproxy.server.com:8080")
+ .withHttpsProxy("https://myproxy.server.com:8080")
+ .withNoProxy(Arrays.asList("localhost", "127.0.0.1"))
+ .withTrustedCa("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U="))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_UpdateWithEnableNamespaceResources.json
+ */
+ /**
+ * Sample code: Create/Update Managed Cluster with EnableNamespaceResources.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateManagedClusterWithEnableNamespaceResources(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withAvailabilityZones(Arrays.asList("1", "2", "3"))
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withEnableNamespaceResources(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_DedicatedHostGroup.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with Dedicated Host Group.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithDedicatedHostGroup(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withEnableNodePublicIp(true)
+ .withHostGroupId(
+ "/subscriptions/subid1/resourcegroups/rg/providers/Microsoft.Compute/hostGroups/hostgroup1")
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(false)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_EnabledFIPS.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with FIPS enabled OS.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithFIPSEnabledOS(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withEnableFips(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(false)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_SecurityProfile.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with Security Profile configured.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithSecurityProfileConfigured(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withSecurityProfile(
+ new ManagedClusterSecurityProfile()
+ .withAzureDefender(
+ new ManagedClusterSecurityProfileAzureDefender()
+ .withEnabled(true)
+ .withLogAnalyticsWorkspaceResourceId(
+ "/subscriptions/SUB_ID/resourcegroups/RG_NAME/providers/microsoft.operationalinsights/workspaces/WORKSPACE_NAME")))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_DualStackNetworking.json
+ */
+ /**
+ * Sample code: Create/Update Managed Cluster with dual-stack networking.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateManagedClusterWithDualStackNetworking(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withIdentity(
+ new ManagedClusterIdentity()
+ .withType(ResourceIdentityType.USER_ASSIGNED)
+ .withUserAssignedIdentities(
+ mapOf(
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
+ new ManagedServiceIdentityUserAssignedIdentitiesValue())))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withScaleDownMode(ScaleDownMode.DEALLOCATE)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withAvailabilityZones(Arrays.asList("1", "2", "3"))
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2)))
+ .withIpFamilies(Arrays.asList(IpFamily.IPV4, IpFamily.IPV6)))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withBalanceSimilarNodeGroups("true")
+ .withExpander(Expander.PRIORITY)
+ .withMaxNodeProvisionTime("15m")
+ .withNewPodScaleUpDelay("1m")
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m")
+ .withSkipNodesWithSystemPods("false"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_PPG.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with PPG.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithPPG(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withProximityPlacementGroupId(
+ "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1")
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_UpdateWithAHUB.json
+ */
+ /**
+ * Sample code: Create/Update Managed Cluster with EnableAHUB.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateManagedClusterWithEnableAHUB(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withIdentity(
+ new ManagedClusterIdentity()
+ .withType(ResourceIdentityType.USER_ASSIGNED)
+ .withUserAssignedIdentities(
+ mapOf(
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
+ new ManagedServiceIdentityUserAssignedIdentitiesValue())))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withAvailabilityZones(Arrays.asList("1", "2", "3"))
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$")
+ .withLicenseType(LicenseType.WINDOWS_SERVER))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_PodIdentity.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with PodIdentity enabled.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithPodIdentityEnabled(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withPodIdentityProfile(
+ new ManagedClusterPodIdentityProfile().withEnabled(true).withAllowNetworkPluginKubenet(true))
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_DisableRunCommand.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with RunCommand disabled.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithRunCommandDisabled(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withEnableEncryptionAtHost(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withApiServerAccessProfile(new ManagedClusterApiServerAccessProfile().withDisableRunCommand(true))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_UserAssignedNATGateway.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with user-assigned NAT gateway as outbound type.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithUserAssignedNATGatewayAsOutboundType(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(false)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.USER_ASSIGNED_NATGATEWAY)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_Snapshot.json
+ */
+ /**
+ * Sample code: Create Managed Cluster using an agent pool snapshot.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterUsingAnAgentPoolSnapshot(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withEnableFips(true)
+ .withCreationData(
+ new CreationData()
+ .withSourceResourceId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.ContainerService/snapshots/snapshot1"))
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(false)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_OSSKU.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with OSSKU.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithOSSKU(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withOsSku(Ossku.CBLMARINER)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .withHttpProxyConfig(
+ new ManagedClusterHttpProxyConfig()
+ .withHttpProxy("http://myproxy.server.com:8080")
+ .withHttpsProxy("https://myproxy.server.com:8080")
+ .withNoProxy(Arrays.asList("localhost", "127.0.0.1"))
+ .withTrustedCa("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U="))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_Update.json
+ */
+ /**
+ * Sample code: Create/Update Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withIdentity(
+ new ManagedClusterIdentity()
+ .withType(ResourceIdentityType.USER_ASSIGNED)
+ .withUserAssignedIdentities(
+ mapOf(
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
+ new ManagedServiceIdentityUserAssignedIdentitiesValue())))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withScaleDownMode(ScaleDownMode.DEALLOCATE)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withAvailabilityZones(Arrays.asList("1", "2", "3"))
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withBalanceSimilarNodeGroups("true")
+ .withExpander(Expander.PRIORITY)
+ .withMaxNodeProvisionTime("15m")
+ .withNewPodScaleUpDelay("1m")
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m")
+ .withSkipNodesWithSystemPods("false"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_PrivateClusterFQDNSubdomain.json
+ */
+ /**
+ * Sample code: Create Managed Private Cluster with fqdn subdomain specified.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedPrivateClusterWithFqdnSubdomainSpecified(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withFqdnSubdomain("domain1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withEnableEncryptionAtHost(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withApiServerAccessProfile(
+ new ManagedClusterApiServerAccessProfile()
+ .withEnablePrivateCluster(true)
+ .withPrivateDnsZone(
+ "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.Network/privateDnsZones/privatelink.location1.azmk8s.io"))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_ManagedNATGateway.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with AKS-managed NAT gateway as outbound type.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithAKSManagedNATGatewayAsOutboundType(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(false)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.MANAGED_NATGATEWAY)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withNatGatewayProfile(
+ new ManagedClusterNatGatewayProfile()
+ .withManagedOutboundIpProfile(new ManagedClusterManagedOutboundIpProfile().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json
+ */
+ /**
+ * Sample code: Create/Update AAD Managed Cluster with EnableAzureRBAC.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateAADManagedClusterWithEnableAzureRBAC(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withAvailabilityZones(Arrays.asList("1", "2", "3"))
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAadProfile(new ManagedClusterAadProfile().withManaged(true).withEnableAzureRbac(true))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_EnableUltraSSD.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with UltraSSD enabled.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithUltraSSDEnabled(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withEnableUltraSsd(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_UpdateWindowsGmsa.json
+ */
+ /**
+ * Sample code: Create/Update Managed Cluster with Windows gMSA enabled.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateManagedClusterWithWindowsGMSAEnabled(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withIdentity(
+ new ManagedClusterIdentity()
+ .withType(ResourceIdentityType.USER_ASSIGNED)
+ .withUserAssignedIdentities(
+ mapOf(
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
+ new ManagedServiceIdentityUserAssignedIdentitiesValue())))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS1_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withAvailabilityZones(Arrays.asList("1", "2", "3"))
+ .withEnableNodePublicIp(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$")
+ .withGmsaProfile(new WindowsGmsaProfile().withEnabled(true)))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersAssociate_CRG.json
+ */
+ /**
+ * Sample code: Associate Managed Cluster with Capacity Reservation Group.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void associateManagedClusterWithCapacityReservationGroup(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withCapacityReservationGroupId(
+ "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/capacityReservationGroups/crg1")
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_GPUMIG.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with GPUMIG.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithGPUMIG(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_ND96asr_v4")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withGpuInstanceProfile(GpuInstanceProfile.MIG3G)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .withHttpProxyConfig(
+ new ManagedClusterHttpProxyConfig()
+ .withHttpProxy("http://myproxy.server.com:8080")
+ .withHttpsProxy("https://myproxy.server.com:8080")
+ .withNoProxy(Arrays.asList("localhost", "127.0.0.1"))
+ .withTrustedCa("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U="))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_NodePublicIPPrefix.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with Node Public IP Prefix.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithNodePublicIPPrefix(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withNodePublicIpPrefixId(
+ "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.Network/publicIPPrefixes/public-ip-prefix")
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_EnableEncryptionAtHost.json
+ */
+ /**
+ * Sample code: Create Managed Cluster with EncryptionAtHost enabled.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedClusterWithEncryptionAtHostEnabled(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withEnableEncryptionAtHost(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withDiskEncryptionSetId(
+ "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersCreate_PrivateClusterPublicFQDN.json
+ */
+ /**
+ * Sample code: Create Managed Private Cluster with Public FQDN specified.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createManagedPrivateClusterWithPublicFQDNSpecified(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withSku(new ManagedClusterSku().withName(ManagedClusterSkuName.BASIC).withTier(ManagedClusterSkuTier.FREE))
+ .withKubernetesVersion("")
+ .withDnsPrefix("dnsprefix1")
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new ManagedClusterAgentPoolProfile()
+ .withCount(3)
+ .withVmSize("Standard_DS2_v2")
+ .withOsType(OSType.LINUX)
+ .withType(AgentPoolType.VIRTUAL_MACHINE_SCALE_SETS)
+ .withMode(AgentPoolMode.SYSTEM)
+ .withEnableNodePublicIp(true)
+ .withEnableEncryptionAtHost(true)
+ .withName("nodepool1")))
+ .withLinuxProfile(
+ new ContainerServiceLinuxProfile()
+ .withAdminUsername("azureuser")
+ .withSsh(
+ new ContainerServiceSshConfiguration()
+ .withPublicKeys(Arrays.asList(new ContainerServiceSshPublicKey().withKeyData("keydata")))))
+ .withWindowsProfile(
+ new ManagedClusterWindowsProfile()
+ .withAdminUsername("azureuser")
+ .withAdminPassword("replacePassword1234$"))
+ .withServicePrincipalProfile(
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"))
+ .withAddonProfiles(mapOf())
+ .withEnableRbac(true)
+ .withEnablePodSecurityPolicy(true)
+ .withNetworkProfile(
+ new ContainerServiceNetworkProfile()
+ .withOutboundType(OutboundType.LOAD_BALANCER)
+ .withLoadBalancerSku(LoadBalancerSku.STANDARD)
+ .withLoadBalancerProfile(
+ new ManagedClusterLoadBalancerProfile()
+ .withManagedOutboundIPs(
+ new ManagedClusterLoadBalancerProfileManagedOutboundIPs().withCount(2))))
+ .withAutoScalerProfile(
+ new ManagedClusterPropertiesAutoScalerProfile()
+ .withScanInterval("20s")
+ .withScaleDownDelayAfterAdd("15m"))
+ .withApiServerAccessProfile(
+ new ManagedClusterApiServerAccessProfile()
+ .withEnablePrivateCluster(true)
+ .withEnablePrivateClusterPublicFqdn(true))
+ .create();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### ManagedClusters_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters Delete. */
+public final class ManagedClustersDeleteSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersDelete.json
+ */
+ /**
+ * Sample code: Delete Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void deleteManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().delete("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_GetAccessProfile
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters GetAccessProfile. */
+public final class ManagedClustersGetAccessProfileSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersGetAccessProfile.json
+ */
+ /**
+ * Sample code: Get Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().getAccessProfileWithResponse("rg1", "clustername1", "clusterUser", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters GetByResourceGroup. */
+public final class ManagedClustersGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersGet.json
+ */
+ /**
+ * Sample code: Get Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().getByResourceGroupWithResponse("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_GetCommandResult
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters GetCommandResult. */
+public final class ManagedClustersGetCommandResultSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/RunCommandResultFailed.json
+ */
+ /**
+ * Sample code: commandFailedResult.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void commandFailedResult(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .getCommandResultWithResponse("rg1", "clustername1", "def7b3ea71bd4f7e9d226ddbc0f00ad9", Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/RunCommandResultSucceed.json
+ */
+ /**
+ * Sample code: commandSucceedResult.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void commandSucceedResult(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .getCommandResultWithResponse("rg1", "clustername1", "def7b3ea71bd4f7e9d226ddbc0f00ad9", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_GetOSOptions
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters GetOSOptions. */
+public final class ManagedClustersGetOSOptionsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ContainerServiceGetOSOptions.json
+ */
+ /**
+ * Sample code: Get Container Service OS Options.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getContainerServiceOSOptions(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().getOSOptionsWithResponse("location1", null, Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_GetUpgradeProfile
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters GetUpgradeProfile. */
+public final class ManagedClustersGetUpgradeProfileSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersGetUpgradeProfile.json
+ */
+ /**
+ * Sample code: Get Upgrade Profile for Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getUpgradeProfileForManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().getUpgradeProfileWithResponse("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters List. */
+public final class ManagedClustersListSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersList.json
+ */
+ /**
+ * Sample code: List Managed Clusters.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listManagedClusters(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().list(Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters ListByResourceGroup. */
+public final class ManagedClustersListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersListByResourceGroup.json
+ */
+ /**
+ * Sample code: Get Managed Clusters by Resource Group.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getManagedClustersByResourceGroup(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().listByResourceGroup("rg1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_ListClusterAdminCredentials
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters ListClusterAdminCredentials. */
+public final class ManagedClustersListClusterAdminCredentialsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersListClusterCredentialResult.json
+ */
+ /**
+ * Sample code: Get Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .listClusterAdminCredentialsWithResponse("rg1", "clustername1", null, null, Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_ListClusterMonitoringUserCredentials
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters ListClusterMonitoringUserCredentials. */
+public final class ManagedClustersListClusterMonitoringUserCredentialsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersListClusterCredentialResult.json
+ */
+ /**
+ * Sample code: Get Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .listClusterMonitoringUserCredentialsWithResponse("rg1", "clustername1", null, Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_ListClusterUserCredentials
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters ListClusterUserCredentials. */
+public final class ManagedClustersListClusterUserCredentialsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersListClusterCredentialResult.json
+ */
+ /**
+ * Sample code: Get Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().listClusterUserCredentialsWithResponse("rg1", "clustername1", null, Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_ListOutboundNetworkDependenciesEndpoints
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters ListOutboundNetworkDependenciesEndpoints. */
+public final class ManagedClustersListOutboundNetworkDependenciesEndpointsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/OutboundNetworkDependenciesEndpointsList.json
+ */
+ /**
+ * Sample code: List OutboundNetworkDependenciesEndpoints by Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listOutboundNetworkDependenciesEndpointsByManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().listOutboundNetworkDependenciesEndpoints("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_ResetAadProfile
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAadProfile;
+
+/** Samples for ManagedClusters ResetAadProfile. */
+public final class ManagedClustersResetAadProfileSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersResetAADProfile.json
+ */
+ /**
+ * Sample code: Reset AAD Profile.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void resetAADProfile(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .resetAadProfile(
+ "rg1",
+ "clustername1",
+ new ManagedClusterAadProfile()
+ .withClientAppId("clientappid")
+ .withServerAppId("serverappid")
+ .withServerAppSecret("serverappsecret")
+ .withTenantId("tenantid"),
+ Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_ResetServicePrincipalProfile
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterServicePrincipalProfile;
+
+/** Samples for ManagedClusters ResetServicePrincipalProfile. */
+public final class ManagedClustersResetServicePrincipalProfileSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersResetServicePrincipalProfile.json
+ */
+ /**
+ * Sample code: Reset Service Principal Profile.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void resetServicePrincipalProfile(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .resetServicePrincipalProfile(
+ "rg1",
+ "clustername1",
+ new ManagedClusterServicePrincipalProfile().withClientId("clientid").withSecret("secret"),
+ Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_RotateClusterCertificates
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters RotateClusterCertificates. */
+public final class ManagedClustersRotateClusterCertificatesSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersRotateClusterCertificates.json
+ */
+ /**
+ * Sample code: Rotate Cluster Certificates.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void rotateClusterCertificates(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().rotateClusterCertificates("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_RunCommand
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.models.RunCommandRequest;
+
+/** Samples for ManagedClusters RunCommand. */
+public final class ManagedClustersRunCommandSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/RunCommandRequest.json
+ */
+ /**
+ * Sample code: submitNewCommand.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void submitNewCommand(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .managedClusters()
+ .runCommand(
+ "rg1",
+ "clustername1",
+ new RunCommandRequest().withCommand("kubectl apply -f ns.yaml").withContext("").withClusterToken(""),
+ Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_Start
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters Start. */
+public final class ManagedClustersStartSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersStart.json
+ */
+ /**
+ * Sample code: Start Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void startManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().start("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_Stop
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ManagedClusters Stop. */
+public final class ManagedClustersStopSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersStop.json
+ */
+ /**
+ * Sample code: Stop Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void stopManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.managedClusters().stop("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ManagedClusters_UpdateTags
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedCluster;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for ManagedClusters UpdateTags. */
+public final class ManagedClustersUpdateTagsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ManagedClustersUpdateTags.json
+ */
+ /**
+ * Sample code: Update Managed Cluster Tags.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void updateManagedClusterTags(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ ManagedCluster resource =
+ manager.managedClusters().getByResourceGroupWithResponse("rg1", "clustername1", Context.NONE).getValue();
+ resource.update().withTags(mapOf("archv3", "", "tier", "testing")).apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### OpenShiftManagedClusters_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.containerservice.generated.models.NetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftAgentPoolProfileRole;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftContainerServiceVMSize;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterAadIdentityProvider;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterAuthProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterIdentityProvider;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterMasterPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftRouterProfile;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for OpenShiftManagedClusters CreateOrUpdate. */
+public final class OpenShiftManagedClustersCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-30/examples/OpenShiftManagedClustersCreate_Update.json
+ */
+ /**
+ * Sample code: Create/Update OpenShift Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateOpenShiftManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .openShiftManagedClusters()
+ .define("clustername1")
+ .withRegion("location1")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("archv2", "", "tier", "production"))
+ .withOpenShiftVersion("v3.11")
+ .withNetworkProfile(new NetworkProfile().withVnetCidr("10.0.0.0/8"))
+ .withRouterProfiles(Arrays.asList(new OpenShiftRouterProfile().withName("default")))
+ .withMasterPoolProfile(
+ new OpenShiftManagedClusterMasterPoolProfile()
+ .withName("master")
+ .withCount(3)
+ .withVmSize(OpenShiftContainerServiceVMSize.STANDARD_D4S_V3)
+ .withSubnetCidr("10.0.0.0/24")
+ .withOsType(OSType.LINUX))
+ .withAgentPoolProfiles(
+ Arrays
+ .asList(
+ new OpenShiftManagedClusterAgentPoolProfile()
+ .withName("infra")
+ .withCount(2)
+ .withVmSize(OpenShiftContainerServiceVMSize.STANDARD_D4S_V3)
+ .withSubnetCidr("10.0.0.0/24")
+ .withOsType(OSType.LINUX)
+ .withRole(OpenShiftAgentPoolProfileRole.INFRA),
+ new OpenShiftManagedClusterAgentPoolProfile()
+ .withName("compute")
+ .withCount(4)
+ .withVmSize(OpenShiftContainerServiceVMSize.STANDARD_D4S_V3)
+ .withSubnetCidr("10.0.0.0/24")
+ .withOsType(OSType.LINUX)
+ .withRole(OpenShiftAgentPoolProfileRole.COMPUTE)))
+ .withAuthProfile(
+ new OpenShiftManagedClusterAuthProfile()
+ .withIdentityProviders(
+ Arrays
+ .asList(
+ new OpenShiftManagedClusterIdentityProvider()
+ .withName("Azure AD")
+ .withProvider(
+ new OpenShiftManagedClusterAadIdentityProvider()
+ .withClientId("clientId")
+ .withSecret("secret")
+ .withTenantId("tenantId")
+ .withCustomerAdminGroupId("customerAdminGroupId")))))
+ .create();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### OpenShiftManagedClusters_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for OpenShiftManagedClusters Delete. */
+public final class OpenShiftManagedClustersDeleteSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-30/examples/OpenShiftManagedClustersDelete.json
+ */
+ /**
+ * Sample code: Delete OpenShift Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void deleteOpenShiftManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.openShiftManagedClusters().delete("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### OpenShiftManagedClusters_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for OpenShiftManagedClusters GetByResourceGroup. */
+public final class OpenShiftManagedClustersGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-30/examples/OpenShiftManagedClustersGet.json
+ */
+ /**
+ * Sample code: Get OpenShift Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getOpenShiftManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.openShiftManagedClusters().getByResourceGroupWithResponse("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### OpenShiftManagedClusters_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for OpenShiftManagedClusters List. */
+public final class OpenShiftManagedClustersListSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-30/examples/OpenShiftManagedClustersList.json
+ */
+ /**
+ * Sample code: List Managed Clusters.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listManagedClusters(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.openShiftManagedClusters().list(Context.NONE);
+ }
+}
+```
+
+### OpenShiftManagedClusters_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for OpenShiftManagedClusters ListByResourceGroup. */
+public final class OpenShiftManagedClustersListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-30/examples/OpenShiftManagedClustersListByResourceGroup.json
+ */
+ /**
+ * Sample code: Get Managed Clusters by Resource Group.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getManagedClustersByResourceGroup(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.openShiftManagedClusters().listByResourceGroup("rg1", Context.NONE);
+ }
+}
+```
+
+### OpenShiftManagedClusters_UpdateTags
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedCluster;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for OpenShiftManagedClusters UpdateTags. */
+public final class OpenShiftManagedClustersUpdateTagsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-30/examples/OpenShiftManagedClustersUpdateTags.json
+ */
+ /**
+ * Sample code: Update OpenShift Managed Cluster Tags.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void updateOpenShiftManagedClusterTags(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ OpenShiftManagedCluster resource =
+ manager
+ .openShiftManagedClusters()
+ .getByResourceGroupWithResponse("rg1", "clustername1", Context.NONE)
+ .getValue();
+ resource.update().withTags(mapOf("archv3", "", "tier", "testing")).apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### Operations_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Operations List. */
+public final class OperationsListSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/Operation_List.json
+ */
+ /**
+ * Sample code: List available operations for the container service resource provider.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listAvailableOperationsForTheContainerServiceResourceProvider(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.operations().list(Context.NONE);
+ }
+}
+```
+
+### PrivateEndpointConnections_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for PrivateEndpointConnections Delete. */
+public final class PrivateEndpointConnectionsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/PrivateEndpointConnectionsDelete.json
+ */
+ /**
+ * Sample code: Delete Private Endpoint Connection.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void deletePrivateEndpointConnection(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.privateEndpointConnections().delete("rg1", "clustername1", "privateendpointconnection1", Context.NONE);
+ }
+}
+```
+
+### PrivateEndpointConnections_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for PrivateEndpointConnections Get. */
+public final class PrivateEndpointConnectionsGetSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/PrivateEndpointConnectionsGet.json
+ */
+ /**
+ * Sample code: Get Private Endpoint Connection.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getPrivateEndpointConnection(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .privateEndpointConnections()
+ .getWithResponse("rg1", "clustername1", "privateendpointconnection1", Context.NONE);
+ }
+}
+```
+
+### PrivateEndpointConnections_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for PrivateEndpointConnections List. */
+public final class PrivateEndpointConnectionsListSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/PrivateEndpointConnectionsList.json
+ */
+ /**
+ * Sample code: List Private Endpoint Connections by Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listPrivateEndpointConnectionsByManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.privateEndpointConnections().listWithResponse("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### PrivateEndpointConnections_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.PrivateEndpointConnectionInner;
+import com.azure.resourcemanager.containerservice.generated.models.ConnectionStatus;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateLinkServiceConnectionState;
+
+/** Samples for PrivateEndpointConnections Update. */
+public final class PrivateEndpointConnectionsUpdateSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/PrivateEndpointConnectionsUpdate.json
+ */
+ /**
+ * Sample code: Update Private Endpoint Connection.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void updatePrivateEndpointConnection(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .privateEndpointConnections()
+ .updateWithResponse(
+ "rg1",
+ "clustername1",
+ "privateendpointconnection1",
+ new PrivateEndpointConnectionInner()
+ .withPrivateLinkServiceConnectionState(
+ new PrivateLinkServiceConnectionState().withStatus(ConnectionStatus.APPROVED)),
+ Context.NONE);
+ }
+}
+```
+
+### PrivateLinkResources_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for PrivateLinkResources List. */
+public final class PrivateLinkResourcesListSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/PrivateLinkResourcesList.json
+ */
+ /**
+ * Sample code: List Private Link Resources by Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listPrivateLinkResourcesByManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.privateLinkResources().listWithResponse("rg1", "clustername1", Context.NONE);
+ }
+}
+```
+
+### ResolvePrivateLinkServiceId_Post
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.PrivateLinkResourceInner;
+
+/** Samples for ResolvePrivateLinkServiceId Post. */
+public final class ResolvePrivateLinkServiceIdPostSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/ResolvePrivateLinkServiceId.json
+ */
+ /**
+ * Sample code: Resolve the Private Link Service ID for Managed Cluster.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void resolveThePrivateLinkServiceIDForManagedCluster(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .resolvePrivateLinkServiceIds()
+ .postWithResponse(
+ "rg1", "clustername1", new PrivateLinkResourceInner().withName("management"), Context.NONE);
+ }
+}
+```
+
+### Snapshots_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for Snapshots CreateOrUpdate. */
+public final class SnapshotsCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/SnapshotsCreate.json
+ */
+ /**
+ * Sample code: Create/Update Snapshot.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void createUpdateSnapshot(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager
+ .snapshots()
+ .define("snapshot1")
+ .withRegion("westus")
+ .withExistingResourceGroup("rg1")
+ .withTags(mapOf("key1", "val1", "key2", "val2"))
+ .withCreationData(
+ new CreationData()
+ .withSourceResourceId(
+ "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/cluster1/agentPools/pool0"))
+ .create();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### Snapshots_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Snapshots Delete. */
+public final class SnapshotsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/SnapshotsDelete.json
+ */
+ /**
+ * Sample code: Delete Snapshot.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void deleteSnapshot(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.snapshots().deleteWithResponse("rg1", "snapshot1", Context.NONE);
+ }
+}
+```
+
+### Snapshots_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Snapshots GetByResourceGroup. */
+public final class SnapshotsGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/SnapshotsGet.json
+ */
+ /**
+ * Sample code: Get Snapshot.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void getSnapshot(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.snapshots().getByResourceGroupWithResponse("rg1", "snapshot1", Context.NONE);
+ }
+}
+```
+
+### Snapshots_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Snapshots List. */
+public final class SnapshotsListSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/SnapshotsList.json
+ */
+ /**
+ * Sample code: List Snapshots.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listSnapshots(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.snapshots().list(Context.NONE);
+ }
+}
+```
+
+### Snapshots_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Snapshots ListByResourceGroup. */
+public final class SnapshotsListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/SnapshotsListByResourceGroup.json
+ */
+ /**
+ * Sample code: List Snapshots by Resource Group.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void listSnapshotsByResourceGroup(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ manager.snapshots().listByResourceGroup("rg1", Context.NONE);
+ }
+}
+```
+
+### Snapshots_UpdateTags
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.models.Snapshot;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for Snapshots UpdateTags. */
+public final class SnapshotsUpdateTagsSamples {
+ /*
+ * x-ms-original-file: specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-01-02-preview/examples/SnapshotsUpdateTags.json
+ */
+ /**
+ * Sample code: Update Snapshot Tags.
+ *
+ * @param manager Entry point to ContainerServiceManager.
+ */
+ public static void updateSnapshotTags(
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager) {
+ Snapshot resource =
+ manager.snapshots().getByResourceGroupWithResponse("rg1", "snapshot1", Context.NONE).getValue();
+ resource.update().withTags(mapOf("key2", "new-val2", "key3", "val3")).apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/pom.xml b/sdk/containerservice/azure-resourcemanager-containerservice-generated/pom.xml
new file mode 100644
index 0000000000000..0535bd38f8166
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/pom.xml
@@ -0,0 +1,55 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-containerservice-generated
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for ContainerService Management
+ This package contains Microsoft Azure SDK for ContainerService Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Container Service Client. Package tag package-preview-2022-01.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+
+ https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+
+ microsoft
+ Microsoft
+
+
+
+ UTF-8
+ true
+
+
+
+ com.azure
+ azure-core
+ 1.25.0
+
+
+ com.azure
+ azure-core-management
+ 1.5.2
+
+
+
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/ContainerServiceManager.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/ContainerServiceManager.java
new file mode 100644
index 0000000000000..c8b579222c24d
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/ContainerServiceManager.java
@@ -0,0 +1,354 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated;
+
+import com.azure.core.credential.TokenCredential;
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.HttpPipelinePosition;
+import com.azure.core.http.policy.AddDatePolicy;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+import com.azure.core.http.policy.RequestIdPolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.http.policy.ArmChallengeAuthenticationPolicy;
+import com.azure.core.management.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.fluent.ContainerServiceManagementClient;
+import com.azure.resourcemanager.containerservice.generated.implementation.AgentPoolsImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.ContainerServiceManagementClientBuilder;
+import com.azure.resourcemanager.containerservice.generated.implementation.ContainerServicesImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.MaintenanceConfigurationsImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.ManagedClustersImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.OpenShiftManagedClustersImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.OperationsImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.PrivateEndpointConnectionsImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.PrivateLinkResourcesImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.ResolvePrivateLinkServiceIdsImpl;
+import com.azure.resourcemanager.containerservice.generated.implementation.SnapshotsImpl;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPools;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServices;
+import com.azure.resourcemanager.containerservice.generated.models.MaintenanceConfigurations;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusters;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusters;
+import com.azure.resourcemanager.containerservice.generated.models.Operations;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateEndpointConnections;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateLinkResources;
+import com.azure.resourcemanager.containerservice.generated.models.ResolvePrivateLinkServiceIds;
+import com.azure.resourcemanager.containerservice.generated.models.Snapshots;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/** Entry point to ContainerServiceManager. Container Service Client. */
+public final class ContainerServiceManager {
+ private OpenShiftManagedClusters openShiftManagedClusters;
+
+ private ContainerServices containerServices;
+
+ private Operations operations;
+
+ private ManagedClusters managedClusters;
+
+ private MaintenanceConfigurations maintenanceConfigurations;
+
+ private AgentPools agentPools;
+
+ private PrivateEndpointConnections privateEndpointConnections;
+
+ private PrivateLinkResources privateLinkResources;
+
+ private ResolvePrivateLinkServiceIds resolvePrivateLinkServiceIds;
+
+ private Snapshots snapshots;
+
+ private final ContainerServiceManagementClient clientObject;
+
+ private ContainerServiceManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new ContainerServiceManagementClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of ContainerService service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ContainerService service API instance.
+ */
+ public static ContainerServiceManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ return configure().authenticate(credential, profile);
+ }
+
+ /**
+ * Gets a Configurable instance that can be used to create ContainerServiceManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new ContainerServiceManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private final ClientLogger logger = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private final List scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of ContainerService service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ContainerService service API instance.
+ */
+ public ContainerServiceManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder
+ .append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.containerservice.generated")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new ContainerServiceManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of OpenShiftManagedClusters. */
+ public OpenShiftManagedClusters openShiftManagedClusters() {
+ if (this.openShiftManagedClusters == null) {
+ this.openShiftManagedClusters =
+ new OpenShiftManagedClustersImpl(clientObject.getOpenShiftManagedClusters(), this);
+ }
+ return openShiftManagedClusters;
+ }
+
+ /** @return Resource collection API of ContainerServices. */
+ public ContainerServices containerServices() {
+ if (this.containerServices == null) {
+ this.containerServices = new ContainerServicesImpl(clientObject.getContainerServices(), this);
+ }
+ return containerServices;
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /** @return Resource collection API of ManagedClusters. */
+ public ManagedClusters managedClusters() {
+ if (this.managedClusters == null) {
+ this.managedClusters = new ManagedClustersImpl(clientObject.getManagedClusters(), this);
+ }
+ return managedClusters;
+ }
+
+ /** @return Resource collection API of MaintenanceConfigurations. */
+ public MaintenanceConfigurations maintenanceConfigurations() {
+ if (this.maintenanceConfigurations == null) {
+ this.maintenanceConfigurations =
+ new MaintenanceConfigurationsImpl(clientObject.getMaintenanceConfigurations(), this);
+ }
+ return maintenanceConfigurations;
+ }
+
+ /** @return Resource collection API of AgentPools. */
+ public AgentPools agentPools() {
+ if (this.agentPools == null) {
+ this.agentPools = new AgentPoolsImpl(clientObject.getAgentPools(), this);
+ }
+ return agentPools;
+ }
+
+ /** @return Resource collection API of PrivateEndpointConnections. */
+ public PrivateEndpointConnections privateEndpointConnections() {
+ if (this.privateEndpointConnections == null) {
+ this.privateEndpointConnections =
+ new PrivateEndpointConnectionsImpl(clientObject.getPrivateEndpointConnections(), this);
+ }
+ return privateEndpointConnections;
+ }
+
+ /** @return Resource collection API of PrivateLinkResources. */
+ public PrivateLinkResources privateLinkResources() {
+ if (this.privateLinkResources == null) {
+ this.privateLinkResources = new PrivateLinkResourcesImpl(clientObject.getPrivateLinkResources(), this);
+ }
+ return privateLinkResources;
+ }
+
+ /** @return Resource collection API of ResolvePrivateLinkServiceIds. */
+ public ResolvePrivateLinkServiceIds resolvePrivateLinkServiceIds() {
+ if (this.resolvePrivateLinkServiceIds == null) {
+ this.resolvePrivateLinkServiceIds =
+ new ResolvePrivateLinkServiceIdsImpl(clientObject.getResolvePrivateLinkServiceIds(), this);
+ }
+ return resolvePrivateLinkServiceIds;
+ }
+
+ /** @return Resource collection API of Snapshots. */
+ public Snapshots snapshots() {
+ if (this.snapshots == null) {
+ this.snapshots = new SnapshotsImpl(clientObject.getSnapshots(), this);
+ }
+ return snapshots;
+ }
+
+ /**
+ * @return Wrapped service client ContainerServiceManagementClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ */
+ public ContainerServiceManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/AgentPoolsClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/AgentPoolsClient.java
new file mode 100644
index 0000000000000..5ed642b7b9131
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/AgentPoolsClient.java
@@ -0,0 +1,336 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolAvailableVersionsInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolUpgradeProfileInner;
+
+/** An instance of this class provides access to all the operations defined in AgentPoolsClient. */
+public interface AgentPoolsClient {
+ /**
+ * Gets a list of agent pools in the specified 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a list of agent pools in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Gets the specified managed cluster agent pool.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified managed cluster agent pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner get(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Gets the specified managed cluster agent pool.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified managed cluster agent pool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String resourceName, String agentPoolName, Context context);
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AgentPoolInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, String agentPoolName, AgentPoolInner parameters);
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AgentPoolInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String resourceName,
+ String agentPoolName,
+ AgentPoolInner parameters,
+ Context context);
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner createOrUpdate(
+ String resourceGroupName, String resourceName, String agentPoolName, AgentPoolInner parameters);
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner createOrUpdate(
+ String resourceGroupName,
+ String resourceName,
+ String agentPoolName,
+ AgentPoolInner parameters,
+ Context context);
+
+ /**
+ * Deletes an 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Deletes an 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String resourceName, String agentPoolName, Context context);
+
+ /**
+ * Deletes an 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Deletes an 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, String agentPoolName, Context context);
+
+ /**
+ * Gets the upgrade profile for an agent pool.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the upgrade profile for an agent pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolUpgradeProfileInner getUpgradeProfile(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Gets the upgrade profile for an agent pool.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the upgrade profile for an agent pool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getUpgradeProfileWithResponse(
+ String resourceGroupName, String resourceName, String agentPoolName, Context context);
+
+ /**
+ * See [supported Kubernetes versions](https://docs.microsoft.com/azure/aks/supported-kubernetes-versions) for more
+ * details about the version lifecycle.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of available versions for an agent pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolAvailableVersionsInner getAvailableAgentPoolVersions(String resourceGroupName, String resourceName);
+
+ /**
+ * See [supported Kubernetes versions](https://docs.microsoft.com/azure/aks/supported-kubernetes-versions) for more
+ * details about the version lifecycle.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of available versions for an agent pool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getAvailableAgentPoolVersionsWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Upgrading the node image version of an agent pool applies the newest OS and runtime updates to the nodes. AKS
+ * provides one new image per week with the latest updates. For more details on node image versions, see:
+ * https://docs.microsoft.com/azure/aks/node-image-upgrade.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AgentPoolInner> beginUpgradeNodeImageVersion(
+ String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Upgrading the node image version of an agent pool applies the newest OS and runtime updates to the nodes. AKS
+ * provides one new image per week with the latest updates. For more details on node image versions, see:
+ * https://docs.microsoft.com/azure/aks/node-image-upgrade.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AgentPoolInner> beginUpgradeNodeImageVersion(
+ String resourceGroupName, String resourceName, String agentPoolName, Context context);
+
+ /**
+ * Upgrading the node image version of an agent pool applies the newest OS and runtime updates to the nodes. AKS
+ * provides one new image per week with the latest updates. For more details on node image versions, see:
+ * https://docs.microsoft.com/azure/aks/node-image-upgrade.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner upgradeNodeImageVersion(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Upgrading the node image version of an agent pool applies the newest OS and runtime updates to the nodes. AKS
+ * provides one new image per week with the latest updates. For more details on node image versions, see:
+ * https://docs.microsoft.com/azure/aks/node-image-upgrade.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner upgradeNodeImageVersion(
+ String resourceGroupName, String resourceName, String agentPoolName, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ContainerServiceManagementClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ContainerServiceManagementClient.java
new file mode 100644
index 0000000000000..bb646eea8a5ff
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ContainerServiceManagementClient.java
@@ -0,0 +1,110 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for ContainerServiceManagementClient class. */
+public interface ContainerServiceManagementClient {
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms
+ * part of the URI for every service call.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the OpenShiftManagedClustersClient object to access its operations.
+ *
+ * @return the OpenShiftManagedClustersClient object.
+ */
+ OpenShiftManagedClustersClient getOpenShiftManagedClusters();
+
+ /**
+ * Gets the ContainerServicesClient object to access its operations.
+ *
+ * @return the ContainerServicesClient object.
+ */
+ ContainerServicesClient getContainerServices();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the ManagedClustersClient object to access its operations.
+ *
+ * @return the ManagedClustersClient object.
+ */
+ ManagedClustersClient getManagedClusters();
+
+ /**
+ * Gets the MaintenanceConfigurationsClient object to access its operations.
+ *
+ * @return the MaintenanceConfigurationsClient object.
+ */
+ MaintenanceConfigurationsClient getMaintenanceConfigurations();
+
+ /**
+ * Gets the AgentPoolsClient object to access its operations.
+ *
+ * @return the AgentPoolsClient object.
+ */
+ AgentPoolsClient getAgentPools();
+
+ /**
+ * Gets the PrivateEndpointConnectionsClient object to access its operations.
+ *
+ * @return the PrivateEndpointConnectionsClient object.
+ */
+ PrivateEndpointConnectionsClient getPrivateEndpointConnections();
+
+ /**
+ * Gets the PrivateLinkResourcesClient object to access its operations.
+ *
+ * @return the PrivateLinkResourcesClient object.
+ */
+ PrivateLinkResourcesClient getPrivateLinkResources();
+
+ /**
+ * Gets the ResolvePrivateLinkServiceIdsClient object to access its operations.
+ *
+ * @return the ResolvePrivateLinkServiceIdsClient object.
+ */
+ ResolvePrivateLinkServiceIdsClient getResolvePrivateLinkServiceIds();
+
+ /**
+ * Gets the SnapshotsClient object to access its operations.
+ *
+ * @return the SnapshotsClient object.
+ */
+ SnapshotsClient getSnapshots();
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ContainerServicesClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ContainerServicesClient.java
new file mode 100644
index 0000000000000..a31d5bfb8bd19
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ContainerServicesClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.OrchestratorVersionProfileListResultInner;
+
+/** An instance of this class provides access to all the operations defined in ContainerServicesClient. */
+public interface ContainerServicesClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of supported orchestrators in the specified subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OrchestratorVersionProfileListResultInner listOrchestrators(String location);
+
+ /**
+ * 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.
+ * @param resourceType resource type for which the list of orchestrators needs to be returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of supported orchestrators in the specified subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listOrchestratorsWithResponse(
+ String location, String resourceType, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/MaintenanceConfigurationsClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/MaintenanceConfigurationsClient.java
new file mode 100644
index 0000000000000..987e95505d347
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/MaintenanceConfigurationsClient.java
@@ -0,0 +1,142 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.MaintenanceConfigurationInner;
+
+/** An instance of this class provides access to all the operations defined in MaintenanceConfigurationsClient. */
+public interface MaintenanceConfigurationsClient {
+ /**
+ * Gets a list of maintenance configurations in the specified 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of maintenance configurations in the specified managed cluster as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByManagedCluster(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a list of maintenance configurations in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of maintenance configurations in the specified managed cluster as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByManagedCluster(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Gets the specified maintenance configuration of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param configName The name of the maintenance configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified maintenance configuration of a managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MaintenanceConfigurationInner get(String resourceGroupName, String resourceName, String configName);
+
+ /**
+ * Gets the specified maintenance configuration of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param configName The name of the maintenance configuration.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified maintenance configuration of a managed cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String resourceName, String configName, Context context);
+
+ /**
+ * Creates or updates a maintenance configuration in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param configName The name of the maintenance configuration.
+ * @param parameters The maintenance configuration to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return planned maintenance configuration, used to configure when updates can be deployed to a Managed Cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MaintenanceConfigurationInner createOrUpdate(
+ String resourceGroupName, String resourceName, String configName, MaintenanceConfigurationInner parameters);
+
+ /**
+ * Creates or updates a maintenance configuration in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param configName The name of the maintenance configuration.
+ * @param parameters The maintenance configuration to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return planned maintenance configuration, used to configure when updates can be deployed to a Managed Cluster
+ * along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String resourceName,
+ String configName,
+ MaintenanceConfigurationInner parameters,
+ Context context);
+
+ /**
+ * Deletes a maintenance configuration.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param configName The name of the maintenance configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, String configName);
+
+ /**
+ * Deletes a maintenance configuration.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param configName The name of the maintenance configuration.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String resourceName, String configName, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedClustersClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedClustersClient.java
new file mode 100644
index 0000000000000..6adac8586c591
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedClustersClient.java
@@ -0,0 +1,891 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.CredentialResultsInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.ManagedClusterAccessProfileInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.ManagedClusterInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.ManagedClusterUpgradeProfileInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.OSOptionProfileInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.OutboundEnvironmentEndpointInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.RunCommandResultInner;
+import com.azure.resourcemanager.containerservice.generated.models.Format;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAadProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterServicePrincipalProfile;
+import com.azure.resourcemanager.containerservice.generated.models.RunCommandRequest;
+import com.azure.resourcemanager.containerservice.generated.models.TagsObject;
+
+/** An instance of this class provides access to all the operations defined in ManagedClustersClient. */
+public interface ManagedClustersClient {
+ /**
+ * Gets supported OS options in the specified subscription.
+ *
+ * @param location The name of a supported Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return supported OS options in the specified subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OSOptionProfileInner getOSOptions(String location);
+
+ /**
+ * Gets supported OS options in the specified subscription.
+ *
+ * @param location The name of a supported Azure region.
+ * @param resourceType The resource type for which the OS options needs to be returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return supported OS options in the specified subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getOSOptionsWithResponse(String location, String resourceType, Context context);
+
+ /**
+ * Gets a list of managed clusters in the specified subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of managed clusters in the specified subscription as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of managed clusters in the specified subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of managed clusters in the specified subscription as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists managed clusters in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Managed Clusters operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists managed clusters in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Managed Clusters operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets the upgrade profile 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the upgrade profile of a managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterUpgradeProfileInner getUpgradeProfile(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets the upgrade profile of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the upgrade profile of a managed cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getUpgradeProfileWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * **WARNING**: This API will be deprecated. Instead use
+ * [ListClusterUserCredentials](https://docs.microsoft.com/rest/api/aks/managedclusters/listclusterusercredentials)
+ * or
+ * [ListClusterAdminCredentials](https://docs.microsoft.com/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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster Access Profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterAccessProfileInner getAccessProfile(String resourceGroupName, String resourceName, String roleName);
+
+ /**
+ * **WARNING**: This API will be deprecated. Instead use
+ * [ListClusterUserCredentials](https://docs.microsoft.com/rest/api/aks/managedclusters/listclusterusercredentials)
+ * or
+ * [ListClusterAdminCredentials](https://docs.microsoft.com/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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster Access Profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getAccessProfileWithResponse(
+ String resourceGroupName, String resourceName, String roleName, Context context);
+
+ /**
+ * Lists the admin credentials 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list credential result response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CredentialResultsInner listClusterAdminCredentials(String resourceGroupName, String resourceName);
+
+ /**
+ * Lists the admin credentials of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param serverFqdn server fqdn type for credentials to be returned.
+ * @param format Only apply to AAD clusters, specifies the format of returned kubeconfig. Format 'azure' will return
+ * azure auth-provider kubeconfig; format 'exec' will return exec format kubeconfig, which requires kubelogin
+ * binary in the path.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list credential result response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listClusterAdminCredentialsWithResponse(
+ String resourceGroupName, String resourceName, String serverFqdn, Format format, Context context);
+
+ /**
+ * Lists the user credentials 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list credential result response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CredentialResultsInner listClusterUserCredentials(String resourceGroupName, String resourceName);
+
+ /**
+ * Lists the user credentials of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param serverFqdn server fqdn type for credentials to be returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list credential result response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listClusterUserCredentialsWithResponse(
+ String resourceGroupName, String resourceName, String serverFqdn, Context context);
+
+ /**
+ * Lists the cluster monitoring user credentials 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list credential result response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CredentialResultsInner listClusterMonitoringUserCredentials(String resourceGroupName, String resourceName);
+
+ /**
+ * Lists the cluster monitoring user credentials of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param serverFqdn server fqdn type for credentials to be returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list credential result response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listClusterMonitoringUserCredentialsWithResponse(
+ String resourceGroupName, String resourceName, String serverFqdn, Context context);
+
+ /**
+ * Gets 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner getByResourceGroup(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a managed cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Creates or updates a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedClusterInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, ManagedClusterInner parameters);
+
+ /**
+ * Creates or updates a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedClusterInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, ManagedClusterInner parameters, Context context);
+
+ /**
+ * Creates or updates a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner createOrUpdate(String resourceGroupName, String resourceName, ManagedClusterInner parameters);
+
+ /**
+ * Creates or updates a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner createOrUpdate(
+ String resourceGroupName, String resourceName, ManagedClusterInner parameters, Context context);
+
+ /**
+ * Updates tags on 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 Update Managed Cluster Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedClusterInner> beginUpdateTags(
+ String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates tags on 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 Update Managed Cluster Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedClusterInner> beginUpdateTags(
+ String resourceGroupName, String resourceName, TagsObject parameters, Context context);
+
+ /**
+ * Updates tags on 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 Update Managed Cluster Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates tags on 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 Update Managed Cluster Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner updateTags(
+ String resourceGroupName, String resourceName, TagsObject parameters, Context context);
+
+ /**
+ * Deletes 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Deletes 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * This action cannot be performed on a cluster that is not using a service principal.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The service principal profile to set on the managed cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginResetServicePrincipalProfile(
+ String resourceGroupName, String resourceName, ManagedClusterServicePrincipalProfile parameters);
+
+ /**
+ * This action cannot be performed on a cluster that is not using a service principal.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The service principal profile to set on the managed cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginResetServicePrincipalProfile(
+ String resourceGroupName,
+ String resourceName,
+ ManagedClusterServicePrincipalProfile parameters,
+ Context context);
+
+ /**
+ * This action cannot be performed on a cluster that is not using a service principal.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The service principal profile to set on the managed cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void resetServicePrincipalProfile(
+ String resourceGroupName, String resourceName, ManagedClusterServicePrincipalProfile parameters);
+
+ /**
+ * This action cannot be performed on a cluster that is not using a service principal.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The service principal profile to set on the managed cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void resetServicePrincipalProfile(
+ String resourceGroupName,
+ String resourceName,
+ ManagedClusterServicePrincipalProfile parameters,
+ Context context);
+
+ /**
+ * Reset the AAD Profile of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The AAD profile to set on the Managed Cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginResetAadProfile(
+ String resourceGroupName, String resourceName, ManagedClusterAadProfile parameters);
+
+ /**
+ * Reset the AAD Profile of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The AAD profile to set on the Managed Cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginResetAadProfile(
+ String resourceGroupName, String resourceName, ManagedClusterAadProfile parameters, Context context);
+
+ /**
+ * Reset the AAD Profile of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The AAD profile to set on the Managed Cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void resetAadProfile(String resourceGroupName, String resourceName, ManagedClusterAadProfile parameters);
+
+ /**
+ * Reset the AAD Profile of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The AAD profile to set on the Managed Cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void resetAadProfile(
+ String resourceGroupName, String resourceName, ManagedClusterAadProfile parameters, Context context);
+
+ /**
+ * See [Certificate rotation](https://docs.microsoft.com/azure/aks/certificate-rotation) for more details about
+ * rotating managed cluster certificates.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginRotateClusterCertificates(String resourceGroupName, String resourceName);
+
+ /**
+ * See [Certificate rotation](https://docs.microsoft.com/azure/aks/certificate-rotation) for more details about
+ * rotating managed cluster certificates.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginRotateClusterCertificates(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * See [Certificate rotation](https://docs.microsoft.com/azure/aks/certificate-rotation) for more details about
+ * rotating managed cluster certificates.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void rotateClusterCertificates(String resourceGroupName, String resourceName);
+
+ /**
+ * See [Certificate rotation](https://docs.microsoft.com/azure/aks/certificate-rotation) for more details about
+ * rotating managed cluster certificates.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void rotateClusterCertificates(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a cluster stops the
+ * control plane and agent nodes entirely, while maintaining all object and cluster state. A cluster does not accrue
+ * charges while it is stopped. See [stopping a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster)
+ * for more details about stopping a 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStop(String resourceGroupName, String resourceName);
+
+ /**
+ * This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a cluster stops the
+ * control plane and agent nodes entirely, while maintaining all object and cluster state. A cluster does not accrue
+ * charges while it is stopped. See [stopping a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster)
+ * for more details about stopping a cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStop(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a cluster stops the
+ * control plane and agent nodes entirely, while maintaining all object and cluster state. A cluster does not accrue
+ * charges while it is stopped. See [stopping a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster)
+ * for more details about stopping a 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceGroupName, String resourceName);
+
+ /**
+ * This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a cluster stops the
+ * control plane and agent nodes entirely, while maintaining all object and cluster state. A cluster does not accrue
+ * charges while it is stopped. See [stopping a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster)
+ * for more details about stopping a cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * See [starting a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster) for more details about starting
+ * a 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStart(String resourceGroupName, String resourceName);
+
+ /**
+ * See [starting a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster) for more details about starting
+ * a cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStart(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * See [starting a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster) for more details about starting
+ * a 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String resourceGroupName, String resourceName);
+
+ /**
+ * See [starting a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster) for more details about starting
+ * a cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * AKS will create a pod to run the command. This is primarily useful for private clusters. For more information see
+ * [AKS Run Command](https://docs.microsoft.com/azure/aks/private-clusters#aks-run-command-preview).
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param requestPayload The run command request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of run command result.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RunCommandResultInner> beginRunCommand(
+ String resourceGroupName, String resourceName, RunCommandRequest requestPayload);
+
+ /**
+ * AKS will create a pod to run the command. This is primarily useful for private clusters. For more information see
+ * [AKS Run Command](https://docs.microsoft.com/azure/aks/private-clusters#aks-run-command-preview).
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param requestPayload The run command request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of run command result.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RunCommandResultInner> beginRunCommand(
+ String resourceGroupName, String resourceName, RunCommandRequest requestPayload, Context context);
+
+ /**
+ * AKS will create a pod to run the command. This is primarily useful for private clusters. For more information see
+ * [AKS Run Command](https://docs.microsoft.com/azure/aks/private-clusters#aks-run-command-preview).
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param requestPayload The run command request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return run command result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RunCommandResultInner runCommand(String resourceGroupName, String resourceName, RunCommandRequest requestPayload);
+
+ /**
+ * AKS will create a pod to run the command. This is primarily useful for private clusters. For more information see
+ * [AKS Run Command](https://docs.microsoft.com/azure/aks/private-clusters#aks-run-command-preview).
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param requestPayload The run command request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return run command result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RunCommandResultInner runCommand(
+ String resourceGroupName, String resourceName, RunCommandRequest requestPayload, Context context);
+
+ /**
+ * Gets the results of a command which has been run on the Managed Cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param commandId Id of the command.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the results of a command which has been run on the Managed Cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RunCommandResultInner getCommandResult(String resourceGroupName, String resourceName, String commandId);
+
+ /**
+ * Gets the results of a command which has been run on the Managed Cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param commandId Id of the command.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the results of a command which has been run on the Managed Cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getCommandResultWithResponse(
+ String resourceGroupName, String resourceName, String commandId, Context context);
+
+ /**
+ * Gets a list of egress endpoints (network endpoints of all outbound dependencies) in the specified managed
+ * cluster. The operation returns properties of each egress endpoint.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of egress endpoints (network endpoints of all outbound dependencies) in the specified managed
+ * cluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listOutboundNetworkDependenciesEndpoints(
+ String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a list of egress endpoints (network endpoints of all outbound dependencies) in the specified managed
+ * cluster. The operation returns properties of each egress endpoint.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of egress endpoints (network endpoints of all outbound dependencies) in the specified managed
+ * cluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listOutboundNetworkDependenciesEndpoints(
+ String resourceGroupName, String resourceName, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/OpenShiftManagedClustersClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/OpenShiftManagedClustersClient.java
new file mode 100644
index 0000000000000..8916ce884f843
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/OpenShiftManagedClustersClient.java
@@ -0,0 +1,277 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.OpenShiftManagedClusterInner;
+import com.azure.resourcemanager.containerservice.generated.models.TagsObject;
+
+/** An instance of this class provides access to all the operations defined in OpenShiftManagedClustersClient. */
+public interface OpenShiftManagedClustersClient {
+ /**
+ * Gets a list of OpenShift managed clusters in the specified subscription. The operation returns properties of each
+ * OpenShift managed cluster.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of OpenShift managed clusters in the specified subscription as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of OpenShift managed clusters in the specified subscription. The operation returns properties of each
+ * OpenShift managed cluster.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of OpenShift managed clusters in the specified subscription as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists OpenShift managed clusters in the specified subscription and resource group. The operation returns
+ * properties of each OpenShift managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List OpenShift Managed Clusters operation as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists OpenShift managed clusters in the specified subscription and resource group. The operation returns
+ * properties of each OpenShift managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List OpenShift Managed Clusters operation as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets the details of the managed OpenShift cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the managed OpenShift cluster with a specified resource group and name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner getByResourceGroup(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets the details of the managed OpenShift cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the managed OpenShift cluster with a specified resource group and name along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Creates or updates a OpenShift managed cluster with the specified configuration for agents and OpenShift version.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Create or Update an OpenShift Managed Cluster operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OpenShiftManagedClusterInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, OpenShiftManagedClusterInner parameters);
+
+ /**
+ * Creates or updates a OpenShift managed cluster with the specified configuration for agents and OpenShift version.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Create or Update an OpenShift Managed Cluster operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OpenShiftManagedClusterInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, OpenShiftManagedClusterInner parameters, Context context);
+
+ /**
+ * Creates or updates a OpenShift managed cluster with the specified configuration for agents and OpenShift version.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Create or Update an OpenShift Managed Cluster operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner createOrUpdate(
+ String resourceGroupName, String resourceName, OpenShiftManagedClusterInner parameters);
+
+ /**
+ * Creates or updates a OpenShift managed cluster with the specified configuration for agents and OpenShift version.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Create or Update an OpenShift Managed Cluster operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner createOrUpdate(
+ String resourceGroupName, String resourceName, OpenShiftManagedClusterInner parameters, Context context);
+
+ /**
+ * Updates an OpenShift managed cluster with the specified tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Update OpenShift Managed Cluster Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OpenShiftManagedClusterInner> beginUpdateTags(
+ String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates an OpenShift managed cluster with the specified tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Update OpenShift Managed Cluster Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OpenShiftManagedClusterInner> beginUpdateTags(
+ String resourceGroupName, String resourceName, TagsObject parameters, Context context);
+
+ /**
+ * Updates an OpenShift managed cluster with the specified tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Update OpenShift Managed Cluster Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates an OpenShift managed cluster with the specified tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Update OpenShift Managed Cluster Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner updateTags(
+ String resourceGroupName, String resourceName, TagsObject parameters, Context context);
+
+ /**
+ * Deletes the OpenShift managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes the OpenShift managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Deletes the OpenShift managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes the OpenShift managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/OperationsClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..061a5e6641439
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.OperationValueInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Gets a list of operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/PrivateEndpointConnectionsClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/PrivateEndpointConnectionsClient.java
new file mode 100644
index 0000000000000..f227828a11ea8
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/PrivateEndpointConnectionsClient.java
@@ -0,0 +1,174 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.PrivateEndpointConnectionInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.PrivateEndpointConnectionListResultInner;
+
+/** An instance of this class provides access to all the operations defined in PrivateEndpointConnectionsClient. */
+public interface PrivateEndpointConnectionsClient {
+ /**
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of private endpoint connections.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionListResultInner list(String resourceGroupName, String resourceName);
+
+ /**
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of private endpoint connections along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a private endpoint connection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner get(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName);
+
+ /**
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a private endpoint connection along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName, Context context);
+
+ /**
+ * Updates a private endpoint connection.
+ *
+ * @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.
+ * @param parameters The updated private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a private endpoint connection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner update(
+ String resourceGroupName,
+ String resourceName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionInner parameters);
+
+ /**
+ * Updates a private endpoint connection.
+ *
+ * @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.
+ * @param parameters The updated private endpoint connection.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a private endpoint connection along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String resourceName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionInner parameters,
+ Context context);
+
+ /**
+ * Deletes a private endpoint connection.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName);
+
+ /**
+ * Deletes a private endpoint connection.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName, Context context);
+
+ /**
+ * Deletes a private endpoint connection.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, String privateEndpointConnectionName);
+
+ /**
+ * Deletes a private endpoint connection.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, String privateEndpointConnectionName, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/PrivateLinkResourcesClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/PrivateLinkResourcesClient.java
new file mode 100644
index 0000000000000..b4bc78a0de5dd
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/PrivateLinkResourcesClient.java
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.PrivateLinkResourcesListResultInner;
+
+/** An instance of this class provides access to all the operations defined in PrivateLinkResourcesClient. */
+public interface PrivateLinkResourcesClient {
+ /**
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of private link resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateLinkResourcesListResultInner list(String resourceGroupName, String resourceName);
+
+ /**
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of private link resources along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ResolvePrivateLinkServiceIdsClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ResolvePrivateLinkServiceIdsClient.java
new file mode 100644
index 0000000000000..48f37384d06ec
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ResolvePrivateLinkServiceIdsClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.PrivateLinkResourceInner;
+
+/** An instance of this class provides access to all the operations defined in ResolvePrivateLinkServiceIdsClient. */
+public interface ResolvePrivateLinkServiceIdsClient {
+ /**
+ * Gets the private link service ID for the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters required in order to resolve a private link service ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private link service ID for the specified managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateLinkResourceInner post(String resourceGroupName, String resourceName, PrivateLinkResourceInner parameters);
+
+ /**
+ * Gets the private link service ID for the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters required in order to resolve a private link service ID.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private link service ID for the specified managed cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response postWithResponse(
+ String resourceGroupName, String resourceName, PrivateLinkResourceInner parameters, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/SnapshotsClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/SnapshotsClient.java
new file mode 100644
index 0000000000000..f4188299b074a
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/SnapshotsClient.java
@@ -0,0 +1,177 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.SnapshotInner;
+import com.azure.resourcemanager.containerservice.generated.models.TagsObject;
+
+/** An instance of this class provides access to all the operations defined in SnapshotsClient. */
+public interface SnapshotsClient {
+ /**
+ * Gets a list of snapshots in the specified subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of snapshots in the specified subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of snapshots in the specified subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of snapshots in the specified subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists snapshots in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Snapshots operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists snapshots in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Snapshots operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets a snapshot.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a snapshot.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotInner getByResourceGroup(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a snapshot along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Creates or updates a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The snapshot to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a node pool snapshot resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotInner createOrUpdate(String resourceGroupName, String resourceName, SnapshotInner parameters);
+
+ /**
+ * Creates or updates a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The snapshot to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a node pool snapshot resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName, String resourceName, SnapshotInner parameters, Context context);
+
+ /**
+ * Updates tags on a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update snapshot Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a node pool snapshot resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates tags on a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update snapshot Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a node pool snapshot resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateTagsWithResponse(
+ String resourceGroupName, String resourceName, TagsObject parameters, Context context);
+
+ /**
+ * Deletes a snapshot.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String resourceName, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AccessProfile.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AccessProfile.java
new file mode 100644
index 0000000000000..efcbc1ee0f1ed
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AccessProfile.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.CoreUtils;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Profile for enabling a user to access a managed cluster. */
+@Fluent
+public final class AccessProfile {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AccessProfile.class);
+
+ /*
+ * Base64-encoded Kubernetes configuration file.
+ */
+ @JsonProperty(value = "kubeConfig")
+ private byte[] kubeConfig;
+
+ /**
+ * Get the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeConfig value.
+ */
+ public byte[] kubeConfig() {
+ return CoreUtils.clone(this.kubeConfig);
+ }
+
+ /**
+ * Set the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @param kubeConfig the kubeConfig value to set.
+ * @return the AccessProfile object itself.
+ */
+ public AccessProfile withKubeConfig(byte[] kubeConfig) {
+ this.kubeConfig = CoreUtils.clone(kubeConfig);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsInner.java
new file mode 100644
index 0000000000000..25a400c6796b1
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsInner.java
@@ -0,0 +1,118 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of available versions for an agent pool. */
+@Fluent
+public final class AgentPoolAvailableVersionsInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AgentPoolAvailableVersionsInner.class);
+
+ /*
+ * The ID of the agent pool version list.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the agent pool version list.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Type of the agent pool version list.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Properties of agent pool available versions.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private AgentPoolAvailableVersionsProperties innerProperties = new AgentPoolAvailableVersionsProperties();
+
+ /**
+ * Get the id property: The ID of the agent pool version list.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The name of the agent pool version list.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: Type of the agent pool version list.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of agent pool available versions.
+ *
+ * @return the innerProperties value.
+ */
+ private AgentPoolAvailableVersionsProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the agentPoolVersions property: List of versions available for agent pool.
+ *
+ * @return the agentPoolVersions value.
+ */
+ public List agentPoolVersions() {
+ return this.innerProperties() == null ? null : this.innerProperties().agentPoolVersions();
+ }
+
+ /**
+ * Set the agentPoolVersions property: List of versions available for agent pool.
+ *
+ * @param agentPoolVersions the agentPoolVersions value to set.
+ * @return the AgentPoolAvailableVersionsInner object itself.
+ */
+ public AgentPoolAvailableVersionsInner withAgentPoolVersions(
+ List agentPoolVersions) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolAvailableVersionsProperties();
+ }
+ this.innerProperties().withAgentPoolVersions(agentPoolVersions);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model AgentPoolAvailableVersionsInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsProperties.java
new file mode 100644
index 0000000000000..3146c4dbbd4c2
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsProperties.java
@@ -0,0 +1,56 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of available agent pool versions. */
+@Fluent
+public final class AgentPoolAvailableVersionsProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AgentPoolAvailableVersionsProperties.class);
+
+ /*
+ * List of versions available for agent pool.
+ */
+ @JsonProperty(value = "agentPoolVersions")
+ private List agentPoolVersions;
+
+ /**
+ * Get the agentPoolVersions property: List of versions available for agent pool.
+ *
+ * @return the agentPoolVersions value.
+ */
+ public List agentPoolVersions() {
+ return this.agentPoolVersions;
+ }
+
+ /**
+ * Set the agentPoolVersions property: List of versions available for agent pool.
+ *
+ * @param agentPoolVersions the agentPoolVersions value to set.
+ * @return the AgentPoolAvailableVersionsProperties object itself.
+ */
+ public AgentPoolAvailableVersionsProperties withAgentPoolVersions(
+ List agentPoolVersions) {
+ this.agentPoolVersions = agentPoolVersions;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (agentPoolVersions() != null) {
+ agentPoolVersions().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolInner.java
new file mode 100644
index 0000000000000..ff6a835dcd9b1
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolInner.java
@@ -0,0 +1,1148 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.SubResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolType;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeSettings;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.GpuInstanceProfile;
+import com.azure.resourcemanager.containerservice.generated.models.KubeletConfig;
+import com.azure.resourcemanager.containerservice.generated.models.KubeletDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.LinuxOSConfig;
+import com.azure.resourcemanager.containerservice.generated.models.OSDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.Ossku;
+import com.azure.resourcemanager.containerservice.generated.models.PowerState;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleDownMode;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleSetEvictionPolicy;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleSetPriority;
+import com.azure.resourcemanager.containerservice.generated.models.WorkloadRuntime;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Agent Pool. */
+@Fluent
+public final class AgentPoolInner extends SubResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AgentPoolInner.class);
+
+ /*
+ * Properties of an agent pool.
+ */
+ @JsonProperty(value = "properties")
+ private ManagedClusterAgentPoolProfileProperties innerProperties;
+
+ /*
+ * 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 the innerProperties property: Properties of an agent pool.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterAgentPoolProfileProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the name property: 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 the type property: Resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public AgentPoolInner withId(String id) {
+ super.withId(id);
+ return this;
+ }
+
+ /**
+ * Get the count property: Number of agents (VMs) to host docker containers. Allowed values must be in the range of
+ * 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default
+ * value is 1.
+ *
+ * @return the count value.
+ */
+ public Integer count() {
+ return this.innerProperties() == null ? null : this.innerProperties().count();
+ }
+
+ /**
+ * Set the count property: Number of agents (VMs) to host docker containers. Allowed values must be in the range of
+ * 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (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) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withCount(count);
+ return this;
+ }
+
+ /**
+ * Get the vmSize property: The size of the agent pool VMs. VM size availability varies by region. If a node
+ * contains insufficient compute resources (memory, cpu, etc) pods might fail to run correctly. For more details on
+ * restricted VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions.
+ *
+ * @return the vmSize value.
+ */
+ public String vmSize() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmSize();
+ }
+
+ /**
+ * Set the vmSize property: The size of the agent pool VMs. VM size availability varies by region. If a node
+ * contains insufficient compute resources (memory, cpu, etc) pods might fail to run correctly. For more details on
+ * restricted VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions.
+ *
+ * @param vmSize the vmSize value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withVmSize(String vmSize) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withVmSize(vmSize);
+ return this;
+ }
+
+ /**
+ * Get the osDiskSizeGB property: OS Disk Size in GB to be used to specify the disk size for every machine in the
+ * 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.innerProperties() == null ? null : this.innerProperties().osDiskSizeGB();
+ }
+
+ /**
+ * Set the osDiskSizeGB property: OS Disk Size in GB to be used to specify the disk size for every machine in the
+ * 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) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOsDiskSizeGB(osDiskSizeGB);
+ return this;
+ }
+
+ /**
+ * Get the osDiskType property: The OS disk type to be used for machines in the agent pool. The default is
+ * 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB. Otherwise,
+ * defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ *
+ * @return the osDiskType value.
+ */
+ public OSDiskType osDiskType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osDiskType();
+ }
+
+ /**
+ * Set the osDiskType property: The OS disk type to be used for machines in the agent pool. The default is
+ * 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB. Otherwise,
+ * defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ *
+ * @param osDiskType the osDiskType value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsDiskType(OSDiskType osDiskType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOsDiskType(osDiskType);
+ return this;
+ }
+
+ /**
+ * Get the kubeletDiskType property: Determines the placement of emptyDir volumes, container runtime data root, and
+ * Kubelet ephemeral storage.
+ *
+ * @return the kubeletDiskType value.
+ */
+ public KubeletDiskType kubeletDiskType() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubeletDiskType();
+ }
+
+ /**
+ * Set the kubeletDiskType property: Determines the placement of emptyDir volumes, container runtime data root, and
+ * Kubelet ephemeral storage.
+ *
+ * @param kubeletDiskType the kubeletDiskType value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withKubeletDiskType(KubeletDiskType kubeletDiskType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withKubeletDiskType(kubeletDiskType);
+ return this;
+ }
+
+ /**
+ * Get the workloadRuntime property: Determines the type of workload a node can run.
+ *
+ * @return the workloadRuntime value.
+ */
+ public WorkloadRuntime workloadRuntime() {
+ return this.innerProperties() == null ? null : this.innerProperties().workloadRuntime();
+ }
+
+ /**
+ * Set the workloadRuntime property: Determines the type of workload a node can run.
+ *
+ * @param workloadRuntime the workloadRuntime value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withWorkloadRuntime(WorkloadRuntime workloadRuntime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withWorkloadRuntime(workloadRuntime);
+ return this;
+ }
+
+ /**
+ * Get the messageOfTheDay property: Message of the day for Linux nodes, base64-encoded. A base64-encoded string
+ * which will be written to /etc/motd after decoding. This allows customization of the message of the day for Linux
+ * nodes. It must not be specified for Windows nodes. It must be a static string (i.e., will be printed raw and not
+ * be executed as a script).
+ *
+ * @return the messageOfTheDay value.
+ */
+ public String messageOfTheDay() {
+ return this.innerProperties() == null ? null : this.innerProperties().messageOfTheDay();
+ }
+
+ /**
+ * Set the messageOfTheDay property: Message of the day for Linux nodes, base64-encoded. A base64-encoded string
+ * which will be written to /etc/motd after decoding. This allows customization of the message of the day for Linux
+ * nodes. It must not be specified for Windows nodes. It must be a static string (i.e., will be printed raw and not
+ * be executed as a script).
+ *
+ * @param messageOfTheDay the messageOfTheDay value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMessageOfTheDay(String messageOfTheDay) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMessageOfTheDay(messageOfTheDay);
+ return this;
+ }
+
+ /**
+ * Get the vnetSubnetId property: The ID of the subnet which agent pool nodes and optionally pods will join on
+ * startup. If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified,
+ * this applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @return the vnetSubnetId value.
+ */
+ public String vnetSubnetId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vnetSubnetId();
+ }
+
+ /**
+ * Set the vnetSubnetId property: The ID of the subnet which agent pool nodes and optionally pods will join on
+ * startup. If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified,
+ * this applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @param vnetSubnetId the vnetSubnetId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withVnetSubnetId(String vnetSubnetId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withVnetSubnetId(vnetSubnetId);
+ return this;
+ }
+
+ /**
+ * Get the podSubnetId property: The ID of the subnet which pods will join when launched. If omitted, pod IPs are
+ * statically assigned on the node subnet (see vnetSubnetID for more details). This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @return the podSubnetId value.
+ */
+ public String podSubnetId() {
+ return this.innerProperties() == null ? null : this.innerProperties().podSubnetId();
+ }
+
+ /**
+ * Set the podSubnetId property: The ID of the subnet which pods will join when launched. If omitted, pod IPs are
+ * statically assigned on the node subnet (see vnetSubnetID for more details). This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @param podSubnetId the podSubnetId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withPodSubnetId(String podSubnetId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withPodSubnetId(podSubnetId);
+ return this;
+ }
+
+ /**
+ * Get the maxPods property: The maximum number of pods that can run on a node.
+ *
+ * @return the maxPods value.
+ */
+ public Integer maxPods() {
+ return this.innerProperties() == null ? null : this.innerProperties().maxPods();
+ }
+
+ /**
+ * Set the maxPods property: The 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) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMaxPods(maxPods);
+ return this;
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * Set the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @param osType the osType value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsType(OSType osType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOsType(osType);
+ return this;
+ }
+
+ /**
+ * Get the osSku property: Specifies an OS SKU. This value must not be specified if OSType is Windows.
+ *
+ * @return the osSku value.
+ */
+ public Ossku osSku() {
+ return this.innerProperties() == null ? null : this.innerProperties().osSku();
+ }
+
+ /**
+ * Set the osSku property: Specifies an OS SKU. This value must not be specified if OSType is Windows.
+ *
+ * @param osSku the osSku value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsSku(Ossku osSku) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOsSku(osSku);
+ return this;
+ }
+
+ /**
+ * Get the maxCount property: The maximum number of nodes for auto-scaling.
+ *
+ * @return the maxCount value.
+ */
+ public Integer maxCount() {
+ return this.innerProperties() == null ? null : this.innerProperties().maxCount();
+ }
+
+ /**
+ * Set the maxCount property: The maximum number of nodes for auto-scaling.
+ *
+ * @param maxCount the maxCount value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMaxCount(Integer maxCount) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMaxCount(maxCount);
+ return this;
+ }
+
+ /**
+ * Get the minCount property: The minimum number of nodes for auto-scaling.
+ *
+ * @return the minCount value.
+ */
+ public Integer minCount() {
+ return this.innerProperties() == null ? null : this.innerProperties().minCount();
+ }
+
+ /**
+ * Set the minCount property: The minimum number of nodes for auto-scaling.
+ *
+ * @param minCount the minCount value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMinCount(Integer minCount) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMinCount(minCount);
+ return this;
+ }
+
+ /**
+ * Get the enableAutoScaling property: Whether to enable auto-scaler.
+ *
+ * @return the enableAutoScaling value.
+ */
+ public Boolean enableAutoScaling() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableAutoScaling();
+ }
+
+ /**
+ * Set the enableAutoScaling property: Whether to enable auto-scaler.
+ *
+ * @param enableAutoScaling the enableAutoScaling value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableAutoScaling(Boolean enableAutoScaling) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableAutoScaling(enableAutoScaling);
+ return this;
+ }
+
+ /**
+ * Get the scaleDownMode property: This also effects the cluster autoscaler behavior. If not specified, it defaults
+ * to Delete.
+ *
+ * @return the scaleDownMode value.
+ */
+ public ScaleDownMode scaleDownMode() {
+ return this.innerProperties() == null ? null : this.innerProperties().scaleDownMode();
+ }
+
+ /**
+ * Set the scaleDownMode property: This also effects the cluster autoscaler behavior. If not specified, it defaults
+ * to Delete.
+ *
+ * @param scaleDownMode the scaleDownMode value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withScaleDownMode(ScaleDownMode scaleDownMode) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withScaleDownMode(scaleDownMode);
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of Agent Pool.
+ *
+ * @return the type value.
+ */
+ public AgentPoolType typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Set the type property: The type of Agent Pool.
+ *
+ * @param type the type value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withTypePropertiesType(AgentPoolType type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the mode property: The mode of an agent pool. A cluster must have at least one 'System' Agent Pool at all
+ * times. For additional information on agent pool restrictions and best practices, see:
+ * https://docs.microsoft.com/azure/aks/use-system-pools.
+ *
+ * @return the mode value.
+ */
+ public AgentPoolMode mode() {
+ return this.innerProperties() == null ? null : this.innerProperties().mode();
+ }
+
+ /**
+ * Set the mode property: The mode of an agent pool. A cluster must have at least one 'System' Agent Pool at all
+ * times. For additional information on agent pool restrictions and best practices, see:
+ * https://docs.microsoft.com/azure/aks/use-system-pools.
+ *
+ * @param mode the mode value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMode(AgentPoolMode mode) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMode(mode);
+ return this;
+ }
+
+ /**
+ * Get the orchestratorVersion property: The version of Kubernetes running on the Agent Pool. As a best practice,
+ * you should upgrade all node pools in an AKS cluster to the same Kubernetes version. The node pool version must
+ * have the same major version as the control plane. The node pool minor version must be within two minor versions
+ * of the control plane version. The node pool version cannot be greater than the control plane version. For more
+ * information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ *
+ * @return the orchestratorVersion value.
+ */
+ public String orchestratorVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().orchestratorVersion();
+ }
+
+ /**
+ * Set the orchestratorVersion property: The version of Kubernetes running on the Agent Pool. As a best practice,
+ * you should upgrade all node pools in an AKS cluster to the same Kubernetes version. The node pool version must
+ * have the same major version as the control plane. The node pool minor version must be within two minor versions
+ * of the control plane version. The node pool version cannot be greater than the control plane version. For more
+ * information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOrchestratorVersion(String orchestratorVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOrchestratorVersion(orchestratorVersion);
+ return this;
+ }
+
+ /**
+ * Get the nodeImageVersion property: The version of node image.
+ *
+ * @return the nodeImageVersion value.
+ */
+ public String nodeImageVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeImageVersion();
+ }
+
+ /**
+ * Get the upgradeSettings property: Settings for upgrading the agentpool.
+ *
+ * @return the upgradeSettings value.
+ */
+ public AgentPoolUpgradeSettings upgradeSettings() {
+ return this.innerProperties() == null ? null : this.innerProperties().upgradeSettings();
+ }
+
+ /**
+ * Set the upgradeSettings property: Settings for upgrading the agentpool.
+ *
+ * @param upgradeSettings the upgradeSettings value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withUpgradeSettings(upgradeSettings);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The current deployment or provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the powerState property: When an Agent Pool is first created it is initially Running. The Agent Pool can be
+ * stopped by setting this field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing
+ * charges. An Agent Pool can only be stopped if it is Running and provisioning state is Succeeded.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.innerProperties() == null ? null : this.innerProperties().powerState();
+ }
+
+ /**
+ * Set the powerState property: When an Agent Pool is first created it is initially Running. The Agent Pool can be
+ * stopped by setting this field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing
+ * charges. An Agent Pool can only be stopped if it is Running and provisioning state is Succeeded.
+ *
+ * @param powerState the powerState value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withPowerState(PowerState powerState) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withPowerState(powerState);
+ return this;
+ }
+
+ /**
+ * Get the availabilityZones property: The list of Availability zones to use for nodes. This can only be specified
+ * if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ *
+ * @return the availabilityZones value.
+ */
+ public List availabilityZones() {
+ return this.innerProperties() == null ? null : this.innerProperties().availabilityZones();
+ }
+
+ /**
+ * Set the availabilityZones property: The list of Availability zones to use for nodes. This can only be specified
+ * if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ *
+ * @param availabilityZones the availabilityZones value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withAvailabilityZones(List availabilityZones) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withAvailabilityZones(availabilityZones);
+ return this;
+ }
+
+ /**
+ * Get the enableNodePublicIp property: Whether each node is allocated its own public IP. Some scenarios may require
+ * nodes in a node pool to receive their own dedicated public IP addresses. A common scenario is for gaming
+ * workloads, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. For
+ * more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ *
+ * @return the enableNodePublicIp value.
+ */
+ public Boolean enableNodePublicIp() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableNodePublicIp();
+ }
+
+ /**
+ * Set the enableNodePublicIp property: Whether each node is allocated its own public IP. Some scenarios may require
+ * nodes in a node pool to receive their own dedicated public IP addresses. A common scenario is for gaming
+ * workloads, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. For
+ * more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ *
+ * @param enableNodePublicIp the enableNodePublicIp value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableNodePublicIp(Boolean enableNodePublicIp) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableNodePublicIp(enableNodePublicIp);
+ return this;
+ }
+
+ /**
+ * Get the nodePublicIpPrefixId property: The public IP prefix ID which VM nodes should use IPs from. This is of the
+ * form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}.
+ *
+ * @return the nodePublicIpPrefixId value.
+ */
+ public String nodePublicIpPrefixId() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodePublicIpPrefixId();
+ }
+
+ /**
+ * Set the nodePublicIpPrefixId property: The public IP prefix ID which VM nodes should use IPs from. This is of the
+ * form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}.
+ *
+ * @param nodePublicIpPrefixId the nodePublicIpPrefixId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNodePublicIpPrefixId(String nodePublicIpPrefixId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withNodePublicIpPrefixId(nodePublicIpPrefixId);
+ return this;
+ }
+
+ /**
+ * Get the scaleSetPriority property: The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ *
+ * @return the scaleSetPriority value.
+ */
+ public ScaleSetPriority scaleSetPriority() {
+ return this.innerProperties() == null ? null : this.innerProperties().scaleSetPriority();
+ }
+
+ /**
+ * Set the scaleSetPriority property: The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ *
+ * @param scaleSetPriority the scaleSetPriority value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withScaleSetPriority(ScaleSetPriority scaleSetPriority) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withScaleSetPriority(scaleSetPriority);
+ return this;
+ }
+
+ /**
+ * Get the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy. This cannot be specified
+ * unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ *
+ * @return the scaleSetEvictionPolicy value.
+ */
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().scaleSetEvictionPolicy();
+ }
+
+ /**
+ * Set the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy. This cannot be specified
+ * unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ *
+ * @param scaleSetEvictionPolicy the scaleSetEvictionPolicy value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withScaleSetEvictionPolicy(scaleSetEvictionPolicy);
+ return this;
+ }
+
+ /**
+ * Get the spotMaxPrice property: The max price (in US Dollars) you are willing to pay for spot instances. Possible
+ * values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing).
+ *
+ * @return the spotMaxPrice value.
+ */
+ public Float spotMaxPrice() {
+ return this.innerProperties() == null ? null : this.innerProperties().spotMaxPrice();
+ }
+
+ /**
+ * Set the spotMaxPrice property: The max price (in US Dollars) you are willing to pay for spot instances. Possible
+ * values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing).
+ *
+ * @param spotMaxPrice the spotMaxPrice value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withSpotMaxPrice(Float spotMaxPrice) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withSpotMaxPrice(spotMaxPrice);
+ return this;
+ }
+
+ /**
+ * Get the tags property: The tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.innerProperties() == null ? null : this.innerProperties().tags();
+ }
+
+ /**
+ * Set the tags property: The 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) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the nodeLabels property: The node labels to be persisted across all nodes in agent pool.
+ *
+ * @return the nodeLabels value.
+ */
+ public Map nodeLabels() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeLabels();
+ }
+
+ /**
+ * Set the nodeLabels property: The 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) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withNodeLabels(nodeLabels);
+ return this;
+ }
+
+ /**
+ * Get the nodeTaints property: The 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.innerProperties() == null ? null : this.innerProperties().nodeTaints();
+ }
+
+ /**
+ * Set the nodeTaints property: The 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) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withNodeTaints(nodeTaints);
+ return this;
+ }
+
+ /**
+ * Get the proximityPlacementGroupId property: The ID for Proximity Placement Group.
+ *
+ * @return the proximityPlacementGroupId value.
+ */
+ public String proximityPlacementGroupId() {
+ return this.innerProperties() == null ? null : this.innerProperties().proximityPlacementGroupId();
+ }
+
+ /**
+ * Set the proximityPlacementGroupId property: The ID for Proximity Placement Group.
+ *
+ * @param proximityPlacementGroupId the proximityPlacementGroupId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withProximityPlacementGroupId(String proximityPlacementGroupId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withProximityPlacementGroupId(proximityPlacementGroupId);
+ return this;
+ }
+
+ /**
+ * Get the kubeletConfig property: Kubelet configurations of agent nodes. The Kubelet configuration on the agent
+ * pool nodes.
+ *
+ * @return the kubeletConfig value.
+ */
+ public KubeletConfig kubeletConfig() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubeletConfig();
+ }
+
+ /**
+ * Set the kubeletConfig property: Kubelet configurations of agent nodes. The Kubelet configuration on the agent
+ * pool nodes.
+ *
+ * @param kubeletConfig the kubeletConfig value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withKubeletConfig(KubeletConfig kubeletConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withKubeletConfig(kubeletConfig);
+ return this;
+ }
+
+ /**
+ * Get the linuxOSConfig property: OS configurations of Linux agent nodes. The OS configuration of Linux agent
+ * nodes.
+ *
+ * @return the linuxOSConfig value.
+ */
+ public LinuxOSConfig linuxOSConfig() {
+ return this.innerProperties() == null ? null : this.innerProperties().linuxOSConfig();
+ }
+
+ /**
+ * Set the linuxOSConfig property: OS configurations of Linux agent nodes. The OS configuration of Linux agent
+ * nodes.
+ *
+ * @param linuxOSConfig the linuxOSConfig value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withLinuxOSConfig(LinuxOSConfig linuxOSConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withLinuxOSConfig(linuxOSConfig);
+ return this;
+ }
+
+ /**
+ * Get the enableEncryptionAtHost property: Whether to enable host based OS and data drive encryption. This is only
+ * supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption.
+ *
+ * @return the enableEncryptionAtHost value.
+ */
+ public Boolean enableEncryptionAtHost() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableEncryptionAtHost();
+ }
+
+ /**
+ * Set the enableEncryptionAtHost property: Whether to enable host based OS and data drive encryption. This is only
+ * supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption.
+ *
+ * @param enableEncryptionAtHost the enableEncryptionAtHost value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableEncryptionAtHost(Boolean enableEncryptionAtHost) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableEncryptionAtHost(enableEncryptionAtHost);
+ return this;
+ }
+
+ /**
+ * Get the enableUltraSsd property: Whether to enable UltraSSD.
+ *
+ * @return the enableUltraSsd value.
+ */
+ public Boolean enableUltraSsd() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableUltraSsd();
+ }
+
+ /**
+ * Set the enableUltraSsd property: Whether to enable UltraSSD.
+ *
+ * @param enableUltraSsd the enableUltraSsd value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableUltraSsd(Boolean enableUltraSsd) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableUltraSsd(enableUltraSsd);
+ return this;
+ }
+
+ /**
+ * Get the enableFips property: Whether to use a FIPS-enabled OS. See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more
+ * details.
+ *
+ * @return the enableFips value.
+ */
+ public Boolean enableFips() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableFips();
+ }
+
+ /**
+ * Set the enableFips property: Whether to use a FIPS-enabled OS. See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more
+ * details.
+ *
+ * @param enableFips the enableFips value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableFips(Boolean enableFips) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableFips(enableFips);
+ return this;
+ }
+
+ /**
+ * Get the gpuInstanceProfile property: GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ *
+ * @return the gpuInstanceProfile value.
+ */
+ public GpuInstanceProfile gpuInstanceProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().gpuInstanceProfile();
+ }
+
+ /**
+ * Set the gpuInstanceProfile property: GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ *
+ * @param gpuInstanceProfile the gpuInstanceProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withGpuInstanceProfile(GpuInstanceProfile gpuInstanceProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withGpuInstanceProfile(gpuInstanceProfile);
+ return this;
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source Snapshot ID if the node pool will be
+ * created/upgraded using a snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.innerProperties() == null ? null : this.innerProperties().creationData();
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source Snapshot ID if the node pool will be
+ * created/upgraded using a snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withCreationData(CreationData creationData) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withCreationData(creationData);
+ return this;
+ }
+
+ /**
+ * Get the capacityReservationGroupId property: AKS will associate the specified agent pool with the Capacity
+ * Reservation Group.
+ *
+ * @return the capacityReservationGroupId value.
+ */
+ public String capacityReservationGroupId() {
+ return this.innerProperties() == null ? null : this.innerProperties().capacityReservationGroupId();
+ }
+
+ /**
+ * Set the capacityReservationGroupId property: AKS will associate the specified agent pool with the Capacity
+ * Reservation Group.
+ *
+ * @param capacityReservationGroupId the capacityReservationGroupId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withCapacityReservationGroupId(String capacityReservationGroupId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withCapacityReservationGroupId(capacityReservationGroupId);
+ return this;
+ }
+
+ /**
+ * Get the hostGroupId property: The fully qualified resource ID of the Dedicated Host Group to provision virtual
+ * machines from, used only in creation scenario and not allowed to changed once set. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ *
+ * @return the hostGroupId value.
+ */
+ public String hostGroupId() {
+ return this.innerProperties() == null ? null : this.innerProperties().hostGroupId();
+ }
+
+ /**
+ * Set the hostGroupId property: The fully qualified resource ID of the Dedicated Host Group to provision virtual
+ * machines from, used only in creation scenario and not allowed to changed once set. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ *
+ * @param hostGroupId the hostGroupId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withHostGroupId(String hostGroupId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withHostGroupId(hostGroupId);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileInner.java
new file mode 100644
index 0000000000000..03246d9f6b344
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileInner.java
@@ -0,0 +1,187 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of available upgrades for an agent pool. */
+@Fluent
+public final class AgentPoolUpgradeProfileInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AgentPoolUpgradeProfileInner.class);
+
+ /*
+ * The ID of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The type of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The properties of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private AgentPoolUpgradeProfileProperties innerProperties = new AgentPoolUpgradeProfileProperties();
+
+ /**
+ * Get the id property: The ID of the agent pool upgrade profile.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The name of the agent pool upgrade profile.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The type of the agent pool upgrade profile.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: The properties of the agent pool upgrade profile.
+ *
+ * @return the innerProperties value.
+ */
+ private AgentPoolUpgradeProfileProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubernetesVersion();
+ }
+
+ /**
+ * Set the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set.
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withKubernetesVersion(String kubernetesVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolUpgradeProfileProperties();
+ }
+ this.innerProperties().withKubernetesVersion(kubernetesVersion);
+ return this;
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * Set the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @param osType the osType value to set.
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withOsType(OSType osType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolUpgradeProfileProperties();
+ }
+ this.innerProperties().withOsType(osType);
+ return this;
+ }
+
+ /**
+ * Get the upgrades property: List of orchestrator types and versions available for upgrade.
+ *
+ * @return the upgrades value.
+ */
+ public List upgrades() {
+ return this.innerProperties() == null ? null : this.innerProperties().upgrades();
+ }
+
+ /**
+ * Set the upgrades property: 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) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolUpgradeProfileProperties();
+ }
+ this.innerProperties().withUpgrades(upgrades);
+ return this;
+ }
+
+ /**
+ * Get the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @return the latestNodeImageVersion value.
+ */
+ public String latestNodeImageVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().latestNodeImageVersion();
+ }
+
+ /**
+ * Set the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @param latestNodeImageVersion the latestNodeImageVersion value to set.
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withLatestNodeImageVersion(String latestNodeImageVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolUpgradeProfileProperties();
+ }
+ this.innerProperties().withLatestNodeImageVersion(latestNodeImageVersion);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model AgentPoolUpgradeProfileInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileProperties.java
new file mode 100644
index 0000000000000..4d7a8f07428bd
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileProperties.java
@@ -0,0 +1,148 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of available upgrade versions. */
+@Fluent
+public final class AgentPoolUpgradeProfileProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AgentPoolUpgradeProfileProperties.class);
+
+ /*
+ * The Kubernetes version (major.minor.patch).
+ */
+ @JsonProperty(value = "kubernetesVersion", required = true)
+ private String kubernetesVersion;
+
+ /*
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux.
+ */
+ @JsonProperty(value = "osType", required = true)
+ private OSType osType;
+
+ /*
+ * List of orchestrator types and versions available for upgrade.
+ */
+ @JsonProperty(value = "upgrades")
+ private List upgrades;
+
+ /*
+ * The latest AKS supported node image version.
+ */
+ @JsonProperty(value = "latestNodeImageVersion")
+ private String latestNodeImageVersion;
+
+ /**
+ * Get the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set.
+ * @return the AgentPoolUpgradeProfileProperties object itself.
+ */
+ public AgentPoolUpgradeProfileProperties withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @param osType the osType value to set.
+ * @return the AgentPoolUpgradeProfileProperties object itself.
+ */
+ public AgentPoolUpgradeProfileProperties withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the upgrades property: List of orchestrator types and versions available for upgrade.
+ *
+ * @return the upgrades value.
+ */
+ public List upgrades() {
+ return this.upgrades;
+ }
+
+ /**
+ * Set the upgrades property: List of orchestrator types and versions available for upgrade.
+ *
+ * @param upgrades the upgrades value to set.
+ * @return the AgentPoolUpgradeProfileProperties object itself.
+ */
+ public AgentPoolUpgradeProfileProperties withUpgrades(
+ List upgrades) {
+ this.upgrades = upgrades;
+ return this;
+ }
+
+ /**
+ * Get the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @return the latestNodeImageVersion value.
+ */
+ public String latestNodeImageVersion() {
+ return this.latestNodeImageVersion;
+ }
+
+ /**
+ * Set the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @param latestNodeImageVersion the latestNodeImageVersion value to set.
+ * @return the AgentPoolUpgradeProfileProperties object itself.
+ */
+ public AgentPoolUpgradeProfileProperties withLatestNodeImageVersion(String latestNodeImageVersion) {
+ this.latestNodeImageVersion = latestNodeImageVersion;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (kubernetesVersion() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property kubernetesVersion in model AgentPoolUpgradeProfileProperties"));
+ }
+ if (osType() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property osType in model AgentPoolUpgradeProfileProperties"));
+ }
+ if (upgrades() != null) {
+ upgrades().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CommandResultProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CommandResultProperties.java
new file mode 100644
index 0000000000000..ab9a1651c1dd4
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CommandResultProperties.java
@@ -0,0 +1,115 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The results of a run command. */
+@Immutable
+public final class CommandResultProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CommandResultProperties.class);
+
+ /*
+ * provisioning State
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * The exit code of the command
+ */
+ @JsonProperty(value = "exitCode", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer exitCode;
+
+ /*
+ * The time when the command started.
+ */
+ @JsonProperty(value = "startedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime startedAt;
+
+ /*
+ * The time when the command finished.
+ */
+ @JsonProperty(value = "finishedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime finishedAt;
+
+ /*
+ * The command output.
+ */
+ @JsonProperty(value = "logs", access = JsonProperty.Access.WRITE_ONLY)
+ private String logs;
+
+ /*
+ * An explanation of why provisioningState is set to failed (if so).
+ */
+ @JsonProperty(value = "reason", access = JsonProperty.Access.WRITE_ONLY)
+ private String reason;
+
+ /**
+ * Get the provisioningState property: provisioning State.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the exitCode property: The exit code of the command.
+ *
+ * @return the exitCode value.
+ */
+ public Integer exitCode() {
+ return this.exitCode;
+ }
+
+ /**
+ * Get the startedAt property: The time when the command started.
+ *
+ * @return the startedAt value.
+ */
+ public OffsetDateTime startedAt() {
+ return this.startedAt;
+ }
+
+ /**
+ * Get the finishedAt property: The time when the command finished.
+ *
+ * @return the finishedAt value.
+ */
+ public OffsetDateTime finishedAt() {
+ return this.finishedAt;
+ }
+
+ /**
+ * Get the logs property: The command output.
+ *
+ * @return the logs value.
+ */
+ public String logs() {
+ return this.logs;
+ }
+
+ /**
+ * Get the reason property: An explanation of why provisioningState is set to failed (if so).
+ *
+ * @return the reason value.
+ */
+ public String reason() {
+ return this.reason;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CredentialResultsInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CredentialResultsInner.java
new file mode 100644
index 0000000000000..9404fdbec634a
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CredentialResultsInner.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.CredentialResult;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list credential result response. */
+@Immutable
+public final class CredentialResultsInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CredentialResultsInner.class);
+
+ /*
+ * Base64-encoded Kubernetes configuration file.
+ */
+ @JsonProperty(value = "kubeconfigs", access = JsonProperty.Access.WRITE_ONLY)
+ private List kubeconfigs;
+
+ /**
+ * Get the kubeconfigs property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeconfigs value.
+ */
+ public List kubeconfigs() {
+ return this.kubeconfigs;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (kubeconfigs() != null) {
+ kubeconfigs().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationInner.java
new file mode 100644
index 0000000000000..097885d790951
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationInner.java
@@ -0,0 +1,153 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.SubResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservice.generated.models.TimeSpan;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * Planned maintenance configuration, used to configure when updates can be deployed to a Managed Cluster. See [planned
+ * maintenance](https://docs.microsoft.com/azure/aks/planned-maintenance) for more information about planned
+ * maintenance.
+ */
+@Fluent
+public final class MaintenanceConfigurationInner extends SubResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(MaintenanceConfigurationInner.class);
+
+ /*
+ * The system metadata relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a default maintenance configuration.
+ */
+ @JsonProperty(value = "properties")
+ private MaintenanceConfigurationProperties innerProperties;
+
+ /*
+ * 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 the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a default maintenance configuration.
+ *
+ * @return the innerProperties value.
+ */
+ private MaintenanceConfigurationProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the name property: 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 the type property: Resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public MaintenanceConfigurationInner withId(String id) {
+ super.withId(id);
+ return this;
+ }
+
+ /**
+ * Get the timeInWeek property: Time slots during the week when planned maintenance is allowed to proceed. If two
+ * array entries specify the same day of the week, the applied configuration is the union of times in both entries.
+ *
+ * @return the timeInWeek value.
+ */
+ public List timeInWeek() {
+ return this.innerProperties() == null ? null : this.innerProperties().timeInWeek();
+ }
+
+ /**
+ * Set the timeInWeek property: Time slots during the week when planned maintenance is allowed to proceed. If two
+ * array entries specify the same day of the week, the applied configuration is the union of times in both entries.
+ *
+ * @param timeInWeek the timeInWeek value to set.
+ * @return the MaintenanceConfigurationInner object itself.
+ */
+ public MaintenanceConfigurationInner withTimeInWeek(List timeInWeek) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MaintenanceConfigurationProperties();
+ }
+ this.innerProperties().withTimeInWeek(timeInWeek);
+ return this;
+ }
+
+ /**
+ * Get the notAllowedTime property: Time slots on which upgrade is not allowed.
+ *
+ * @return the notAllowedTime value.
+ */
+ public List notAllowedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().notAllowedTime();
+ }
+
+ /**
+ * Set the notAllowedTime property: Time slots on which upgrade is not allowed.
+ *
+ * @param notAllowedTime the notAllowedTime value to set.
+ * @return the MaintenanceConfigurationInner object itself.
+ */
+ public MaintenanceConfigurationInner withNotAllowedTime(List notAllowedTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MaintenanceConfigurationProperties();
+ }
+ this.innerProperties().withNotAllowedTime(notAllowedTime);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationProperties.java
new file mode 100644
index 0000000000000..4688518df4797
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationProperties.java
@@ -0,0 +1,89 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservice.generated.models.TimeSpan;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Properties used to configure planned maintenance for a Managed Cluster. */
+@Fluent
+public final class MaintenanceConfigurationProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(MaintenanceConfigurationProperties.class);
+
+ /*
+ * Time slots during the week when planned maintenance is allowed to
+ * proceed. If two array entries specify the same day of the week, the
+ * applied configuration is the union of times in both entries.
+ */
+ @JsonProperty(value = "timeInWeek")
+ private List timeInWeek;
+
+ /*
+ * Time slots on which upgrade is not allowed.
+ */
+ @JsonProperty(value = "notAllowedTime")
+ private List notAllowedTime;
+
+ /**
+ * Get the timeInWeek property: Time slots during the week when planned maintenance is allowed to proceed. If two
+ * array entries specify the same day of the week, the applied configuration is the union of times in both entries.
+ *
+ * @return the timeInWeek value.
+ */
+ public List timeInWeek() {
+ return this.timeInWeek;
+ }
+
+ /**
+ * Set the timeInWeek property: Time slots during the week when planned maintenance is allowed to proceed. If two
+ * array entries specify the same day of the week, the applied configuration is the union of times in both entries.
+ *
+ * @param timeInWeek the timeInWeek value to set.
+ * @return the MaintenanceConfigurationProperties object itself.
+ */
+ public MaintenanceConfigurationProperties withTimeInWeek(List timeInWeek) {
+ this.timeInWeek = timeInWeek;
+ return this;
+ }
+
+ /**
+ * Get the notAllowedTime property: Time slots on which upgrade is not allowed.
+ *
+ * @return the notAllowedTime value.
+ */
+ public List notAllowedTime() {
+ return this.notAllowedTime;
+ }
+
+ /**
+ * Set the notAllowedTime property: Time slots on which upgrade is not allowed.
+ *
+ * @param notAllowedTime the notAllowedTime value to set.
+ * @return the MaintenanceConfigurationProperties object itself.
+ */
+ public MaintenanceConfigurationProperties withNotAllowedTime(List notAllowedTime) {
+ this.notAllowedTime = notAllowedTime;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (timeInWeek() != null) {
+ timeInWeek().forEach(e -> e.validate());
+ }
+ if (notAllowedTime() != null) {
+ notAllowedTime().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAccessProfileInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAccessProfileInner.java
new file mode 100644
index 0000000000000..76e31b8cee269
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAccessProfileInner.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Managed cluster Access Profile. */
+@Fluent
+public final class ManagedClusterAccessProfileInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ManagedClusterAccessProfileInner.class);
+
+ /*
+ * AccessProfile of a managed cluster.
+ */
+ @JsonProperty(value = "properties")
+ private AccessProfile innerProperties;
+
+ /**
+ * Get the innerProperties property: AccessProfile of a managed cluster.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessProfile innerProperties() {
+ return this.innerProperties;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ManagedClusterAccessProfileInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ManagedClusterAccessProfileInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeConfig value.
+ */
+ public byte[] kubeConfig() {
+ return this.innerProperties() == null ? new byte[0] : this.innerProperties().kubeConfig();
+ }
+
+ /**
+ * Set the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @param kubeConfig the kubeConfig value to set.
+ * @return the ManagedClusterAccessProfileInner object itself.
+ */
+ public ManagedClusterAccessProfileInner withKubeConfig(byte[] kubeConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessProfile();
+ }
+ this.innerProperties().withKubeConfig(kubeConfig);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAgentPoolProfileProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAgentPoolProfileProperties.java
new file mode 100644
index 0000000000000..57894ecc7f8bb
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAgentPoolProfileProperties.java
@@ -0,0 +1,1314 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolType;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeSettings;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.GpuInstanceProfile;
+import com.azure.resourcemanager.containerservice.generated.models.KubeletConfig;
+import com.azure.resourcemanager.containerservice.generated.models.KubeletDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.LinuxOSConfig;
+import com.azure.resourcemanager.containerservice.generated.models.OSDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.Ossku;
+import com.azure.resourcemanager.containerservice.generated.models.PowerState;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleDownMode;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleSetEvictionPolicy;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleSetPriority;
+import com.azure.resourcemanager.containerservice.generated.models.WorkloadRuntime;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Properties for the container service agent pool profile. */
+@Fluent
+public class ManagedClusterAgentPoolProfileProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ManagedClusterAgentPoolProfileProperties.class);
+
+ /*
+ * Number of agents (VMs) to host docker containers. Allowed values must be
+ * in the range of 0 to 1000 (inclusive) for user pools and in the range of
+ * 1 to 1000 (inclusive) for system pools. The default value is 1.
+ */
+ @JsonProperty(value = "count")
+ private Integer count;
+
+ /*
+ * The size of the agent pool VMs. VM size availability varies by region.
+ * If a node contains insufficient compute resources (memory, cpu, etc)
+ * pods might fail to run correctly. For more details on restricted VM
+ * sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions
+ */
+ @JsonProperty(value = "vmSize")
+ private String vmSize;
+
+ /*
+ * OS Disk Size in GB to be used to specify the disk size for every machine
+ * in the 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;
+
+ /*
+ * The OS disk type to be used for machines in the agent pool. The default
+ * is 'Ephemeral' if the VM supports it and has a cache disk larger than
+ * the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be
+ * changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ */
+ @JsonProperty(value = "osDiskType")
+ private OSDiskType osDiskType;
+
+ /*
+ * Determines the placement of emptyDir volumes, container runtime data
+ * root, and Kubelet ephemeral storage.
+ */
+ @JsonProperty(value = "kubeletDiskType")
+ private KubeletDiskType kubeletDiskType;
+
+ /*
+ * Determines the type of workload a node can run.
+ */
+ @JsonProperty(value = "workloadRuntime")
+ private WorkloadRuntime workloadRuntime;
+
+ /*
+ * Message of the day for Linux nodes, base64-encoded. A base64-encoded
+ * string which will be written to /etc/motd after decoding. This allows
+ * customization of the message of the day for Linux nodes. It must not be
+ * specified for Windows nodes. It must be a static string (i.e., will be
+ * printed raw and not be executed as a script).
+ */
+ @JsonProperty(value = "messageOfTheDay")
+ private String messageOfTheDay;
+
+ /*
+ * The ID of the subnet which agent pool nodes and optionally pods will
+ * join on startup. If this is not specified, a VNET and subnet will be
+ * generated and used. If no podSubnetID is specified, this applies to
+ * nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}
+ */
+ @JsonProperty(value = "vnetSubnetID")
+ private String vnetSubnetId;
+
+ /*
+ * The ID of the subnet which pods will join when launched. If omitted, pod
+ * IPs are statically assigned on the node subnet (see vnetSubnetID for
+ * more details). This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}
+ */
+ @JsonProperty(value = "podSubnetID")
+ private String podSubnetId;
+
+ /*
+ * The 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.
+ */
+ @JsonProperty(value = "osType")
+ private OSType osType;
+
+ /*
+ * Specifies an OS SKU. This value must not be specified if OSType is
+ * Windows.
+ */
+ @JsonProperty(value = "osSKU")
+ private Ossku osSku;
+
+ /*
+ * The maximum number of nodes for auto-scaling
+ */
+ @JsonProperty(value = "maxCount")
+ private Integer maxCount;
+
+ /*
+ * The minimum number of nodes for auto-scaling
+ */
+ @JsonProperty(value = "minCount")
+ private Integer minCount;
+
+ /*
+ * Whether to enable auto-scaler
+ */
+ @JsonProperty(value = "enableAutoScaling")
+ private Boolean enableAutoScaling;
+
+ /*
+ * This also effects the cluster autoscaler behavior. If not specified, it
+ * defaults to Delete.
+ */
+ @JsonProperty(value = "scaleDownMode")
+ private ScaleDownMode scaleDownMode;
+
+ /*
+ * The type of Agent Pool.
+ */
+ @JsonProperty(value = "type")
+ private AgentPoolType type;
+
+ /*
+ * The mode of an agent pool. A cluster must have at least one 'System'
+ * Agent Pool at all times. For additional information on agent pool
+ * restrictions and best practices, see:
+ * https://docs.microsoft.com/azure/aks/use-system-pools
+ */
+ @JsonProperty(value = "mode")
+ private AgentPoolMode mode;
+
+ /*
+ * The version of Kubernetes running on the Agent Pool. As a best practice,
+ * you should upgrade all node pools in an AKS cluster to the same
+ * Kubernetes version. The node pool version must have the same major
+ * version as the control plane. The node pool minor version must be within
+ * two minor versions of the control plane version. The node pool version
+ * cannot be greater than the control plane version. For more information
+ * see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ */
+ @JsonProperty(value = "orchestratorVersion")
+ private String orchestratorVersion;
+
+ /*
+ * The version of node image
+ */
+ @JsonProperty(value = "nodeImageVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeImageVersion;
+
+ /*
+ * Settings for upgrading the agentpool
+ */
+ @JsonProperty(value = "upgradeSettings")
+ private AgentPoolUpgradeSettings upgradeSettings;
+
+ /*
+ * The current deployment or provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * When an Agent Pool is first created it is initially Running. The Agent
+ * Pool can be stopped by setting this field to Stopped. A stopped Agent
+ * Pool stops all of its VMs and does not accrue billing charges. An Agent
+ * Pool can only be stopped if it is Running and provisioning state is
+ * Succeeded
+ */
+ @JsonProperty(value = "powerState")
+ private PowerState powerState;
+
+ /*
+ * The list of Availability zones to use for nodes. This can only be
+ * specified if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ */
+ @JsonProperty(value = "availabilityZones")
+ private List availabilityZones;
+
+ /*
+ * Whether each node is allocated its own public IP. Some scenarios may
+ * require nodes in a node pool to receive their own dedicated public IP
+ * addresses. A common scenario is for gaming workloads, where a console
+ * needs to make a direct connection to a cloud virtual machine to minimize
+ * hops. For more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ */
+ @JsonProperty(value = "enableNodePublicIP")
+ private Boolean enableNodePublicIp;
+
+ /*
+ * The public IP prefix ID which VM nodes should use IPs from. This is of
+ * the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}
+ */
+ @JsonProperty(value = "nodePublicIPPrefixID")
+ private String nodePublicIpPrefixId;
+
+ /*
+ * The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ */
+ @JsonProperty(value = "scaleSetPriority")
+ private ScaleSetPriority scaleSetPriority;
+
+ /*
+ * The Virtual Machine Scale Set eviction policy. This cannot be specified
+ * unless the scaleSetPriority is 'Spot'. If not specified, the default is
+ * 'Delete'.
+ */
+ @JsonProperty(value = "scaleSetEvictionPolicy")
+ private ScaleSetEvictionPolicy scaleSetEvictionPolicy;
+
+ /*
+ * The max price (in US Dollars) you are willing to pay for spot instances.
+ * Possible values are any decimal value greater than zero or -1 which
+ * indicates default price to be up-to on-demand. Possible values are any
+ * decimal value greater than zero or -1 which indicates the willingness to
+ * pay any on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing)
+ */
+ @JsonProperty(value = "spotMaxPrice")
+ private Float spotMaxPrice;
+
+ /*
+ * The tags to be persisted on the agent pool virtual machine scale set.
+ */
+ @JsonProperty(value = "tags")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map tags;
+
+ /*
+ * The node labels to be persisted across all nodes in agent pool.
+ */
+ @JsonProperty(value = "nodeLabels")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map nodeLabels;
+
+ /*
+ * The 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;
+
+ /*
+ * Kubelet configurations of agent nodes. The Kubelet configuration on the
+ * agent pool nodes.
+ */
+ @JsonProperty(value = "kubeletConfig")
+ private KubeletConfig kubeletConfig;
+
+ /*
+ * OS configurations of Linux agent nodes. The OS configuration of Linux
+ * agent nodes.
+ */
+ @JsonProperty(value = "linuxOSConfig")
+ private LinuxOSConfig linuxOSConfig;
+
+ /*
+ * Whether to enable host based OS and data drive encryption. This is only
+ * supported on certain VM sizes and in certain Azure regions. For more
+ * information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption
+ */
+ @JsonProperty(value = "enableEncryptionAtHost")
+ private Boolean enableEncryptionAtHost;
+
+ /*
+ * Whether to enable UltraSSD
+ */
+ @JsonProperty(value = "enableUltraSSD")
+ private Boolean enableUltraSsd;
+
+ /*
+ * Whether to use a FIPS-enabled OS. See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview)
+ * for more details.
+ */
+ @JsonProperty(value = "enableFIPS")
+ private Boolean enableFips;
+
+ /*
+ * GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ */
+ @JsonProperty(value = "gpuInstanceProfile")
+ private GpuInstanceProfile gpuInstanceProfile;
+
+ /*
+ * CreationData to be used to specify the source Snapshot ID if the node
+ * pool will be created/upgraded using a snapshot.
+ */
+ @JsonProperty(value = "creationData")
+ private CreationData creationData;
+
+ /*
+ * AKS will associate the specified agent pool with the Capacity
+ * Reservation Group.
+ */
+ @JsonProperty(value = "capacityReservationGroupID")
+ private String capacityReservationGroupId;
+
+ /*
+ * The fully qualified resource ID of the Dedicated Host Group to provision
+ * virtual machines from, used only in creation scenario and not allowed to
+ * changed once set. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ */
+ @JsonProperty(value = "hostGroupID")
+ private String hostGroupId;
+
+ /**
+ * Get the count property: Number of agents (VMs) to host docker containers. Allowed values must be in the range of
+ * 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default
+ * value is 1.
+ *
+ * @return the count value.
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set the count property: Number of agents (VMs) to host docker containers. Allowed values must be in the range of
+ * 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (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 the vmSize property: The size of the agent pool VMs. VM size availability varies by region. If a node
+ * contains insufficient compute resources (memory, cpu, etc) pods might fail to run correctly. For more details on
+ * restricted VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions.
+ *
+ * @return the vmSize value.
+ */
+ public String vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set the vmSize property: The size of the agent pool VMs. VM size availability varies by region. If a node
+ * contains insufficient compute resources (memory, cpu, etc) pods might fail to run correctly. For more details on
+ * restricted VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions.
+ *
+ * @param vmSize the vmSize value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withVmSize(String vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get the osDiskSizeGB property: OS Disk Size in GB to be used to specify the disk size for every machine in the
+ * 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 the osDiskSizeGB property: OS Disk Size in GB to be used to specify the disk size for every machine in the
+ * 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 the osDiskType property: The OS disk type to be used for machines in the agent pool. The default is
+ * 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB. Otherwise,
+ * defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ *
+ * @return the osDiskType value.
+ */
+ public OSDiskType osDiskType() {
+ return this.osDiskType;
+ }
+
+ /**
+ * Set the osDiskType property: The OS disk type to be used for machines in the agent pool. The default is
+ * 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB. Otherwise,
+ * defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ *
+ * @param osDiskType the osDiskType value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsDiskType(OSDiskType osDiskType) {
+ this.osDiskType = osDiskType;
+ return this;
+ }
+
+ /**
+ * Get the kubeletDiskType property: Determines the placement of emptyDir volumes, container runtime data root, and
+ * Kubelet ephemeral storage.
+ *
+ * @return the kubeletDiskType value.
+ */
+ public KubeletDiskType kubeletDiskType() {
+ return this.kubeletDiskType;
+ }
+
+ /**
+ * Set the kubeletDiskType property: Determines the placement of emptyDir volumes, container runtime data root, and
+ * Kubelet ephemeral storage.
+ *
+ * @param kubeletDiskType the kubeletDiskType value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withKubeletDiskType(KubeletDiskType kubeletDiskType) {
+ this.kubeletDiskType = kubeletDiskType;
+ return this;
+ }
+
+ /**
+ * Get the workloadRuntime property: Determines the type of workload a node can run.
+ *
+ * @return the workloadRuntime value.
+ */
+ public WorkloadRuntime workloadRuntime() {
+ return this.workloadRuntime;
+ }
+
+ /**
+ * Set the workloadRuntime property: Determines the type of workload a node can run.
+ *
+ * @param workloadRuntime the workloadRuntime value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withWorkloadRuntime(WorkloadRuntime workloadRuntime) {
+ this.workloadRuntime = workloadRuntime;
+ return this;
+ }
+
+ /**
+ * Get the messageOfTheDay property: Message of the day for Linux nodes, base64-encoded. A base64-encoded string
+ * which will be written to /etc/motd after decoding. This allows customization of the message of the day for Linux
+ * nodes. It must not be specified for Windows nodes. It must be a static string (i.e., will be printed raw and not
+ * be executed as a script).
+ *
+ * @return the messageOfTheDay value.
+ */
+ public String messageOfTheDay() {
+ return this.messageOfTheDay;
+ }
+
+ /**
+ * Set the messageOfTheDay property: Message of the day for Linux nodes, base64-encoded. A base64-encoded string
+ * which will be written to /etc/motd after decoding. This allows customization of the message of the day for Linux
+ * nodes. It must not be specified for Windows nodes. It must be a static string (i.e., will be printed raw and not
+ * be executed as a script).
+ *
+ * @param messageOfTheDay the messageOfTheDay value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMessageOfTheDay(String messageOfTheDay) {
+ this.messageOfTheDay = messageOfTheDay;
+ return this;
+ }
+
+ /**
+ * Get the vnetSubnetId property: The ID of the subnet which agent pool nodes and optionally pods will join on
+ * startup. If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified,
+ * this applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @return the vnetSubnetId value.
+ */
+ public String vnetSubnetId() {
+ return this.vnetSubnetId;
+ }
+
+ /**
+ * Set the vnetSubnetId property: The ID of the subnet which agent pool nodes and optionally pods will join on
+ * startup. If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified,
+ * this applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @param vnetSubnetId the vnetSubnetId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withVnetSubnetId(String vnetSubnetId) {
+ this.vnetSubnetId = vnetSubnetId;
+ return this;
+ }
+
+ /**
+ * Get the podSubnetId property: The ID of the subnet which pods will join when launched. If omitted, pod IPs are
+ * statically assigned on the node subnet (see vnetSubnetID for more details). This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @return the podSubnetId value.
+ */
+ public String podSubnetId() {
+ return this.podSubnetId;
+ }
+
+ /**
+ * Set the podSubnetId property: The ID of the subnet which pods will join when launched. If omitted, pod IPs are
+ * statically assigned on the node subnet (see vnetSubnetID for more details). This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @param podSubnetId the podSubnetId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withPodSubnetId(String podSubnetId) {
+ this.podSubnetId = podSubnetId;
+ return this;
+ }
+
+ /**
+ * Get the maxPods property: The maximum number of pods that can run on a node.
+ *
+ * @return the maxPods value.
+ */
+ public Integer maxPods() {
+ return this.maxPods;
+ }
+
+ /**
+ * Set the maxPods property: The 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 the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @param osType the osType value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the osSku property: Specifies an OS SKU. This value must not be specified if OSType is Windows.
+ *
+ * @return the osSku value.
+ */
+ public Ossku osSku() {
+ return this.osSku;
+ }
+
+ /**
+ * Set the osSku property: Specifies an OS SKU. This value must not be specified if OSType is Windows.
+ *
+ * @param osSku the osSku value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsSku(Ossku osSku) {
+ this.osSku = osSku;
+ return this;
+ }
+
+ /**
+ * Get the maxCount property: The maximum number of nodes for auto-scaling.
+ *
+ * @return the maxCount value.
+ */
+ public Integer maxCount() {
+ return this.maxCount;
+ }
+
+ /**
+ * Set the maxCount property: The 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 the minCount property: The minimum number of nodes for auto-scaling.
+ *
+ * @return the minCount value.
+ */
+ public Integer minCount() {
+ return this.minCount;
+ }
+
+ /**
+ * Set the minCount property: The 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 the enableAutoScaling property: Whether to enable auto-scaler.
+ *
+ * @return the enableAutoScaling value.
+ */
+ public Boolean enableAutoScaling() {
+ return this.enableAutoScaling;
+ }
+
+ /**
+ * Set the enableAutoScaling property: 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 the scaleDownMode property: This also effects the cluster autoscaler behavior. If not specified, it defaults
+ * to Delete.
+ *
+ * @return the scaleDownMode value.
+ */
+ public ScaleDownMode scaleDownMode() {
+ return this.scaleDownMode;
+ }
+
+ /**
+ * Set the scaleDownMode property: This also effects the cluster autoscaler behavior. If not specified, it defaults
+ * to Delete.
+ *
+ * @param scaleDownMode the scaleDownMode value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withScaleDownMode(ScaleDownMode scaleDownMode) {
+ this.scaleDownMode = scaleDownMode;
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of Agent Pool.
+ *
+ * @return the type value.
+ */
+ public AgentPoolType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The type of Agent Pool.
+ *
+ * @param type the type value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withType(AgentPoolType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the mode property: The mode of an agent pool. A cluster must have at least one 'System' Agent Pool at all
+ * times. For additional information on agent pool restrictions and best practices, see:
+ * https://docs.microsoft.com/azure/aks/use-system-pools.
+ *
+ * @return the mode value.
+ */
+ public AgentPoolMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set the mode property: The mode of an agent pool. A cluster must have at least one 'System' Agent Pool at all
+ * times. For additional information on agent pool restrictions and best practices, see:
+ * https://docs.microsoft.com/azure/aks/use-system-pools.
+ *
+ * @param mode the mode value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMode(AgentPoolMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+ /**
+ * Get the orchestratorVersion property: The version of Kubernetes running on the Agent Pool. As a best practice,
+ * you should upgrade all node pools in an AKS cluster to the same Kubernetes version. The node pool version must
+ * have the same major version as the control plane. The node pool minor version must be within two minor versions
+ * of the control plane version. The node pool version cannot be greater than the control plane version. For more
+ * information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ *
+ * @return the orchestratorVersion value.
+ */
+ public String orchestratorVersion() {
+ return this.orchestratorVersion;
+ }
+
+ /**
+ * Set the orchestratorVersion property: The version of Kubernetes running on the Agent Pool. As a best practice,
+ * you should upgrade all node pools in an AKS cluster to the same Kubernetes version. The node pool version must
+ * have the same major version as the control plane. The node pool minor version must be within two minor versions
+ * of the control plane version. The node pool version cannot be greater than the control plane version. For more
+ * information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOrchestratorVersion(String orchestratorVersion) {
+ this.orchestratorVersion = orchestratorVersion;
+ return this;
+ }
+
+ /**
+ * Get the nodeImageVersion property: The version of node image.
+ *
+ * @return the nodeImageVersion value.
+ */
+ public String nodeImageVersion() {
+ return this.nodeImageVersion;
+ }
+
+ /**
+ * Get the upgradeSettings property: Settings for upgrading the agentpool.
+ *
+ * @return the upgradeSettings value.
+ */
+ public AgentPoolUpgradeSettings upgradeSettings() {
+ return this.upgradeSettings;
+ }
+
+ /**
+ * Set the upgradeSettings property: 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 provisioningState property: The current deployment or provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the powerState property: When an Agent Pool is first created it is initially Running. The Agent Pool can be
+ * stopped by setting this field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing
+ * charges. An Agent Pool can only be stopped if it is Running and provisioning state is Succeeded.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.powerState;
+ }
+
+ /**
+ * Set the powerState property: When an Agent Pool is first created it is initially Running. The Agent Pool can be
+ * stopped by setting this field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing
+ * charges. An Agent Pool can only be stopped if it is Running and provisioning state is Succeeded.
+ *
+ * @param powerState the powerState value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withPowerState(PowerState powerState) {
+ this.powerState = powerState;
+ return this;
+ }
+
+ /**
+ * Get the availabilityZones property: The list of Availability zones to use for nodes. This can only be specified
+ * if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ *
+ * @return the availabilityZones value.
+ */
+ public List availabilityZones() {
+ return this.availabilityZones;
+ }
+
+ /**
+ * Set the availabilityZones property: The list of Availability zones to use for nodes. This can only be specified
+ * if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ *
+ * @param availabilityZones the availabilityZones value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withAvailabilityZones(List availabilityZones) {
+ this.availabilityZones = availabilityZones;
+ return this;
+ }
+
+ /**
+ * Get the enableNodePublicIp property: Whether each node is allocated its own public IP. Some scenarios may require
+ * nodes in a node pool to receive their own dedicated public IP addresses. A common scenario is for gaming
+ * workloads, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. For
+ * more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ *
+ * @return the enableNodePublicIp value.
+ */
+ public Boolean enableNodePublicIp() {
+ return this.enableNodePublicIp;
+ }
+
+ /**
+ * Set the enableNodePublicIp property: Whether each node is allocated its own public IP. Some scenarios may require
+ * nodes in a node pool to receive their own dedicated public IP addresses. A common scenario is for gaming
+ * workloads, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. For
+ * more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ *
+ * @param enableNodePublicIp the enableNodePublicIp value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableNodePublicIp(Boolean enableNodePublicIp) {
+ this.enableNodePublicIp = enableNodePublicIp;
+ return this;
+ }
+
+ /**
+ * Get the nodePublicIpPrefixId property: The public IP prefix ID which VM nodes should use IPs from. This is of the
+ * form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}.
+ *
+ * @return the nodePublicIpPrefixId value.
+ */
+ public String nodePublicIpPrefixId() {
+ return this.nodePublicIpPrefixId;
+ }
+
+ /**
+ * Set the nodePublicIpPrefixId property: The public IP prefix ID which VM nodes should use IPs from. This is of the
+ * form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}.
+ *
+ * @param nodePublicIpPrefixId the nodePublicIpPrefixId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withNodePublicIpPrefixId(String nodePublicIpPrefixId) {
+ this.nodePublicIpPrefixId = nodePublicIpPrefixId;
+ return this;
+ }
+
+ /**
+ * Get the scaleSetPriority property: The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ *
+ * @return the scaleSetPriority value.
+ */
+ public ScaleSetPriority scaleSetPriority() {
+ return this.scaleSetPriority;
+ }
+
+ /**
+ * Set the scaleSetPriority property: The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ *
+ * @param scaleSetPriority the scaleSetPriority value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withScaleSetPriority(ScaleSetPriority scaleSetPriority) {
+ this.scaleSetPriority = scaleSetPriority;
+ return this;
+ }
+
+ /**
+ * Get the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy. This cannot be specified
+ * unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ *
+ * @return the scaleSetEvictionPolicy value.
+ */
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.scaleSetEvictionPolicy;
+ }
+
+ /**
+ * Set the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy. This cannot be specified
+ * unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ *
+ * @param scaleSetEvictionPolicy the scaleSetEvictionPolicy value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withScaleSetEvictionPolicy(
+ ScaleSetEvictionPolicy scaleSetEvictionPolicy) {
+ this.scaleSetEvictionPolicy = scaleSetEvictionPolicy;
+ return this;
+ }
+
+ /**
+ * Get the spotMaxPrice property: The max price (in US Dollars) you are willing to pay for spot instances. Possible
+ * values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing).
+ *
+ * @return the spotMaxPrice value.
+ */
+ public Float spotMaxPrice() {
+ return this.spotMaxPrice;
+ }
+
+ /**
+ * Set the spotMaxPrice property: The max price (in US Dollars) you are willing to pay for spot instances. Possible
+ * values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing).
+ *
+ * @param spotMaxPrice the spotMaxPrice value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withSpotMaxPrice(Float spotMaxPrice) {
+ this.spotMaxPrice = spotMaxPrice;
+ return this;
+ }
+
+ /**
+ * Get the tags property: The tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: The 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 the nodeLabels property: The node labels to be persisted across all nodes in agent pool.
+ *
+ * @return the nodeLabels value.
+ */
+ public Map nodeLabels() {
+ return this.nodeLabels;
+ }
+
+ /**
+ * Set the nodeLabels property: The 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 the nodeTaints property: The 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 the nodeTaints property: The 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 proximityPlacementGroupId property: The ID for Proximity Placement Group.
+ *
+ * @return the proximityPlacementGroupId value.
+ */
+ public String proximityPlacementGroupId() {
+ return this.proximityPlacementGroupId;
+ }
+
+ /**
+ * Set the proximityPlacementGroupId property: 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;
+ }
+
+ /**
+ * Get the kubeletConfig property: Kubelet configurations of agent nodes. The Kubelet configuration on the agent
+ * pool nodes.
+ *
+ * @return the kubeletConfig value.
+ */
+ public KubeletConfig kubeletConfig() {
+ return this.kubeletConfig;
+ }
+
+ /**
+ * Set the kubeletConfig property: Kubelet configurations of agent nodes. The Kubelet configuration on the agent
+ * pool nodes.
+ *
+ * @param kubeletConfig the kubeletConfig value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withKubeletConfig(KubeletConfig kubeletConfig) {
+ this.kubeletConfig = kubeletConfig;
+ return this;
+ }
+
+ /**
+ * Get the linuxOSConfig property: OS configurations of Linux agent nodes. The OS configuration of Linux agent
+ * nodes.
+ *
+ * @return the linuxOSConfig value.
+ */
+ public LinuxOSConfig linuxOSConfig() {
+ return this.linuxOSConfig;
+ }
+
+ /**
+ * Set the linuxOSConfig property: OS configurations of Linux agent nodes. The OS configuration of Linux agent
+ * nodes.
+ *
+ * @param linuxOSConfig the linuxOSConfig value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withLinuxOSConfig(LinuxOSConfig linuxOSConfig) {
+ this.linuxOSConfig = linuxOSConfig;
+ return this;
+ }
+
+ /**
+ * Get the enableEncryptionAtHost property: Whether to enable host based OS and data drive encryption. This is only
+ * supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption.
+ *
+ * @return the enableEncryptionAtHost value.
+ */
+ public Boolean enableEncryptionAtHost() {
+ return this.enableEncryptionAtHost;
+ }
+
+ /**
+ * Set the enableEncryptionAtHost property: Whether to enable host based OS and data drive encryption. This is only
+ * supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption.
+ *
+ * @param enableEncryptionAtHost the enableEncryptionAtHost value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableEncryptionAtHost(Boolean enableEncryptionAtHost) {
+ this.enableEncryptionAtHost = enableEncryptionAtHost;
+ return this;
+ }
+
+ /**
+ * Get the enableUltraSsd property: Whether to enable UltraSSD.
+ *
+ * @return the enableUltraSsd value.
+ */
+ public Boolean enableUltraSsd() {
+ return this.enableUltraSsd;
+ }
+
+ /**
+ * Set the enableUltraSsd property: Whether to enable UltraSSD.
+ *
+ * @param enableUltraSsd the enableUltraSsd value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableUltraSsd(Boolean enableUltraSsd) {
+ this.enableUltraSsd = enableUltraSsd;
+ return this;
+ }
+
+ /**
+ * Get the enableFips property: Whether to use a FIPS-enabled OS. See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more
+ * details.
+ *
+ * @return the enableFips value.
+ */
+ public Boolean enableFips() {
+ return this.enableFips;
+ }
+
+ /**
+ * Set the enableFips property: Whether to use a FIPS-enabled OS. See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more
+ * details.
+ *
+ * @param enableFips the enableFips value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableFips(Boolean enableFips) {
+ this.enableFips = enableFips;
+ return this;
+ }
+
+ /**
+ * Get the gpuInstanceProfile property: GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ *
+ * @return the gpuInstanceProfile value.
+ */
+ public GpuInstanceProfile gpuInstanceProfile() {
+ return this.gpuInstanceProfile;
+ }
+
+ /**
+ * Set the gpuInstanceProfile property: GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ *
+ * @param gpuInstanceProfile the gpuInstanceProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withGpuInstanceProfile(GpuInstanceProfile gpuInstanceProfile) {
+ this.gpuInstanceProfile = gpuInstanceProfile;
+ return this;
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source Snapshot ID if the node pool will be
+ * created/upgraded using a snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.creationData;
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source Snapshot ID if the node pool will be
+ * created/upgraded using a snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withCreationData(CreationData creationData) {
+ this.creationData = creationData;
+ return this;
+ }
+
+ /**
+ * Get the capacityReservationGroupId property: AKS will associate the specified agent pool with the Capacity
+ * Reservation Group.
+ *
+ * @return the capacityReservationGroupId value.
+ */
+ public String capacityReservationGroupId() {
+ return this.capacityReservationGroupId;
+ }
+
+ /**
+ * Set the capacityReservationGroupId property: AKS will associate the specified agent pool with the Capacity
+ * Reservation Group.
+ *
+ * @param capacityReservationGroupId the capacityReservationGroupId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withCapacityReservationGroupId(String capacityReservationGroupId) {
+ this.capacityReservationGroupId = capacityReservationGroupId;
+ return this;
+ }
+
+ /**
+ * Get the hostGroupId property: The fully qualified resource ID of the Dedicated Host Group to provision virtual
+ * machines from, used only in creation scenario and not allowed to changed once set. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ *
+ * @return the hostGroupId value.
+ */
+ public String hostGroupId() {
+ return this.hostGroupId;
+ }
+
+ /**
+ * Set the hostGroupId property: The fully qualified resource ID of the Dedicated Host Group to provision virtual
+ * machines from, used only in creation scenario and not allowed to changed once set. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ *
+ * @param hostGroupId the hostGroupId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withHostGroupId(String hostGroupId) {
+ this.hostGroupId = hostGroupId;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (upgradeSettings() != null) {
+ upgradeSettings().validate();
+ }
+ if (powerState() != null) {
+ powerState().validate();
+ }
+ if (kubeletConfig() != null) {
+ kubeletConfig().validate();
+ }
+ if (linuxOSConfig() != null) {
+ linuxOSConfig().validate();
+ }
+ if (creationData() != null) {
+ creationData().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterInner.java
new file mode 100644
index 0000000000000..7a1a88d5cb7c6
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterInner.java
@@ -0,0 +1,871 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ExtendedLocation;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAadProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAddonProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterApiServerAccessProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAutoUpgradeProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterHttpProxyConfig;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterIdentity;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterOidcIssuerProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPodIdentityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPropertiesAutoScalerProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSecurityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterServicePrincipalProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSku;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterWindowsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.PowerState;
+import com.azure.resourcemanager.containerservice.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.containerservice.generated.models.UserAssignedIdentity;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Managed cluster. */
+@Fluent
+public final class ManagedClusterInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ManagedClusterInner.class);
+
+ /*
+ * The managed cluster SKU.
+ */
+ @JsonProperty(value = "sku")
+ private ManagedClusterSku sku;
+
+ /*
+ * The extended location of the Virtual Machine.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The identity of the managed cluster, if configured.
+ */
+ @JsonProperty(value = "identity")
+ private ManagedClusterIdentity identity;
+
+ /*
+ * Properties of a managed cluster.
+ */
+ @JsonProperty(value = "properties")
+ private ManagedClusterProperties innerProperties;
+
+ /**
+ * Get the sku property: The managed cluster SKU.
+ *
+ * @return the sku value.
+ */
+ public ManagedClusterSku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: The managed cluster SKU.
+ *
+ * @param sku the sku value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withSku(ManagedClusterSku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extended location of the Virtual Machine.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extended location of the Virtual Machine.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the identity property: The identity of the managed cluster, if configured.
+ *
+ * @return the identity value.
+ */
+ public ManagedClusterIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: The identity of the managed cluster, if configured.
+ *
+ * @param identity the identity value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withIdentity(ManagedClusterIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a managed cluster.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ManagedClusterInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ManagedClusterInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The current provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the powerState property: The Power State of the cluster.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.innerProperties() == null ? null : this.innerProperties().powerState();
+ }
+
+ /**
+ * Get the maxAgentPools property: The max number of agent pools for the managed cluster.
+ *
+ * @return the maxAgentPools value.
+ */
+ public Integer maxAgentPools() {
+ return this.innerProperties() == null ? null : this.innerProperties().maxAgentPools();
+ }
+
+ /**
+ * Get the kubernetesVersion property: The version of Kubernetes the Managed Cluster is requested to run. When you
+ * upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be performed
+ * sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x
+ * are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubernetesVersion();
+ }
+
+ /**
+ * Set the kubernetesVersion property: The version of Kubernetes the Managed Cluster is requested to run. When you
+ * upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be performed
+ * sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x
+ * are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withKubernetesVersion(String kubernetesVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withKubernetesVersion(kubernetesVersion);
+ return this;
+ }
+
+ /**
+ * Get the currentKubernetesVersion property: The version of Kubernetes the Managed Cluster is running.
+ *
+ * @return the currentKubernetesVersion value.
+ */
+ public String currentKubernetesVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().currentKubernetesVersion();
+ }
+
+ /**
+ * Get the dnsPrefix property: The DNS prefix of the Managed Cluster. This cannot be updated once the Managed
+ * Cluster has been created.
+ *
+ * @return the dnsPrefix value.
+ */
+ public String dnsPrefix() {
+ return this.innerProperties() == null ? null : this.innerProperties().dnsPrefix();
+ }
+
+ /**
+ * Set the dnsPrefix property: The DNS prefix of the Managed Cluster. This cannot be updated once the Managed
+ * Cluster has been created.
+ *
+ * @param dnsPrefix the dnsPrefix value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withDnsPrefix(String dnsPrefix) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withDnsPrefix(dnsPrefix);
+ return this;
+ }
+
+ /**
+ * Get the fqdnSubdomain property: The FQDN subdomain of the private cluster with custom private dns zone. This
+ * cannot be updated once the Managed Cluster has been created.
+ *
+ * @return the fqdnSubdomain value.
+ */
+ public String fqdnSubdomain() {
+ return this.innerProperties() == null ? null : this.innerProperties().fqdnSubdomain();
+ }
+
+ /**
+ * Set the fqdnSubdomain property: The FQDN subdomain of the private cluster with custom private dns zone. This
+ * cannot be updated once the Managed Cluster has been created.
+ *
+ * @param fqdnSubdomain the fqdnSubdomain value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withFqdnSubdomain(String fqdnSubdomain) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withFqdnSubdomain(fqdnSubdomain);
+ return this;
+ }
+
+ /**
+ * Get the fqdn property: The FQDN of the master pool.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().fqdn();
+ }
+
+ /**
+ * Get the privateFqdn property: The FQDN of private cluster.
+ *
+ * @return the privateFqdn value.
+ */
+ public String privateFqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateFqdn();
+ }
+
+ /**
+ * Get the azurePortalFqdn property: The special FQDN used by the Azure Portal to access the Managed Cluster. This
+ * FQDN is for use only by the Azure Portal and should not be used by other clients. The Azure Portal requires
+ * certain Cross-Origin Resource Sharing (CORS) headers to be sent in some responses, which Kubernetes APIServer
+ * doesn't handle by default. This special FQDN supports CORS, allowing the Azure Portal to function properly.
+ *
+ * @return the azurePortalFqdn value.
+ */
+ public String azurePortalFqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().azurePortalFqdn();
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The agent pool properties.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().agentPoolProfiles();
+ }
+
+ /**
+ * Set the agentPoolProfiles property: The agent pool properties.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAgentPoolProfiles(List agentPoolProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAgentPoolProfiles(agentPoolProfiles);
+ return this;
+ }
+
+ /**
+ * Get the linuxProfile property: The profile for Linux VMs in the Managed Cluster.
+ *
+ * @return the linuxProfile value.
+ */
+ public ContainerServiceLinuxProfile linuxProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().linuxProfile();
+ }
+
+ /**
+ * Set the linuxProfile property: The profile for Linux VMs in the Managed Cluster.
+ *
+ * @param linuxProfile the linuxProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withLinuxProfile(ContainerServiceLinuxProfile linuxProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withLinuxProfile(linuxProfile);
+ return this;
+ }
+
+ /**
+ * Get the windowsProfile property: The profile for Windows VMs in the Managed Cluster.
+ *
+ * @return the windowsProfile value.
+ */
+ public ManagedClusterWindowsProfile windowsProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().windowsProfile();
+ }
+
+ /**
+ * Set the windowsProfile property: The profile for Windows VMs in the Managed Cluster.
+ *
+ * @param windowsProfile the windowsProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withWindowsProfile(ManagedClusterWindowsProfile windowsProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withWindowsProfile(windowsProfile);
+ return this;
+ }
+
+ /**
+ * Get the servicePrincipalProfile property: Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ *
+ * @return the servicePrincipalProfile value.
+ */
+ public ManagedClusterServicePrincipalProfile servicePrincipalProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().servicePrincipalProfile();
+ }
+
+ /**
+ * Set the servicePrincipalProfile property: Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ *
+ * @param servicePrincipalProfile the servicePrincipalProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withServicePrincipalProfile(
+ ManagedClusterServicePrincipalProfile servicePrincipalProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withServicePrincipalProfile(servicePrincipalProfile);
+ return this;
+ }
+
+ /**
+ * Get the addonProfiles property: The profile of managed cluster add-on.
+ *
+ * @return the addonProfiles value.
+ */
+ public Map addonProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().addonProfiles();
+ }
+
+ /**
+ * Set the addonProfiles property: The profile of managed cluster add-on.
+ *
+ * @param addonProfiles the addonProfiles value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAddonProfiles(Map addonProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAddonProfiles(addonProfiles);
+ return this;
+ }
+
+ /**
+ * Get the podIdentityProfile property: The pod identity profile of the Managed Cluster. See [use AAD pod
+ * identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on AAD pod identity
+ * integration.
+ *
+ * @return the podIdentityProfile value.
+ */
+ public ManagedClusterPodIdentityProfile podIdentityProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().podIdentityProfile();
+ }
+
+ /**
+ * Set the podIdentityProfile property: The pod identity profile of the Managed Cluster. See [use AAD pod
+ * identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on AAD pod identity
+ * integration.
+ *
+ * @param podIdentityProfile the podIdentityProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withPodIdentityProfile(ManagedClusterPodIdentityProfile podIdentityProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withPodIdentityProfile(podIdentityProfile);
+ return this;
+ }
+
+ /**
+ * Get the oidcIssuerProfile property: The OIDC issuer profile of the Managed Cluster.
+ *
+ * @return the oidcIssuerProfile value.
+ */
+ public ManagedClusterOidcIssuerProfile oidcIssuerProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().oidcIssuerProfile();
+ }
+
+ /**
+ * Set the oidcIssuerProfile property: The OIDC issuer profile of the Managed Cluster.
+ *
+ * @param oidcIssuerProfile the oidcIssuerProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withOidcIssuerProfile(ManagedClusterOidcIssuerProfile oidcIssuerProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withOidcIssuerProfile(oidcIssuerProfile);
+ return this;
+ }
+
+ /**
+ * Get the nodeResourceGroup property: The name of the resource group containing agent pool nodes.
+ *
+ * @return the nodeResourceGroup value.
+ */
+ public String nodeResourceGroup() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeResourceGroup();
+ }
+
+ /**
+ * Set the nodeResourceGroup property: The name of the resource group containing agent pool nodes.
+ *
+ * @param nodeResourceGroup the nodeResourceGroup value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withNodeResourceGroup(String nodeResourceGroup) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withNodeResourceGroup(nodeResourceGroup);
+ return this;
+ }
+
+ /**
+ * Get the enableRbac property: Whether to enable Kubernetes Role-Based Access Control.
+ *
+ * @return the enableRbac value.
+ */
+ public Boolean enableRbac() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableRbac();
+ }
+
+ /**
+ * Set the enableRbac property: Whether to enable Kubernetes Role-Based Access Control.
+ *
+ * @param enableRbac the enableRbac value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withEnableRbac(Boolean enableRbac) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withEnableRbac(enableRbac);
+ return this;
+ }
+
+ /**
+ * Get the enablePodSecurityPolicy property: (DEPRECATING) Whether to enable Kubernetes pod security policy
+ * (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy.
+ *
+ * @return the enablePodSecurityPolicy value.
+ */
+ public Boolean enablePodSecurityPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().enablePodSecurityPolicy();
+ }
+
+ /**
+ * Set the enablePodSecurityPolicy property: (DEPRECATING) Whether to enable Kubernetes pod security policy
+ * (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy.
+ *
+ * @param enablePodSecurityPolicy the enablePodSecurityPolicy value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withEnablePodSecurityPolicy(Boolean enablePodSecurityPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withEnablePodSecurityPolicy(enablePodSecurityPolicy);
+ return this;
+ }
+
+ /**
+ * Get the enableNamespaceResources property: Enable namespace as Azure resource. The default value is false. It can
+ * be enabled/disabled on creation and updation of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a ARM
+ * Resource.
+ *
+ * @return the enableNamespaceResources value.
+ */
+ public Boolean enableNamespaceResources() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableNamespaceResources();
+ }
+
+ /**
+ * Set the enableNamespaceResources property: Enable namespace as Azure resource. The default value is false. It can
+ * be enabled/disabled on creation and updation of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a ARM
+ * Resource.
+ *
+ * @param enableNamespaceResources the enableNamespaceResources value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withEnableNamespaceResources(Boolean enableNamespaceResources) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withEnableNamespaceResources(enableNamespaceResources);
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: The network configuration profile.
+ *
+ * @return the networkProfile value.
+ */
+ public ContainerServiceNetworkProfile networkProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkProfile();
+ }
+
+ /**
+ * Set the networkProfile property: The network configuration profile.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withNetworkProfile(ContainerServiceNetworkProfile networkProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withNetworkProfile(networkProfile);
+ return this;
+ }
+
+ /**
+ * Get the aadProfile property: AADProfile specifies attributes for Azure Active Directory integration. The Azure
+ * Active Directory configuration.
+ *
+ * @return the aadProfile value.
+ */
+ public ManagedClusterAadProfile aadProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().aadProfile();
+ }
+
+ /**
+ * Set the aadProfile property: AADProfile specifies attributes for Azure Active Directory integration. The Azure
+ * Active Directory configuration.
+ *
+ * @param aadProfile the aadProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAadProfile(ManagedClusterAadProfile aadProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAadProfile(aadProfile);
+ return this;
+ }
+
+ /**
+ * Get the autoUpgradeProfile property: The auto upgrade configuration.
+ *
+ * @return the autoUpgradeProfile value.
+ */
+ public ManagedClusterAutoUpgradeProfile autoUpgradeProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().autoUpgradeProfile();
+ }
+
+ /**
+ * Set the autoUpgradeProfile property: The auto upgrade configuration.
+ *
+ * @param autoUpgradeProfile the autoUpgradeProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAutoUpgradeProfile(ManagedClusterAutoUpgradeProfile autoUpgradeProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAutoUpgradeProfile(autoUpgradeProfile);
+ return this;
+ }
+
+ /**
+ * Get the autoScalerProfile property: Parameters to be applied to the cluster-autoscaler when enabled.
+ *
+ * @return the autoScalerProfile value.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile autoScalerProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().autoScalerProfile();
+ }
+
+ /**
+ * Set the autoScalerProfile property: Parameters to be applied to the cluster-autoscaler when enabled.
+ *
+ * @param autoScalerProfile the autoScalerProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAutoScalerProfile(ManagedClusterPropertiesAutoScalerProfile autoScalerProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAutoScalerProfile(autoScalerProfile);
+ return this;
+ }
+
+ /**
+ * Get the apiServerAccessProfile property: The access profile for managed cluster API server.
+ *
+ * @return the apiServerAccessProfile value.
+ */
+ public ManagedClusterApiServerAccessProfile apiServerAccessProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().apiServerAccessProfile();
+ }
+
+ /**
+ * Set the apiServerAccessProfile property: The access profile for managed cluster API server.
+ *
+ * @param apiServerAccessProfile the apiServerAccessProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withApiServerAccessProfile(ManagedClusterApiServerAccessProfile apiServerAccessProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withApiServerAccessProfile(apiServerAccessProfile);
+ return this;
+ }
+
+ /**
+ * Get the diskEncryptionSetId property: The Resource ID of the disk encryption set to use for enabling encryption
+ * at rest. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'.
+ *
+ * @return the diskEncryptionSetId value.
+ */
+ public String diskEncryptionSetId() {
+ return this.innerProperties() == null ? null : this.innerProperties().diskEncryptionSetId();
+ }
+
+ /**
+ * Set the diskEncryptionSetId property: The Resource ID of the disk encryption set to use for enabling encryption
+ * at rest. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'.
+ *
+ * @param diskEncryptionSetId the diskEncryptionSetId value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withDiskEncryptionSetId(String diskEncryptionSetId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withDiskEncryptionSetId(diskEncryptionSetId);
+ return this;
+ }
+
+ /**
+ * Get the identityProfile property: Identities associated with the cluster.
+ *
+ * @return the identityProfile value.
+ */
+ public Map identityProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().identityProfile();
+ }
+
+ /**
+ * Set the identityProfile property: Identities associated with the cluster.
+ *
+ * @param identityProfile the identityProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withIdentityProfile(Map identityProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withIdentityProfile(identityProfile);
+ return this;
+ }
+
+ /**
+ * Get the privateLinkResources property: Private link resources associated with the cluster.
+ *
+ * @return the privateLinkResources value.
+ */
+ public List privateLinkResources() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateLinkResources();
+ }
+
+ /**
+ * Set the privateLinkResources property: Private link resources associated with the cluster.
+ *
+ * @param privateLinkResources the privateLinkResources value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withPrivateLinkResources(List privateLinkResources) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withPrivateLinkResources(privateLinkResources);
+ return this;
+ }
+
+ /**
+ * Get the disableLocalAccounts property: If local accounts should be disabled on the Managed Cluster. If set to
+ * true, getting static credentials will be disabled for this cluster. This must only be used on Managed Clusters
+ * that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ *
+ * @return the disableLocalAccounts value.
+ */
+ public Boolean disableLocalAccounts() {
+ return this.innerProperties() == null ? null : this.innerProperties().disableLocalAccounts();
+ }
+
+ /**
+ * Set the disableLocalAccounts property: If local accounts should be disabled on the Managed Cluster. If set to
+ * true, getting static credentials will be disabled for this cluster. This must only be used on Managed Clusters
+ * that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ *
+ * @param disableLocalAccounts the disableLocalAccounts value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withDisableLocalAccounts(Boolean disableLocalAccounts) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withDisableLocalAccounts(disableLocalAccounts);
+ return this;
+ }
+
+ /**
+ * Get the httpProxyConfig property: Configurations for provisioning the cluster with HTTP proxy servers.
+ *
+ * @return the httpProxyConfig value.
+ */
+ public ManagedClusterHttpProxyConfig httpProxyConfig() {
+ return this.innerProperties() == null ? null : this.innerProperties().httpProxyConfig();
+ }
+
+ /**
+ * Set the httpProxyConfig property: Configurations for provisioning the cluster with HTTP proxy servers.
+ *
+ * @param httpProxyConfig the httpProxyConfig value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withHttpProxyConfig(ManagedClusterHttpProxyConfig httpProxyConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withHttpProxyConfig(httpProxyConfig);
+ return this;
+ }
+
+ /**
+ * Get the securityProfile property: Security profile for the managed cluster.
+ *
+ * @return the securityProfile value.
+ */
+ public ManagedClusterSecurityProfile securityProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().securityProfile();
+ }
+
+ /**
+ * Set the securityProfile property: Security profile for the managed cluster.
+ *
+ * @param securityProfile the securityProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withSecurityProfile(ManagedClusterSecurityProfile securityProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withSecurityProfile(securityProfile);
+ return this;
+ }
+
+ /**
+ * Get the publicNetworkAccess property: PublicNetworkAccess of the managedCluster Allow or deny public network
+ * access for AKS.
+ *
+ * @return the publicNetworkAccess value.
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.innerProperties() == null ? null : this.innerProperties().publicNetworkAccess();
+ }
+
+ /**
+ * Set the publicNetworkAccess property: PublicNetworkAccess of the managedCluster Allow or deny public network
+ * access for AKS.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withPublicNetworkAccess(publicNetworkAccess);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() != null) {
+ sku().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterProperties.java
new file mode 100644
index 0000000000000..915da42d1f034
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterProperties.java
@@ -0,0 +1,967 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAadProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAddonProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterApiServerAccessProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAutoUpgradeProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterHttpProxyConfig;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterOidcIssuerProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPodIdentityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPropertiesAutoScalerProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSecurityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterServicePrincipalProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterWindowsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.PowerState;
+import com.azure.resourcemanager.containerservice.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.containerservice.generated.models.UserAssignedIdentity;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Properties of the managed cluster. */
+@Fluent
+public final class ManagedClusterProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ManagedClusterProperties.class);
+
+ /*
+ * The current provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * The Power State of the cluster.
+ */
+ @JsonProperty(value = "powerState", access = JsonProperty.Access.WRITE_ONLY)
+ private PowerState powerState;
+
+ /*
+ * The max number of agent pools for the managed cluster.
+ */
+ @JsonProperty(value = "maxAgentPools", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer maxAgentPools;
+
+ /*
+ * The version of Kubernetes the Managed Cluster is requested to run. When
+ * you upgrade a supported AKS cluster, Kubernetes minor versions cannot be
+ * skipped. All upgrades must be performed sequentially by major version
+ * number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x ->
+ * 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See
+ * [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more
+ * details.
+ */
+ @JsonProperty(value = "kubernetesVersion")
+ private String kubernetesVersion;
+
+ /*
+ * The version of Kubernetes the Managed Cluster is running.
+ */
+ @JsonProperty(value = "currentKubernetesVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String currentKubernetesVersion;
+
+ /*
+ * The DNS prefix of the Managed Cluster. This cannot be updated once the
+ * Managed Cluster has been created.
+ */
+ @JsonProperty(value = "dnsPrefix")
+ private String dnsPrefix;
+
+ /*
+ * The FQDN subdomain of the private cluster with custom private dns zone.
+ * This cannot be updated once the Managed Cluster has been created.
+ */
+ @JsonProperty(value = "fqdnSubdomain")
+ private String fqdnSubdomain;
+
+ /*
+ * The FQDN of the master pool.
+ */
+ @JsonProperty(value = "fqdn", access = JsonProperty.Access.WRITE_ONLY)
+ private String fqdn;
+
+ /*
+ * The FQDN of private cluster.
+ */
+ @JsonProperty(value = "privateFQDN", access = JsonProperty.Access.WRITE_ONLY)
+ private String privateFqdn;
+
+ /*
+ * The special FQDN used by the Azure Portal to access the Managed Cluster.
+ * This FQDN is for use only by the Azure Portal and should not be used by
+ * other clients. The Azure Portal requires certain Cross-Origin Resource
+ * Sharing (CORS) headers to be sent in some responses, which Kubernetes
+ * APIServer doesn't handle by default. This special FQDN supports CORS,
+ * allowing the Azure Portal to function properly.
+ */
+ @JsonProperty(value = "azurePortalFQDN", access = JsonProperty.Access.WRITE_ONLY)
+ private String azurePortalFqdn;
+
+ /*
+ * The agent pool properties.
+ */
+ @JsonProperty(value = "agentPoolProfiles")
+ private List agentPoolProfiles;
+
+ /*
+ * The profile for Linux VMs in the Managed Cluster.
+ */
+ @JsonProperty(value = "linuxProfile")
+ private ContainerServiceLinuxProfile linuxProfile;
+
+ /*
+ * The profile for Windows VMs in the Managed Cluster.
+ */
+ @JsonProperty(value = "windowsProfile")
+ private ManagedClusterWindowsProfile windowsProfile;
+
+ /*
+ * Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ */
+ @JsonProperty(value = "servicePrincipalProfile")
+ private ManagedClusterServicePrincipalProfile servicePrincipalProfile;
+
+ /*
+ * The profile of managed cluster add-on.
+ */
+ @JsonProperty(value = "addonProfiles")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map addonProfiles;
+
+ /*
+ * The pod identity profile of the Managed Cluster. See [use AAD pod
+ * identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity)
+ * for more details on AAD pod identity integration.
+ */
+ @JsonProperty(value = "podIdentityProfile")
+ private ManagedClusterPodIdentityProfile podIdentityProfile;
+
+ /*
+ * The OIDC issuer profile of the Managed Cluster.
+ */
+ @JsonProperty(value = "oidcIssuerProfile")
+ private ManagedClusterOidcIssuerProfile oidcIssuerProfile;
+
+ /*
+ * The name of the resource group containing agent pool nodes.
+ */
+ @JsonProperty(value = "nodeResourceGroup")
+ private String nodeResourceGroup;
+
+ /*
+ * Whether to enable Kubernetes Role-Based Access Control.
+ */
+ @JsonProperty(value = "enableRBAC")
+ private Boolean enableRbac;
+
+ /*
+ * (DEPRECATING) Whether to enable Kubernetes pod security policy
+ * (preview). This feature is set for removal on October 15th, 2020. Learn
+ * more at aka.ms/aks/azpodpolicy.
+ */
+ @JsonProperty(value = "enablePodSecurityPolicy")
+ private Boolean enablePodSecurityPolicy;
+
+ /*
+ * Enable namespace as Azure resource. The default value is false. It can
+ * be enabled/disabled on creation and updation of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource)
+ * for more details on Namespace as a ARM Resource.
+ */
+ @JsonProperty(value = "enableNamespaceResources")
+ private Boolean enableNamespaceResources;
+
+ /*
+ * The network configuration profile.
+ */
+ @JsonProperty(value = "networkProfile")
+ private ContainerServiceNetworkProfile networkProfile;
+
+ /*
+ * AADProfile specifies attributes for Azure Active Directory integration.
+ * The Azure Active Directory configuration.
+ */
+ @JsonProperty(value = "aadProfile")
+ private ManagedClusterAadProfile aadProfile;
+
+ /*
+ * The auto upgrade configuration.
+ */
+ @JsonProperty(value = "autoUpgradeProfile")
+ private ManagedClusterAutoUpgradeProfile autoUpgradeProfile;
+
+ /*
+ * Parameters to be applied to the cluster-autoscaler when enabled
+ */
+ @JsonProperty(value = "autoScalerProfile")
+ private ManagedClusterPropertiesAutoScalerProfile autoScalerProfile;
+
+ /*
+ * The access profile for managed cluster API server.
+ */
+ @JsonProperty(value = "apiServerAccessProfile")
+ private ManagedClusterApiServerAccessProfile apiServerAccessProfile;
+
+ /*
+ * The Resource ID of the disk encryption set to use for enabling
+ * encryption at rest. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'
+ */
+ @JsonProperty(value = "diskEncryptionSetID")
+ private String diskEncryptionSetId;
+
+ /*
+ * Identities associated with the cluster.
+ */
+ @JsonProperty(value = "identityProfile")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map identityProfile;
+
+ /*
+ * Private link resources associated with the cluster.
+ */
+ @JsonProperty(value = "privateLinkResources")
+ private List privateLinkResources;
+
+ /*
+ * If local accounts should be disabled on the Managed Cluster. If set to
+ * true, getting static credentials will be disabled for this cluster. This
+ * must only be used on Managed Clusters that are AAD enabled. For more
+ * details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ */
+ @JsonProperty(value = "disableLocalAccounts")
+ private Boolean disableLocalAccounts;
+
+ /*
+ * Configurations for provisioning the cluster with HTTP proxy servers.
+ */
+ @JsonProperty(value = "httpProxyConfig")
+ private ManagedClusterHttpProxyConfig httpProxyConfig;
+
+ /*
+ * Security profile for the managed cluster.
+ */
+ @JsonProperty(value = "securityProfile")
+ private ManagedClusterSecurityProfile securityProfile;
+
+ /*
+ * PublicNetworkAccess of the managedCluster Allow or deny public network
+ * access for AKS
+ */
+ @JsonProperty(value = "publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /**
+ * Get the provisioningState property: The current provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the powerState property: The Power State of the cluster.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.powerState;
+ }
+
+ /**
+ * Get the maxAgentPools property: The max number of agent pools for the managed cluster.
+ *
+ * @return the maxAgentPools value.
+ */
+ public Integer maxAgentPools() {
+ return this.maxAgentPools;
+ }
+
+ /**
+ * Get the kubernetesVersion property: The version of Kubernetes the Managed Cluster is requested to run. When you
+ * upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be performed
+ * sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x
+ * are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set the kubernetesVersion property: The version of Kubernetes the Managed Cluster is requested to run. When you
+ * upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be performed
+ * sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x
+ * are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get the currentKubernetesVersion property: The version of Kubernetes the Managed Cluster is running.
+ *
+ * @return the currentKubernetesVersion value.
+ */
+ public String currentKubernetesVersion() {
+ return this.currentKubernetesVersion;
+ }
+
+ /**
+ * Get the dnsPrefix property: The DNS prefix of the Managed Cluster. This cannot be updated once the Managed
+ * Cluster has been created.
+ *
+ * @return the dnsPrefix value.
+ */
+ public String dnsPrefix() {
+ return this.dnsPrefix;
+ }
+
+ /**
+ * Set the dnsPrefix property: The DNS prefix of the Managed Cluster. This cannot be updated once the Managed
+ * Cluster has been created.
+ *
+ * @param dnsPrefix the dnsPrefix value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withDnsPrefix(String dnsPrefix) {
+ this.dnsPrefix = dnsPrefix;
+ return this;
+ }
+
+ /**
+ * Get the fqdnSubdomain property: The FQDN subdomain of the private cluster with custom private dns zone. This
+ * cannot be updated once the Managed Cluster has been created.
+ *
+ * @return the fqdnSubdomain value.
+ */
+ public String fqdnSubdomain() {
+ return this.fqdnSubdomain;
+ }
+
+ /**
+ * Set the fqdnSubdomain property: The FQDN subdomain of the private cluster with custom private dns zone. This
+ * cannot be updated once the Managed Cluster has been created.
+ *
+ * @param fqdnSubdomain the fqdnSubdomain value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withFqdnSubdomain(String fqdnSubdomain) {
+ this.fqdnSubdomain = fqdnSubdomain;
+ return this;
+ }
+
+ /**
+ * Get the fqdn property: The FQDN of the master pool.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+ /**
+ * Get the privateFqdn property: The FQDN of private cluster.
+ *
+ * @return the privateFqdn value.
+ */
+ public String privateFqdn() {
+ return this.privateFqdn;
+ }
+
+ /**
+ * Get the azurePortalFqdn property: The special FQDN used by the Azure Portal to access the Managed Cluster. This
+ * FQDN is for use only by the Azure Portal and should not be used by other clients. The Azure Portal requires
+ * certain Cross-Origin Resource Sharing (CORS) headers to be sent in some responses, which Kubernetes APIServer
+ * doesn't handle by default. This special FQDN supports CORS, allowing the Azure Portal to function properly.
+ *
+ * @return the azurePortalFqdn value.
+ */
+ public String azurePortalFqdn() {
+ return this.azurePortalFqdn;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The agent pool properties.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.agentPoolProfiles;
+ }
+
+ /**
+ * Set the agentPoolProfiles property: The agent pool properties.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAgentPoolProfiles(List agentPoolProfiles) {
+ this.agentPoolProfiles = agentPoolProfiles;
+ return this;
+ }
+
+ /**
+ * Get the linuxProfile property: The profile for Linux VMs in the Managed Cluster.
+ *
+ * @return the linuxProfile value.
+ */
+ public ContainerServiceLinuxProfile linuxProfile() {
+ return this.linuxProfile;
+ }
+
+ /**
+ * Set the linuxProfile property: The profile for Linux VMs in the Managed Cluster.
+ *
+ * @param linuxProfile the linuxProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withLinuxProfile(ContainerServiceLinuxProfile linuxProfile) {
+ this.linuxProfile = linuxProfile;
+ return this;
+ }
+
+ /**
+ * Get the windowsProfile property: The profile for Windows VMs in the Managed Cluster.
+ *
+ * @return the windowsProfile value.
+ */
+ public ManagedClusterWindowsProfile windowsProfile() {
+ return this.windowsProfile;
+ }
+
+ /**
+ * Set the windowsProfile property: The profile for Windows VMs in the Managed Cluster.
+ *
+ * @param windowsProfile the windowsProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withWindowsProfile(ManagedClusterWindowsProfile windowsProfile) {
+ this.windowsProfile = windowsProfile;
+ return this;
+ }
+
+ /**
+ * Get the servicePrincipalProfile property: Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ *
+ * @return the servicePrincipalProfile value.
+ */
+ public ManagedClusterServicePrincipalProfile servicePrincipalProfile() {
+ return this.servicePrincipalProfile;
+ }
+
+ /**
+ * Set the servicePrincipalProfile property: Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ *
+ * @param servicePrincipalProfile the servicePrincipalProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withServicePrincipalProfile(
+ ManagedClusterServicePrincipalProfile servicePrincipalProfile) {
+ this.servicePrincipalProfile = servicePrincipalProfile;
+ return this;
+ }
+
+ /**
+ * Get the addonProfiles property: The profile of managed cluster add-on.
+ *
+ * @return the addonProfiles value.
+ */
+ public Map addonProfiles() {
+ return this.addonProfiles;
+ }
+
+ /**
+ * Set the addonProfiles property: The profile of managed cluster add-on.
+ *
+ * @param addonProfiles the addonProfiles value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAddonProfiles(Map addonProfiles) {
+ this.addonProfiles = addonProfiles;
+ return this;
+ }
+
+ /**
+ * Get the podIdentityProfile property: The pod identity profile of the Managed Cluster. See [use AAD pod
+ * identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on AAD pod identity
+ * integration.
+ *
+ * @return the podIdentityProfile value.
+ */
+ public ManagedClusterPodIdentityProfile podIdentityProfile() {
+ return this.podIdentityProfile;
+ }
+
+ /**
+ * Set the podIdentityProfile property: The pod identity profile of the Managed Cluster. See [use AAD pod
+ * identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on AAD pod identity
+ * integration.
+ *
+ * @param podIdentityProfile the podIdentityProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withPodIdentityProfile(ManagedClusterPodIdentityProfile podIdentityProfile) {
+ this.podIdentityProfile = podIdentityProfile;
+ return this;
+ }
+
+ /**
+ * Get the oidcIssuerProfile property: The OIDC issuer profile of the Managed Cluster.
+ *
+ * @return the oidcIssuerProfile value.
+ */
+ public ManagedClusterOidcIssuerProfile oidcIssuerProfile() {
+ return this.oidcIssuerProfile;
+ }
+
+ /**
+ * Set the oidcIssuerProfile property: The OIDC issuer profile of the Managed Cluster.
+ *
+ * @param oidcIssuerProfile the oidcIssuerProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withOidcIssuerProfile(ManagedClusterOidcIssuerProfile oidcIssuerProfile) {
+ this.oidcIssuerProfile = oidcIssuerProfile;
+ return this;
+ }
+
+ /**
+ * Get the nodeResourceGroup property: The name of the resource group containing agent pool nodes.
+ *
+ * @return the nodeResourceGroup value.
+ */
+ public String nodeResourceGroup() {
+ return this.nodeResourceGroup;
+ }
+
+ /**
+ * Set the nodeResourceGroup property: The name of the resource group containing agent pool nodes.
+ *
+ * @param nodeResourceGroup the nodeResourceGroup value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withNodeResourceGroup(String nodeResourceGroup) {
+ this.nodeResourceGroup = nodeResourceGroup;
+ return this;
+ }
+
+ /**
+ * Get the enableRbac property: Whether to enable Kubernetes Role-Based Access Control.
+ *
+ * @return the enableRbac value.
+ */
+ public Boolean enableRbac() {
+ return this.enableRbac;
+ }
+
+ /**
+ * Set the enableRbac property: Whether to enable Kubernetes Role-Based Access Control.
+ *
+ * @param enableRbac the enableRbac value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withEnableRbac(Boolean enableRbac) {
+ this.enableRbac = enableRbac;
+ return this;
+ }
+
+ /**
+ * Get the enablePodSecurityPolicy property: (DEPRECATING) Whether to enable Kubernetes pod security policy
+ * (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy.
+ *
+ * @return the enablePodSecurityPolicy value.
+ */
+ public Boolean enablePodSecurityPolicy() {
+ return this.enablePodSecurityPolicy;
+ }
+
+ /**
+ * Set the enablePodSecurityPolicy property: (DEPRECATING) Whether to enable Kubernetes pod security policy
+ * (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy.
+ *
+ * @param enablePodSecurityPolicy the enablePodSecurityPolicy value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withEnablePodSecurityPolicy(Boolean enablePodSecurityPolicy) {
+ this.enablePodSecurityPolicy = enablePodSecurityPolicy;
+ return this;
+ }
+
+ /**
+ * Get the enableNamespaceResources property: Enable namespace as Azure resource. The default value is false. It can
+ * be enabled/disabled on creation and updation of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a ARM
+ * Resource.
+ *
+ * @return the enableNamespaceResources value.
+ */
+ public Boolean enableNamespaceResources() {
+ return this.enableNamespaceResources;
+ }
+
+ /**
+ * Set the enableNamespaceResources property: Enable namespace as Azure resource. The default value is false. It can
+ * be enabled/disabled on creation and updation of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a ARM
+ * Resource.
+ *
+ * @param enableNamespaceResources the enableNamespaceResources value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withEnableNamespaceResources(Boolean enableNamespaceResources) {
+ this.enableNamespaceResources = enableNamespaceResources;
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: The network configuration profile.
+ *
+ * @return the networkProfile value.
+ */
+ public ContainerServiceNetworkProfile networkProfile() {
+ return this.networkProfile;
+ }
+
+ /**
+ * Set the networkProfile property: The network configuration profile.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withNetworkProfile(ContainerServiceNetworkProfile networkProfile) {
+ this.networkProfile = networkProfile;
+ return this;
+ }
+
+ /**
+ * Get the aadProfile property: AADProfile specifies attributes for Azure Active Directory integration. The Azure
+ * Active Directory configuration.
+ *
+ * @return the aadProfile value.
+ */
+ public ManagedClusterAadProfile aadProfile() {
+ return this.aadProfile;
+ }
+
+ /**
+ * Set the aadProfile property: AADProfile specifies attributes for Azure Active Directory integration. The Azure
+ * Active Directory configuration.
+ *
+ * @param aadProfile the aadProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAadProfile(ManagedClusterAadProfile aadProfile) {
+ this.aadProfile = aadProfile;
+ return this;
+ }
+
+ /**
+ * Get the autoUpgradeProfile property: The auto upgrade configuration.
+ *
+ * @return the autoUpgradeProfile value.
+ */
+ public ManagedClusterAutoUpgradeProfile autoUpgradeProfile() {
+ return this.autoUpgradeProfile;
+ }
+
+ /**
+ * Set the autoUpgradeProfile property: The auto upgrade configuration.
+ *
+ * @param autoUpgradeProfile the autoUpgradeProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAutoUpgradeProfile(ManagedClusterAutoUpgradeProfile autoUpgradeProfile) {
+ this.autoUpgradeProfile = autoUpgradeProfile;
+ return this;
+ }
+
+ /**
+ * Get the autoScalerProfile property: Parameters to be applied to the cluster-autoscaler when enabled.
+ *
+ * @return the autoScalerProfile value.
+ */
+ public ManagedClusterPropertiesAutoScalerProfile autoScalerProfile() {
+ return this.autoScalerProfile;
+ }
+
+ /**
+ * Set the autoScalerProfile property: Parameters to be applied to the cluster-autoscaler when enabled.
+ *
+ * @param autoScalerProfile the autoScalerProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAutoScalerProfile(ManagedClusterPropertiesAutoScalerProfile autoScalerProfile) {
+ this.autoScalerProfile = autoScalerProfile;
+ return this;
+ }
+
+ /**
+ * Get the apiServerAccessProfile property: The access profile for managed cluster API server.
+ *
+ * @return the apiServerAccessProfile value.
+ */
+ public ManagedClusterApiServerAccessProfile apiServerAccessProfile() {
+ return this.apiServerAccessProfile;
+ }
+
+ /**
+ * Set the apiServerAccessProfile property: The access profile for managed cluster API server.
+ *
+ * @param apiServerAccessProfile the apiServerAccessProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withApiServerAccessProfile(
+ ManagedClusterApiServerAccessProfile apiServerAccessProfile) {
+ this.apiServerAccessProfile = apiServerAccessProfile;
+ return this;
+ }
+
+ /**
+ * Get the diskEncryptionSetId property: The Resource ID of the disk encryption set to use for enabling encryption
+ * at rest. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'.
+ *
+ * @return the diskEncryptionSetId value.
+ */
+ public String diskEncryptionSetId() {
+ return this.diskEncryptionSetId;
+ }
+
+ /**
+ * Set the diskEncryptionSetId property: The Resource ID of the disk encryption set to use for enabling encryption
+ * at rest. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'.
+ *
+ * @param diskEncryptionSetId the diskEncryptionSetId value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withDiskEncryptionSetId(String diskEncryptionSetId) {
+ this.diskEncryptionSetId = diskEncryptionSetId;
+ return this;
+ }
+
+ /**
+ * Get the identityProfile property: Identities associated with the cluster.
+ *
+ * @return the identityProfile value.
+ */
+ public Map identityProfile() {
+ return this.identityProfile;
+ }
+
+ /**
+ * Set the identityProfile property: Identities associated with the cluster.
+ *
+ * @param identityProfile the identityProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withIdentityProfile(Map identityProfile) {
+ this.identityProfile = identityProfile;
+ return this;
+ }
+
+ /**
+ * Get the privateLinkResources property: Private link resources associated with the cluster.
+ *
+ * @return the privateLinkResources value.
+ */
+ public List privateLinkResources() {
+ return this.privateLinkResources;
+ }
+
+ /**
+ * Set the privateLinkResources property: Private link resources associated with the cluster.
+ *
+ * @param privateLinkResources the privateLinkResources value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withPrivateLinkResources(List privateLinkResources) {
+ this.privateLinkResources = privateLinkResources;
+ return this;
+ }
+
+ /**
+ * Get the disableLocalAccounts property: If local accounts should be disabled on the Managed Cluster. If set to
+ * true, getting static credentials will be disabled for this cluster. This must only be used on Managed Clusters
+ * that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ *
+ * @return the disableLocalAccounts value.
+ */
+ public Boolean disableLocalAccounts() {
+ return this.disableLocalAccounts;
+ }
+
+ /**
+ * Set the disableLocalAccounts property: If local accounts should be disabled on the Managed Cluster. If set to
+ * true, getting static credentials will be disabled for this cluster. This must only be used on Managed Clusters
+ * that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ *
+ * @param disableLocalAccounts the disableLocalAccounts value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withDisableLocalAccounts(Boolean disableLocalAccounts) {
+ this.disableLocalAccounts = disableLocalAccounts;
+ return this;
+ }
+
+ /**
+ * Get the httpProxyConfig property: Configurations for provisioning the cluster with HTTP proxy servers.
+ *
+ * @return the httpProxyConfig value.
+ */
+ public ManagedClusterHttpProxyConfig httpProxyConfig() {
+ return this.httpProxyConfig;
+ }
+
+ /**
+ * Set the httpProxyConfig property: Configurations for provisioning the cluster with HTTP proxy servers.
+ *
+ * @param httpProxyConfig the httpProxyConfig value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withHttpProxyConfig(ManagedClusterHttpProxyConfig httpProxyConfig) {
+ this.httpProxyConfig = httpProxyConfig;
+ return this;
+ }
+
+ /**
+ * Get the securityProfile property: Security profile for the managed cluster.
+ *
+ * @return the securityProfile value.
+ */
+ public ManagedClusterSecurityProfile securityProfile() {
+ return this.securityProfile;
+ }
+
+ /**
+ * Set the securityProfile property: Security profile for the managed cluster.
+ *
+ * @param securityProfile the securityProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withSecurityProfile(ManagedClusterSecurityProfile securityProfile) {
+ this.securityProfile = securityProfile;
+ return this;
+ }
+
+ /**
+ * Get the publicNetworkAccess property: PublicNetworkAccess of the managedCluster Allow or deny public network
+ * access for AKS.
+ *
+ * @return the publicNetworkAccess value.
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set the publicNetworkAccess property: PublicNetworkAccess of the managedCluster Allow or deny public network
+ * access for AKS.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (powerState() != null) {
+ powerState().validate();
+ }
+ if (agentPoolProfiles() != null) {
+ agentPoolProfiles().forEach(e -> e.validate());
+ }
+ if (linuxProfile() != null) {
+ linuxProfile().validate();
+ }
+ if (windowsProfile() != null) {
+ windowsProfile().validate();
+ }
+ if (servicePrincipalProfile() != null) {
+ servicePrincipalProfile().validate();
+ }
+ if (addonProfiles() != null) {
+ addonProfiles()
+ .values()
+ .forEach(
+ e -> {
+ if (e != null) {
+ e.validate();
+ }
+ });
+ }
+ if (podIdentityProfile() != null) {
+ podIdentityProfile().validate();
+ }
+ if (oidcIssuerProfile() != null) {
+ oidcIssuerProfile().validate();
+ }
+ if (networkProfile() != null) {
+ networkProfile().validate();
+ }
+ if (aadProfile() != null) {
+ aadProfile().validate();
+ }
+ if (autoUpgradeProfile() != null) {
+ autoUpgradeProfile().validate();
+ }
+ if (autoScalerProfile() != null) {
+ autoScalerProfile().validate();
+ }
+ if (apiServerAccessProfile() != null) {
+ apiServerAccessProfile().validate();
+ }
+ if (identityProfile() != null) {
+ identityProfile()
+ .values()
+ .forEach(
+ e -> {
+ if (e != null) {
+ e.validate();
+ }
+ });
+ }
+ if (privateLinkResources() != null) {
+ privateLinkResources().forEach(e -> e.validate());
+ }
+ if (httpProxyConfig() != null) {
+ httpProxyConfig().validate();
+ }
+ if (securityProfile() != null) {
+ securityProfile().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileInner.java
new file mode 100644
index 0000000000000..fa1b41921ab15
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileInner.java
@@ -0,0 +1,142 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPoolUpgradeProfile;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of available upgrades for compute pools. */
+@Fluent
+public final class ManagedClusterUpgradeProfileInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ManagedClusterUpgradeProfileInner.class);
+
+ /*
+ * The ID of the upgrade profile.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the upgrade profile.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The type of the upgrade profile.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The properties of the upgrade profile.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ManagedClusterUpgradeProfileProperties innerProperties = new ManagedClusterUpgradeProfileProperties();
+
+ /**
+ * Get the id property: The ID of the upgrade profile.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The name of the upgrade profile.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The type of the upgrade profile.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: The properties of the upgrade profile.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterUpgradeProfileProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the controlPlaneProfile property: The list of available upgrade versions for the control plane.
+ *
+ * @return the controlPlaneProfile value.
+ */
+ public ManagedClusterPoolUpgradeProfile controlPlaneProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().controlPlaneProfile();
+ }
+
+ /**
+ * Set the controlPlaneProfile property: The list of available upgrade versions for the control plane.
+ *
+ * @param controlPlaneProfile the controlPlaneProfile value to set.
+ * @return the ManagedClusterUpgradeProfileInner object itself.
+ */
+ public ManagedClusterUpgradeProfileInner withControlPlaneProfile(
+ ManagedClusterPoolUpgradeProfile controlPlaneProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterUpgradeProfileProperties();
+ }
+ this.innerProperties().withControlPlaneProfile(controlPlaneProfile);
+ return this;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().agentPoolProfiles();
+ }
+
+ /**
+ * Set the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the ManagedClusterUpgradeProfileInner object itself.
+ */
+ public ManagedClusterUpgradeProfileInner withAgentPoolProfiles(
+ List agentPoolProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterUpgradeProfileProperties();
+ }
+ this.innerProperties().withAgentPoolProfiles(agentPoolProfiles);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model ManagedClusterUpgradeProfileInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileProperties.java
new file mode 100644
index 0000000000000..babf561e7703a
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileProperties.java
@@ -0,0 +1,97 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPoolUpgradeProfile;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Control plane and agent pool upgrade profiles. */
+@Fluent
+public final class ManagedClusterUpgradeProfileProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ManagedClusterUpgradeProfileProperties.class);
+
+ /*
+ * The list of available upgrade versions for the control plane.
+ */
+ @JsonProperty(value = "controlPlaneProfile", required = true)
+ private ManagedClusterPoolUpgradeProfile controlPlaneProfile;
+
+ /*
+ * The list of available upgrade versions for agent pools.
+ */
+ @JsonProperty(value = "agentPoolProfiles", required = true)
+ private List agentPoolProfiles;
+
+ /**
+ * Get the controlPlaneProfile property: The list of available upgrade versions for the control plane.
+ *
+ * @return the controlPlaneProfile value.
+ */
+ public ManagedClusterPoolUpgradeProfile controlPlaneProfile() {
+ return this.controlPlaneProfile;
+ }
+
+ /**
+ * Set the controlPlaneProfile property: The list of available upgrade versions for the control plane.
+ *
+ * @param controlPlaneProfile the controlPlaneProfile value to set.
+ * @return the ManagedClusterUpgradeProfileProperties object itself.
+ */
+ public ManagedClusterUpgradeProfileProperties withControlPlaneProfile(
+ ManagedClusterPoolUpgradeProfile controlPlaneProfile) {
+ this.controlPlaneProfile = controlPlaneProfile;
+ return this;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.agentPoolProfiles;
+ }
+
+ /**
+ * Set the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the ManagedClusterUpgradeProfileProperties object itself.
+ */
+ public ManagedClusterUpgradeProfileProperties withAgentPoolProfiles(
+ List agentPoolProfiles) {
+ this.agentPoolProfiles = agentPoolProfiles;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (controlPlaneProfile() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property controlPlaneProfile in model"
+ + " ManagedClusterUpgradeProfileProperties"));
+ } else {
+ controlPlaneProfile().validate();
+ }
+ if (agentPoolProfiles() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property agentPoolProfiles in model ManagedClusterUpgradeProfileProperties"));
+ } else {
+ agentPoolProfiles().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OSOptionProfileInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OSOptionProfileInner.java
new file mode 100644
index 0000000000000..8f2a7cef0e561
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OSOptionProfileInner.java
@@ -0,0 +1,117 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.OSOptionProperty;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The OS option profile. */
+@Fluent
+public final class OSOptionProfileInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OSOptionProfileInner.class);
+
+ /*
+ * The ID of the OS option resource.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the OS option resource.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The type of the OS option resource.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The list of OS options.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private OSOptionPropertyList innerProperties = new OSOptionPropertyList();
+
+ /**
+ * Get the id property: The ID of the OS option resource.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The name of the OS option resource.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The type of the OS option resource.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: The list of OS options.
+ *
+ * @return the innerProperties value.
+ */
+ private OSOptionPropertyList innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the osOptionPropertyList property: The list of OS options.
+ *
+ * @return the osOptionPropertyList value.
+ */
+ public List osOptionPropertyList() {
+ return this.innerProperties() == null ? null : this.innerProperties().osOptionPropertyList();
+ }
+
+ /**
+ * Set the osOptionPropertyList property: The list of OS options.
+ *
+ * @param osOptionPropertyList the osOptionPropertyList value to set.
+ * @return the OSOptionProfileInner object itself.
+ */
+ public OSOptionProfileInner withOsOptionPropertyList(List osOptionPropertyList) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSOptionPropertyList();
+ }
+ this.innerProperties().withOsOptionPropertyList(osOptionPropertyList);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model OSOptionProfileInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OSOptionPropertyList.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OSOptionPropertyList.java
new file mode 100644
index 0000000000000..6328a871dd91f
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OSOptionPropertyList.java
@@ -0,0 +1,60 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.OSOptionProperty;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of OS option properties. */
+@Fluent
+public final class OSOptionPropertyList {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OSOptionPropertyList.class);
+
+ /*
+ * The list of OS options.
+ */
+ @JsonProperty(value = "osOptionPropertyList", required = true)
+ private List osOptionPropertyList;
+
+ /**
+ * Get the osOptionPropertyList property: The list of OS options.
+ *
+ * @return the osOptionPropertyList value.
+ */
+ public List osOptionPropertyList() {
+ return this.osOptionPropertyList;
+ }
+
+ /**
+ * Set the osOptionPropertyList property: The list of OS options.
+ *
+ * @param osOptionPropertyList the osOptionPropertyList value to set.
+ * @return the OSOptionPropertyList object itself.
+ */
+ public OSOptionPropertyList withOsOptionPropertyList(List osOptionPropertyList) {
+ this.osOptionPropertyList = osOptionPropertyList;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (osOptionPropertyList() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property osOptionPropertyList in model OSOptionPropertyList"));
+ } else {
+ osOptionPropertyList().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OpenShiftManagedClusterInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OpenShiftManagedClusterInner.java
new file mode 100644
index 0000000000000..23b4986e83695
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OpenShiftManagedClusterInner.java
@@ -0,0 +1,271 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.NetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterAuthProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterMasterPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftRouterProfile;
+import com.azure.resourcemanager.containerservice.generated.models.PurchasePlan;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** OpenShift Managed cluster. */
+@Fluent
+public final class OpenShiftManagedClusterInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OpenShiftManagedClusterInner.class);
+
+ /*
+ * Define the resource plan as required by ARM for billing purposes
+ */
+ @JsonProperty(value = "plan")
+ private PurchasePlan plan;
+
+ /*
+ * Properties of a OpenShift managed cluster.
+ */
+ @JsonProperty(value = "properties")
+ private OpenShiftManagedClusterProperties innerProperties;
+
+ /**
+ * Get the plan property: Define the resource plan as required by ARM for billing purposes.
+ *
+ * @return the plan value.
+ */
+ public PurchasePlan plan() {
+ return this.plan;
+ }
+
+ /**
+ * Set the plan property: Define the resource plan as required by ARM for billing purposes.
+ *
+ * @param plan the plan value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withPlan(PurchasePlan plan) {
+ this.plan = plan;
+ return this;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a OpenShift managed cluster.
+ *
+ * @return the innerProperties value.
+ */
+ private OpenShiftManagedClusterProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public OpenShiftManagedClusterInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public OpenShiftManagedClusterInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The current deployment or provisioning state, which only appears in the
+ * response.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the openShiftVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @return the openShiftVersion value.
+ */
+ public String openShiftVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().openShiftVersion();
+ }
+
+ /**
+ * Set the openShiftVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @param openShiftVersion the openShiftVersion value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withOpenShiftVersion(String openShiftVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withOpenShiftVersion(openShiftVersion);
+ return this;
+ }
+
+ /**
+ * Get the clusterVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @return the clusterVersion value.
+ */
+ public String clusterVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().clusterVersion();
+ }
+
+ /**
+ * Get the publicHostname property: Service generated FQDN for OpenShift API server.
+ *
+ * @return the publicHostname value.
+ */
+ public String publicHostname() {
+ return this.innerProperties() == null ? null : this.innerProperties().publicHostname();
+ }
+
+ /**
+ * Get the fqdn property: Service generated FQDN for OpenShift API server loadbalancer internal hostname.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().fqdn();
+ }
+
+ /**
+ * Get the networkProfile property: Configuration for OpenShift networking.
+ *
+ * @return the networkProfile value.
+ */
+ public NetworkProfile networkProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkProfile();
+ }
+
+ /**
+ * Set the networkProfile property: Configuration for OpenShift networking.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withNetworkProfile(NetworkProfile networkProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withNetworkProfile(networkProfile);
+ return this;
+ }
+
+ /**
+ * Get the routerProfiles property: Configuration for OpenShift router(s).
+ *
+ * @return the routerProfiles value.
+ */
+ public List routerProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().routerProfiles();
+ }
+
+ /**
+ * Set the routerProfiles property: Configuration for OpenShift router(s).
+ *
+ * @param routerProfiles the routerProfiles value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withRouterProfiles(List routerProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withRouterProfiles(routerProfiles);
+ return this;
+ }
+
+ /**
+ * Get the masterPoolProfile property: Configuration for OpenShift master VMs.
+ *
+ * @return the masterPoolProfile value.
+ */
+ public OpenShiftManagedClusterMasterPoolProfile masterPoolProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().masterPoolProfile();
+ }
+
+ /**
+ * Set the masterPoolProfile property: Configuration for OpenShift master VMs.
+ *
+ * @param masterPoolProfile the masterPoolProfile value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withMasterPoolProfile(
+ OpenShiftManagedClusterMasterPoolProfile masterPoolProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withMasterPoolProfile(masterPoolProfile);
+ return this;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: Configuration of OpenShift cluster VMs.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().agentPoolProfiles();
+ }
+
+ /**
+ * Set the agentPoolProfiles property: Configuration of OpenShift cluster VMs.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withAgentPoolProfiles(
+ List agentPoolProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withAgentPoolProfiles(agentPoolProfiles);
+ return this;
+ }
+
+ /**
+ * Get the authProfile property: Configures OpenShift authentication.
+ *
+ * @return the authProfile value.
+ */
+ public OpenShiftManagedClusterAuthProfile authProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().authProfile();
+ }
+
+ /**
+ * Set the authProfile property: Configures OpenShift authentication.
+ *
+ * @param authProfile the authProfile value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withAuthProfile(OpenShiftManagedClusterAuthProfile authProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withAuthProfile(authProfile);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (plan() != null) {
+ plan().validate();
+ }
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OpenShiftManagedClusterProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OpenShiftManagedClusterProperties.java
new file mode 100644
index 0000000000000..09a093dbafade
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OpenShiftManagedClusterProperties.java
@@ -0,0 +1,272 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.NetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterAuthProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftManagedClusterMasterPoolProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OpenShiftRouterProfile;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Properties of the OpenShift managed cluster. */
+@Fluent
+public final class OpenShiftManagedClusterProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OpenShiftManagedClusterProperties.class);
+
+ /*
+ * The current deployment or provisioning state, which only appears in the
+ * response.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * Version of OpenShift specified when creating the cluster.
+ */
+ @JsonProperty(value = "openShiftVersion", required = true)
+ private String openShiftVersion;
+
+ /*
+ * Version of OpenShift specified when creating the cluster.
+ */
+ @JsonProperty(value = "clusterVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String clusterVersion;
+
+ /*
+ * Service generated FQDN for OpenShift API server.
+ */
+ @JsonProperty(value = "publicHostname", access = JsonProperty.Access.WRITE_ONLY)
+ private String publicHostname;
+
+ /*
+ * Service generated FQDN for OpenShift API server loadbalancer internal
+ * hostname.
+ */
+ @JsonProperty(value = "fqdn", access = JsonProperty.Access.WRITE_ONLY)
+ private String fqdn;
+
+ /*
+ * Configuration for OpenShift networking.
+ */
+ @JsonProperty(value = "networkProfile")
+ private NetworkProfile networkProfile;
+
+ /*
+ * Configuration for OpenShift router(s).
+ */
+ @JsonProperty(value = "routerProfiles")
+ private List routerProfiles;
+
+ /*
+ * Configuration for OpenShift master VMs.
+ */
+ @JsonProperty(value = "masterPoolProfile")
+ private OpenShiftManagedClusterMasterPoolProfile masterPoolProfile;
+
+ /*
+ * Configuration of OpenShift cluster VMs.
+ */
+ @JsonProperty(value = "agentPoolProfiles")
+ private List agentPoolProfiles;
+
+ /*
+ * Configures OpenShift authentication.
+ */
+ @JsonProperty(value = "authProfile")
+ private OpenShiftManagedClusterAuthProfile authProfile;
+
+ /**
+ * Get the provisioningState property: The current deployment or provisioning state, which only appears in the
+ * response.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the openShiftVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @return the openShiftVersion value.
+ */
+ public String openShiftVersion() {
+ return this.openShiftVersion;
+ }
+
+ /**
+ * Set the openShiftVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @param openShiftVersion the openShiftVersion value to set.
+ * @return the OpenShiftManagedClusterProperties object itself.
+ */
+ public OpenShiftManagedClusterProperties withOpenShiftVersion(String openShiftVersion) {
+ this.openShiftVersion = openShiftVersion;
+ return this;
+ }
+
+ /**
+ * Get the clusterVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @return the clusterVersion value.
+ */
+ public String clusterVersion() {
+ return this.clusterVersion;
+ }
+
+ /**
+ * Get the publicHostname property: Service generated FQDN for OpenShift API server.
+ *
+ * @return the publicHostname value.
+ */
+ public String publicHostname() {
+ return this.publicHostname;
+ }
+
+ /**
+ * Get the fqdn property: Service generated FQDN for OpenShift API server loadbalancer internal hostname.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+ /**
+ * Get the networkProfile property: Configuration for OpenShift networking.
+ *
+ * @return the networkProfile value.
+ */
+ public NetworkProfile networkProfile() {
+ return this.networkProfile;
+ }
+
+ /**
+ * Set the networkProfile property: Configuration for OpenShift networking.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the OpenShiftManagedClusterProperties object itself.
+ */
+ public OpenShiftManagedClusterProperties withNetworkProfile(NetworkProfile networkProfile) {
+ this.networkProfile = networkProfile;
+ return this;
+ }
+
+ /**
+ * Get the routerProfiles property: Configuration for OpenShift router(s).
+ *
+ * @return the routerProfiles value.
+ */
+ public List routerProfiles() {
+ return this.routerProfiles;
+ }
+
+ /**
+ * Set the routerProfiles property: Configuration for OpenShift router(s).
+ *
+ * @param routerProfiles the routerProfiles value to set.
+ * @return the OpenShiftManagedClusterProperties object itself.
+ */
+ public OpenShiftManagedClusterProperties withRouterProfiles(List routerProfiles) {
+ this.routerProfiles = routerProfiles;
+ return this;
+ }
+
+ /**
+ * Get the masterPoolProfile property: Configuration for OpenShift master VMs.
+ *
+ * @return the masterPoolProfile value.
+ */
+ public OpenShiftManagedClusterMasterPoolProfile masterPoolProfile() {
+ return this.masterPoolProfile;
+ }
+
+ /**
+ * Set the masterPoolProfile property: Configuration for OpenShift master VMs.
+ *
+ * @param masterPoolProfile the masterPoolProfile value to set.
+ * @return the OpenShiftManagedClusterProperties object itself.
+ */
+ public OpenShiftManagedClusterProperties withMasterPoolProfile(
+ OpenShiftManagedClusterMasterPoolProfile masterPoolProfile) {
+ this.masterPoolProfile = masterPoolProfile;
+ return this;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: Configuration of OpenShift cluster VMs.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.agentPoolProfiles;
+ }
+
+ /**
+ * Set the agentPoolProfiles property: Configuration of OpenShift cluster VMs.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the OpenShiftManagedClusterProperties object itself.
+ */
+ public OpenShiftManagedClusterProperties withAgentPoolProfiles(
+ List agentPoolProfiles) {
+ this.agentPoolProfiles = agentPoolProfiles;
+ return this;
+ }
+
+ /**
+ * Get the authProfile property: Configures OpenShift authentication.
+ *
+ * @return the authProfile value.
+ */
+ public OpenShiftManagedClusterAuthProfile authProfile() {
+ return this.authProfile;
+ }
+
+ /**
+ * Set the authProfile property: Configures OpenShift authentication.
+ *
+ * @param authProfile the authProfile value to set.
+ * @return the OpenShiftManagedClusterProperties object itself.
+ */
+ public OpenShiftManagedClusterProperties withAuthProfile(OpenShiftManagedClusterAuthProfile authProfile) {
+ this.authProfile = authProfile;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (openShiftVersion() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property openShiftVersion in model OpenShiftManagedClusterProperties"));
+ }
+ if (networkProfile() != null) {
+ networkProfile().validate();
+ }
+ if (routerProfiles() != null) {
+ routerProfiles().forEach(e -> e.validate());
+ }
+ if (masterPoolProfile() != null) {
+ masterPoolProfile().validate();
+ }
+ if (agentPoolProfiles() != null) {
+ agentPoolProfiles().forEach(e -> e.validate());
+ }
+ if (authProfile() != null) {
+ authProfile().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueDisplay.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueDisplay.java
new file mode 100644
index 0000000000000..e1a2092d1e265
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueDisplay.java
@@ -0,0 +1,84 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes the properties of a Operation Value Display. */
+@Immutable
+public final class OperationValueDisplay {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationValueDisplay.class);
+
+ /*
+ * The display name of the operation.
+ */
+ @JsonProperty(value = "operation", access = JsonProperty.Access.WRITE_ONLY)
+ private String operation;
+
+ /*
+ * The display name of the resource the operation applies to.
+ */
+ @JsonProperty(value = "resource", access = JsonProperty.Access.WRITE_ONLY)
+ private String resource;
+
+ /*
+ * The description of the operation.
+ */
+ @JsonProperty(value = "description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /*
+ * The resource provider for the operation.
+ */
+ @JsonProperty(value = "provider", access = JsonProperty.Access.WRITE_ONLY)
+ private String provider;
+
+ /**
+ * Get the operation property: The display name of the operation.
+ *
+ * @return the operation value.
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Get the resource property: The display name of the resource the operation applies to.
+ *
+ * @return the resource value.
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Get the description property: The description of the operation.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Get the provider property: The resource provider for the operation.
+ *
+ * @return the provider value.
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueInner.java
new file mode 100644
index 0000000000000..2220109599424
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueInner.java
@@ -0,0 +1,108 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes the properties of a Operation value. */
+@Fluent
+public final class OperationValueInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationValueInner.class);
+
+ /*
+ * The origin of the operation.
+ */
+ @JsonProperty(value = "origin", access = JsonProperty.Access.WRITE_ONLY)
+ private String origin;
+
+ /*
+ * The name of the operation.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Describes the properties of a Operation Value Display.
+ */
+ @JsonProperty(value = "display")
+ private OperationValueDisplay innerDisplay;
+
+ /**
+ * Get the origin property: The origin of the operation.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Get the name property: The name of the operation.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the innerDisplay property: Describes the properties of a Operation Value Display.
+ *
+ * @return the innerDisplay value.
+ */
+ private OperationValueDisplay innerDisplay() {
+ return this.innerDisplay;
+ }
+
+ /**
+ * Get the operation property: The display name of the operation.
+ *
+ * @return the operation value.
+ */
+ public String operation() {
+ return this.innerDisplay() == null ? null : this.innerDisplay().operation();
+ }
+
+ /**
+ * Get the resource property: The display name of the resource the operation applies to.
+ *
+ * @return the resource value.
+ */
+ public String resource() {
+ return this.innerDisplay() == null ? null : this.innerDisplay().resource();
+ }
+
+ /**
+ * Get the description property: The description of the operation.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerDisplay() == null ? null : this.innerDisplay().description();
+ }
+
+ /**
+ * Get the provider property: The resource provider for the operation.
+ *
+ * @return the provider value.
+ */
+ public String provider() {
+ return this.innerDisplay() == null ? null : this.innerDisplay().provider();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerDisplay() != null) {
+ innerDisplay().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OrchestratorVersionProfileListResultInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OrchestratorVersionProfileListResultInner.java
new file mode 100644
index 0000000000000..0114ff93d04ac
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OrchestratorVersionProfileListResultInner.java
@@ -0,0 +1,118 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.OrchestratorVersionProfile;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of versions for supported orchestrators. */
+@Fluent
+public final class OrchestratorVersionProfileListResultInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OrchestratorVersionProfileListResultInner.class);
+
+ /*
+ * Id of the orchestrator version profile list result.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * Name of the orchestrator version profile list result.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Type of the orchestrator version profile list result.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The properties of an orchestrator version profile.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private OrchestratorVersionProfileProperties innerProperties = new OrchestratorVersionProfileProperties();
+
+ /**
+ * Get the id property: Id of the orchestrator version profile list result.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: Name of the orchestrator version profile list result.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: Type of the orchestrator version profile list result.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: The properties of an orchestrator version profile.
+ *
+ * @return the innerProperties value.
+ */
+ private OrchestratorVersionProfileProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the orchestrators property: List of orchestrator version profiles.
+ *
+ * @return the orchestrators value.
+ */
+ public List orchestrators() {
+ return this.innerProperties() == null ? null : this.innerProperties().orchestrators();
+ }
+
+ /**
+ * Set the orchestrators property: List of orchestrator version profiles.
+ *
+ * @param orchestrators the orchestrators value to set.
+ * @return the OrchestratorVersionProfileListResultInner object itself.
+ */
+ public OrchestratorVersionProfileListResultInner withOrchestrators(List orchestrators) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OrchestratorVersionProfileProperties();
+ }
+ this.innerProperties().withOrchestrators(orchestrators);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model"
+ + " OrchestratorVersionProfileListResultInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OrchestratorVersionProfileProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OrchestratorVersionProfileProperties.java
new file mode 100644
index 0000000000000..6e335c9fecaa6
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OrchestratorVersionProfileProperties.java
@@ -0,0 +1,60 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.OrchestratorVersionProfile;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The properties of an orchestrator version profile. */
+@Fluent
+public final class OrchestratorVersionProfileProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OrchestratorVersionProfileProperties.class);
+
+ /*
+ * List of orchestrator version profiles.
+ */
+ @JsonProperty(value = "orchestrators", required = true)
+ private List orchestrators;
+
+ /**
+ * Get the orchestrators property: List of orchestrator version profiles.
+ *
+ * @return the orchestrators value.
+ */
+ public List orchestrators() {
+ return this.orchestrators;
+ }
+
+ /**
+ * Set the orchestrators property: List of orchestrator version profiles.
+ *
+ * @param orchestrators the orchestrators value to set.
+ * @return the OrchestratorVersionProfileProperties object itself.
+ */
+ public OrchestratorVersionProfileProperties withOrchestrators(List orchestrators) {
+ this.orchestrators = orchestrators;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (orchestrators() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property orchestrators in model OrchestratorVersionProfileProperties"));
+ } else {
+ orchestrators().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OutboundEnvironmentEndpointInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OutboundEnvironmentEndpointInner.java
new file mode 100644
index 0000000000000..049b8e53f395b
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OutboundEnvironmentEndpointInner.java
@@ -0,0 +1,84 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.EndpointDependency;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Egress endpoints which AKS agent nodes connect to for common purpose. */
+@Fluent
+public final class OutboundEnvironmentEndpointInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OutboundEnvironmentEndpointInner.class);
+
+ /*
+ * The category of endpoints accessed by the AKS agent node, e.g.
+ * azure-resource-management, apiserver, etc.
+ */
+ @JsonProperty(value = "category")
+ private String category;
+
+ /*
+ * The endpoints that AKS agent nodes connect to
+ */
+ @JsonProperty(value = "endpoints")
+ private List endpoints;
+
+ /**
+ * Get the category property: The category of endpoints accessed by the AKS agent node, e.g.
+ * azure-resource-management, apiserver, etc.
+ *
+ * @return the category value.
+ */
+ public String category() {
+ return this.category;
+ }
+
+ /**
+ * Set the category property: The category of endpoints accessed by the AKS agent node, e.g.
+ * azure-resource-management, apiserver, etc.
+ *
+ * @param category the category value to set.
+ * @return the OutboundEnvironmentEndpointInner object itself.
+ */
+ public OutboundEnvironmentEndpointInner withCategory(String category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get the endpoints property: The endpoints that AKS agent nodes connect to.
+ *
+ * @return the endpoints value.
+ */
+ public List endpoints() {
+ return this.endpoints;
+ }
+
+ /**
+ * Set the endpoints property: The endpoints that AKS agent nodes connect to.
+ *
+ * @param endpoints the endpoints value to set.
+ * @return the OutboundEnvironmentEndpointInner object itself.
+ */
+ public OutboundEnvironmentEndpointInner withEndpoints(List endpoints) {
+ this.endpoints = endpoints;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (endpoints() != null) {
+ endpoints().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionInner.java
new file mode 100644
index 0000000000000..62364a3bede62
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionInner.java
@@ -0,0 +1,104 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateEndpoint;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateEndpointConnectionProvisioningState;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateLinkServiceConnectionState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A private endpoint connection. */
+@Fluent
+public final class PrivateEndpointConnectionInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateEndpointConnectionInner.class);
+
+ /*
+ * The properties of a private endpoint connection.
+ */
+ @JsonProperty(value = "properties")
+ private PrivateEndpointConnectionProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: The properties of a private endpoint connection.
+ *
+ * @return the innerProperties value.
+ */
+ private PrivateEndpointConnectionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the provisioningState property: The current provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public PrivateEndpointConnectionProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the privateEndpoint property: The resource of private endpoint.
+ *
+ * @return the privateEndpoint value.
+ */
+ public PrivateEndpoint privateEndpoint() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateEndpoint();
+ }
+
+ /**
+ * Set the privateEndpoint property: The resource of private endpoint.
+ *
+ * @param privateEndpoint the privateEndpoint value to set.
+ * @return the PrivateEndpointConnectionInner object itself.
+ */
+ public PrivateEndpointConnectionInner withPrivateEndpoint(PrivateEndpoint privateEndpoint) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PrivateEndpointConnectionProperties();
+ }
+ this.innerProperties().withPrivateEndpoint(privateEndpoint);
+ return this;
+ }
+
+ /**
+ * Get the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+ * between service consumer and provider.
+ *
+ * @return the privateLinkServiceConnectionState value.
+ */
+ public PrivateLinkServiceConnectionState privateLinkServiceConnectionState() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateLinkServiceConnectionState();
+ }
+
+ /**
+ * Set the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+ * between service consumer and provider.
+ *
+ * @param privateLinkServiceConnectionState the privateLinkServiceConnectionState value to set.
+ * @return the PrivateEndpointConnectionInner object itself.
+ */
+ public PrivateEndpointConnectionInner withPrivateLinkServiceConnectionState(
+ PrivateLinkServiceConnectionState privateLinkServiceConnectionState) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PrivateEndpointConnectionProperties();
+ }
+ this.innerProperties().withPrivateLinkServiceConnectionState(privateLinkServiceConnectionState);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionListResultInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionListResultInner.java
new file mode 100644
index 0000000000000..c822c4f716f13
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionListResultInner.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A list of private endpoint connections. */
+@Fluent
+public final class PrivateEndpointConnectionListResultInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateEndpointConnectionListResultInner.class);
+
+ /*
+ * The collection value.
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * Get the value property: The collection value.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: The collection value.
+ *
+ * @param value the value value to set.
+ * @return the PrivateEndpointConnectionListResultInner object itself.
+ */
+ public PrivateEndpointConnectionListResultInner withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionProperties.java
new file mode 100644
index 0000000000000..465d1c2033af1
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionProperties.java
@@ -0,0 +1,110 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateEndpoint;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateEndpointConnectionProvisioningState;
+import com.azure.resourcemanager.containerservice.generated.models.PrivateLinkServiceConnectionState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a private endpoint connection. */
+@Fluent
+public final class PrivateEndpointConnectionProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateEndpointConnectionProperties.class);
+
+ /*
+ * The current provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private PrivateEndpointConnectionProvisioningState provisioningState;
+
+ /*
+ * The resource of private endpoint.
+ */
+ @JsonProperty(value = "privateEndpoint")
+ private PrivateEndpoint privateEndpoint;
+
+ /*
+ * A collection of information about the state of the connection between
+ * service consumer and provider.
+ */
+ @JsonProperty(value = "privateLinkServiceConnectionState", required = true)
+ private PrivateLinkServiceConnectionState privateLinkServiceConnectionState;
+
+ /**
+ * Get the provisioningState property: The current provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public PrivateEndpointConnectionProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the privateEndpoint property: The resource of private endpoint.
+ *
+ * @return the privateEndpoint value.
+ */
+ public PrivateEndpoint privateEndpoint() {
+ return this.privateEndpoint;
+ }
+
+ /**
+ * Set the privateEndpoint property: The resource of private endpoint.
+ *
+ * @param privateEndpoint the privateEndpoint value to set.
+ * @return the PrivateEndpointConnectionProperties object itself.
+ */
+ public PrivateEndpointConnectionProperties withPrivateEndpoint(PrivateEndpoint privateEndpoint) {
+ this.privateEndpoint = privateEndpoint;
+ return this;
+ }
+
+ /**
+ * Get the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+ * between service consumer and provider.
+ *
+ * @return the privateLinkServiceConnectionState value.
+ */
+ public PrivateLinkServiceConnectionState privateLinkServiceConnectionState() {
+ return this.privateLinkServiceConnectionState;
+ }
+
+ /**
+ * Set the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+ * between service consumer and provider.
+ *
+ * @param privateLinkServiceConnectionState the privateLinkServiceConnectionState value to set.
+ * @return the PrivateEndpointConnectionProperties object itself.
+ */
+ public PrivateEndpointConnectionProperties withPrivateLinkServiceConnectionState(
+ PrivateLinkServiceConnectionState privateLinkServiceConnectionState) {
+ this.privateLinkServiceConnectionState = privateLinkServiceConnectionState;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (privateEndpoint() != null) {
+ privateEndpoint().validate();
+ }
+ if (privateLinkServiceConnectionState() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property privateLinkServiceConnectionState in model"
+ + " PrivateEndpointConnectionProperties"));
+ } else {
+ privateLinkServiceConnectionState().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateLinkResourceInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateLinkResourceInner.java
new file mode 100644
index 0000000000000..63c222971bf0c
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateLinkResourceInner.java
@@ -0,0 +1,172 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A private link resource. */
+@Fluent
+public final class PrivateLinkResourceInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateLinkResourceInner.class);
+
+ /*
+ * The ID of the private link resource.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * The name of the private link resource.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * The resource type.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /*
+ * The group ID of the resource.
+ */
+ @JsonProperty(value = "groupId")
+ private String groupId;
+
+ /*
+ * The RequiredMembers of the resource
+ */
+ @JsonProperty(value = "requiredMembers")
+ private List requiredMembers;
+
+ /*
+ * The private link service ID of the resource, this field is exposed only
+ * to NRP internally.
+ */
+ @JsonProperty(value = "privateLinkServiceID", access = JsonProperty.Access.WRITE_ONLY)
+ private String privateLinkServiceId;
+
+ /**
+ * Get the id property: The ID of the private link resource.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: The ID of the private link resource.
+ *
+ * @param id the id value to set.
+ * @return the PrivateLinkResourceInner object itself.
+ */
+ public PrivateLinkResourceInner withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the name property: The name of the private link resource.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The name of the private link resource.
+ *
+ * @param name the name value to set.
+ * @return the PrivateLinkResourceInner object itself.
+ */
+ public PrivateLinkResourceInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type property: The resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The resource type.
+ *
+ * @param type the type value to set.
+ * @return the PrivateLinkResourceInner object itself.
+ */
+ public PrivateLinkResourceInner withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the groupId property: The group ID of the resource.
+ *
+ * @return the groupId value.
+ */
+ public String groupId() {
+ return this.groupId;
+ }
+
+ /**
+ * Set the groupId property: The group ID of the resource.
+ *
+ * @param groupId the groupId value to set.
+ * @return the PrivateLinkResourceInner object itself.
+ */
+ public PrivateLinkResourceInner withGroupId(String groupId) {
+ this.groupId = groupId;
+ return this;
+ }
+
+ /**
+ * Get the requiredMembers property: The RequiredMembers of the resource.
+ *
+ * @return the requiredMembers value.
+ */
+ public List requiredMembers() {
+ return this.requiredMembers;
+ }
+
+ /**
+ * Set the requiredMembers property: The RequiredMembers of the resource.
+ *
+ * @param requiredMembers the requiredMembers value to set.
+ * @return the PrivateLinkResourceInner object itself.
+ */
+ public PrivateLinkResourceInner withRequiredMembers(List requiredMembers) {
+ this.requiredMembers = requiredMembers;
+ return this;
+ }
+
+ /**
+ * Get the privateLinkServiceId property: The private link service ID of the resource, this field is exposed only to
+ * NRP internally.
+ *
+ * @return the privateLinkServiceId value.
+ */
+ public String privateLinkServiceId() {
+ return this.privateLinkServiceId;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateLinkResourcesListResultInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateLinkResourcesListResultInner.java
new file mode 100644
index 0000000000000..98787f879dc4f
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateLinkResourcesListResultInner.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A list of private link resources. */
+@Fluent
+public final class PrivateLinkResourcesListResultInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateLinkResourcesListResultInner.class);
+
+ /*
+ * The collection value.
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * Get the value property: The collection value.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: The collection value.
+ *
+ * @param value the value value to set.
+ * @return the PrivateLinkResourcesListResultInner object itself.
+ */
+ public PrivateLinkResourcesListResultInner withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/RunCommandResultInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/RunCommandResultInner.java
new file mode 100644
index 0000000000000..dcc768c3f789d
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/RunCommandResultInner.java
@@ -0,0 +1,112 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** run command result. */
+@Fluent
+public final class RunCommandResultInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(RunCommandResultInner.class);
+
+ /*
+ * The command id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * Properties of command result.
+ */
+ @JsonProperty(value = "properties")
+ private CommandResultProperties innerProperties;
+
+ /**
+ * Get the id property: The command id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of command result.
+ *
+ * @return the innerProperties value.
+ */
+ private CommandResultProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the provisioningState property: provisioning State.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the exitCode property: The exit code of the command.
+ *
+ * @return the exitCode value.
+ */
+ public Integer exitCode() {
+ return this.innerProperties() == null ? null : this.innerProperties().exitCode();
+ }
+
+ /**
+ * Get the startedAt property: The time when the command started.
+ *
+ * @return the startedAt value.
+ */
+ public OffsetDateTime startedAt() {
+ return this.innerProperties() == null ? null : this.innerProperties().startedAt();
+ }
+
+ /**
+ * Get the finishedAt property: The time when the command finished.
+ *
+ * @return the finishedAt value.
+ */
+ public OffsetDateTime finishedAt() {
+ return this.innerProperties() == null ? null : this.innerProperties().finishedAt();
+ }
+
+ /**
+ * Get the logs property: The command output.
+ *
+ * @return the logs value.
+ */
+ public String logs() {
+ return this.innerProperties() == null ? null : this.innerProperties().logs();
+ }
+
+ /**
+ * Get the reason property: An explanation of why provisioningState is set to failed (if so).
+ *
+ * @return the reason value.
+ */
+ public String reason() {
+ return this.innerProperties() == null ? null : this.innerProperties().reason();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/SnapshotInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/SnapshotInner.java
new file mode 100644
index 0000000000000..c0f724c6b8fc6
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/SnapshotInner.java
@@ -0,0 +1,180 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.Ossku;
+import com.azure.resourcemanager.containerservice.generated.models.SnapshotType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** A node pool snapshot resource. */
+@Fluent
+public final class SnapshotInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SnapshotInner.class);
+
+ /*
+ * The system metadata relating to this snapshot.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a snapshot.
+ */
+ @JsonProperty(value = "properties")
+ private SnapshotProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this snapshot.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a snapshot.
+ *
+ * @return the innerProperties value.
+ */
+ private SnapshotProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SnapshotInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SnapshotInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source agent pool resource ID to create
+ * this snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.innerProperties() == null ? null : this.innerProperties().creationData();
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source agent pool resource ID to create
+ * this snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the SnapshotInner object itself.
+ */
+ public SnapshotInner withCreationData(CreationData creationData) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SnapshotProperties();
+ }
+ this.innerProperties().withCreationData(creationData);
+ return this;
+ }
+
+ /**
+ * Get the snapshotType property: The type of a snapshot. The default is NodePool.
+ *
+ * @return the snapshotType value.
+ */
+ public SnapshotType snapshotType() {
+ return this.innerProperties() == null ? null : this.innerProperties().snapshotType();
+ }
+
+ /**
+ * Set the snapshotType property: The type of a snapshot. The default is NodePool.
+ *
+ * @param snapshotType the snapshotType value to set.
+ * @return the SnapshotInner object itself.
+ */
+ public SnapshotInner withSnapshotType(SnapshotType snapshotType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SnapshotProperties();
+ }
+ this.innerProperties().withSnapshotType(snapshotType);
+ return this;
+ }
+
+ /**
+ * Get the kubernetesVersion property: The version of Kubernetes.
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubernetesVersion();
+ }
+
+ /**
+ * Get the nodeImageVersion property: The version of node image.
+ *
+ * @return the nodeImageVersion value.
+ */
+ public String nodeImageVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeImageVersion();
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * Get the osSku property: Specifies an OS SKU. This value must not be specified if OSType is Windows.
+ *
+ * @return the osSku value.
+ */
+ public Ossku osSku() {
+ return this.innerProperties() == null ? null : this.innerProperties().osSku();
+ }
+
+ /**
+ * Get the vmSize property: The size of the VM.
+ *
+ * @return the vmSize value.
+ */
+ public String vmSize() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmSize();
+ }
+
+ /**
+ * Get the enableFips property: Whether to use a FIPS-enabled OS.
+ *
+ * @return the enableFips value.
+ */
+ public Boolean enableFips() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableFips();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/SnapshotProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/SnapshotProperties.java
new file mode 100644
index 0000000000000..9868c64616d9c
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/SnapshotProperties.java
@@ -0,0 +1,178 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.Ossku;
+import com.azure.resourcemanager.containerservice.generated.models.SnapshotType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties used to configure a node pool snapshot. */
+@Fluent
+public final class SnapshotProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SnapshotProperties.class);
+
+ /*
+ * CreationData to be used to specify the source agent pool resource ID to
+ * create this snapshot.
+ */
+ @JsonProperty(value = "creationData")
+ private CreationData creationData;
+
+ /*
+ * The type of a snapshot. The default is NodePool.
+ */
+ @JsonProperty(value = "snapshotType")
+ private SnapshotType snapshotType;
+
+ /*
+ * The version of Kubernetes.
+ */
+ @JsonProperty(value = "kubernetesVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String kubernetesVersion;
+
+ /*
+ * The version of node image.
+ */
+ @JsonProperty(value = "nodeImageVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeImageVersion;
+
+ /*
+ * OsType to be used to specify os type. Choose from Linux and Windows.
+ * Default to Linux.
+ */
+ @JsonProperty(value = "osType", access = JsonProperty.Access.WRITE_ONLY)
+ private OSType osType;
+
+ /*
+ * Specifies an OS SKU. This value must not be specified if OSType is
+ * Windows.
+ */
+ @JsonProperty(value = "osSku", access = JsonProperty.Access.WRITE_ONLY)
+ private Ossku osSku;
+
+ /*
+ * The size of the VM.
+ */
+ @JsonProperty(value = "vmSize", access = JsonProperty.Access.WRITE_ONLY)
+ private String vmSize;
+
+ /*
+ * Whether to use a FIPS-enabled OS.
+ */
+ @JsonProperty(value = "enableFIPS", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean enableFips;
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source agent pool resource ID to create
+ * this snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.creationData;
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source agent pool resource ID to create
+ * this snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the SnapshotProperties object itself.
+ */
+ public SnapshotProperties withCreationData(CreationData creationData) {
+ this.creationData = creationData;
+ return this;
+ }
+
+ /**
+ * Get the snapshotType property: The type of a snapshot. The default is NodePool.
+ *
+ * @return the snapshotType value.
+ */
+ public SnapshotType snapshotType() {
+ return this.snapshotType;
+ }
+
+ /**
+ * Set the snapshotType property: The type of a snapshot. The default is NodePool.
+ *
+ * @param snapshotType the snapshotType value to set.
+ * @return the SnapshotProperties object itself.
+ */
+ public SnapshotProperties withSnapshotType(SnapshotType snapshotType) {
+ this.snapshotType = snapshotType;
+ return this;
+ }
+
+ /**
+ * Get the kubernetesVersion property: The version of Kubernetes.
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Get the nodeImageVersion property: The version of node image.
+ *
+ * @return the nodeImageVersion value.
+ */
+ public String nodeImageVersion() {
+ return this.nodeImageVersion;
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Get the osSku property: Specifies an OS SKU. This value must not be specified if OSType is Windows.
+ *
+ * @return the osSku value.
+ */
+ public Ossku osSku() {
+ return this.osSku;
+ }
+
+ /**
+ * Get the vmSize property: The size of the VM.
+ *
+ * @return the vmSize value.
+ */
+ public String vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Get the enableFips property: Whether to use a FIPS-enabled OS.
+ *
+ * @return the enableFips value.
+ */
+ public Boolean enableFips() {
+ return this.enableFips;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (creationData() != null) {
+ creationData().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/package-info.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/package-info.java
new file mode 100644
index 0000000000000..e6d443bef7d93
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for ContainerServiceManagementClient. Container Service Client. */
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/package-info.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/package-info.java
new file mode 100644
index 0000000000000..383b8e3c63277
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for ContainerServiceManagementClient. Container Service Client. */
+package com.azure.resourcemanager.containerservice.generated.fluent;
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolAvailableVersionsImpl.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolAvailableVersionsImpl.java
new file mode 100644
index 0000000000000..57d97bd1c377a
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolAvailableVersionsImpl.java
@@ -0,0 +1,53 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.implementation;
+
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolAvailableVersionsInner;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolAvailableVersions;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import java.util.Collections;
+import java.util.List;
+
+public final class AgentPoolAvailableVersionsImpl implements AgentPoolAvailableVersions {
+ private AgentPoolAvailableVersionsInner innerObject;
+
+ private final com.azure.resourcemanager.containerservice.generated.ContainerServiceManager serviceManager;
+
+ AgentPoolAvailableVersionsImpl(
+ AgentPoolAvailableVersionsInner innerObject,
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public List agentPoolVersions() {
+ List inner = this.innerModel().agentPoolVersions();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public AgentPoolAvailableVersionsInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolImpl.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolImpl.java
new file mode 100644
index 0000000000000..0a284ef5284ee
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolImpl.java
@@ -0,0 +1,541 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolInner;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPool;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolType;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeSettings;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.GpuInstanceProfile;
+import com.azure.resourcemanager.containerservice.generated.models.KubeletConfig;
+import com.azure.resourcemanager.containerservice.generated.models.KubeletDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.LinuxOSConfig;
+import com.azure.resourcemanager.containerservice.generated.models.OSDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.Ossku;
+import com.azure.resourcemanager.containerservice.generated.models.PowerState;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleDownMode;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleSetEvictionPolicy;
+import com.azure.resourcemanager.containerservice.generated.models.ScaleSetPriority;
+import com.azure.resourcemanager.containerservice.generated.models.WorkloadRuntime;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public final class AgentPoolImpl implements AgentPool, AgentPool.Definition, AgentPool.Update {
+ private AgentPoolInner innerObject;
+
+ private final com.azure.resourcemanager.containerservice.generated.ContainerServiceManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public Integer count() {
+ return this.innerModel().count();
+ }
+
+ public String vmSize() {
+ return this.innerModel().vmSize();
+ }
+
+ public Integer osDiskSizeGB() {
+ return this.innerModel().osDiskSizeGB();
+ }
+
+ public OSDiskType osDiskType() {
+ return this.innerModel().osDiskType();
+ }
+
+ public KubeletDiskType kubeletDiskType() {
+ return this.innerModel().kubeletDiskType();
+ }
+
+ public WorkloadRuntime workloadRuntime() {
+ return this.innerModel().workloadRuntime();
+ }
+
+ public String messageOfTheDay() {
+ return this.innerModel().messageOfTheDay();
+ }
+
+ public String vnetSubnetId() {
+ return this.innerModel().vnetSubnetId();
+ }
+
+ public String podSubnetId() {
+ return this.innerModel().podSubnetId();
+ }
+
+ public Integer maxPods() {
+ return this.innerModel().maxPods();
+ }
+
+ public OSType osType() {
+ return this.innerModel().osType();
+ }
+
+ public Ossku osSku() {
+ return this.innerModel().osSku();
+ }
+
+ public Integer maxCount() {
+ return this.innerModel().maxCount();
+ }
+
+ public Integer minCount() {
+ return this.innerModel().minCount();
+ }
+
+ public Boolean enableAutoScaling() {
+ return this.innerModel().enableAutoScaling();
+ }
+
+ public ScaleDownMode scaleDownMode() {
+ return this.innerModel().scaleDownMode();
+ }
+
+ public AgentPoolType typePropertiesType() {
+ return this.innerModel().typePropertiesType();
+ }
+
+ public AgentPoolMode mode() {
+ return this.innerModel().mode();
+ }
+
+ public String orchestratorVersion() {
+ return this.innerModel().orchestratorVersion();
+ }
+
+ public String nodeImageVersion() {
+ return this.innerModel().nodeImageVersion();
+ }
+
+ public AgentPoolUpgradeSettings upgradeSettings() {
+ return this.innerModel().upgradeSettings();
+ }
+
+ public String provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public PowerState powerState() {
+ return this.innerModel().powerState();
+ }
+
+ public List availabilityZones() {
+ List inner = this.innerModel().availabilityZones();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public Boolean enableNodePublicIp() {
+ return this.innerModel().enableNodePublicIp();
+ }
+
+ public String nodePublicIpPrefixId() {
+ return this.innerModel().nodePublicIpPrefixId();
+ }
+
+ public ScaleSetPriority scaleSetPriority() {
+ return this.innerModel().scaleSetPriority();
+ }
+
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.innerModel().scaleSetEvictionPolicy();
+ }
+
+ public Float spotMaxPrice() {
+ return this.innerModel().spotMaxPrice();
+ }
+
+ public Map tags() {
+ Map inner = this.innerModel().tags();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public Map nodeLabels() {
+ Map inner = this.innerModel().nodeLabels();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public List nodeTaints() {
+ List inner = this.innerModel().nodeTaints();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public String proximityPlacementGroupId() {
+ return this.innerModel().proximityPlacementGroupId();
+ }
+
+ public KubeletConfig kubeletConfig() {
+ return this.innerModel().kubeletConfig();
+ }
+
+ public LinuxOSConfig linuxOSConfig() {
+ return this.innerModel().linuxOSConfig();
+ }
+
+ public Boolean enableEncryptionAtHost() {
+ return this.innerModel().enableEncryptionAtHost();
+ }
+
+ public Boolean enableUltraSsd() {
+ return this.innerModel().enableUltraSsd();
+ }
+
+ public Boolean enableFips() {
+ return this.innerModel().enableFips();
+ }
+
+ public GpuInstanceProfile gpuInstanceProfile() {
+ return this.innerModel().gpuInstanceProfile();
+ }
+
+ public CreationData creationData() {
+ return this.innerModel().creationData();
+ }
+
+ public String capacityReservationGroupId() {
+ return this.innerModel().capacityReservationGroupId();
+ }
+
+ public String hostGroupId() {
+ return this.innerModel().hostGroupId();
+ }
+
+ public AgentPoolInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String resourceName;
+
+ private String agentPoolName;
+
+ public AgentPoolImpl withExistingManagedCluster(String resourceGroupName, String resourceName) {
+ this.resourceGroupName = resourceGroupName;
+ this.resourceName = resourceName;
+ return this;
+ }
+
+ public AgentPool create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAgentPools()
+ .createOrUpdate(resourceGroupName, resourceName, agentPoolName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public AgentPool create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAgentPools()
+ .createOrUpdate(resourceGroupName, resourceName, agentPoolName, this.innerModel(), context);
+ return this;
+ }
+
+ AgentPoolImpl(
+ String name, com.azure.resourcemanager.containerservice.generated.ContainerServiceManager serviceManager) {
+ this.innerObject = new AgentPoolInner();
+ this.serviceManager = serviceManager;
+ this.agentPoolName = name;
+ }
+
+ public AgentPoolImpl update() {
+ return this;
+ }
+
+ public AgentPool apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAgentPools()
+ .createOrUpdate(resourceGroupName, resourceName, agentPoolName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public AgentPool apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAgentPools()
+ .createOrUpdate(resourceGroupName, resourceName, agentPoolName, this.innerModel(), context);
+ return this;
+ }
+
+ AgentPoolImpl(
+ AgentPoolInner innerObject,
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.resourceName = Utils.getValueFromIdByName(innerObject.id(), "managedClusters");
+ this.agentPoolName = Utils.getValueFromIdByName(innerObject.id(), "agentPools");
+ }
+
+ public AgentPool refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAgentPools()
+ .getWithResponse(resourceGroupName, resourceName, agentPoolName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public AgentPool refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAgentPools()
+ .getWithResponse(resourceGroupName, resourceName, agentPoolName, context)
+ .getValue();
+ return this;
+ }
+
+ public AgentPool upgradeNodeImageVersion() {
+ return serviceManager.agentPools().upgradeNodeImageVersion(resourceGroupName, resourceName, agentPoolName);
+ }
+
+ public AgentPool upgradeNodeImageVersion(Context context) {
+ return serviceManager
+ .agentPools()
+ .upgradeNodeImageVersion(resourceGroupName, resourceName, agentPoolName, context);
+ }
+
+ public AgentPoolImpl withTags(Map tags) {
+ this.innerModel().withTags(tags);
+ return this;
+ }
+
+ public AgentPoolImpl withCount(Integer count) {
+ this.innerModel().withCount(count);
+ return this;
+ }
+
+ public AgentPoolImpl withVmSize(String vmSize) {
+ this.innerModel().withVmSize(vmSize);
+ return this;
+ }
+
+ public AgentPoolImpl withOsDiskSizeGB(Integer osDiskSizeGB) {
+ this.innerModel().withOsDiskSizeGB(osDiskSizeGB);
+ return this;
+ }
+
+ public AgentPoolImpl withOsDiskType(OSDiskType osDiskType) {
+ this.innerModel().withOsDiskType(osDiskType);
+ return this;
+ }
+
+ public AgentPoolImpl withKubeletDiskType(KubeletDiskType kubeletDiskType) {
+ this.innerModel().withKubeletDiskType(kubeletDiskType);
+ return this;
+ }
+
+ public AgentPoolImpl withWorkloadRuntime(WorkloadRuntime workloadRuntime) {
+ this.innerModel().withWorkloadRuntime(workloadRuntime);
+ return this;
+ }
+
+ public AgentPoolImpl withMessageOfTheDay(String messageOfTheDay) {
+ this.innerModel().withMessageOfTheDay(messageOfTheDay);
+ return this;
+ }
+
+ public AgentPoolImpl withVnetSubnetId(String vnetSubnetId) {
+ this.innerModel().withVnetSubnetId(vnetSubnetId);
+ return this;
+ }
+
+ public AgentPoolImpl withPodSubnetId(String podSubnetId) {
+ this.innerModel().withPodSubnetId(podSubnetId);
+ return this;
+ }
+
+ public AgentPoolImpl withMaxPods(Integer maxPods) {
+ this.innerModel().withMaxPods(maxPods);
+ return this;
+ }
+
+ public AgentPoolImpl withOsType(OSType osType) {
+ this.innerModel().withOsType(osType);
+ return this;
+ }
+
+ public AgentPoolImpl withOsSku(Ossku osSku) {
+ this.innerModel().withOsSku(osSku);
+ return this;
+ }
+
+ public AgentPoolImpl withMaxCount(Integer maxCount) {
+ this.innerModel().withMaxCount(maxCount);
+ return this;
+ }
+
+ public AgentPoolImpl withMinCount(Integer minCount) {
+ this.innerModel().withMinCount(minCount);
+ return this;
+ }
+
+ public AgentPoolImpl withEnableAutoScaling(Boolean enableAutoScaling) {
+ this.innerModel().withEnableAutoScaling(enableAutoScaling);
+ return this;
+ }
+
+ public AgentPoolImpl withScaleDownMode(ScaleDownMode scaleDownMode) {
+ this.innerModel().withScaleDownMode(scaleDownMode);
+ return this;
+ }
+
+ public AgentPoolImpl withTypePropertiesType(AgentPoolType typePropertiesType) {
+ this.innerModel().withTypePropertiesType(typePropertiesType);
+ return this;
+ }
+
+ public AgentPoolImpl withMode(AgentPoolMode mode) {
+ this.innerModel().withMode(mode);
+ return this;
+ }
+
+ public AgentPoolImpl withOrchestratorVersion(String orchestratorVersion) {
+ this.innerModel().withOrchestratorVersion(orchestratorVersion);
+ return this;
+ }
+
+ public AgentPoolImpl withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings) {
+ this.innerModel().withUpgradeSettings(upgradeSettings);
+ return this;
+ }
+
+ public AgentPoolImpl withPowerState(PowerState powerState) {
+ this.innerModel().withPowerState(powerState);
+ return this;
+ }
+
+ public AgentPoolImpl withAvailabilityZones(List availabilityZones) {
+ this.innerModel().withAvailabilityZones(availabilityZones);
+ return this;
+ }
+
+ public AgentPoolImpl withEnableNodePublicIp(Boolean enableNodePublicIp) {
+ this.innerModel().withEnableNodePublicIp(enableNodePublicIp);
+ return this;
+ }
+
+ public AgentPoolImpl withNodePublicIpPrefixId(String nodePublicIpPrefixId) {
+ this.innerModel().withNodePublicIpPrefixId(nodePublicIpPrefixId);
+ return this;
+ }
+
+ public AgentPoolImpl withScaleSetPriority(ScaleSetPriority scaleSetPriority) {
+ this.innerModel().withScaleSetPriority(scaleSetPriority);
+ return this;
+ }
+
+ public AgentPoolImpl withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy) {
+ this.innerModel().withScaleSetEvictionPolicy(scaleSetEvictionPolicy);
+ return this;
+ }
+
+ public AgentPoolImpl withSpotMaxPrice(Float spotMaxPrice) {
+ this.innerModel().withSpotMaxPrice(spotMaxPrice);
+ return this;
+ }
+
+ public AgentPoolImpl withNodeLabels(Map nodeLabels) {
+ this.innerModel().withNodeLabels(nodeLabels);
+ return this;
+ }
+
+ public AgentPoolImpl withNodeTaints(List nodeTaints) {
+ this.innerModel().withNodeTaints(nodeTaints);
+ return this;
+ }
+
+ public AgentPoolImpl withProximityPlacementGroupId(String proximityPlacementGroupId) {
+ this.innerModel().withProximityPlacementGroupId(proximityPlacementGroupId);
+ return this;
+ }
+
+ public AgentPoolImpl withKubeletConfig(KubeletConfig kubeletConfig) {
+ this.innerModel().withKubeletConfig(kubeletConfig);
+ return this;
+ }
+
+ public AgentPoolImpl withLinuxOSConfig(LinuxOSConfig linuxOSConfig) {
+ this.innerModel().withLinuxOSConfig(linuxOSConfig);
+ return this;
+ }
+
+ public AgentPoolImpl withEnableEncryptionAtHost(Boolean enableEncryptionAtHost) {
+ this.innerModel().withEnableEncryptionAtHost(enableEncryptionAtHost);
+ return this;
+ }
+
+ public AgentPoolImpl withEnableUltraSsd(Boolean enableUltraSsd) {
+ this.innerModel().withEnableUltraSsd(enableUltraSsd);
+ return this;
+ }
+
+ public AgentPoolImpl withEnableFips(Boolean enableFips) {
+ this.innerModel().withEnableFips(enableFips);
+ return this;
+ }
+
+ public AgentPoolImpl withGpuInstanceProfile(GpuInstanceProfile gpuInstanceProfile) {
+ this.innerModel().withGpuInstanceProfile(gpuInstanceProfile);
+ return this;
+ }
+
+ public AgentPoolImpl withCreationData(CreationData creationData) {
+ this.innerModel().withCreationData(creationData);
+ return this;
+ }
+
+ public AgentPoolImpl withCapacityReservationGroupId(String capacityReservationGroupId) {
+ this.innerModel().withCapacityReservationGroupId(capacityReservationGroupId);
+ return this;
+ }
+
+ public AgentPoolImpl withHostGroupId(String hostGroupId) {
+ this.innerModel().withHostGroupId(hostGroupId);
+ return this;
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolUpgradeProfileImpl.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolUpgradeProfileImpl.java
new file mode 100644
index 0000000000000..d394a5ce03402
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolUpgradeProfileImpl.java
@@ -0,0 +1,66 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.implementation;
+
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolUpgradeProfileInner;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeProfile;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import java.util.Collections;
+import java.util.List;
+
+public final class AgentPoolUpgradeProfileImpl implements AgentPoolUpgradeProfile {
+ private AgentPoolUpgradeProfileInner innerObject;
+
+ private final com.azure.resourcemanager.containerservice.generated.ContainerServiceManager serviceManager;
+
+ AgentPoolUpgradeProfileImpl(
+ AgentPoolUpgradeProfileInner innerObject,
+ com.azure.resourcemanager.containerservice.generated.ContainerServiceManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String kubernetesVersion() {
+ return this.innerModel().kubernetesVersion();
+ }
+
+ public OSType osType() {
+ return this.innerModel().osType();
+ }
+
+ public List upgrades() {
+ List inner = this.innerModel().upgrades();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public String latestNodeImageVersion() {
+ return this.innerModel().latestNodeImageVersion();
+ }
+
+ public AgentPoolUpgradeProfileInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.containerservice.generated.ContainerServiceManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolsClientImpl.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolsClientImpl.java
new file mode 100644
index 0000000000000..8997149245268
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolsClientImpl.java
@@ -0,0 +1,1788 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.containerservice.generated.fluent.AgentPoolsClient;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolAvailableVersionsInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.AgentPoolUpgradeProfileInner;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolListResult;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AgentPoolsClient. */
+public final class AgentPoolsClientImpl implements AgentPoolsClient {
+ private final ClientLogger logger = new ClientLogger(AgentPoolsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final AgentPoolsService service;
+
+ /** The service client containing this operation class. */
+ private final ContainerServiceManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AgentPoolsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AgentPoolsClientImpl(ContainerServiceManagementClientImpl client) {
+ this.service =
+ RestProxy.create(AgentPoolsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ContainerServiceManagementClientAgentPools to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ContainerServiceMana")
+ private interface AgentPoolsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService"
+ + "/managedClusters/{resourceName}/agentPools")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("resourceName") String resourceName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService"
+ + "/managedClusters/{resourceName}/agentPools/{agentPoolName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("resourceName") String resourceName,
+ @PathParam("agentPoolName") String agentPoolName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService"
+ + "/managedClusters/{resourceName}/agentPools/{agentPoolName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("resourceName") String resourceName,
+ @PathParam("agentPoolName") String agentPoolName,
+ @BodyParam("application/json") AgentPoolInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService"
+ + "/managedClusters/{resourceName}/agentPools/{agentPoolName}")
+ @ExpectedResponses({202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("resourceName") String resourceName,
+ @PathParam("agentPoolName") String agentPoolName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService"
+ + "/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeProfiles/default")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getUpgradeProfile(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("resourceName") String resourceName,
+ @PathParam("agentPoolName") String agentPoolName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService"
+ + "/managedClusters/{resourceName}/availableAgentPoolVersions")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getAvailableAgentPoolVersions(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("resourceName") String resourceName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService"
+ + "/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeNodeImageVersion")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> upgradeNodeImageVersion(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("resourceName") String resourceName,
+ @PathParam("agentPoolName") String agentPoolName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets a list of agent pools in the specified 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster along with {@link PagedResponse} on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(String resourceGroupName, String resourceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (resourceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceName is required and cannot be null."));
+ }
+ final String apiVersion = "2022-01-02-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets a list of agent pools in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster along with {@link PagedResponse} on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String resourceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (resourceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceName is required and cannot be null."));
+ }
+ final String apiVersion = "2022-01-02-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets a list of agent pools in the specified 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String resourceGroupName, String resourceName) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, resourceName), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets a list of agent pools in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String resourceGroupName, String resourceName, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, resourceName, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets a list of agent pools in the specified 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String resourceGroupName, String resourceName) {
+ return new PagedIterable<>(listAsync(resourceGroupName, resourceName));
+ }
+
+ /**
+ * Gets a list of agent pools in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String resourceGroupName, String resourceName, Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, resourceName, context));
+ }
+
+ /**
+ * Gets the specified managed cluster agent pool.
+ *
+ * @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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified managed cluster agent pool along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String resourceName, String agentPoolName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (resourceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceName is required and cannot be null."));
+ }
+ if (agentPoolName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter agentPoolName is required and cannot be null."));
+ }
+ final String apiVersion = "2022-01-02-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ agentPoolName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the specified managed cluster agent pool.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified managed cluster agent pool along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String resourceName, String agentPoolName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (resourceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceName is required and cannot be null."));
+ }
+ if (agentPoolName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter agentPoolName is required and cannot be null."));
+ }
+ final String apiVersion = "2022-01-02-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ agentPoolName,
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the specified managed cluster agent pool.
+ *
+ * @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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified managed cluster agent pool on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String resourceGroupName, String resourceName, String agentPoolName) {
+ return getWithResponseAsync(resourceGroupName, resourceName, agentPoolName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the specified managed cluster agent pool.
+ *
+ * @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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified managed cluster agent pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AgentPoolInner get(String resourceGroupName, String resourceName, String agentPoolName) {
+ return getAsync(resourceGroupName, resourceName, agentPoolName).block();
+ }
+
+ /**
+ * Gets the specified managed cluster agent pool.
+ *
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified managed cluster agent pool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String resourceName, String agentPoolName, Context context) {
+ return getWithResponseAsync(resourceGroupName, resourceName, agentPoolName, context).block();
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String resourceName, String agentPoolName, AgentPoolInner parameters) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (resourceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceName is required and cannot be null."));
+ }
+ if (agentPoolName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter agentPoolName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String apiVersion = "2022-01-02-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ agentPoolName,
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName,
+ String resourceName,
+ String agentPoolName,
+ AgentPoolInner parameters,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (resourceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceName is required and cannot be null."));
+ }
+ if (agentPoolName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter agentPoolName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String apiVersion = "2022-01-02-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ agentPoolName,
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, AgentPoolInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String resourceName, String agentPoolName, AgentPoolInner parameters) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, resourceName, agentPoolName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ AgentPoolInner.class,
+ AgentPoolInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, AgentPoolInner> beginCreateOrUpdateAsync(
+ String resourceGroupName,
+ String resourceName,
+ String agentPoolName,
+ AgentPoolInner parameters,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, resourceName, agentPoolName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), AgentPoolInner.class, AgentPoolInner.class, context);
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, AgentPoolInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, String agentPoolName, AgentPoolInner parameters) {
+ return beginCreateOrUpdateAsync(resourceGroupName, resourceName, agentPoolName, parameters).getSyncPoller();
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, AgentPoolInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String resourceName,
+ String agentPoolName,
+ AgentPoolInner parameters,
+ Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, resourceName, agentPoolName, parameters, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String resourceName, String agentPoolName, AgentPoolInner parameters) {
+ return beginCreateOrUpdateAsync(resourceGroupName, resourceName, agentPoolName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName,
+ String resourceName,
+ String agentPoolName,
+ AgentPoolInner parameters,
+ Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, resourceName, agentPoolName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AgentPoolInner createOrUpdate(
+ String resourceGroupName, String resourceName, String agentPoolName, AgentPoolInner parameters) {
+ return createOrUpdateAsync(resourceGroupName, resourceName, agentPoolName, parameters).block();
+ }
+
+ /**
+ * Creates or updates an 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.
+ * @param parameters The agent pool to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AgentPoolInner createOrUpdate(
+ String resourceGroupName,
+ String resourceName,
+ String agentPoolName,
+ AgentPoolInner parameters,
+ Context context) {
+ return createOrUpdateAsync(resourceGroupName, resourceName, agentPoolName, parameters, context).block();
+ }
+
+ /**
+ * Deletes an 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String resourceName, String agentPoolName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (resourceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceName is required and cannot be null."));
+ }
+ if (agentPoolName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter agentPoolName is required and cannot be null."));
+ }
+ final String apiVersion = "2022-01-02-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ agentPoolName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes an 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String resourceName, String agentPoolName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (resourceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceName is required and cannot be null."));
+ }
+ if (agentPoolName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter agentPoolName is required and cannot be null."));
+ }
+ final String apiVersion = "2022-01-02-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ agentPoolName,
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes an 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux