scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private RetryOptions retryOptions;
+ 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 retry options for the HTTP pipeline retry policy.
+ *
+ * This setting has no effect, if retry policy is set via {@link #withRetryPolicy(RetryPolicy)}.
+ *
+ * @param retryOptions the retry options for the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryOptions(RetryOptions retryOptions) {
+ this.retryOptions = Objects.requireNonNull(retryOptions, "'retryOptions' 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, "'defaultPollInterval' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw LOGGER
+ .logExceptionAsError(new IllegalArgumentException("'defaultPollInterval' 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) {
+ if (retryOptions != null) {
+ retryPolicy = new RetryPolicy(retryOptions);
+ } else {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new AddHeadersFromContextPolicy());
+ 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 Resource collection API of ManagedClusterSnapshots. */
+ public ManagedClusterSnapshots managedClusterSnapshots() {
+ if (this.managedClusterSnapshots == null) {
+ this.managedClusterSnapshots =
+ new ManagedClusterSnapshotsImpl(clientObject.getManagedClusterSnapshots(), this);
+ }
+ return managedClusterSnapshots;
+ }
+
+ /**
+ * @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..d52cedfbd3122
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/AgentPoolsClient.java
@@ -0,0 +1,367 @@
+// 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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @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, String ignorePodDisruptionBudget);
+
+ /**
+ * Deletes an agent pool in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @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,
+ String ignorePodDisruptionBudget,
+ Context context);
+
+ /**
+ * Deletes an agent pool in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @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, String ignorePodDisruptionBudget);
+
+ /**
+ * Deletes an agent pool in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @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,
+ String ignorePodDisruptionBudget,
+ Context context);
+
+ /**
+ * Gets the upgrade profile for an agent pool.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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..ba1f3d6acbaa6
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ContainerServiceManagementClient.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;
+
+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();
+
+ /**
+ * Gets the ManagedClusterSnapshotsClient object to access its operations.
+ *
+ * @return the ManagedClusterSnapshotsClient object.
+ */
+ ManagedClusterSnapshotsClient getManagedClusterSnapshots();
+}
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..a91cd0c7e6b41
--- /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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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/ManagedClusterSnapshotsClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedClusterSnapshotsClient.java
new file mode 100644
index 0000000000000..6b78383715af9
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedClusterSnapshotsClient.java
@@ -0,0 +1,182 @@
+// 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.ManagedClusterSnapshotInner;
+import com.azure.resourcemanager.containerservice.generated.models.TagsObject;
+
+/** An instance of this class provides access to all the operations defined in ManagedClusterSnapshotsClient. */
+public interface ManagedClusterSnapshotsClient {
+ /**
+ * Gets a list of managed cluster 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 managed cluster snapshots in the specified subscription as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of managed cluster 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 managed cluster snapshots in the specified subscription as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists managed cluster snapshots in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 Cluster Snapshots operation as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists managed cluster snapshots in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 Cluster Snapshots operation as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 snapshot.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterSnapshotInner getByResourceGroup(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 snapshot along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Creates or updates a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster 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 managed cluster snapshot resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterSnapshotInner createOrUpdate(
+ String resourceGroupName, String resourceName, ManagedClusterSnapshotInner parameters);
+
+ /**
+ * Creates or updates a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster 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 managed cluster snapshot resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName, String resourceName, ManagedClusterSnapshotInner parameters, Context context);
+
+ /**
+ * Updates tags on a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update managed cluster 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 managed cluster snapshot resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterSnapshotInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates tags on a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update managed cluster 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 managed cluster snapshot resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateTagsWithResponse(
+ String resourceGroupName, String resourceName, TagsObject parameters, Context context);
+
+ /**
+ * Deletes a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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/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..e9c2252620f0a
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedClustersClient.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;
+
+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 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 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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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 listClusterAdminCredentialsWithResponse(
+ String resourceGroupName, String resourceName, String serverFqdn, Context context);
+
+ /**
+ * Lists the user credentials of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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 listClusterUserCredentialsWithResponse(
+ String resourceGroupName, String resourceName, String serverFqdn, Format format, Context context);
+
+ /**
+ * Lists the cluster monitoring user credentials of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @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 ignorePodDisruptionBudget);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @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 ignorePodDisruptionBudget, Context context);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @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 ignorePodDisruptionBudget);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @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 ignorePodDisruptionBudget, 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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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);
+
+ /**
+ * Rotates the service account signing keys of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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> beginRotateServiceAccountSigningKeys(
+ String resourceGroupName, String resourceName);
+
+ /**
+ * Rotates the service account signing keys of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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> beginRotateServiceAccountSigningKeys(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Rotates the service account signing keys of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 rotateServiceAccountSigningKeys(String resourceGroupName, String resourceName);
+
+ /**
+ * Rotates the service account signing keys of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 rotateServiceAccountSigningKeys(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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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..227dcff7fab02
--- /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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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..973c143941042
--- /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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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..48517dfd6ca23
--- /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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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..4ca9493f496bb
--- /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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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. The name is case insensitive.
+ * @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..22bf40cc54bfa
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AccessProfile.java
@@ -0,0 +1,47 @@
+// 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.fasterxml.jackson.annotation.JsonProperty;
+
+/** Profile for enabling a user to access a managed cluster. */
+@Fluent
+public final class AccessProfile {
+ /*
+ * 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..126956c2840ed
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsInner.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.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of available versions for an agent pool. */
+@Fluent
+public final class AgentPoolAvailableVersionsInner {
+ /*
+ * 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();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AgentPoolAvailableVersionsInner.class);
+}
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..925c2cc1d932b
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsProperties.java
@@ -0,0 +1,52 @@
+// 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.resourcemanager.containerservice.generated.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of available agent pool versions. */
+@Fluent
+public final class AgentPoolAvailableVersionsProperties {
+ /*
+ * 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..0e0683270ff2b
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolInner.java
@@ -0,0 +1,1179 @@
+// 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.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.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Agent Pool. */
+@Fluent
+public final class AgentPoolInner extends SubResource {
+ /*
+ * 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 specified by the user. Both patch version
+ * <major.minor.patch> and <major.minor> are supported. When <major.minor> is specified, the
+ * latest supported patch version is chosen automatically. Updating the agent pool with the same <major.minor>
+ * once it has been created will not trigger an upgrade, even if a newer patch version is available. 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 specified by the user. Both patch version
+ * <major.minor.patch> and <major.minor> are supported. When <major.minor> is specified, the
+ * latest supported patch version is chosen automatically. Updating the agent pool with the same <major.minor>
+ * once it has been created will not trigger an upgrade, even if a newer patch version is available. 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 currentOrchestratorVersion property: The version of Kubernetes running on the Agent Pool. If
+ * orchestratorVersion was a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If orchestratorVersion was <major.minor>, this field will contain the full <major.minor.patch>
+ * version being used.
+ *
+ * @return the currentOrchestratorVersion value.
+ */
+ public String currentOrchestratorVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().currentOrchestratorVersion();
+ }
+
+ /**
+ * Set the currentOrchestratorVersion property: The version of Kubernetes running on the Agent Pool. If
+ * orchestratorVersion was a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If orchestratorVersion was <major.minor>, this field will contain the full <major.minor.patch>
+ * version being used.
+ *
+ * @param currentOrchestratorVersion the currentOrchestratorVersion value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withCurrentOrchestratorVersion(String currentOrchestratorVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withCurrentOrchestratorVersion(currentOrchestratorVersion);
+ 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..66b3d509d6be3
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileInner.java
@@ -0,0 +1,186 @@
+// 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.JsonProperty;
+import java.util.List;
+
+/** The list of available upgrades for an agent pool. */
+@Fluent
+public final class AgentPoolUpgradeProfileInner {
+ /*
+ * 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();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AgentPoolUpgradeProfileInner.class);
+}
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..74e018fac2701
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileProperties.java
@@ -0,0 +1,147 @@
+// 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.JsonProperty;
+import java.util.List;
+
+/** The list of available upgrade versions. */
+@Fluent
+public final class AgentPoolUpgradeProfileProperties {
+ /*
+ * 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());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AgentPoolUpgradeProfileProperties.class);
+}
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..11b17f4583106
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CommandResultProperties.java
@@ -0,0 +1,111 @@
+// 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.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The results of a run command. */
+@Immutable
+public final class CommandResultProperties {
+ /*
+ * 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..fb544c099a14d
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CredentialResultsInner.java
@@ -0,0 +1,40 @@
+// 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.resourcemanager.containerservice.generated.models.CredentialResult;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list credential result response. */
+@Immutable
+public final class CredentialResultsInner {
+ /*
+ * 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..0596eebc86bb5
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationInner.java
@@ -0,0 +1,149 @@
+// 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.resourcemanager.containerservice.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservice.generated.models.TimeSpan;
+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 {
+ /*
+ * 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..3aa6fd40ffcfc
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationProperties.java
@@ -0,0 +1,85 @@
+// 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.resourcemanager.containerservice.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservice.generated.models.TimeSpan;
+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 {
+ /*
+ * 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..2185f00b0e489
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAccessProfileInner.java
@@ -0,0 +1,94 @@
+// 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.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Managed cluster Access Profile. */
+@Fluent
+public final class ManagedClusterAccessProfileInner extends Resource {
+ /*
+ * AccessProfile of a managed cluster.
+ */
+ @JsonProperty(value = "properties")
+ private AccessProfile innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: AccessProfile of a managed cluster.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessProfile innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@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..269939612f1c6
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAgentPoolProfileProperties.java
@@ -0,0 +1,1356 @@
+// 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.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.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 {
+ /*
+ * 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 specified by the user. Both patch version
+ * and are supported. When
+ * is specified, the latest supported patch version is chosen
+ * automatically. Updating the agent pool with the same once
+ * it has been created will not trigger an upgrade, even if a newer patch
+ * version is available. 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 Kubernetes running on the Agent Pool. If
+ * orchestratorVersion was a fully specified version ,
+ * this field will be exactly equal to it. If orchestratorVersion was
+ * , this field will contain the full
+ * version being used.
+ */
+ @JsonProperty(value = "currentOrchestratorVersion")
+ private String currentOrchestratorVersion;
+
+ /*
+ * 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 specified by the user. Both patch version
+ * <major.minor.patch> and <major.minor> are supported. When <major.minor> is specified, the
+ * latest supported patch version is chosen automatically. Updating the agent pool with the same <major.minor>
+ * once it has been created will not trigger an upgrade, even if a newer patch version is available. 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 specified by the user. Both patch version
+ * <major.minor.patch> and <major.minor> are supported. When <major.minor> is specified, the
+ * latest supported patch version is chosen automatically. Updating the agent pool with the same <major.minor>
+ * once it has been created will not trigger an upgrade, even if a newer patch version is available. 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 currentOrchestratorVersion property: The version of Kubernetes running on the Agent Pool. If
+ * orchestratorVersion was a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If orchestratorVersion was <major.minor>, this field will contain the full <major.minor.patch>
+ * version being used.
+ *
+ * @return the currentOrchestratorVersion value.
+ */
+ public String currentOrchestratorVersion() {
+ return this.currentOrchestratorVersion;
+ }
+
+ /**
+ * Set the currentOrchestratorVersion property: The version of Kubernetes running on the Agent Pool. If
+ * orchestratorVersion was a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If orchestratorVersion was <major.minor>, this field will contain the full <major.minor.patch>
+ * version being used.
+ *
+ * @param currentOrchestratorVersion the currentOrchestratorVersion value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withCurrentOrchestratorVersion(String currentOrchestratorVersion) {
+ this.currentOrchestratorVersion = currentOrchestratorVersion;
+ 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..cdaf906ced39e
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterInner.java
@@ -0,0 +1,934 @@
+// 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.resourcemanager.containerservice.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+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.ManagedClusterIngressProfile;
+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.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Managed cluster. */
+@Fluent
+public final class ManagedClusterInner extends Resource {
+ /*
+ * 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;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@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 creationData property: CreationData to be used to specify the source Snapshot ID if the cluster 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 cluster will be
+ * created/upgraded using a snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withCreationData(CreationData creationData) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withCreationData(creationData);
+ return this;
+ }
+
+ /**
+ * 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 ingressProfile property: Ingress profile for the managed cluster.
+ *
+ * @return the ingressProfile value.
+ */
+ public ManagedClusterIngressProfile ingressProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().ingressProfile();
+ }
+
+ /**
+ * Set the ingressProfile property: Ingress profile for the managed cluster.
+ *
+ * @param ingressProfile the ingressProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withIngressProfile(ManagedClusterIngressProfile ingressProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withIngressProfile(ingressProfile);
+ 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..d63686e157a51
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterProperties.java
@@ -0,0 +1,1026 @@
+// 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.resourcemanager.containerservice.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+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.ManagedClusterIngressProfile;
+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.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 {
+ /*
+ * 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;
+
+ /*
+ * CreationData to be used to specify the source Snapshot ID if the cluster
+ * will be created/upgraded using a snapshot.
+ */
+ @JsonProperty(value = "creationData")
+ private CreationData creationData;
+
+ /*
+ * 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;
+
+ /*
+ * Ingress profile for the managed cluster.
+ */
+ @JsonProperty(value = "ingressProfile")
+ private ManagedClusterIngressProfile ingressProfile;
+
+ /*
+ * 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 creationData property: CreationData to be used to specify the source Snapshot ID if the cluster 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 cluster will be
+ * created/upgraded using a snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withCreationData(CreationData creationData) {
+ this.creationData = creationData;
+ return this;
+ }
+
+ /**
+ * 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 ingressProfile property: Ingress profile for the managed cluster.
+ *
+ * @return the ingressProfile value.
+ */
+ public ManagedClusterIngressProfile ingressProfile() {
+ return this.ingressProfile;
+ }
+
+ /**
+ * Set the ingressProfile property: Ingress profile for the managed cluster.
+ *
+ * @param ingressProfile the ingressProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withIngressProfile(ManagedClusterIngressProfile ingressProfile) {
+ this.ingressProfile = ingressProfile;
+ 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 (creationData() != null) {
+ creationData().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();
+ }
+ if (ingressProfile() != null) {
+ ingressProfile().validate();
+ }
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterSnapshotInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterSnapshotInner.java
new file mode 100644
index 0000000000000..4622eae441c48
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterSnapshotInner.java
@@ -0,0 +1,130 @@
+// 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.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPropertiesForSnapshot;
+import com.azure.resourcemanager.containerservice.generated.models.SnapshotType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** A managed cluster snapshot resource. */
+@Fluent
+public final class ManagedClusterSnapshotInner extends Resource {
+ /*
+ * Properties of a managed cluster snapshot.
+ */
+ @JsonProperty(value = "properties")
+ private ManagedClusterSnapshotProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Properties of a managed cluster snapshot.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterSnapshotProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ManagedClusterSnapshotInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ManagedClusterSnapshotInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source 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 resource ID to create this snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterSnapshotInner object itself.
+ */
+ public ManagedClusterSnapshotInner withCreationData(CreationData creationData) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterSnapshotProperties();
+ }
+ 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 ManagedClusterSnapshotInner object itself.
+ */
+ public ManagedClusterSnapshotInner withSnapshotType(SnapshotType snapshotType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterSnapshotProperties();
+ }
+ this.innerProperties().withSnapshotType(snapshotType);
+ return this;
+ }
+
+ /**
+ * Get the managedClusterPropertiesReadOnly property: What the properties will be showed when getting managed
+ * cluster snapshot. Those properties are read-only.
+ *
+ * @return the managedClusterPropertiesReadOnly value.
+ */
+ public ManagedClusterPropertiesForSnapshot managedClusterPropertiesReadOnly() {
+ return this.innerProperties() == null ? null : this.innerProperties().managedClusterPropertiesReadOnly();
+ }
+
+ /**
+ * 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/ManagedClusterSnapshotProperties.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterSnapshotProperties.java
new file mode 100644
index 0000000000000..79628431e0541
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterSnapshotProperties.java
@@ -0,0 +1,99 @@
+// 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.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPropertiesForSnapshot;
+import com.azure.resourcemanager.containerservice.generated.models.SnapshotType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties for a managed cluster snapshot. */
+@Fluent
+public final class ManagedClusterSnapshotProperties {
+ /*
+ * CreationData to be used to specify the source 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;
+
+ /*
+ * What the properties will be showed when getting managed cluster
+ * snapshot. Those properties are read-only.
+ */
+ @JsonProperty(value = "managedClusterPropertiesReadOnly", access = JsonProperty.Access.WRITE_ONLY)
+ private ManagedClusterPropertiesForSnapshot managedClusterPropertiesReadOnly;
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source 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 resource ID to create this snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterSnapshotProperties object itself.
+ */
+ public ManagedClusterSnapshotProperties 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 ManagedClusterSnapshotProperties object itself.
+ */
+ public ManagedClusterSnapshotProperties withSnapshotType(SnapshotType snapshotType) {
+ this.snapshotType = snapshotType;
+ return this;
+ }
+
+ /**
+ * Get the managedClusterPropertiesReadOnly property: What the properties will be showed when getting managed
+ * cluster snapshot. Those properties are read-only.
+ *
+ * @return the managedClusterPropertiesReadOnly value.
+ */
+ public ManagedClusterPropertiesForSnapshot managedClusterPropertiesReadOnly() {
+ return this.managedClusterPropertiesReadOnly;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (creationData() != null) {
+ creationData().validate();
+ }
+ if (managedClusterPropertiesReadOnly() != null) {
+ managedClusterPropertiesReadOnly().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..ce289be0e598a
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileInner.java
@@ -0,0 +1,141 @@
+// 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.JsonProperty;
+import java.util.List;
+
+/** The list of available upgrades for compute pools. */
+@Fluent
+public final class ManagedClusterUpgradeProfileInner {
+ /*
+ * 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();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ManagedClusterUpgradeProfileInner.class);
+}
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..3dbbd733cd0cf
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileProperties.java
@@ -0,0 +1,96 @@
+// 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.JsonProperty;
+import java.util.List;
+
+/** Control plane and agent pool upgrade profiles. */
+@Fluent
+public final class ManagedClusterUpgradeProfileProperties {
+ /*
+ * 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());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ManagedClusterUpgradeProfileProperties.class);
+}
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..cb4de20b5b433
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OSOptionProfileInner.java
@@ -0,0 +1,116 @@
+// 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.JsonProperty;
+import java.util.List;
+
+/** The OS option profile. */
+@Fluent
+public final class OSOptionProfileInner {
+ /*
+ * 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();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(OSOptionProfileInner.class);
+}
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..a4675d3c47e70
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OSOptionPropertyList.java
@@ -0,0 +1,59 @@
+// 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.JsonProperty;
+import java.util.List;
+
+/** The list of OS option properties. */
+@Fluent
+public final class OSOptionPropertyList {
+ /*
+ * 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());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(OSOptionPropertyList.class);
+}
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..73de47c0eda91
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OpenShiftManagedClusterInner.java
@@ -0,0 +1,267 @@
+// 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.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.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** OpenShift Managed cluster. */
+@Fluent
+public final class OpenShiftManagedClusterInner extends Resource {
+ /*
+ * 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..962ed0ec6e777
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OpenShiftManagedClusterProperties.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.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.JsonProperty;
+import java.util.List;
+
+/** Properties of the OpenShift managed cluster. */
+@Fluent
+public final class OpenShiftManagedClusterProperties {
+ /*
+ * 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();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(OpenShiftManagedClusterProperties.class);
+}
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..a1c9f9b402d45
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueDisplay.java
@@ -0,0 +1,80 @@
+// 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.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes the properties of a Operation Value Display. */
+@Immutable
+public final class OperationValueDisplay {
+ /*
+ * 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..a832401feba61
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueInner.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.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes the properties of a Operation value. */
+@Fluent
+public final class OperationValueInner {
+ /*
+ * 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..97793bb35e4ed
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OrchestratorVersionProfileListResultInner.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.OrchestratorVersionProfile;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of versions for supported orchestrators. */
+@Fluent
+public final class OrchestratorVersionProfileListResultInner {
+ /*
+ * 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();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(OrchestratorVersionProfileListResultInner.class);
+}
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..b086731426a1f
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OrchestratorVersionProfileProperties.java
@@ -0,0 +1,59 @@
+// 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.JsonProperty;
+import java.util.List;
+
+/** The properties of an orchestrator version profile. */
+@Fluent
+public final class OrchestratorVersionProfileProperties {
+ /*
+ * 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());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(OrchestratorVersionProfileProperties.class);
+}
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..b633cbc55720b
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OutboundEnvironmentEndpointInner.java
@@ -0,0 +1,80 @@
+// 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.resourcemanager.containerservice.generated.models.EndpointDependency;
+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 {
+ /*
+ * 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..bc0d5513ab019
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionInner.java
@@ -0,0 +1,100 @@
+// 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.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.JsonProperty;
+
+/** A private endpoint connection. */
+@Fluent
+public final class PrivateEndpointConnectionInner extends ProxyResource {
+ /*
+ * 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..22c4fb44be718
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionListResultInner.java
@@ -0,0 +1,50 @@
+// 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.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A list of private endpoint connections. */
+@Fluent
+public final class PrivateEndpointConnectionListResultInner {
+ /*
+ * 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..ed307d6f679cf
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionProperties.java
@@ -0,0 +1,109 @@
+// 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.JsonProperty;
+
+/** Properties of a private endpoint connection. */
+@Fluent
+public final class PrivateEndpointConnectionProperties {
+ /*
+ * 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();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(PrivateEndpointConnectionProperties.class);
+}
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..8eaa35ddfd544
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateLinkResourceInner.java
@@ -0,0 +1,168 @@
+// 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.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A private link resource. */
+@Fluent
+public final class PrivateLinkResourceInner {
+ /*
+ * 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..071bf4ff12581
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateLinkResourcesListResultInner.java
@@ -0,0 +1,50 @@
+// 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.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A list of private link resources. */
+@Fluent
+public final class PrivateLinkResourcesListResultInner {
+ /*
+ * 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..7d2bac1dd7b55
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/RunCommandResultInner.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.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** run command result. */
+@Fluent
+public final class RunCommandResultInner {
+ /*
+ * 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..cad9c122c5db8
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/SnapshotInner.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.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+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.JsonProperty;
+import java.util.Map;
+
+/** A node pool snapshot resource. */
+@Fluent
+public final class SnapshotInner extends Resource {
+ /*
+ * Properties of a snapshot.
+ */
+ @JsonProperty(value = "properties")
+ private SnapshotProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Properties of a snapshot.
+ *
+ * @return the innerProperties value.
+ */
+ private SnapshotProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@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..0f4bfbe32f467
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/SnapshotProperties.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.models;
+
+import com.azure.core.annotation.Fluent;
+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.JsonProperty;
+
+/** Properties used to configure a node pool snapshot. */
+@Fluent
+public final class SnapshotProperties {
+ /*
+ * 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..d761507f90184
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolImpl.java
@@ -0,0 +1,550 @@
+// 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 currentOrchestratorVersion() {
+ return this.innerModel().currentOrchestratorVersion();
+ }
+
+ 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 withCurrentOrchestratorVersion(String currentOrchestratorVersion) {
+ this.innerModel().withCurrentOrchestratorVersion(currentOrchestratorVersion);
+ 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..4636408009cb9
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/implementation/AgentPoolsClientImpl.java
@@ -0,0 +1,1869 @@
+// 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.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 {
+ /** 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,
+ @QueryParam("ignore-pod-disruption-budget") String ignorePodDisruptionBudget,
+ @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. The name is case insensitive.
+ * @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-03-02-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ resourceName,
+ accept,
+ context))
+ .