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 Container Service service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Container Service service API instance.
+ */
+ public ContainerServiceManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ String clientVersion = PROPERTIES.getOrDefault(SDK_VERSION, "UnknownVersion");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder.append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.containerservice.generated")
+ .append("/")
+ .append(clientVersion);
+ 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 BearerTokenAuthenticationPolicy(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);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of AgentPools. It manages AgentPool.
+ *
+ * @return Resource collection API of AgentPools.
+ */
+ public AgentPools agentPools() {
+ if (this.agentPools == null) {
+ this.agentPools = new AgentPoolsImpl(clientObject.getAgentPools(), this);
+ }
+ return agentPools;
+ }
+
+ /**
+ * Gets the resource collection API of ManagedClusters. It manages ManagedCluster.
+ *
+ * @return Resource collection API of ManagedClusters.
+ */
+ public ManagedClusters managedClusters() {
+ if (this.managedClusters == null) {
+ this.managedClusters = new ManagedClustersImpl(clientObject.getManagedClusters(), this);
+ }
+ return managedClusters;
+ }
+
+ /**
+ * Gets the resource collection API of MaintenanceConfigurations. It manages MaintenanceConfiguration.
+ *
+ * @return Resource collection API of MaintenanceConfigurations.
+ */
+ public MaintenanceConfigurations maintenanceConfigurations() {
+ if (this.maintenanceConfigurations == null) {
+ this.maintenanceConfigurations
+ = new MaintenanceConfigurationsImpl(clientObject.getMaintenanceConfigurations(), this);
+ }
+ return maintenanceConfigurations;
+ }
+
+ /**
+ * Gets the resource collection API of ManagedNamespaces. It manages ManagedNamespace.
+ *
+ * @return Resource collection API of ManagedNamespaces.
+ */
+ public ManagedNamespaces managedNamespaces() {
+ if (this.managedNamespaces == null) {
+ this.managedNamespaces = new ManagedNamespacesImpl(clientObject.getManagedNamespaces(), this);
+ }
+ return managedNamespaces;
+ }
+
+ /**
+ * Gets the resource collection API of Machines.
+ *
+ * @return Resource collection API of Machines.
+ */
+ public Machines machines() {
+ if (this.machines == null) {
+ this.machines = new MachinesImpl(clientObject.getMachines(), this);
+ }
+ return machines;
+ }
+
+ /**
+ * Gets the resource collection API of PrivateEndpointConnections.
+ *
+ * @return Resource collection API of PrivateEndpointConnections.
+ */
+ public PrivateEndpointConnections privateEndpointConnections() {
+ if (this.privateEndpointConnections == null) {
+ this.privateEndpointConnections
+ = new PrivateEndpointConnectionsImpl(clientObject.getPrivateEndpointConnections(), this);
+ }
+ return privateEndpointConnections;
+ }
+
+ /**
+ * Gets the resource collection API of Snapshots. It manages Snapshot.
+ *
+ * @return Resource collection API of Snapshots.
+ */
+ public Snapshots snapshots() {
+ if (this.snapshots == null) {
+ this.snapshots = new SnapshotsImpl(clientObject.getSnapshots(), this);
+ }
+ return snapshots;
+ }
+
+ /**
+ * Gets the resource collection API of TrustedAccessRoleBindings. It manages TrustedAccessRoleBinding.
+ *
+ * @return Resource collection API of TrustedAccessRoleBindings.
+ */
+ public TrustedAccessRoleBindings trustedAccessRoleBindings() {
+ if (this.trustedAccessRoleBindings == null) {
+ this.trustedAccessRoleBindings
+ = new TrustedAccessRoleBindingsImpl(clientObject.getTrustedAccessRoleBindings(), this);
+ }
+ return trustedAccessRoleBindings;
+ }
+
+ /**
+ * Gets the resource collection API of Operations.
+ *
+ * @return Resource collection API of Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /**
+ * Gets the resource collection API of PrivateLinkResources.
+ *
+ * @return Resource collection API of PrivateLinkResources.
+ */
+ public PrivateLinkResources privateLinkResources() {
+ if (this.privateLinkResources == null) {
+ this.privateLinkResources = new PrivateLinkResourcesImpl(clientObject.getPrivateLinkResources(), this);
+ }
+ return privateLinkResources;
+ }
+
+ /**
+ * Gets the resource collection API of ResolvePrivateLinkServiceIds.
+ *
+ * @return Resource collection API of ResolvePrivateLinkServiceIds.
+ */
+ public ResolvePrivateLinkServiceIds resolvePrivateLinkServiceIds() {
+ if (this.resolvePrivateLinkServiceIds == null) {
+ this.resolvePrivateLinkServiceIds
+ = new ResolvePrivateLinkServiceIdsImpl(clientObject.getResolvePrivateLinkServiceIds(), this);
+ }
+ return resolvePrivateLinkServiceIds;
+ }
+
+ /**
+ * Gets the resource collection API of TrustedAccessRoles.
+ *
+ * @return Resource collection API of TrustedAccessRoles.
+ */
+ public TrustedAccessRoles trustedAccessRoles() {
+ if (this.trustedAccessRoles == null) {
+ this.trustedAccessRoles = new TrustedAccessRolesImpl(clientObject.getTrustedAccessRoles(), this);
+ }
+ return trustedAccessRoles;
+ }
+
+ /**
+ * Gets wrapped service client ContainerServiceManagementClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ *
+ * @return Wrapped service client ContainerServiceManagementClient.
+ */
+ 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 000000000000..b42b7a6fdb43
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/AgentPoolsClient.java
@@ -0,0 +1,496 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolDeleteMachinesParameter;
+
+/**
+ * An instance of this class provides access to all the operations defined in AgentPoolsClient.
+ */
+public interface AgentPoolsClient {
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 ifMatch The request should only proceed if an entity matches this string.
+ * @param ifNoneMatch The request should only proceed if no entity matches this string.
+ * @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, String ifMatch, String ifNoneMatch,
+ 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 ifMatch The request should only proceed if an entity matches this string.
+ * @param ifNoneMatch The request should only proceed if no entity matches this string.
+ * @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, String ifMatch, String ifNoneMatch, 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Deletes an agent pool in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. 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 ifMatch The request should only proceed if an entity matches this string.
+ * @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,
+ Boolean ignorePodDisruptionBudget, String ifMatch, 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 ifMatch The request should only proceed if an entity matches this string.
+ * @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, Boolean ignorePodDisruptionBudget,
+ String ifMatch, 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 com.azure.core.management.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);
+
+ /**
+ * Aborts last operation running on agent pool.
+ *
+ * Aborts the currently running operation on the agent pool. The Agent Pool will be moved to a Canceling state and
+ * eventually to a Canceled state when cancellation finishes. If the operation completes before cancellation can
+ * take place, a 409 error code is returned.
+ *
+ * @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, Void> beginAbortLatestOperation(String resourceGroupName, String resourceName,
+ String agentPoolName);
+
+ /**
+ * Aborts last operation running on agent pool.
+ *
+ * Aborts the currently running operation on the agent pool. The Agent Pool will be moved to a Canceling state and
+ * eventually to a Canceled state when cancellation finishes. If the operation completes before cancellation can
+ * take place, a 409 error code is returned.
+ *
+ * @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, Void> beginAbortLatestOperation(String resourceGroupName, String resourceName,
+ String agentPoolName, Context context);
+
+ /**
+ * Aborts last operation running on agent pool.
+ *
+ * Aborts the currently running operation on the agent pool. The Agent Pool will be moved to a Canceling state and
+ * eventually to a Canceled state when cancellation finishes. If the operation completes before cancellation can
+ * take place, a 409 error code is returned.
+ *
+ * @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 abortLatestOperation(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Aborts last operation running on agent pool.
+ *
+ * Aborts the currently running operation on the agent pool. The Agent Pool will be moved to a Canceling state and
+ * eventually to a Canceled state when cancellation finishes. If the operation completes before cancellation can
+ * take place, a 409 error code is returned.
+ *
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void abortLatestOperation(String resourceGroupName, String resourceName, String agentPoolName, Context context);
+
+ /**
+ * Deletes specific machines in 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 machines A list of machines from the agent pool to be deleted.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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> beginDeleteMachines(String resourceGroupName, String resourceName,
+ String agentPoolName, AgentPoolDeleteMachinesParameter machines);
+
+ /**
+ * Deletes specific machines in 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 machines A list of machines from the agent pool to be deleted.
+ * @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> beginDeleteMachines(String resourceGroupName, String resourceName,
+ String agentPoolName, AgentPoolDeleteMachinesParameter machines, Context context);
+
+ /**
+ * Deletes specific machines in 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 machines A list of machines from the agent pool to be deleted.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 deleteMachines(String resourceGroupName, String resourceName, String agentPoolName,
+ AgentPoolDeleteMachinesParameter machines);
+
+ /**
+ * Deletes specific machines in 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 machines A list of machines from the agent pool to be deleted.
+ * @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 deleteMachines(String resourceGroupName, String resourceName, String agentPoolName,
+ AgentPoolDeleteMachinesParameter machines, Context context);
+
+ /**
+ * Upgrades the node image version of an agent pool to the latest.
+ *
+ * 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 agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginUpgradeNodeImageVersion(String resourceGroupName, String resourceName,
+ String agentPoolName);
+
+ /**
+ * Upgrades the node image version of an agent pool to the latest.
+ *
+ * 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 agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginUpgradeNodeImageVersion(String resourceGroupName, String resourceName,
+ String agentPoolName, Context context);
+
+ /**
+ * Upgrades the node image version of an agent pool to the latest.
+ *
+ * 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void upgradeNodeImageVersion(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Upgrades the node image version of an agent pool to the latest.
+ *
+ * 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void upgradeNodeImageVersion(String resourceGroupName, String resourceName, String agentPoolName, Context context);
+
+ /**
+ * Gets a list of supported Kubernetes versions for the specified agent pool.
+ *
+ * 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 a list of supported Kubernetes versions for the specified agent pool.
+ *
+ * See [supported Kubernetes versions](https://docs.microsoft.com/azure/aks/supported-kubernetes-versions) for more
+ * details about the version lifecycle along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getAvailableAgentPoolVersionsWithResponse(String resourceGroupName,
+ String resourceName, Context context);
+
+ /**
+ * Gets a list of supported Kubernetes versions for the specified agent pool.
+ *
+ * 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 a list of supported Kubernetes versions for the specified agent pool.
+ *
+ * See [supported Kubernetes versions](https://docs.microsoft.com/azure/aks/supported-kubernetes-versions) for more
+ * details about the version lifecycle.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolAvailableVersionsInner getAvailableAgentPoolVersions(String resourceGroupName, String resourceName);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+}
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 000000000000..21777f985a90
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ContainerServiceManagementClient.java
@@ -0,0 +1,132 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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 Service host.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Version parameter.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The ID of the target subscription. The value must be an UUID.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * 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 AgentPoolsClient object to access its operations.
+ *
+ * @return the AgentPoolsClient object.
+ */
+ AgentPoolsClient getAgentPools();
+
+ /**
+ * 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 ManagedNamespacesClient object to access its operations.
+ *
+ * @return the ManagedNamespacesClient object.
+ */
+ ManagedNamespacesClient getManagedNamespaces();
+
+ /**
+ * Gets the MachinesClient object to access its operations.
+ *
+ * @return the MachinesClient object.
+ */
+ MachinesClient getMachines();
+
+ /**
+ * Gets the PrivateEndpointConnectionsClient object to access its operations.
+ *
+ * @return the PrivateEndpointConnectionsClient object.
+ */
+ PrivateEndpointConnectionsClient getPrivateEndpointConnections();
+
+ /**
+ * Gets the SnapshotsClient object to access its operations.
+ *
+ * @return the SnapshotsClient object.
+ */
+ SnapshotsClient getSnapshots();
+
+ /**
+ * Gets the TrustedAccessRoleBindingsClient object to access its operations.
+ *
+ * @return the TrustedAccessRoleBindingsClient object.
+ */
+ TrustedAccessRoleBindingsClient getTrustedAccessRoleBindings();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * 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 TrustedAccessRolesClient object to access its operations.
+ *
+ * @return the TrustedAccessRolesClient object.
+ */
+ TrustedAccessRolesClient getTrustedAccessRoles();
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/MachinesClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/MachinesClient.java
new file mode 100644
index 000000000000..603f2fd4d6ef
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/MachinesClient.java
@@ -0,0 +1,79 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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.MachineInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in MachinesClient.
+ */
+public interface MachinesClient {
+ /**
+ * Get a specific machine in the specified 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 machineName Host name of the machine.
+ * @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 specific machine in the specified agent pool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String resourceName, String agentPoolName,
+ String machineName, Context context);
+
+ /**
+ * Get a specific machine in the specified 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 machineName Host name of the machine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 specific machine in the specified agent pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MachineInner get(String resourceGroupName, String resourceName, String agentPoolName, String machineName);
+
+ /**
+ * Gets a list of machines in the specified 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 a list of machines in the specified agent pool as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName, String agentPoolName);
+
+ /**
+ * Gets a list of machines in the specified 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 a list of machines in the specified agent pool as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(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/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 000000000000..3151a2d84d10
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/MaintenanceConfigurationsClient.java
@@ -0,0 +1,146 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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 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. Supported values are 'default',
+ * 'aksManagedAutoUpgradeSchedule', or 'aksManagedNodeOSUpgradeSchedule'.
+ * @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);
+
+ /**
+ * 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. Supported values are 'default',
+ * 'aksManagedAutoUpgradeSchedule', or 'aksManagedNodeOSUpgradeSchedule'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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);
+
+ /**
+ * 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. Supported values are 'default',
+ * 'aksManagedAutoUpgradeSchedule', or 'aksManagedNodeOSUpgradeSchedule'.
+ * @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);
+
+ /**
+ * 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. Supported values are 'default',
+ * 'aksManagedAutoUpgradeSchedule', or 'aksManagedNodeOSUpgradeSchedule'.
+ * @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);
+
+ /**
+ * 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. Supported values are 'default',
+ * 'aksManagedAutoUpgradeSchedule', or 'aksManagedNodeOSUpgradeSchedule'.
+ * @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);
+
+ /**
+ * 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. Supported values are 'default',
+ * 'aksManagedAutoUpgradeSchedule', or 'aksManagedNodeOSUpgradeSchedule'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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);
+
+ /**
+ * 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);
+}
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 000000000000..35348a938898
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedClustersClient.java
@@ -0,0 +1,1234 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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.KubernetesVersionListResultInner;
+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.MeshRevisionProfileInner;
+import com.azure.resourcemanager.containerservice.generated.fluent.models.MeshUpgradeProfileInner;
+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.ManagedClustersGetCommandResultResponse;
+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 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 ifMatch The request should only proceed if an entity matches this string.
+ * @param ifNoneMatch The request should only proceed if no entity matches this string.
+ * @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, String ifMatch, String ifNoneMatch, 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 ifMatch The request should only proceed if an entity matches this string.
+ * @param ifNoneMatch The request should only proceed if no entity matches this string.
+ * @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,
+ String ifMatch, String ifNoneMatch, 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 ifMatch The request should only proceed if an entity matches this string.
+ * @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, String ifMatch, 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 ifMatch The request should only proceed if an entity matches this string.
+ * @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, String ifMatch,
+ 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param ifMatch The request should only proceed if an entity matches this string.
+ * @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 ifMatch,
+ 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 ifMatch The request should only proceed if an entity matches this string.
+ * @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 ifMatch, 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 of a ManagedCluster list 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 of a ManagedCluster list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, 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);
+
+ /**
+ * Gets an access profile of a managed cluster.
+ *
+ * **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 an access profile of a managed cluster.
+ *
+ * **WARNING**: This API will be deprecated along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getAccessProfileWithResponse(String resourceGroupName,
+ String resourceName, String roleName, Context context);
+
+ /**
+ * Gets an access profile of a managed cluster.
+ *
+ * **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 an access profile of a managed cluster.
+ *
+ * **WARNING**: This API will be deprecated.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterAccessProfileInner getAccessProfile(String resourceGroupName, String resourceName, String roleName);
+
+ /**
+ * 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 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 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 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 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);
+
+ /**
+ * 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);
+
+ /**
+ * Reset the Service Principal Profile of a managed cluster.
+ *
+ * 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);
+
+ /**
+ * Reset the Service Principal Profile of a managed cluster.
+ *
+ * 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);
+
+ /**
+ * Reset the Service Principal Profile of a managed cluster.
+ *
+ * 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);
+
+ /**
+ * Reset the Service Principal Profile of a managed cluster.
+ *
+ * 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.
+ *
+ * **WARNING**: This API will be deprecated. Please see [AKS-managed Azure Active Directory
+ * integration](https://aka.ms/aks-managed-aad) to update your cluster with AKS-managed Azure AD.
+ *
+ * @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.
+ *
+ * **WARNING**: This API will be deprecated. Please see [AKS-managed Azure Active Directory
+ * integration](https://aka.ms/aks-managed-aad) to update your cluster with AKS-managed Azure AD.
+ *
+ * @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.
+ *
+ * **WARNING**: This API will be deprecated. Please see [AKS-managed Azure Active Directory
+ * integration](https://aka.ms/aks-managed-aad) to update your cluster with AKS-managed Azure AD.
+ *
+ * @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.
+ *
+ * **WARNING**: This API will be deprecated. Please see [AKS-managed Azure Active Directory
+ * integration](https://aka.ms/aks-managed-aad) to update your cluster with AKS-managed Azure AD.
+ *
+ * @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);
+
+ /**
+ * Rotates the certificates of a managed cluster.
+ *
+ * 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);
+
+ /**
+ * Rotates the certificates of a managed cluster.
+ *
+ * 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);
+
+ /**
+ * Rotates the certificates of a managed cluster.
+ *
+ * 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);
+
+ /**
+ * Rotates the certificates of a managed cluster.
+ *
+ * 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);
+
+ /**
+ * Aborts last operation running on managed cluster.
+ *
+ * Aborts the currently running operation on the managed cluster. The Managed Cluster will be moved to a Canceling
+ * state and eventually to a Canceled state when cancellation finishes. If the operation completes before
+ * cancellation can take place, a 409 error code is returned.
+ *
+ * @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> beginAbortLatestOperation(String resourceGroupName, String resourceName);
+
+ /**
+ * Aborts last operation running on managed cluster.
+ *
+ * Aborts the currently running operation on the managed cluster. The Managed Cluster will be moved to a Canceling
+ * state and eventually to a Canceled state when cancellation finishes. If the operation completes before
+ * cancellation can take place, a 409 error code is returned.
+ *
+ * @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> beginAbortLatestOperation(String resourceGroupName, String resourceName,
+ Context context);
+
+ /**
+ * Aborts last operation running on managed cluster.
+ *
+ * Aborts the currently running operation on the managed cluster. The Managed Cluster will be moved to a Canceling
+ * state and eventually to a Canceled state when cancellation finishes. If the operation completes before
+ * cancellation can take place, a 409 error code is returned.
+ *
+ * @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 abortLatestOperation(String resourceGroupName, String resourceName);
+
+ /**
+ * Aborts last operation running on managed cluster.
+ *
+ * Aborts the currently running operation on the managed cluster. The Managed Cluster will be moved to a Canceling
+ * state and eventually to a Canceled state when cancellation finishes. If the operation completes before
+ * cancellation can take place, a 409 error code is returned.
+ *
+ * @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 abortLatestOperation(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);
+
+ /**
+ * Stops a Managed Cluster
+ *
+ * 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);
+
+ /**
+ * Stops a Managed Cluster
+ *
+ * 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);
+
+ /**
+ * Stops a Managed Cluster
+ *
+ * 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);
+
+ /**
+ * Stops a Managed Cluster
+ *
+ * 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);
+
+ /**
+ * Starts a previously stopped Managed Cluster
+ *
+ * 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);
+
+ /**
+ * Starts a previously stopped Managed Cluster
+ *
+ * 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);
+
+ /**
+ * Starts a previously stopped Managed Cluster
+ *
+ * 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);
+
+ /**
+ * Starts a previously stopped Managed Cluster
+ *
+ * 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);
+
+ /**
+ * Submits a command to run against the Managed Cluster.
+ *
+ * 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 long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RunCommandResultInner> beginRunCommand(String resourceGroupName,
+ String resourceName, RunCommandRequest requestPayload);
+
+ /**
+ * Submits a command to run against the Managed Cluster.
+ *
+ * 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 long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RunCommandResultInner> beginRunCommand(String resourceGroupName,
+ String resourceName, RunCommandRequest requestPayload, Context context);
+
+ /**
+ * Submits a command to run against the Managed Cluster.
+ *
+ * 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RunCommandResultInner runCommand(String resourceGroupName, String resourceName, RunCommandRequest requestPayload);
+
+ /**
+ * Submits a command to run against the Managed Cluster.
+ *
+ * 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 response.
+ */
+ @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.
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClustersGetCommandResultResponse getCommandResultWithResponse(String resourceGroupName, String resourceName,
+ String commandId, 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 a list of egress endpoints (network endpoints of all outbound dependencies) in the specified managed
+ * cluster.
+ *
+ * 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.
+ *
+ * Gets 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.
+ *
+ * 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.
+ *
+ * Gets 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 a mesh revision profile for a specified mesh in the specified location.
+ *
+ * Contains extra metadata on the revision, including supported revisions, cluster compatibility and available
+ * upgrades.
+ *
+ * @param location The name of the Azure region.
+ * @param mode The mode of the mesh.
+ * @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 mesh revision profile for a specified mesh in the specified location.
+ *
+ * Contains extra metadata on the revision, including supported revisions, cluster compatibility and available
+ * upgrades along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getMeshRevisionProfileWithResponse(String location, String mode,
+ Context context);
+
+ /**
+ * Gets a mesh revision profile for a specified mesh in the specified location.
+ *
+ * Contains extra metadata on the revision, including supported revisions, cluster compatibility and available
+ * upgrades.
+ *
+ * @param location The name of the Azure region.
+ * @param mode The mode of the mesh.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 mesh revision profile for a specified mesh in the specified location.
+ *
+ * Contains extra metadata on the revision, including supported revisions, cluster compatibility and available
+ * upgrades.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MeshRevisionProfileInner getMeshRevisionProfile(String location, String mode);
+
+ /**
+ * Lists mesh revision profiles for all meshes in the specified location.
+ *
+ * Contains extra metadata on each revision, including supported revisions, cluster compatibility and available
+ * upgrades.
+ *
+ * @param location The name of the 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 holds an array of MeshRevisionsProfiles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listMeshRevisionProfiles(String location);
+
+ /**
+ * Lists mesh revision profiles for all meshes in the specified location.
+ *
+ * Contains extra metadata on each revision, including supported revisions, cluster compatibility and available
+ * upgrades.
+ *
+ * @param location The name of the Azure region.
+ * @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 holds an array of MeshRevisionsProfiles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listMeshRevisionProfiles(String location, Context context);
+
+ /**
+ * Gets available upgrades for a service mesh in 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 mode The mode of the mesh.
+ * @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 available upgrades for a service mesh in a cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getMeshUpgradeProfileWithResponse(String resourceGroupName, String resourceName,
+ String mode, Context context);
+
+ /**
+ * Gets available upgrades for a service mesh in 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 mode The mode of the mesh.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 available upgrades for a service mesh in a cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MeshUpgradeProfileInner getMeshUpgradeProfile(String resourceGroupName, String resourceName, String mode);
+
+ /**
+ * Lists available upgrades for all service meshes in a specific 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 holds an array of MeshUpgradeProfiles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listMeshUpgradeProfiles(String resourceGroupName, String resourceName);
+
+ /**
+ * Lists available upgrades for all service meshes in a specific 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 holds an array of MeshUpgradeProfiles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listMeshUpgradeProfiles(String resourceGroupName, String resourceName,
+ Context context);
+
+ /**
+ * Gets a list of supported Kubernetes versions in the specified subscription.
+ *
+ * Contains extra metadata on the version, including supported patch versions, capabilities, available upgrades, and
+ * details on preview status of the version.
+ *
+ * @param location The name of the Azure region.
+ * @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 Kubernetes versions in the specified subscription.
+ *
+ * Contains extra metadata on the version, including supported patch versions, capabilities, available upgrades, and
+ * details on preview status of the version along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listKubernetesVersionsWithResponse(String location, Context context);
+
+ /**
+ * Gets a list of supported Kubernetes versions in the specified subscription.
+ *
+ * Contains extra metadata on the version, including supported patch versions, capabilities, available upgrades, and
+ * details on preview status of the version.
+ *
+ * @param location The name of the 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 Kubernetes versions in the specified subscription.
+ *
+ * Contains extra metadata on the version, including supported patch versions, capabilities, available upgrades, and
+ * details on preview status of the version.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ KubernetesVersionListResultInner listKubernetesVersions(String location);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedNamespacesClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedNamespacesClient.java
new file mode 100644
index 000000000000..5749af1cb6ca
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ManagedNamespacesClient.java
@@ -0,0 +1,272 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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.ManagedNamespaceInner;
+import com.azure.resourcemanager.containerservice.generated.models.TagsObject;
+
+/**
+ * An instance of this class provides access to all the operations defined in ManagedNamespacesClient.
+ */
+public interface ManagedNamespacesClient {
+ /**
+ * Gets the specified namespace 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 managedNamespaceName The name of the managed namespace.
+ * @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 namespace of a managed cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String resourceName,
+ String managedNamespaceName, Context context);
+
+ /**
+ * Gets the specified namespace 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 managedNamespaceName The name of the managed namespace.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 namespace of a managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedNamespaceInner get(String resourceGroupName, String resourceName, String managedNamespaceName);
+
+ /**
+ * Creates or updates a namespace managed by ARM for the specified managed cluster. Users can configure aspects like
+ * resource quotas, network ingress/egress policies, and more. See aka.ms/aks/managed-namespaces for more details.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @param parameters The namespace 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 namespace managed by ARM.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedNamespaceInner> beginCreateOrUpdate(String resourceGroupName,
+ String resourceName, String managedNamespaceName, ManagedNamespaceInner parameters);
+
+ /**
+ * Creates or updates a namespace managed by ARM for the specified managed cluster. Users can configure aspects like
+ * resource quotas, network ingress/egress policies, and more. See aka.ms/aks/managed-namespaces for more details.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @param parameters The namespace 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 namespace managed by ARM.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedNamespaceInner> beginCreateOrUpdate(String resourceGroupName,
+ String resourceName, String managedNamespaceName, ManagedNamespaceInner parameters, Context context);
+
+ /**
+ * Creates or updates a namespace managed by ARM for the specified managed cluster. Users can configure aspects like
+ * resource quotas, network ingress/egress policies, and more. See aka.ms/aks/managed-namespaces for more details.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @param parameters The namespace 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 namespace managed by ARM.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedNamespaceInner createOrUpdate(String resourceGroupName, String resourceName, String managedNamespaceName,
+ ManagedNamespaceInner parameters);
+
+ /**
+ * Creates or updates a namespace managed by ARM for the specified managed cluster. Users can configure aspects like
+ * resource quotas, network ingress/egress policies, and more. See aka.ms/aks/managed-namespaces for more details.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @param parameters The namespace 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 namespace managed by ARM.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedNamespaceInner createOrUpdate(String resourceGroupName, String resourceName, String managedNamespaceName,
+ ManagedNamespaceInner parameters, Context context);
+
+ /**
+ * Updates tags on a managed namespace.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @param parameters Parameters supplied to the patch namespace operation, we only support patch tags for now.
+ * @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 namespace managed by ARM along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(String resourceGroupName, String resourceName,
+ String managedNamespaceName, TagsObject parameters, Context context);
+
+ /**
+ * Updates tags on a managed namespace.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @param parameters Parameters supplied to the patch namespace operation, we only support patch tags for now.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 namespace managed by ARM.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedNamespaceInner update(String resourceGroupName, String resourceName, String managedNamespaceName,
+ TagsObject parameters);
+
+ /**
+ * Deletes a namespace.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 managedNamespaceName);
+
+ /**
+ * Deletes a namespace.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @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 managedNamespaceName, Context context);
+
+ /**
+ * Deletes a namespace.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 managedNamespaceName);
+
+ /**
+ * Deletes a namespace.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @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 managedNamespaceName, Context context);
+
+ /**
+ * Gets a list of managed namespaces 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 managed namespaces 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 managed namespaces 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 managed namespaces in the specified managed cluster as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByManagedCluster(String resourceGroupName, String resourceName,
+ Context context);
+
+ /**
+ * Lists the credentials of a namespace.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @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 listCredentialWithResponse(String resourceGroupName, String resourceName,
+ String managedNamespaceName, Context context);
+
+ /**
+ * Lists the credentials of a namespace.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param managedNamespaceName The name of the managed namespace.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 listCredential(String resourceGroupName, String resourceName, String managedNamespaceName);
+}
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 000000000000..93d18c9cacab
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/OperationsClient.java
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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 000000000000..f29425a5432b
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/PrivateEndpointConnectionsClient.java
@@ -0,0 +1,187 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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 {
+ /**
+ * Gets the specified private endpoint connection.
+ *
+ * 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 the specified private endpoint connection.
+ *
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters along with
+ * {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String resourceName,
+ String privateEndpointConnectionName, Context context);
+
+ /**
+ * Gets the specified private endpoint connection.
+ *
+ * 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 the specified private endpoint connection.
+ *
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner get(String resourceGroupName, String resourceName,
+ String privateEndpointConnectionName);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * Gets a list of private endpoint connections in the specified managed cluster.
+ *
+ * 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 in the specified managed cluster.
+ *
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters along with
+ * {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(String resourceGroupName, String resourceName,
+ Context context);
+
+ /**
+ * Gets a list of private endpoint connections in the specified managed cluster.
+ *
+ * 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 in the specified managed cluster.
+ *
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionListResultInner list(String resourceGroupName, String resourceName);
+}
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 000000000000..9e73192dfef4
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/PrivateLinkResourcesClient.java
@@ -0,0 +1,53 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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 {
+ /**
+ * Gets a list of private link resources in the specified managed cluster.
+ *
+ * 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 in the specified managed cluster.
+ *
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters along with
+ * {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(String resourceGroupName, String resourceName,
+ Context context);
+
+ /**
+ * Gets a list of private link resources in the specified managed cluster.
+ *
+ * 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 in the specified managed cluster.
+ *
+ * To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateLinkResourcesListResultInner list(String resourceGroupName, String resourceName);
+}
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 000000000000..f1283fd7bed8
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/ResolvePrivateLinkServiceIdsClient.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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.
+ * @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);
+
+ /**
+ * 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);
+}
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 000000000000..24b99a62ae8e
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/SnapshotsClient.java
@@ -0,0 +1,179 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 of a Snapshot list 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 of a Snapshot list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * 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);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/TrustedAccessRoleBindingsClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/TrustedAccessRoleBindingsClient.java
new file mode 100644
index 000000000000..8e5dc431d3af
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/TrustedAccessRoleBindingsClient.java
@@ -0,0 +1,205 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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.TrustedAccessRoleBindingInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in TrustedAccessRoleBindingsClient.
+ */
+public interface TrustedAccessRoleBindingsClient {
+ /**
+ * Get a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @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 trusted access role binding along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String resourceName,
+ String trustedAccessRoleBindingName, Context context);
+
+ /**
+ * Get a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 trusted access role binding.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TrustedAccessRoleBindingInner get(String resourceGroupName, String resourceName,
+ String trustedAccessRoleBindingName);
+
+ /**
+ * Create or update a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @param trustedAccessRoleBinding A trusted access role binding.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 defines binding between a resource and role.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TrustedAccessRoleBindingInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, String trustedAccessRoleBindingName,
+ TrustedAccessRoleBindingInner trustedAccessRoleBinding);
+
+ /**
+ * Create or update a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @param trustedAccessRoleBinding A trusted access role binding.
+ * @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 defines binding between a resource and role.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TrustedAccessRoleBindingInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, String trustedAccessRoleBindingName,
+ TrustedAccessRoleBindingInner trustedAccessRoleBinding, Context context);
+
+ /**
+ * Create or update a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @param trustedAccessRoleBinding A trusted access role binding.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 defines binding between a resource and role.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TrustedAccessRoleBindingInner createOrUpdate(String resourceGroupName, String resourceName,
+ String trustedAccessRoleBindingName, TrustedAccessRoleBindingInner trustedAccessRoleBinding);
+
+ /**
+ * Create or update a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @param trustedAccessRoleBinding A trusted access role binding.
+ * @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 defines binding between a resource and role.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TrustedAccessRoleBindingInner createOrUpdate(String resourceGroupName, String resourceName,
+ String trustedAccessRoleBindingName, TrustedAccessRoleBindingInner trustedAccessRoleBinding, Context context);
+
+ /**
+ * Delete a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 trustedAccessRoleBindingName);
+
+ /**
+ * Delete a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @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 trustedAccessRoleBindingName, Context context);
+
+ /**
+ * Delete a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 trustedAccessRoleBindingName);
+
+ /**
+ * Delete a trusted access role binding.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param trustedAccessRoleBindingName The name of trusted access role binding.
+ * @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 trustedAccessRoleBindingName, Context context);
+
+ /**
+ * List trusted access role bindings.
+ *
+ * @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 response of a TrustedAccessRoleBinding list operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName);
+
+ /**
+ * List trusted access role bindings.
+ *
+ * @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 response of a TrustedAccessRoleBinding list operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName, Context context);
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/TrustedAccessRolesClient.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/TrustedAccessRolesClient.java
new file mode 100644
index 000000000000..113075c7ae93
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/TrustedAccessRolesClient.java
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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.TrustedAccessRoleInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in TrustedAccessRolesClient.
+ */
+public interface TrustedAccessRolesClient {
+ /**
+ * List supported trusted access roles.
+ *
+ * @param location The name of the 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 list of trusted access roles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String location);
+
+ /**
+ * List supported trusted access roles.
+ *
+ * @param location The name of the Azure region.
+ * @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 list of trusted access roles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String location, 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 000000000000..e0dc70ec9d90
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AccessProfile.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+
+/**
+ * Profile for enabling a user to access a managed cluster.
+ */
+@Immutable
+public final class AccessProfile implements JsonSerializable {
+ /*
+ * Base64-encoded Kubernetes configuration file.
+ */
+ private byte[] kubeConfig;
+
+ /**
+ * Creates an instance of AccessProfile class.
+ */
+ private AccessProfile() {
+ }
+
+ /**
+ * Get the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeConfig value.
+ */
+ public byte[] kubeConfig() {
+ return CoreUtils.clone(this.kubeConfig);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeBinaryField("kubeConfig", this.kubeConfig);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessProfile from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessProfile if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessProfile.
+ */
+ public static AccessProfile fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessProfile deserializedAccessProfile = new AccessProfile();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("kubeConfig".equals(fieldName)) {
+ deserializedAccessProfile.kubeConfig = reader.getBinary();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessProfile;
+ });
+ }
+}
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 000000000000..84c91d4aef17
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsInner.java
@@ -0,0 +1,136 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * The list of available versions for an agent pool.
+ */
+@Immutable
+public final class AgentPoolAvailableVersionsInner implements JsonSerializable {
+ /*
+ * The ID of the agent pool version list.
+ */
+ private String id;
+
+ /*
+ * The name of the agent pool version list.
+ */
+ private String name;
+
+ /*
+ * Type of the agent pool version list.
+ */
+ private String type;
+
+ /*
+ * Properties of agent pool available versions.
+ */
+ private AgentPoolAvailableVersionsProperties innerProperties;
+
+ /**
+ * Creates an instance of AgentPoolAvailableVersionsInner class.
+ */
+ private AgentPoolAvailableVersionsInner() {
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AgentPoolAvailableVersionsInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AgentPoolAvailableVersionsInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AgentPoolAvailableVersionsInner.
+ */
+ public static AgentPoolAvailableVersionsInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AgentPoolAvailableVersionsInner deserializedAgentPoolAvailableVersionsInner
+ = new AgentPoolAvailableVersionsInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("properties".equals(fieldName)) {
+ deserializedAgentPoolAvailableVersionsInner.innerProperties
+ = AgentPoolAvailableVersionsProperties.fromJson(reader);
+ } else if ("id".equals(fieldName)) {
+ deserializedAgentPoolAvailableVersionsInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAgentPoolAvailableVersionsInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAgentPoolAvailableVersionsInner.type = reader.getString();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAgentPoolAvailableVersionsInner;
+ });
+ }
+}
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 000000000000..c3c5f715af31
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolAvailableVersionsProperties.java
@@ -0,0 +1,82 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * The list of available agent pool versions.
+ */
+@Immutable
+public final class AgentPoolAvailableVersionsProperties
+ implements JsonSerializable {
+ /*
+ * List of versions available for agent pool.
+ */
+ private List agentPoolVersions;
+
+ /**
+ * Creates an instance of AgentPoolAvailableVersionsProperties class.
+ */
+ private AgentPoolAvailableVersionsProperties() {
+ }
+
+ /**
+ * Get the agentPoolVersions property: List of versions available for agent pool.
+ *
+ * @return the agentPoolVersions value.
+ */
+ public List agentPoolVersions() {
+ return this.agentPoolVersions;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeArrayField("agentPoolVersions", this.agentPoolVersions,
+ (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AgentPoolAvailableVersionsProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AgentPoolAvailableVersionsProperties if the JsonReader was pointing to an instance of it,
+ * or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AgentPoolAvailableVersionsProperties.
+ */
+ public static AgentPoolAvailableVersionsProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AgentPoolAvailableVersionsProperties deserializedAgentPoolAvailableVersionsProperties
+ = new AgentPoolAvailableVersionsProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("agentPoolVersions".equals(fieldName)) {
+ List agentPoolVersions
+ = reader.readArray(
+ reader1 -> AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem.fromJson(reader1));
+ deserializedAgentPoolAvailableVersionsProperties.agentPoolVersions = agentPoolVersions;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAgentPoolAvailableVersionsProperties;
+ });
+ }
+}
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 000000000000..90189989ebfb
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolInner.java
@@ -0,0 +1,1495 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolGatewayProfile;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolSecurityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolStatus;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolType;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeSettings;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolWindowsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.GPUInstanceProfile;
+import com.azure.resourcemanager.containerservice.generated.models.GPUProfile;
+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.LocalDNSProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OSDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.OSSKU;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.PodIPAllocationMode;
+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.VirtualMachineNodes;
+import com.azure.resourcemanager.containerservice.generated.models.VirtualMachinesProfile;
+import com.azure.resourcemanager.containerservice.generated.models.WorkloadRuntime;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Agent Pool.
+ */
+@Fluent
+public final class AgentPoolInner extends ProxyResource {
+ /*
+ * Properties of an agent pool.
+ */
+ private ManagedClusterAgentPoolProfileProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AgentPoolInner class.
+ */
+ public AgentPoolInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Properties of an agent pool.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterAgentPoolProfileProperties 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;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the eTag property: Unique read-only string used to implement optimistic concurrency. The eTag value will
+ * change when the resource is updated. Specify an if-match or if-none-match header with the eTag value for a
+ * subsequent request to enable optimistic concurrency per the normal eTag convention.
+ *
+ * @return the eTag value.
+ */
+ public String eTag() {
+ return this.innerProperties() == null ? null : this.innerProperties().eTag();
+ }
+
+ /**
+ * 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 podIPAllocationMode property: Pod IP Allocation Mode. The IP allocation mode for pods in the agent pool.
+ * Must be used with podSubnetId. The default is 'DynamicIndividual'.
+ *
+ * @return the podIPAllocationMode value.
+ */
+ public PodIPAllocationMode podIPAllocationMode() {
+ return this.innerProperties() == null ? null : this.innerProperties().podIPAllocationMode();
+ }
+
+ /**
+ * Set the podIPAllocationMode property: Pod IP Allocation Mode. The IP allocation mode for pods in the agent pool.
+ * Must be used with podSubnetId. The default is 'DynamicIndividual'.
+ *
+ * @param podIPAllocationMode the podIPAllocationMode value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withPodIPAllocationMode(PodIPAllocationMode podIPAllocationMode) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withPodIPAllocationMode(podIPAllocationMode);
+ 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: The operating system type. The default is Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * Set the osType property: The operating system type. The default is 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 the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux.
+ * The default is Windows2019 when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is
+ * Windows.
+ *
+ * @return the osSKU value.
+ */
+ public OSSKU osSKU() {
+ return this.innerProperties() == null ? null : this.innerProperties().osSKU();
+ }
+
+ /**
+ * Set the osSKU property: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux.
+ * The default is Windows2019 when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 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: The scale down mode to use when scaling the Agent Pool. 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: The scale down mode to use when scaling the Agent Pool. 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> (e.g. 1.20.13) and <major.minor> (e.g. 1.20) are supported. When
+ * <major.minor> is specified, the latest supported GA patch version is chosen automatically. Updating the
+ * cluster with the same <major.minor> once it has been created (e.g. 1.14.x -> 1.14) 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> (e.g. 1.20.13) and <major.minor> (e.g. 1.20) are supported. When
+ * <major.minor> is specified, the latest supported GA patch version is chosen automatically. Updating the
+ * cluster with the same <major.minor> once it has been created (e.g. 1.14.x -> 1.14) 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 the Agent Pool is running. If
+ * orchestratorVersion is a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If orchestratorVersion is <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();
+ }
+
+ /**
+ * 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: Whether the Agent Pool is running or stopped. 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: Whether the Agent Pool is running or stopped. 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.
+ *
+ * @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.
+ *
+ * @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. The eviction policy
+ * specifies what to do with the VM when it is evicted. The default is Delete. For more information about eviction
+ * see [spot VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms).
+ *
+ * @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. The eviction policy
+ * specifies what to do with the VM when it is evicted. The default is Delete. For more information about eviction
+ * see [spot VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms).
+ *
+ * @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 Double 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(Double 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: 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: 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: 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: 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: The fully qualified resource ID of the Capacity Reservation Group to
+ * provide virtual machines from a reserved group of Virtual Machines. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Compute/capacityreservationgroups/{capacityReservationGroupName}'
+ * Customers use it to create an agentpool with a specified CRG. For more information see [Capacity
+ * Reservation](https://learn.microsoft.com/en-us/azure/virtual-machines/capacity-reservation-overview).
+ *
+ * @return the capacityReservationGroupID value.
+ */
+ public String capacityReservationGroupID() {
+ return this.innerProperties() == null ? null : this.innerProperties().capacityReservationGroupID();
+ }
+
+ /**
+ * Set the capacityReservationGroupID property: The fully qualified resource ID of the Capacity Reservation Group to
+ * provide virtual machines from a reserved group of Virtual Machines. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Compute/capacityreservationgroups/{capacityReservationGroupName}'
+ * Customers use it to create an agentpool with a specified CRG. For more information see [Capacity
+ * Reservation](https://learn.microsoft.com/en-us/azure/virtual-machines/capacity-reservation-overview).
+ *
+ * @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;
+ }
+
+ /**
+ * Get the networkProfile property: Network-related settings of an agent pool.
+ *
+ * @return the networkProfile value.
+ */
+ public AgentPoolNetworkProfile networkProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkProfile();
+ }
+
+ /**
+ * Set the networkProfile property: Network-related settings of an agent pool.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNetworkProfile(AgentPoolNetworkProfile networkProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withNetworkProfile(networkProfile);
+ return this;
+ }
+
+ /**
+ * Get the windowsProfile property: The Windows agent pool's specific profile.
+ *
+ * @return the windowsProfile value.
+ */
+ public AgentPoolWindowsProfile windowsProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().windowsProfile();
+ }
+
+ /**
+ * Set the windowsProfile property: The Windows agent pool's specific profile.
+ *
+ * @param windowsProfile the windowsProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withWindowsProfile(AgentPoolWindowsProfile windowsProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withWindowsProfile(windowsProfile);
+ return this;
+ }
+
+ /**
+ * Get the securityProfile property: The security settings of an agent pool.
+ *
+ * @return the securityProfile value.
+ */
+ public AgentPoolSecurityProfile securityProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().securityProfile();
+ }
+
+ /**
+ * Set the securityProfile property: The security settings of an agent pool.
+ *
+ * @param securityProfile the securityProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withSecurityProfile(AgentPoolSecurityProfile securityProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withSecurityProfile(securityProfile);
+ return this;
+ }
+
+ /**
+ * Get the gpuProfile property: GPU settings for the Agent Pool.
+ *
+ * @return the gpuProfile value.
+ */
+ public GPUProfile gpuProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().gpuProfile();
+ }
+
+ /**
+ * Set the gpuProfile property: GPU settings for the Agent Pool.
+ *
+ * @param gpuProfile the gpuProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withGpuProfile(GPUProfile gpuProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withGpuProfile(gpuProfile);
+ return this;
+ }
+
+ /**
+ * Get the gatewayProfile property: Profile specific to a managed agent pool in Gateway mode. This field cannot be
+ * set if agent pool mode is not Gateway.
+ *
+ * @return the gatewayProfile value.
+ */
+ public AgentPoolGatewayProfile gatewayProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().gatewayProfile();
+ }
+
+ /**
+ * Set the gatewayProfile property: Profile specific to a managed agent pool in Gateway mode. This field cannot be
+ * set if agent pool mode is not Gateway.
+ *
+ * @param gatewayProfile the gatewayProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withGatewayProfile(AgentPoolGatewayProfile gatewayProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withGatewayProfile(gatewayProfile);
+ return this;
+ }
+
+ /**
+ * Get the virtualMachinesProfile property: Specifications on VirtualMachines agent pool.
+ *
+ * @return the virtualMachinesProfile value.
+ */
+ public VirtualMachinesProfile virtualMachinesProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().virtualMachinesProfile();
+ }
+
+ /**
+ * Set the virtualMachinesProfile property: Specifications on VirtualMachines agent pool.
+ *
+ * @param virtualMachinesProfile the virtualMachinesProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withVirtualMachinesProfile(VirtualMachinesProfile virtualMachinesProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withVirtualMachinesProfile(virtualMachinesProfile);
+ return this;
+ }
+
+ /**
+ * Get the virtualMachineNodesStatus property: The status of nodes in a VirtualMachines agent pool.
+ *
+ * @return the virtualMachineNodesStatus value.
+ */
+ public List virtualMachineNodesStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().virtualMachineNodesStatus();
+ }
+
+ /**
+ * Set the virtualMachineNodesStatus property: The status of nodes in a VirtualMachines agent pool.
+ *
+ * @param virtualMachineNodesStatus the virtualMachineNodesStatus value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withVirtualMachineNodesStatus(List virtualMachineNodesStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withVirtualMachineNodesStatus(virtualMachineNodesStatus);
+ return this;
+ }
+
+ /**
+ * Get the status property: Contains read-only information about the Agent Pool.
+ *
+ * @return the status value.
+ */
+ public AgentPoolStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Set the status property: Contains read-only information about the Agent Pool.
+ *
+ * @param status the status value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withStatus(AgentPoolStatus status) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withStatus(status);
+ return this;
+ }
+
+ /**
+ * Get the localDNSProfile property: Configures the per-node local DNS, with VnetDNS and KubeDNS overrides. LocalDNS
+ * helps improve performance and reliability of DNS resolution in an AKS cluster. For more details see
+ * aka.ms/aks/localdns.
+ *
+ * @return the localDNSProfile value.
+ */
+ public LocalDNSProfile localDNSProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().localDNSProfile();
+ }
+
+ /**
+ * Set the localDNSProfile property: Configures the per-node local DNS, with VnetDNS and KubeDNS overrides. LocalDNS
+ * helps improve performance and reliability of DNS resolution in an AKS cluster. For more details see
+ * aka.ms/aks/localdns.
+ *
+ * @param localDNSProfile the localDNSProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withLocalDNSProfile(LocalDNSProfile localDNSProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withLocalDNSProfile(localDNSProfile);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AgentPoolInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AgentPoolInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AgentPoolInner.
+ */
+ public static AgentPoolInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AgentPoolInner deserializedAgentPoolInner = new AgentPoolInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAgentPoolInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAgentPoolInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAgentPoolInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAgentPoolInner.innerProperties
+ = ManagedClusterAgentPoolProfileProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedAgentPoolInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAgentPoolInner;
+ });
+ }
+}
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 000000000000..ebe546f2e73e
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileInner.java
@@ -0,0 +1,183 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * The list of available upgrades for an agent pool.
+ */
+@Immutable
+public final class AgentPoolUpgradeProfileInner extends ProxyResource {
+ /*
+ * The properties of the agent pool upgrade profile.
+ */
+ private AgentPoolUpgradeProfileProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AgentPoolUpgradeProfileInner class.
+ */
+ private AgentPoolUpgradeProfileInner() {
+ }
+
+ /**
+ * Get the innerProperties property: The properties of the agent pool upgrade profile.
+ *
+ * @return the innerProperties value.
+ */
+ private AgentPoolUpgradeProfileProperties 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;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * Get the osType property: The operating system type. The default is Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AgentPoolUpgradeProfileInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AgentPoolUpgradeProfileInner if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AgentPoolUpgradeProfileInner.
+ */
+ public static AgentPoolUpgradeProfileInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AgentPoolUpgradeProfileInner deserializedAgentPoolUpgradeProfileInner = new AgentPoolUpgradeProfileInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAgentPoolUpgradeProfileInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAgentPoolUpgradeProfileInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAgentPoolUpgradeProfileInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAgentPoolUpgradeProfileInner.innerProperties
+ = AgentPoolUpgradeProfileProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedAgentPoolUpgradeProfileInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAgentPoolUpgradeProfileInner;
+ });
+ }
+}
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 000000000000..3dd6cb25c443
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/AgentPoolUpgradeProfileProperties.java
@@ -0,0 +1,132 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * The list of available upgrade versions.
+ */
+@Immutable
+public final class AgentPoolUpgradeProfileProperties implements JsonSerializable {
+ /*
+ * The Kubernetes version (major.minor.patch).
+ */
+ private String kubernetesVersion;
+
+ /*
+ * The operating system type. The default is Linux.
+ */
+ private OSType osType;
+
+ /*
+ * List of orchestrator types and versions available for upgrade.
+ */
+ private List upgrades;
+
+ /*
+ * The latest AKS supported node image version.
+ */
+ private String latestNodeImageVersion;
+
+ /**
+ * Creates an instance of AgentPoolUpgradeProfileProperties class.
+ */
+ private AgentPoolUpgradeProfileProperties() {
+ }
+
+ /**
+ * Get the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Get the osType property: The operating system type. The default is Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Get the upgrades property: List of orchestrator types and versions available for upgrade.
+ *
+ * @return the upgrades value.
+ */
+ public List upgrades() {
+ return this.upgrades;
+ }
+
+ /**
+ * Get the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @return the latestNodeImageVersion value.
+ */
+ public String latestNodeImageVersion() {
+ return this.latestNodeImageVersion;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("kubernetesVersion", this.kubernetesVersion);
+ jsonWriter.writeStringField("osType", this.osType == null ? null : this.osType.toString());
+ jsonWriter.writeArrayField("upgrades", this.upgrades, (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeStringField("latestNodeImageVersion", this.latestNodeImageVersion);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AgentPoolUpgradeProfileProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AgentPoolUpgradeProfileProperties if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AgentPoolUpgradeProfileProperties.
+ */
+ public static AgentPoolUpgradeProfileProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AgentPoolUpgradeProfileProperties deserializedAgentPoolUpgradeProfileProperties
+ = new AgentPoolUpgradeProfileProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("kubernetesVersion".equals(fieldName)) {
+ deserializedAgentPoolUpgradeProfileProperties.kubernetesVersion = reader.getString();
+ } else if ("osType".equals(fieldName)) {
+ deserializedAgentPoolUpgradeProfileProperties.osType = OSType.fromString(reader.getString());
+ } else if ("upgrades".equals(fieldName)) {
+ List upgrades
+ = reader.readArray(reader1 -> AgentPoolUpgradeProfilePropertiesUpgradesItem.fromJson(reader1));
+ deserializedAgentPoolUpgradeProfileProperties.upgrades = upgrades;
+ } else if ("latestNodeImageVersion".equals(fieldName)) {
+ deserializedAgentPoolUpgradeProfileProperties.latestNodeImageVersion = reader.getString();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAgentPoolUpgradeProfileProperties;
+ });
+ }
+}
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 000000000000..5d846ca0ea24
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CommandResultProperties.java
@@ -0,0 +1,157 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+
+/**
+ * The results of a run command.
+ */
+@Immutable
+public final class CommandResultProperties implements JsonSerializable {
+ /*
+ * provisioning State
+ */
+ private String provisioningState;
+
+ /*
+ * The exit code of the command
+ */
+ private Integer exitCode;
+
+ /*
+ * The time when the command started.
+ */
+ private OffsetDateTime startedAt;
+
+ /*
+ * The time when the command finished.
+ */
+ private OffsetDateTime finishedAt;
+
+ /*
+ * The command output.
+ */
+ private String logs;
+
+ /*
+ * An explanation of why provisioningState is set to failed (if so).
+ */
+ private String reason;
+
+ /**
+ * Creates an instance of CommandResultProperties class.
+ */
+ private CommandResultProperties() {
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of CommandResultProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of CommandResultProperties if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the CommandResultProperties.
+ */
+ public static CommandResultProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ CommandResultProperties deserializedCommandResultProperties = new CommandResultProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("provisioningState".equals(fieldName)) {
+ deserializedCommandResultProperties.provisioningState = reader.getString();
+ } else if ("exitCode".equals(fieldName)) {
+ deserializedCommandResultProperties.exitCode = reader.getNullable(JsonReader::getInt);
+ } else if ("startedAt".equals(fieldName)) {
+ deserializedCommandResultProperties.startedAt = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("finishedAt".equals(fieldName)) {
+ deserializedCommandResultProperties.finishedAt = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("logs".equals(fieldName)) {
+ deserializedCommandResultProperties.logs = reader.getString();
+ } else if ("reason".equals(fieldName)) {
+ deserializedCommandResultProperties.reason = reader.getString();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedCommandResultProperties;
+ });
+ }
+}
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 000000000000..95bbf7769493
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/CredentialResultsInner.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.CredentialResult;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * The list credential result response.
+ */
+@Immutable
+public final class CredentialResultsInner implements JsonSerializable {
+ /*
+ * Base64-encoded Kubernetes configuration file.
+ */
+ private List kubeconfigs;
+
+ /**
+ * Creates an instance of CredentialResultsInner class.
+ */
+ private CredentialResultsInner() {
+ }
+
+ /**
+ * Get the kubeconfigs property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeconfigs value.
+ */
+ public List kubeconfigs() {
+ return this.kubeconfigs;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of CredentialResultsInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of CredentialResultsInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the CredentialResultsInner.
+ */
+ public static CredentialResultsInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ CredentialResultsInner deserializedCredentialResultsInner = new CredentialResultsInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("kubeconfigs".equals(fieldName)) {
+ List kubeconfigs
+ = reader.readArray(reader1 -> CredentialResult.fromJson(reader1));
+ deserializedCredentialResultsInner.kubeconfigs = kubeconfigs;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedCredentialResultsInner;
+ });
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/KubernetesVersionListResultInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/KubernetesVersionListResultInner.java
new file mode 100644
index 000000000000..897790c0dfae
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/KubernetesVersionListResultInner.java
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.KubernetesVersion;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Hold values properties, which is array of KubernetesVersion.
+ */
+@Immutable
+public final class KubernetesVersionListResultInner implements JsonSerializable {
+ /*
+ * Array of AKS supported Kubernetes versions.
+ */
+ private List values;
+
+ /**
+ * Creates an instance of KubernetesVersionListResultInner class.
+ */
+ private KubernetesVersionListResultInner() {
+ }
+
+ /**
+ * Get the values property: Array of AKS supported Kubernetes versions.
+ *
+ * @return the values value.
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeArrayField("values", this.values, (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of KubernetesVersionListResultInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of KubernetesVersionListResultInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the KubernetesVersionListResultInner.
+ */
+ public static KubernetesVersionListResultInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ KubernetesVersionListResultInner deserializedKubernetesVersionListResultInner
+ = new KubernetesVersionListResultInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("values".equals(fieldName)) {
+ List values = reader.readArray(reader1 -> KubernetesVersion.fromJson(reader1));
+ deserializedKubernetesVersionListResultInner.values = values;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedKubernetesVersionListResultInner;
+ });
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MachineInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MachineInner.java
new file mode 100644
index 000000000000..7aa3941c9c2e
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MachineInner.java
@@ -0,0 +1,163 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.MachineProperties;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * A machine. Contains details about the underlying virtual machine. A machine may be visible here but not in kubectl
+ * get nodes; if so it may be because the machine has not been registered with the Kubernetes API Server yet.
+ */
+@Immutable
+public final class MachineInner extends ProxyResource {
+ /*
+ * The properties of the machine
+ */
+ private MachineProperties properties;
+
+ /*
+ * The Availability zone in which machine is located.
+ */
+ private List zones;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of MachineInner class.
+ */
+ private MachineInner() {
+ }
+
+ /**
+ * Get the properties property: The properties of the machine.
+ *
+ * @return the properties value.
+ */
+ public MachineProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Get the zones property: The Availability zone in which machine is located.
+ *
+ * @return the zones value.
+ */
+ public List zones() {
+ return this.zones;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of MachineInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of MachineInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the MachineInner.
+ */
+ public static MachineInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ MachineInner deserializedMachineInner = new MachineInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedMachineInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedMachineInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedMachineInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedMachineInner.properties = MachineProperties.fromJson(reader);
+ } else if ("zones".equals(fieldName)) {
+ List zones = reader.readArray(reader1 -> reader1.getString());
+ deserializedMachineInner.zones = zones;
+ } else if ("systemData".equals(fieldName)) {
+ deserializedMachineInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedMachineInner;
+ });
+ }
+}
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 000000000000..1412cfca4033
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationInner.java
@@ -0,0 +1,222 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.MaintenanceWindow;
+import com.azure.resourcemanager.containerservice.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservice.generated.models.TimeSpan;
+import java.io.IOException;
+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 ProxyResource {
+ /*
+ * Properties of a default maintenance configuration.
+ */
+ private MaintenanceConfigurationProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of MaintenanceConfigurationInner class.
+ */
+ public MaintenanceConfigurationInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a default maintenance configuration.
+ *
+ * @return the innerProperties value.
+ */
+ private MaintenanceConfigurationProperties 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;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get the maintenanceWindow property: Maintenance window for the maintenance configuration.
+ *
+ * @return the maintenanceWindow value.
+ */
+ public MaintenanceWindow maintenanceWindow() {
+ return this.innerProperties() == null ? null : this.innerProperties().maintenanceWindow();
+ }
+
+ /**
+ * Set the maintenanceWindow property: Maintenance window for the maintenance configuration.
+ *
+ * @param maintenanceWindow the maintenanceWindow value to set.
+ * @return the MaintenanceConfigurationInner object itself.
+ */
+ public MaintenanceConfigurationInner withMaintenanceWindow(MaintenanceWindow maintenanceWindow) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MaintenanceConfigurationProperties();
+ }
+ this.innerProperties().withMaintenanceWindow(maintenanceWindow);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of MaintenanceConfigurationInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of MaintenanceConfigurationInner if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the MaintenanceConfigurationInner.
+ */
+ public static MaintenanceConfigurationInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ MaintenanceConfigurationInner deserializedMaintenanceConfigurationInner
+ = new MaintenanceConfigurationInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedMaintenanceConfigurationInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedMaintenanceConfigurationInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedMaintenanceConfigurationInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedMaintenanceConfigurationInner.innerProperties
+ = MaintenanceConfigurationProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedMaintenanceConfigurationInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedMaintenanceConfigurationInner;
+ });
+ }
+}
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 000000000000..1b0e1febd90a
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MaintenanceConfigurationProperties.java
@@ -0,0 +1,153 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.MaintenanceWindow;
+import com.azure.resourcemanager.containerservice.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservice.generated.models.TimeSpan;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Properties used to configure planned maintenance for a Managed Cluster.
+ */
+@Fluent
+public final class MaintenanceConfigurationProperties implements JsonSerializable {
+ /*
+ * 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.
+ */
+ private List timeInWeek;
+
+ /*
+ * Time slots on which upgrade is not allowed.
+ */
+ private List notAllowedTime;
+
+ /*
+ * Maintenance window for the maintenance configuration.
+ */
+ private MaintenanceWindow maintenanceWindow;
+
+ /**
+ * Creates an instance of MaintenanceConfigurationProperties class.
+ */
+ public MaintenanceConfigurationProperties() {
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get the maintenanceWindow property: Maintenance window for the maintenance configuration.
+ *
+ * @return the maintenanceWindow value.
+ */
+ public MaintenanceWindow maintenanceWindow() {
+ return this.maintenanceWindow;
+ }
+
+ /**
+ * Set the maintenanceWindow property: Maintenance window for the maintenance configuration.
+ *
+ * @param maintenanceWindow the maintenanceWindow value to set.
+ * @return the MaintenanceConfigurationProperties object itself.
+ */
+ public MaintenanceConfigurationProperties withMaintenanceWindow(MaintenanceWindow maintenanceWindow) {
+ this.maintenanceWindow = maintenanceWindow;
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeArrayField("timeInWeek", this.timeInWeek, (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeArrayField("notAllowedTime", this.notAllowedTime,
+ (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeJsonField("maintenanceWindow", this.maintenanceWindow);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of MaintenanceConfigurationProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of MaintenanceConfigurationProperties if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the MaintenanceConfigurationProperties.
+ */
+ public static MaintenanceConfigurationProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ MaintenanceConfigurationProperties deserializedMaintenanceConfigurationProperties
+ = new MaintenanceConfigurationProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("timeInWeek".equals(fieldName)) {
+ List timeInWeek = reader.readArray(reader1 -> TimeInWeek.fromJson(reader1));
+ deserializedMaintenanceConfigurationProperties.timeInWeek = timeInWeek;
+ } else if ("notAllowedTime".equals(fieldName)) {
+ List notAllowedTime = reader.readArray(reader1 -> TimeSpan.fromJson(reader1));
+ deserializedMaintenanceConfigurationProperties.notAllowedTime = notAllowedTime;
+ } else if ("maintenanceWindow".equals(fieldName)) {
+ deserializedMaintenanceConfigurationProperties.maintenanceWindow
+ = MaintenanceWindow.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedMaintenanceConfigurationProperties;
+ });
+ }
+}
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 000000000000..3c1fd35afed4
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAccessProfileInner.java
@@ -0,0 +1,163 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * Managed cluster Access Profile.
+ */
+@Immutable
+public final class ManagedClusterAccessProfileInner extends Resource {
+ private static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
+
+ /*
+ * AccessProfile of a managed cluster.
+ */
+ private AccessProfile innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of ManagedClusterAccessProfileInner class.
+ */
+ private ManagedClusterAccessProfileInner() {
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeConfig value.
+ */
+ public byte[] kubeConfig() {
+ return this.innerProperties() == null ? EMPTY_BYTE_ARRAY : this.innerProperties().kubeConfig();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of ManagedClusterAccessProfileInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of ManagedClusterAccessProfileInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the ManagedClusterAccessProfileInner.
+ */
+ public static ManagedClusterAccessProfileInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ ManagedClusterAccessProfileInner deserializedManagedClusterAccessProfileInner
+ = new ManagedClusterAccessProfileInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedManagedClusterAccessProfileInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedManagedClusterAccessProfileInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedManagedClusterAccessProfileInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedManagedClusterAccessProfileInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedManagedClusterAccessProfileInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedManagedClusterAccessProfileInner.innerProperties = AccessProfile.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedManagedClusterAccessProfileInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedManagedClusterAccessProfileInner;
+ });
+ }
+}
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 000000000000..a519ada76b2b
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterAgentPoolProfileProperties.java
@@ -0,0 +1,1846 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolGatewayProfile;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolSecurityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolStatus;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolType;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolUpgradeSettings;
+import com.azure.resourcemanager.containerservice.generated.models.AgentPoolWindowsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.CreationData;
+import com.azure.resourcemanager.containerservice.generated.models.GPUInstanceProfile;
+import com.azure.resourcemanager.containerservice.generated.models.GPUProfile;
+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.LocalDNSProfile;
+import com.azure.resourcemanager.containerservice.generated.models.OSDiskType;
+import com.azure.resourcemanager.containerservice.generated.models.OSSKU;
+import com.azure.resourcemanager.containerservice.generated.models.OSType;
+import com.azure.resourcemanager.containerservice.generated.models.PodIPAllocationMode;
+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.VirtualMachineNodes;
+import com.azure.resourcemanager.containerservice.generated.models.VirtualMachinesProfile;
+import com.azure.resourcemanager.containerservice.generated.models.WorkloadRuntime;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Properties for the container service agent pool profile.
+ */
+@Fluent
+public class ManagedClusterAgentPoolProfileProperties
+ implements JsonSerializable {
+ /*
+ * Unique read-only string used to implement optimistic concurrency. The eTag value will change when the resource is
+ * updated. Specify an if-match or if-none-match header with the eTag value for a subsequent request to enable
+ * optimistic concurrency per the normal eTag convention.
+ */
+ private String eTag;
+
+ /*
+ * 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.
+ */
+ 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
+ */
+ 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.
+ */
+ 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).
+ */
+ private OSDiskType osDiskType;
+
+ /*
+ * Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage.
+ */
+ private KubeletDiskType kubeletDiskType;
+
+ /*
+ * Determines the type of workload a node can run.
+ */
+ 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).
+ */
+ 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}
+ */
+ 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}
+ */
+ private String podSubnetID;
+
+ /*
+ * Pod IP Allocation Mode. The IP allocation mode for pods in the agent pool. Must be used with podSubnetId. The
+ * default is 'DynamicIndividual'.
+ */
+ private PodIPAllocationMode podIPAllocationMode;
+
+ /*
+ * The maximum number of pods that can run on a node.
+ */
+ private Integer maxPods;
+
+ /*
+ * The operating system type. The default is Linux.
+ */
+ private OSType osType;
+
+ /*
+ * Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019
+ * when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows.
+ */
+ private OSSKU osSKU;
+
+ /*
+ * The maximum number of nodes for auto-scaling
+ */
+ private Integer maxCount;
+
+ /*
+ * The minimum number of nodes for auto-scaling
+ */
+ private Integer minCount;
+
+ /*
+ * Whether to enable auto-scaler
+ */
+ private Boolean enableAutoScaling;
+
+ /*
+ * The scale down mode to use when scaling the Agent Pool. This also effects the cluster autoscaler behavior. If not
+ * specified, it defaults to Delete.
+ */
+ private ScaleDownMode scaleDownMode;
+
+ /*
+ * The type of Agent Pool.
+ */
+ 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
+ */
+ private AgentPoolMode mode;
+
+ /*
+ * The version of Kubernetes specified by the user. Both patch version (e.g. 1.20.13) and
+ * (e.g. 1.20) are supported. When is specified, the latest supported GA patch version
+ * is chosen automatically. Updating the cluster with the same once it has been created (e.g. 1.14.x
+ * -> 1.14) 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).
+ */
+ private String orchestratorVersion;
+
+ /*
+ * The version of Kubernetes the Agent Pool is running. If orchestratorVersion is a fully specified version
+ * , this field will be exactly equal to it. If orchestratorVersion is , this field
+ * will contain the full version being used.
+ */
+ private String currentOrchestratorVersion;
+
+ /*
+ * The version of node image
+ */
+ private String nodeImageVersion;
+
+ /*
+ * Settings for upgrading the agentpool
+ */
+ private AgentPoolUpgradeSettings upgradeSettings;
+
+ /*
+ * The current deployment or provisioning state.
+ */
+ private String provisioningState;
+
+ /*
+ * Whether the Agent Pool is running or stopped. 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
+ */
+ private PowerState powerState;
+
+ /*
+ * The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType property is
+ * 'VirtualMachineScaleSets'.
+ */
+ 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.
+ */
+ 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}
+ */
+ private String nodePublicIPPrefixID;
+
+ /*
+ * The Virtual Machine Scale Set priority.
+ */
+ private ScaleSetPriority scaleSetPriority;
+
+ /*
+ * The Virtual Machine Scale Set eviction policy. The eviction policy specifies what to do with the VM when it is
+ * evicted. The default is Delete. For more information about eviction see [spot
+ * VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms)
+ */
+ 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)
+ */
+ private Double spotMaxPrice;
+
+ /*
+ * The tags to be persisted on the agent pool virtual machine scale set.
+ */
+ private Map tags;
+
+ /*
+ * The node labels to be persisted across all nodes in agent pool.
+ */
+ private Map nodeLabels;
+
+ /*
+ * The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
+ */
+ private List nodeTaints;
+
+ /*
+ * The ID for Proximity Placement Group.
+ */
+ private String proximityPlacementGroupID;
+
+ /*
+ * The Kubelet configuration on the agent pool nodes.
+ */
+ private KubeletConfig kubeletConfig;
+
+ /*
+ * The OS configuration of Linux agent nodes.
+ */
+ 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
+ */
+ private Boolean enableEncryptionAtHost;
+
+ /*
+ * Whether to enable UltraSSD
+ */
+ 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.
+ */
+ private Boolean enableFIPS;
+
+ /*
+ * GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU.
+ */
+ private GPUInstanceProfile gpuInstanceProfile;
+
+ /*
+ * CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using a
+ * snapshot.
+ */
+ private CreationData creationData;
+
+ /*
+ * The fully qualified resource ID of the Capacity Reservation Group to provide virtual machines from a reserved
+ * group of Virtual Machines. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Compute/
+ * capacityreservationgroups/{capacityReservationGroupName}' Customers use it to create an agentpool with a
+ * specified CRG. For more information see [Capacity
+ * Reservation](https://learn.microsoft.com/en-us/azure/virtual-machines/capacity-reservation-overview)
+ */
+ 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).
+ */
+ private String hostGroupID;
+
+ /*
+ * Network-related settings of an agent pool.
+ */
+ private AgentPoolNetworkProfile networkProfile;
+
+ /*
+ * The Windows agent pool's specific profile.
+ */
+ private AgentPoolWindowsProfile windowsProfile;
+
+ /*
+ * The security settings of an agent pool.
+ */
+ private AgentPoolSecurityProfile securityProfile;
+
+ /*
+ * GPU settings for the Agent Pool.
+ */
+ private GPUProfile gpuProfile;
+
+ /*
+ * Profile specific to a managed agent pool in Gateway mode. This field cannot be set if agent pool mode is not
+ * Gateway.
+ */
+ private AgentPoolGatewayProfile gatewayProfile;
+
+ /*
+ * Specifications on VirtualMachines agent pool.
+ */
+ private VirtualMachinesProfile virtualMachinesProfile;
+
+ /*
+ * The status of nodes in a VirtualMachines agent pool.
+ */
+ private List virtualMachineNodesStatus;
+
+ /*
+ * Contains read-only information about the Agent Pool.
+ */
+ private AgentPoolStatus status;
+
+ /*
+ * Configures the per-node local DNS, with VnetDNS and KubeDNS overrides. LocalDNS helps improve performance and
+ * reliability of DNS resolution in an AKS cluster. For more details see aka.ms/aks/localdns.
+ */
+ private LocalDNSProfile localDNSProfile;
+
+ /**
+ * Creates an instance of ManagedClusterAgentPoolProfileProperties class.
+ */
+ public ManagedClusterAgentPoolProfileProperties() {
+ }
+
+ /**
+ * Get the eTag property: Unique read-only string used to implement optimistic concurrency. The eTag value will
+ * change when the resource is updated. Specify an if-match or if-none-match header with the eTag value for a
+ * subsequent request to enable optimistic concurrency per the normal eTag convention.
+ *
+ * @return the eTag value.
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set the eTag property: Unique read-only string used to implement optimistic concurrency. The eTag value will
+ * change when the resource is updated. Specify an if-match or if-none-match header with the eTag value for a
+ * subsequent request to enable optimistic concurrency per the normal eTag convention.
+ *
+ * @param eTag the eTag value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ ManagedClusterAgentPoolProfileProperties withETag(String eTag) {
+ this.eTag = eTag;
+ 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.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 podIPAllocationMode property: Pod IP Allocation Mode. The IP allocation mode for pods in the agent pool.
+ * Must be used with podSubnetId. The default is 'DynamicIndividual'.
+ *
+ * @return the podIPAllocationMode value.
+ */
+ public PodIPAllocationMode podIPAllocationMode() {
+ return this.podIPAllocationMode;
+ }
+
+ /**
+ * Set the podIPAllocationMode property: Pod IP Allocation Mode. The IP allocation mode for pods in the agent pool.
+ * Must be used with podSubnetId. The default is 'DynamicIndividual'.
+ *
+ * @param podIPAllocationMode the podIPAllocationMode value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withPodIPAllocationMode(PodIPAllocationMode podIPAllocationMode) {
+ this.podIPAllocationMode = podIPAllocationMode;
+ 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: The operating system type. The default is Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the osType property: The operating system type. The default is 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 the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux.
+ * The default is Windows2019 when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is
+ * Windows.
+ *
+ * @return the osSKU value.
+ */
+ public OSSKU osSKU() {
+ return this.osSKU;
+ }
+
+ /**
+ * Set the osSKU property: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux.
+ * The default is Windows2019 when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 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: The scale down mode to use when scaling the Agent Pool. 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: The scale down mode to use when scaling the Agent Pool. 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> (e.g. 1.20.13) and <major.minor> (e.g. 1.20) are supported. When
+ * <major.minor> is specified, the latest supported GA patch version is chosen automatically. Updating the
+ * cluster with the same <major.minor> once it has been created (e.g. 1.14.x -> 1.14) 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> (e.g. 1.20.13) and <major.minor> (e.g. 1.20) are supported. When
+ * <major.minor> is specified, the latest supported GA patch version is chosen automatically. Updating the
+ * cluster with the same <major.minor> once it has been created (e.g. 1.14.x -> 1.14) 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 the Agent Pool is running. If
+ * orchestratorVersion is a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If orchestratorVersion is <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 the Agent Pool is running. If
+ * orchestratorVersion is a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If orchestratorVersion is <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.
+ */
+ 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;
+ }
+
+ /**
+ * Set the nodeImageVersion property: The version of node image.
+ *
+ * @param nodeImageVersion the nodeImageVersion value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ ManagedClusterAgentPoolProfileProperties withNodeImageVersion(String nodeImageVersion) {
+ this.nodeImageVersion = nodeImageVersion;
+ return this;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Set the provisioningState property: The current deployment or provisioning state.
+ *
+ * @param provisioningState the provisioningState value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ ManagedClusterAgentPoolProfileProperties withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get the powerState property: Whether the Agent Pool is running or stopped. 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: Whether the Agent Pool is running or stopped. 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.
+ *
+ * @return the scaleSetPriority value.
+ */
+ public ScaleSetPriority scaleSetPriority() {
+ return this.scaleSetPriority;
+ }
+
+ /**
+ * Set the scaleSetPriority property: The Virtual Machine Scale Set priority.
+ *
+ * @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. The eviction policy
+ * specifies what to do with the VM when it is evicted. The default is Delete. For more information about eviction
+ * see [spot VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms).
+ *
+ * @return the scaleSetEvictionPolicy value.
+ */
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.scaleSetEvictionPolicy;
+ }
+
+ /**
+ * Set the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy. The eviction policy
+ * specifies what to do with the VM when it is evicted. The default is Delete. For more information about eviction
+ * see [spot VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms).
+ *
+ * @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 Double 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(Double 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: The Kubelet configuration on the agent pool nodes.
+ *
+ * @return the kubeletConfig value.
+ */
+ public KubeletConfig kubeletConfig() {
+ return this.kubeletConfig;
+ }
+
+ /**
+ * Set the kubeletConfig property: 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: The OS configuration of Linux agent nodes.
+ *
+ * @return the linuxOSConfig value.
+ */
+ public LinuxOSConfig linuxOSConfig() {
+ return this.linuxOSConfig;
+ }
+
+ /**
+ * Set the linuxOSConfig property: 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: The fully qualified resource ID of the Capacity Reservation Group to
+ * provide virtual machines from a reserved group of Virtual Machines. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Compute/capacityreservationgroups/{capacityReservationGroupName}'
+ * Customers use it to create an agentpool with a specified CRG. For more information see [Capacity
+ * Reservation](https://learn.microsoft.com/en-us/azure/virtual-machines/capacity-reservation-overview).
+ *
+ * @return the capacityReservationGroupID value.
+ */
+ public String capacityReservationGroupID() {
+ return this.capacityReservationGroupID;
+ }
+
+ /**
+ * Set the capacityReservationGroupID property: The fully qualified resource ID of the Capacity Reservation Group to
+ * provide virtual machines from a reserved group of Virtual Machines. This is of the form:
+ * '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Compute/capacityreservationgroups/{capacityReservationGroupName}'
+ * Customers use it to create an agentpool with a specified CRG. For more information see [Capacity
+ * Reservation](https://learn.microsoft.com/en-us/azure/virtual-machines/capacity-reservation-overview).
+ *
+ * @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;
+ }
+
+ /**
+ * Get the networkProfile property: Network-related settings of an agent pool.
+ *
+ * @return the networkProfile value.
+ */
+ public AgentPoolNetworkProfile networkProfile() {
+ return this.networkProfile;
+ }
+
+ /**
+ * Set the networkProfile property: Network-related settings of an agent pool.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withNetworkProfile(AgentPoolNetworkProfile networkProfile) {
+ this.networkProfile = networkProfile;
+ return this;
+ }
+
+ /**
+ * Get the windowsProfile property: The Windows agent pool's specific profile.
+ *
+ * @return the windowsProfile value.
+ */
+ public AgentPoolWindowsProfile windowsProfile() {
+ return this.windowsProfile;
+ }
+
+ /**
+ * Set the windowsProfile property: The Windows agent pool's specific profile.
+ *
+ * @param windowsProfile the windowsProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withWindowsProfile(AgentPoolWindowsProfile windowsProfile) {
+ this.windowsProfile = windowsProfile;
+ return this;
+ }
+
+ /**
+ * Get the securityProfile property: The security settings of an agent pool.
+ *
+ * @return the securityProfile value.
+ */
+ public AgentPoolSecurityProfile securityProfile() {
+ return this.securityProfile;
+ }
+
+ /**
+ * Set the securityProfile property: The security settings of an agent pool.
+ *
+ * @param securityProfile the securityProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withSecurityProfile(AgentPoolSecurityProfile securityProfile) {
+ this.securityProfile = securityProfile;
+ return this;
+ }
+
+ /**
+ * Get the gpuProfile property: GPU settings for the Agent Pool.
+ *
+ * @return the gpuProfile value.
+ */
+ public GPUProfile gpuProfile() {
+ return this.gpuProfile;
+ }
+
+ /**
+ * Set the gpuProfile property: GPU settings for the Agent Pool.
+ *
+ * @param gpuProfile the gpuProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withGpuProfile(GPUProfile gpuProfile) {
+ this.gpuProfile = gpuProfile;
+ return this;
+ }
+
+ /**
+ * Get the gatewayProfile property: Profile specific to a managed agent pool in Gateway mode. This field cannot be
+ * set if agent pool mode is not Gateway.
+ *
+ * @return the gatewayProfile value.
+ */
+ public AgentPoolGatewayProfile gatewayProfile() {
+ return this.gatewayProfile;
+ }
+
+ /**
+ * Set the gatewayProfile property: Profile specific to a managed agent pool in Gateway mode. This field cannot be
+ * set if agent pool mode is not Gateway.
+ *
+ * @param gatewayProfile the gatewayProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withGatewayProfile(AgentPoolGatewayProfile gatewayProfile) {
+ this.gatewayProfile = gatewayProfile;
+ return this;
+ }
+
+ /**
+ * Get the virtualMachinesProfile property: Specifications on VirtualMachines agent pool.
+ *
+ * @return the virtualMachinesProfile value.
+ */
+ public VirtualMachinesProfile virtualMachinesProfile() {
+ return this.virtualMachinesProfile;
+ }
+
+ /**
+ * Set the virtualMachinesProfile property: Specifications on VirtualMachines agent pool.
+ *
+ * @param virtualMachinesProfile the virtualMachinesProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties
+ withVirtualMachinesProfile(VirtualMachinesProfile virtualMachinesProfile) {
+ this.virtualMachinesProfile = virtualMachinesProfile;
+ return this;
+ }
+
+ /**
+ * Get the virtualMachineNodesStatus property: The status of nodes in a VirtualMachines agent pool.
+ *
+ * @return the virtualMachineNodesStatus value.
+ */
+ public List virtualMachineNodesStatus() {
+ return this.virtualMachineNodesStatus;
+ }
+
+ /**
+ * Set the virtualMachineNodesStatus property: The status of nodes in a VirtualMachines agent pool.
+ *
+ * @param virtualMachineNodesStatus the virtualMachineNodesStatus value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties
+ withVirtualMachineNodesStatus(List virtualMachineNodesStatus) {
+ this.virtualMachineNodesStatus = virtualMachineNodesStatus;
+ return this;
+ }
+
+ /**
+ * Get the status property: Contains read-only information about the Agent Pool.
+ *
+ * @return the status value.
+ */
+ public AgentPoolStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: Contains read-only information about the Agent Pool.
+ *
+ * @param status the status value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withStatus(AgentPoolStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the localDNSProfile property: Configures the per-node local DNS, with VnetDNS and KubeDNS overrides. LocalDNS
+ * helps improve performance and reliability of DNS resolution in an AKS cluster. For more details see
+ * aka.ms/aks/localdns.
+ *
+ * @return the localDNSProfile value.
+ */
+ public LocalDNSProfile localDNSProfile() {
+ return this.localDNSProfile;
+ }
+
+ /**
+ * Set the localDNSProfile property: Configures the per-node local DNS, with VnetDNS and KubeDNS overrides. LocalDNS
+ * helps improve performance and reliability of DNS resolution in an AKS cluster. For more details see
+ * aka.ms/aks/localdns.
+ *
+ * @param localDNSProfile the localDNSProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withLocalDNSProfile(LocalDNSProfile localDNSProfile) {
+ this.localDNSProfile = localDNSProfile;
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeNumberField("count", this.count);
+ jsonWriter.writeStringField("vmSize", this.vmSize);
+ jsonWriter.writeNumberField("osDiskSizeGB", this.osDiskSizeGB);
+ jsonWriter.writeStringField("osDiskType", this.osDiskType == null ? null : this.osDiskType.toString());
+ jsonWriter.writeStringField("kubeletDiskType",
+ this.kubeletDiskType == null ? null : this.kubeletDiskType.toString());
+ jsonWriter.writeStringField("workloadRuntime",
+ this.workloadRuntime == null ? null : this.workloadRuntime.toString());
+ jsonWriter.writeStringField("messageOfTheDay", this.messageOfTheDay);
+ jsonWriter.writeStringField("vnetSubnetID", this.vnetSubnetID);
+ jsonWriter.writeStringField("podSubnetID", this.podSubnetID);
+ jsonWriter.writeStringField("podIPAllocationMode",
+ this.podIPAllocationMode == null ? null : this.podIPAllocationMode.toString());
+ jsonWriter.writeNumberField("maxPods", this.maxPods);
+ jsonWriter.writeStringField("osType", this.osType == null ? null : this.osType.toString());
+ jsonWriter.writeStringField("osSKU", this.osSKU == null ? null : this.osSKU.toString());
+ jsonWriter.writeNumberField("maxCount", this.maxCount);
+ jsonWriter.writeNumberField("minCount", this.minCount);
+ jsonWriter.writeBooleanField("enableAutoScaling", this.enableAutoScaling);
+ jsonWriter.writeStringField("scaleDownMode", this.scaleDownMode == null ? null : this.scaleDownMode.toString());
+ jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString());
+ jsonWriter.writeStringField("mode", this.mode == null ? null : this.mode.toString());
+ jsonWriter.writeStringField("orchestratorVersion", this.orchestratorVersion);
+ jsonWriter.writeJsonField("upgradeSettings", this.upgradeSettings);
+ jsonWriter.writeJsonField("powerState", this.powerState);
+ jsonWriter.writeArrayField("availabilityZones", this.availabilityZones,
+ (writer, element) -> writer.writeString(element));
+ jsonWriter.writeBooleanField("enableNodePublicIP", this.enableNodePublicIP);
+ jsonWriter.writeStringField("nodePublicIPPrefixID", this.nodePublicIPPrefixID);
+ jsonWriter.writeStringField("scaleSetPriority",
+ this.scaleSetPriority == null ? null : this.scaleSetPriority.toString());
+ jsonWriter.writeStringField("scaleSetEvictionPolicy",
+ this.scaleSetEvictionPolicy == null ? null : this.scaleSetEvictionPolicy.toString());
+ jsonWriter.writeNumberField("spotMaxPrice", this.spotMaxPrice);
+ jsonWriter.writeMapField("tags", this.tags, (writer, element) -> writer.writeString(element));
+ jsonWriter.writeMapField("nodeLabels", this.nodeLabels, (writer, element) -> writer.writeString(element));
+ jsonWriter.writeArrayField("nodeTaints", this.nodeTaints, (writer, element) -> writer.writeString(element));
+ jsonWriter.writeStringField("proximityPlacementGroupID", this.proximityPlacementGroupID);
+ jsonWriter.writeJsonField("kubeletConfig", this.kubeletConfig);
+ jsonWriter.writeJsonField("linuxOSConfig", this.linuxOSConfig);
+ jsonWriter.writeBooleanField("enableEncryptionAtHost", this.enableEncryptionAtHost);
+ jsonWriter.writeBooleanField("enableUltraSSD", this.enableUltraSSD);
+ jsonWriter.writeBooleanField("enableFIPS", this.enableFIPS);
+ jsonWriter.writeStringField("gpuInstanceProfile",
+ this.gpuInstanceProfile == null ? null : this.gpuInstanceProfile.toString());
+ jsonWriter.writeJsonField("creationData", this.creationData);
+ jsonWriter.writeStringField("capacityReservationGroupID", this.capacityReservationGroupID);
+ jsonWriter.writeStringField("hostGroupID", this.hostGroupID);
+ jsonWriter.writeJsonField("networkProfile", this.networkProfile);
+ jsonWriter.writeJsonField("windowsProfile", this.windowsProfile);
+ jsonWriter.writeJsonField("securityProfile", this.securityProfile);
+ jsonWriter.writeJsonField("gpuProfile", this.gpuProfile);
+ jsonWriter.writeJsonField("gatewayProfile", this.gatewayProfile);
+ jsonWriter.writeJsonField("virtualMachinesProfile", this.virtualMachinesProfile);
+ jsonWriter.writeArrayField("virtualMachineNodesStatus", this.virtualMachineNodesStatus,
+ (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeJsonField("status", this.status);
+ jsonWriter.writeJsonField("localDNSProfile", this.localDNSProfile);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of ManagedClusterAgentPoolProfileProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of ManagedClusterAgentPoolProfileProperties if the JsonReader was pointing to an instance of
+ * it, or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the ManagedClusterAgentPoolProfileProperties.
+ */
+ public static ManagedClusterAgentPoolProfileProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ ManagedClusterAgentPoolProfileProperties deserializedManagedClusterAgentPoolProfileProperties
+ = new ManagedClusterAgentPoolProfileProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("eTag".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.eTag = reader.getString();
+ } else if ("count".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.count = reader.getNullable(JsonReader::getInt);
+ } else if ("vmSize".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.vmSize = reader.getString();
+ } else if ("osDiskSizeGB".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.osDiskSizeGB
+ = reader.getNullable(JsonReader::getInt);
+ } else if ("osDiskType".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.osDiskType
+ = OSDiskType.fromString(reader.getString());
+ } else if ("kubeletDiskType".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.kubeletDiskType
+ = KubeletDiskType.fromString(reader.getString());
+ } else if ("workloadRuntime".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.workloadRuntime
+ = WorkloadRuntime.fromString(reader.getString());
+ } else if ("messageOfTheDay".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.messageOfTheDay = reader.getString();
+ } else if ("vnetSubnetID".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.vnetSubnetID = reader.getString();
+ } else if ("podSubnetID".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.podSubnetID = reader.getString();
+ } else if ("podIPAllocationMode".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.podIPAllocationMode
+ = PodIPAllocationMode.fromString(reader.getString());
+ } else if ("maxPods".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.maxPods
+ = reader.getNullable(JsonReader::getInt);
+ } else if ("osType".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.osType = OSType.fromString(reader.getString());
+ } else if ("osSKU".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.osSKU = OSSKU.fromString(reader.getString());
+ } else if ("maxCount".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.maxCount
+ = reader.getNullable(JsonReader::getInt);
+ } else if ("minCount".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.minCount
+ = reader.getNullable(JsonReader::getInt);
+ } else if ("enableAutoScaling".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.enableAutoScaling
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("scaleDownMode".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.scaleDownMode
+ = ScaleDownMode.fromString(reader.getString());
+ } else if ("type".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.type
+ = AgentPoolType.fromString(reader.getString());
+ } else if ("mode".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.mode
+ = AgentPoolMode.fromString(reader.getString());
+ } else if ("orchestratorVersion".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.orchestratorVersion = reader.getString();
+ } else if ("currentOrchestratorVersion".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.currentOrchestratorVersion
+ = reader.getString();
+ } else if ("nodeImageVersion".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.nodeImageVersion = reader.getString();
+ } else if ("upgradeSettings".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.upgradeSettings
+ = AgentPoolUpgradeSettings.fromJson(reader);
+ } else if ("provisioningState".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.provisioningState = reader.getString();
+ } else if ("powerState".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.powerState = PowerState.fromJson(reader);
+ } else if ("availabilityZones".equals(fieldName)) {
+ List availabilityZones = reader.readArray(reader1 -> reader1.getString());
+ deserializedManagedClusterAgentPoolProfileProperties.availabilityZones = availabilityZones;
+ } else if ("enableNodePublicIP".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.enableNodePublicIP
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("nodePublicIPPrefixID".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.nodePublicIPPrefixID = reader.getString();
+ } else if ("scaleSetPriority".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.scaleSetPriority
+ = ScaleSetPriority.fromString(reader.getString());
+ } else if ("scaleSetEvictionPolicy".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.scaleSetEvictionPolicy
+ = ScaleSetEvictionPolicy.fromString(reader.getString());
+ } else if ("spotMaxPrice".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.spotMaxPrice
+ = reader.getNullable(JsonReader::getDouble);
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedManagedClusterAgentPoolProfileProperties.tags = tags;
+ } else if ("nodeLabels".equals(fieldName)) {
+ Map nodeLabels = reader.readMap(reader1 -> reader1.getString());
+ deserializedManagedClusterAgentPoolProfileProperties.nodeLabels = nodeLabels;
+ } else if ("nodeTaints".equals(fieldName)) {
+ List nodeTaints = reader.readArray(reader1 -> reader1.getString());
+ deserializedManagedClusterAgentPoolProfileProperties.nodeTaints = nodeTaints;
+ } else if ("proximityPlacementGroupID".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.proximityPlacementGroupID = reader.getString();
+ } else if ("kubeletConfig".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.kubeletConfig = KubeletConfig.fromJson(reader);
+ } else if ("linuxOSConfig".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.linuxOSConfig = LinuxOSConfig.fromJson(reader);
+ } else if ("enableEncryptionAtHost".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.enableEncryptionAtHost
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("enableUltraSSD".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.enableUltraSSD
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("enableFIPS".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.enableFIPS
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("gpuInstanceProfile".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.gpuInstanceProfile
+ = GPUInstanceProfile.fromString(reader.getString());
+ } else if ("creationData".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.creationData = CreationData.fromJson(reader);
+ } else if ("capacityReservationGroupID".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.capacityReservationGroupID
+ = reader.getString();
+ } else if ("hostGroupID".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.hostGroupID = reader.getString();
+ } else if ("networkProfile".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.networkProfile
+ = AgentPoolNetworkProfile.fromJson(reader);
+ } else if ("windowsProfile".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.windowsProfile
+ = AgentPoolWindowsProfile.fromJson(reader);
+ } else if ("securityProfile".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.securityProfile
+ = AgentPoolSecurityProfile.fromJson(reader);
+ } else if ("gpuProfile".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.gpuProfile = GPUProfile.fromJson(reader);
+ } else if ("gatewayProfile".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.gatewayProfile
+ = AgentPoolGatewayProfile.fromJson(reader);
+ } else if ("virtualMachinesProfile".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.virtualMachinesProfile
+ = VirtualMachinesProfile.fromJson(reader);
+ } else if ("virtualMachineNodesStatus".equals(fieldName)) {
+ List virtualMachineNodesStatus
+ = reader.readArray(reader1 -> VirtualMachineNodes.fromJson(reader1));
+ deserializedManagedClusterAgentPoolProfileProperties.virtualMachineNodesStatus
+ = virtualMachineNodesStatus;
+ } else if ("status".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.status = AgentPoolStatus.fromJson(reader);
+ } else if ("localDNSProfile".equals(fieldName)) {
+ deserializedManagedClusterAgentPoolProfileProperties.localDNSProfile
+ = LocalDNSProfile.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedManagedClusterAgentPoolProfileProperties;
+ });
+ }
+}
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 000000000000..cca0842671d3
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterInner.java
@@ -0,0 +1,1318 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec 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.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.ClusterUpgradeSettings;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ExtendedLocation;
+import com.azure.resourcemanager.containerservice.generated.models.KubernetesSupportPlan;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAADProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAIToolchainOperatorProfile;
+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.ManagedClusterAzureMonitorProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterBootstrapProfile;
+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.ManagedClusterMetricsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterNodeProvisioningProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterNodeResourceGroupProfile;
+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.ManagedClusterSKU;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterSecurityProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterServicePrincipalProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterStatus;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterStorageProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterWindowsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterWorkloadAutoScalerProfile;
+import com.azure.resourcemanager.containerservice.generated.models.PowerState;
+import com.azure.resourcemanager.containerservice.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.containerservice.generated.models.ServiceMeshProfile;
+import com.azure.resourcemanager.containerservice.generated.models.UserAssignedIdentity;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Managed cluster.
+ */
+@Fluent
+public final class ManagedClusterInner extends Resource {
+ /*
+ * Properties of a managed cluster.
+ */
+ private ManagedClusterProperties innerProperties;
+
+ /*
+ * If eTag is provided in the response body, it may also be provided as a header per the normal etag convention.
+ * Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity
+ * tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section
+ * 14.27) header fields.
+ */
+ private String eTag;
+
+ /*
+ * The managed cluster SKU.
+ */
+ private ManagedClusterSKU sku;
+
+ /*
+ * The extended location of the Virtual Machine.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The identity of the managed cluster, if configured.
+ */
+ private ManagedClusterIdentity identity;
+
+ /*
+ * This is primarily used to expose different UI experiences in the portal for different kinds
+ */
+ private String kind;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of ManagedClusterInner class.
+ */
+ public ManagedClusterInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a managed cluster.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the eTag property: If eTag is provided in the response body, it may also be provided as a header per the
+ * normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource.
+ * HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26),
+ * and If-Range (section 14.27) header fields.
+ *
+ * @return the eTag value.
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * 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 kind property: This is primarily used to expose different UI experiences in the portal for different
+ * kinds.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: This is primarily used to expose different UI experiences in the portal for different
+ * kinds.
+ *
+ * @param kind the kind value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ManagedClusterInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ManagedClusterInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The current provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the powerState property: The Power State of the cluster.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.innerProperties() == null ? null : this.innerProperties().powerState();
+ }
+
+ /**
+ * Get the maxAgentPools property: The max number of agent pools for the managed cluster.
+ *
+ * @return the maxAgentPools value.
+ */
+ public Integer maxAgentPools() {
+ return this.innerProperties() == null ? null : this.innerProperties().maxAgentPools();
+ }
+
+ /**
+ * Get the kubernetesVersion property: The version of Kubernetes specified by the user. Both patch version
+ * <major.minor.patch> (e.g. 1.20.13) and <major.minor> (e.g. 1.20) are supported. When
+ * <major.minor> is specified, the latest supported GA patch version is chosen automatically. Updating the
+ * cluster with the same <major.minor> once it has been created (e.g. 1.14.x -> 1.14) will not trigger an
+ * upgrade, even if a newer patch version is available. 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 specified by the user. Both patch version
+ * <major.minor.patch> (e.g. 1.20.13) and <major.minor> (e.g. 1.20) are supported. When
+ * <major.minor> is specified, the latest supported GA patch version is chosen automatically. Updating the
+ * cluster with the same <major.minor> once it has been created (e.g. 1.14.x -> 1.14) will not trigger an
+ * upgrade, even if a newer patch version is available. 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. If
+ * kubernetesVersion was a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If kubernetesVersion was <major.minor>, this field will contain the full <major.minor.patch>
+ * version being used.
+ *
+ * @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 nodeResourceGroupProfile property: Profile of the node resource group configuration.
+ *
+ * @return the nodeResourceGroupProfile value.
+ */
+ public ManagedClusterNodeResourceGroupProfile nodeResourceGroupProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeResourceGroupProfile();
+ }
+
+ /**
+ * Set the nodeResourceGroupProfile property: Profile of the node resource group configuration.
+ *
+ * @param nodeResourceGroupProfile the nodeResourceGroupProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner
+ withNodeResourceGroupProfile(ManagedClusterNodeResourceGroupProfile nodeResourceGroupProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withNodeResourceGroupProfile(nodeResourceGroupProfile);
+ 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 supportPlan property: The support plan for the Managed Cluster. If unspecified, the default is
+ * 'KubernetesOfficial'.
+ *
+ * @return the supportPlan value.
+ */
+ public KubernetesSupportPlan supportPlan() {
+ return this.innerProperties() == null ? null : this.innerProperties().supportPlan();
+ }
+
+ /**
+ * Set the supportPlan property: The support plan for the Managed Cluster. If unspecified, the default is
+ * 'KubernetesOfficial'.
+ *
+ * @param supportPlan the supportPlan value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withSupportPlan(KubernetesSupportPlan supportPlan) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withSupportPlan(supportPlan);
+ 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: The Azure Active Directory configuration.
+ *
+ * @return the aadProfile value.
+ */
+ public ManagedClusterAADProfile aadProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().aadProfile();
+ }
+
+ /**
+ * Set the aadProfile property: 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 upgradeSettings property: Settings for upgrading a cluster.
+ *
+ * @return the upgradeSettings value.
+ */
+ public ClusterUpgradeSettings upgradeSettings() {
+ return this.innerProperties() == null ? null : this.innerProperties().upgradeSettings();
+ }
+
+ /**
+ * Set the upgradeSettings property: Settings for upgrading a cluster.
+ *
+ * @param upgradeSettings the upgradeSettings value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withUpgradeSettings(ClusterUpgradeSettings upgradeSettings) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withUpgradeSettings(upgradeSettings);
+ 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: The user identity associated with the managed cluster. This identity will be
+ * used by the kubelet. Only one user assigned identity is allowed. The only accepted key is "kubeletidentity", with
+ * value of "resourceId":
+ * "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".
+ *
+ * @return the identityProfile value.
+ */
+ public Map identityProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().identityProfile();
+ }
+
+ /**
+ * Set the identityProfile property: The user identity associated with the managed cluster. This identity will be
+ * used by the kubelet. Only one user assigned identity is allowed. The only accepted key is "kubeletidentity", with
+ * value of "resourceId":
+ * "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".
+ *
+ * @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 storageProfile property: Storage profile for the managed cluster.
+ *
+ * @return the storageProfile value.
+ */
+ public ManagedClusterStorageProfile storageProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().storageProfile();
+ }
+
+ /**
+ * Set the storageProfile property: Storage profile for the managed cluster.
+ *
+ * @param storageProfile the storageProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withStorageProfile(ManagedClusterStorageProfile storageProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withStorageProfile(storageProfile);
+ 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;
+ }
+
+ /**
+ * Get the workloadAutoScalerProfile property: Workload Auto-scaler profile for the managed cluster.
+ *
+ * @return the workloadAutoScalerProfile value.
+ */
+ public ManagedClusterWorkloadAutoScalerProfile workloadAutoScalerProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().workloadAutoScalerProfile();
+ }
+
+ /**
+ * Set the workloadAutoScalerProfile property: Workload Auto-scaler profile for the managed cluster.
+ *
+ * @param workloadAutoScalerProfile the workloadAutoScalerProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner
+ withWorkloadAutoScalerProfile(ManagedClusterWorkloadAutoScalerProfile workloadAutoScalerProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withWorkloadAutoScalerProfile(workloadAutoScalerProfile);
+ return this;
+ }
+
+ /**
+ * Get the azureMonitorProfile property: Azure Monitor addon profiles for monitoring the managed cluster.
+ *
+ * @return the azureMonitorProfile value.
+ */
+ public ManagedClusterAzureMonitorProfile azureMonitorProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().azureMonitorProfile();
+ }
+
+ /**
+ * Set the azureMonitorProfile property: Azure Monitor addon profiles for monitoring the managed cluster.
+ *
+ * @param azureMonitorProfile the azureMonitorProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAzureMonitorProfile(ManagedClusterAzureMonitorProfile azureMonitorProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAzureMonitorProfile(azureMonitorProfile);
+ return this;
+ }
+
+ /**
+ * Get the serviceMeshProfile property: Service mesh profile for a managed cluster.
+ *
+ * @return the serviceMeshProfile value.
+ */
+ public ServiceMeshProfile serviceMeshProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().serviceMeshProfile();
+ }
+
+ /**
+ * Set the serviceMeshProfile property: Service mesh profile for a managed cluster.
+ *
+ * @param serviceMeshProfile the serviceMeshProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withServiceMeshProfile(ServiceMeshProfile serviceMeshProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withServiceMeshProfile(serviceMeshProfile);
+ return this;
+ }
+
+ /**
+ * Get the resourceUID property: The resourceUID uniquely identifies ManagedClusters that reuse ARM ResourceIds
+ * (i.e: create, delete, create sequence).
+ *
+ * @return the resourceUID value.
+ */
+ public String resourceUID() {
+ return this.innerProperties() == null ? null : this.innerProperties().resourceUID();
+ }
+
+ /**
+ * Get the metricsProfile property: Optional cluster metrics configuration.
+ *
+ * @return the metricsProfile value.
+ */
+ public ManagedClusterMetricsProfile metricsProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().metricsProfile();
+ }
+
+ /**
+ * Set the metricsProfile property: Optional cluster metrics configuration.
+ *
+ * @param metricsProfile the metricsProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withMetricsProfile(ManagedClusterMetricsProfile metricsProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withMetricsProfile(metricsProfile);
+ return this;
+ }
+
+ /**
+ * Get the nodeProvisioningProfile property: Node provisioning settings that apply to the whole cluster.
+ *
+ * @return the nodeProvisioningProfile value.
+ */
+ public ManagedClusterNodeProvisioningProfile nodeProvisioningProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeProvisioningProfile();
+ }
+
+ /**
+ * Set the nodeProvisioningProfile property: Node provisioning settings that apply to the whole cluster.
+ *
+ * @param nodeProvisioningProfile the nodeProvisioningProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner
+ withNodeProvisioningProfile(ManagedClusterNodeProvisioningProfile nodeProvisioningProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withNodeProvisioningProfile(nodeProvisioningProfile);
+ return this;
+ }
+
+ /**
+ * Get the bootstrapProfile property: Profile of the cluster bootstrap configuration.
+ *
+ * @return the bootstrapProfile value.
+ */
+ public ManagedClusterBootstrapProfile bootstrapProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().bootstrapProfile();
+ }
+
+ /**
+ * Set the bootstrapProfile property: Profile of the cluster bootstrap configuration.
+ *
+ * @param bootstrapProfile the bootstrapProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withBootstrapProfile(ManagedClusterBootstrapProfile bootstrapProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withBootstrapProfile(bootstrapProfile);
+ return this;
+ }
+
+ /**
+ * Get the aiToolchainOperatorProfile property: AI toolchain operator settings that apply to the whole cluster.
+ *
+ * @return the aiToolchainOperatorProfile value.
+ */
+ public ManagedClusterAIToolchainOperatorProfile aiToolchainOperatorProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().aiToolchainOperatorProfile();
+ }
+
+ /**
+ * Set the aiToolchainOperatorProfile property: AI toolchain operator settings that apply to the whole cluster.
+ *
+ * @param aiToolchainOperatorProfile the aiToolchainOperatorProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner
+ withAiToolchainOperatorProfile(ManagedClusterAIToolchainOperatorProfile aiToolchainOperatorProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAiToolchainOperatorProfile(aiToolchainOperatorProfile);
+ return this;
+ }
+
+ /**
+ * Get the status property: Contains read-only information about the Managed Cluster.
+ *
+ * @return the status value.
+ */
+ public ManagedClusterStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Set the status property: Contains read-only information about the Managed Cluster.
+ *
+ * @param status the status value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withStatus(ManagedClusterStatus status) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withStatus(status);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ jsonWriter.writeJsonField("sku", this.sku);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ jsonWriter.writeJsonField("identity", this.identity);
+ jsonWriter.writeStringField("kind", this.kind);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of ManagedClusterInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of ManagedClusterInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the ManagedClusterInner.
+ */
+ public static ManagedClusterInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ ManagedClusterInner deserializedManagedClusterInner = new ManagedClusterInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedManagedClusterInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedManagedClusterInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedManagedClusterInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedManagedClusterInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedManagedClusterInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedManagedClusterInner.innerProperties = ManagedClusterProperties.fromJson(reader);
+ } else if ("eTag".equals(fieldName)) {
+ deserializedManagedClusterInner.eTag = reader.getString();
+ } else if ("sku".equals(fieldName)) {
+ deserializedManagedClusterInner.sku = ManagedClusterSKU.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedManagedClusterInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("identity".equals(fieldName)) {
+ deserializedManagedClusterInner.identity = ManagedClusterIdentity.fromJson(reader);
+ } else if ("kind".equals(fieldName)) {
+ deserializedManagedClusterInner.kind = reader.getString();
+ } else if ("systemData".equals(fieldName)) {
+ deserializedManagedClusterInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedManagedClusterInner;
+ });
+ }
+}
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 000000000000..aa5ee6b87bd3
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterProperties.java
@@ -0,0 +1,1362 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.ClusterUpgradeSettings;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservice.generated.models.KubernetesSupportPlan;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAADProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterAIToolchainOperatorProfile;
+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.ManagedClusterAzureMonitorProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterBootstrapProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterHttpProxyConfig;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterIngressProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterMetricsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterNodeProvisioningProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterNodeResourceGroupProfile;
+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.ManagedClusterStatus;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterStorageProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterWindowsProfile;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterWorkloadAutoScalerProfile;
+import com.azure.resourcemanager.containerservice.generated.models.PowerState;
+import com.azure.resourcemanager.containerservice.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.containerservice.generated.models.ServiceMeshProfile;
+import com.azure.resourcemanager.containerservice.generated.models.UserAssignedIdentity;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Properties of the managed cluster.
+ */
+@Fluent
+public final class ManagedClusterProperties implements JsonSerializable {
+ /*
+ * The current provisioning state.
+ */
+ private String provisioningState;
+
+ /*
+ * The Power State of the cluster.
+ */
+ private PowerState powerState;
+
+ /*
+ * The max number of agent pools for the managed cluster.
+ */
+ private Integer maxAgentPools;
+
+ /*
+ * The version of Kubernetes specified by the user. Both patch version (e.g. 1.20.13) and
+ * (e.g. 1.20) are supported. When is specified, the latest supported GA patch version
+ * is chosen automatically. Updating the cluster with the same once it has been created (e.g. 1.14.x
+ * -> 1.14) will not trigger an upgrade, even if a newer patch version is available. 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.
+ */
+ private String kubernetesVersion;
+
+ /*
+ * The version of Kubernetes the Managed Cluster is running. If kubernetesVersion was a fully specified version
+ * , this field will be exactly equal to it. If kubernetesVersion was , this field
+ * will contain the full version being used.
+ */
+ private String currentKubernetesVersion;
+
+ /*
+ * The DNS prefix of the Managed Cluster. This cannot be updated once the Managed Cluster has been created.
+ */
+ 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.
+ */
+ private String fqdnSubdomain;
+
+ /*
+ * The FQDN of the master pool.
+ */
+ private String fqdn;
+
+ /*
+ * The FQDN of private cluster.
+ */
+ 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.
+ */
+ private String azurePortalFQDN;
+
+ /*
+ * The agent pool properties.
+ */
+ private List agentPoolProfiles;
+
+ /*
+ * The profile for Linux VMs in the Managed Cluster.
+ */
+ private ContainerServiceLinuxProfile linuxProfile;
+
+ /*
+ * The profile for Windows VMs in the Managed Cluster.
+ */
+ private ManagedClusterWindowsProfile windowsProfile;
+
+ /*
+ * Information about a service principal identity for the cluster to use for manipulating Azure APIs.
+ */
+ private ManagedClusterServicePrincipalProfile servicePrincipalProfile;
+
+ /*
+ * The profile of managed cluster add-on.
+ */
+ 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.
+ */
+ private ManagedClusterPodIdentityProfile podIdentityProfile;
+
+ /*
+ * The OIDC issuer profile of the Managed Cluster.
+ */
+ private ManagedClusterOIDCIssuerProfile oidcIssuerProfile;
+
+ /*
+ * The name of the resource group containing agent pool nodes.
+ */
+ private String nodeResourceGroup;
+
+ /*
+ * Profile of the node resource group configuration.
+ */
+ private ManagedClusterNodeResourceGroupProfile nodeResourceGroupProfile;
+
+ /*
+ * Whether to enable Kubernetes Role-Based Access Control.
+ */
+ private Boolean enableRBAC;
+
+ /*
+ * The support plan for the Managed Cluster. If unspecified, the default is 'KubernetesOfficial'.
+ */
+ private KubernetesSupportPlan supportPlan;
+
+ /*
+ * The network configuration profile.
+ */
+ private ContainerServiceNetworkProfile networkProfile;
+
+ /*
+ * The Azure Active Directory configuration.
+ */
+ private ManagedClusterAADProfile aadProfile;
+
+ /*
+ * The auto upgrade configuration.
+ */
+ private ManagedClusterAutoUpgradeProfile autoUpgradeProfile;
+
+ /*
+ * Settings for upgrading a cluster.
+ */
+ private ClusterUpgradeSettings upgradeSettings;
+
+ /*
+ * Parameters to be applied to the cluster-autoscaler when enabled
+ */
+ private ManagedClusterPropertiesAutoScalerProfile autoScalerProfile;
+
+ /*
+ * The access profile for managed cluster API server.
+ */
+ 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}'
+ */
+ private String diskEncryptionSetID;
+
+ /*
+ * The user identity associated with the managed cluster. This identity will be used by the kubelet. Only one user
+ * assigned identity is allowed. The only accepted key is "kubeletidentity", with value of "resourceId":
+ * "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".
+ */
+ private Map identityProfile;
+
+ /*
+ * Private link resources associated with the cluster.
+ */
+ 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).
+ */
+ private Boolean disableLocalAccounts;
+
+ /*
+ * Configurations for provisioning the cluster with HTTP proxy servers.
+ */
+ private ManagedClusterHttpProxyConfig httpProxyConfig;
+
+ /*
+ * Security profile for the managed cluster.
+ */
+ private ManagedClusterSecurityProfile securityProfile;
+
+ /*
+ * Storage profile for the managed cluster.
+ */
+ private ManagedClusterStorageProfile storageProfile;
+
+ /*
+ * Ingress profile for the managed cluster.
+ */
+ private ManagedClusterIngressProfile ingressProfile;
+
+ /*
+ * PublicNetworkAccess of the managedCluster. Allow or deny public network access for AKS
+ */
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /*
+ * Workload Auto-scaler profile for the managed cluster.
+ */
+ private ManagedClusterWorkloadAutoScalerProfile workloadAutoScalerProfile;
+
+ /*
+ * Azure Monitor addon profiles for monitoring the managed cluster.
+ */
+ private ManagedClusterAzureMonitorProfile azureMonitorProfile;
+
+ /*
+ * Service mesh profile for a managed cluster.
+ */
+ private ServiceMeshProfile serviceMeshProfile;
+
+ /*
+ * The resourceUID uniquely identifies ManagedClusters that reuse ARM ResourceIds (i.e: create, delete, create
+ * sequence)
+ */
+ private String resourceUID;
+
+ /*
+ * Optional cluster metrics configuration.
+ */
+ private ManagedClusterMetricsProfile metricsProfile;
+
+ /*
+ * Node provisioning settings that apply to the whole cluster.
+ */
+ private ManagedClusterNodeProvisioningProfile nodeProvisioningProfile;
+
+ /*
+ * Profile of the cluster bootstrap configuration.
+ */
+ private ManagedClusterBootstrapProfile bootstrapProfile;
+
+ /*
+ * AI toolchain operator settings that apply to the whole cluster.
+ */
+ private ManagedClusterAIToolchainOperatorProfile aiToolchainOperatorProfile;
+
+ /*
+ * Contains read-only information about the Managed Cluster.
+ */
+ private ManagedClusterStatus status;
+
+ /**
+ * Creates an instance of ManagedClusterProperties class.
+ */
+ public ManagedClusterProperties() {
+ }
+
+ /**
+ * Get the provisioningState property: The current provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the powerState property: The Power State of the cluster.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.powerState;
+ }
+
+ /**
+ * Get the maxAgentPools property: The max number of agent pools for the managed cluster.
+ *
+ * @return the maxAgentPools value.
+ */
+ public Integer maxAgentPools() {
+ return this.maxAgentPools;
+ }
+
+ /**
+ * Get the kubernetesVersion property: The version of Kubernetes specified by the user. Both patch version
+ * <major.minor.patch> (e.g. 1.20.13) and <major.minor> (e.g. 1.20) are supported. When
+ * <major.minor> is specified, the latest supported GA patch version is chosen automatically. Updating the
+ * cluster with the same <major.minor> once it has been created (e.g. 1.14.x -> 1.14) will not trigger an
+ * upgrade, even if a newer patch version is available. 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 specified by the user. Both patch version
+ * <major.minor.patch> (e.g. 1.20.13) and <major.minor> (e.g. 1.20) are supported. When
+ * <major.minor> is specified, the latest supported GA patch version is chosen automatically. Updating the
+ * cluster with the same <major.minor> once it has been created (e.g. 1.14.x -> 1.14) will not trigger an
+ * upgrade, even if a newer patch version is available. 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. If
+ * kubernetesVersion was a fully specified version <major.minor.patch>, this field will be exactly equal to
+ * it. If kubernetesVersion was <major.minor>, this field will contain the full <major.minor.patch>
+ * version being used.
+ *
+ * @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 nodeResourceGroupProfile property: Profile of the node resource group configuration.
+ *
+ * @return the nodeResourceGroupProfile value.
+ */
+ public ManagedClusterNodeResourceGroupProfile nodeResourceGroupProfile() {
+ return this.nodeResourceGroupProfile;
+ }
+
+ /**
+ * Set the nodeResourceGroupProfile property: Profile of the node resource group configuration.
+ *
+ * @param nodeResourceGroupProfile the nodeResourceGroupProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties
+ withNodeResourceGroupProfile(ManagedClusterNodeResourceGroupProfile nodeResourceGroupProfile) {
+ this.nodeResourceGroupProfile = nodeResourceGroupProfile;
+ 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 supportPlan property: The support plan for the Managed Cluster. If unspecified, the default is
+ * 'KubernetesOfficial'.
+ *
+ * @return the supportPlan value.
+ */
+ public KubernetesSupportPlan supportPlan() {
+ return this.supportPlan;
+ }
+
+ /**
+ * Set the supportPlan property: The support plan for the Managed Cluster. If unspecified, the default is
+ * 'KubernetesOfficial'.
+ *
+ * @param supportPlan the supportPlan value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withSupportPlan(KubernetesSupportPlan supportPlan) {
+ this.supportPlan = supportPlan;
+ 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: The Azure Active Directory configuration.
+ *
+ * @return the aadProfile value.
+ */
+ public ManagedClusterAADProfile aadProfile() {
+ return this.aadProfile;
+ }
+
+ /**
+ * Set the aadProfile property: 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 upgradeSettings property: Settings for upgrading a cluster.
+ *
+ * @return the upgradeSettings value.
+ */
+ public ClusterUpgradeSettings upgradeSettings() {
+ return this.upgradeSettings;
+ }
+
+ /**
+ * Set the upgradeSettings property: Settings for upgrading a cluster.
+ *
+ * @param upgradeSettings the upgradeSettings value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withUpgradeSettings(ClusterUpgradeSettings upgradeSettings) {
+ this.upgradeSettings = upgradeSettings;
+ 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: The user identity associated with the managed cluster. This identity will be
+ * used by the kubelet. Only one user assigned identity is allowed. The only accepted key is "kubeletidentity", with
+ * value of "resourceId":
+ * "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".
+ *
+ * @return the identityProfile value.
+ */
+ public Map identityProfile() {
+ return this.identityProfile;
+ }
+
+ /**
+ * Set the identityProfile property: The user identity associated with the managed cluster. This identity will be
+ * used by the kubelet. Only one user assigned identity is allowed. The only accepted key is "kubeletidentity", with
+ * value of "resourceId":
+ * "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".
+ *
+ * @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 storageProfile property: Storage profile for the managed cluster.
+ *
+ * @return the storageProfile value.
+ */
+ public ManagedClusterStorageProfile storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set the storageProfile property: Storage profile for the managed cluster.
+ *
+ * @param storageProfile the storageProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withStorageProfile(ManagedClusterStorageProfile storageProfile) {
+ this.storageProfile = storageProfile;
+ 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;
+ }
+
+ /**
+ * Get the workloadAutoScalerProfile property: Workload Auto-scaler profile for the managed cluster.
+ *
+ * @return the workloadAutoScalerProfile value.
+ */
+ public ManagedClusterWorkloadAutoScalerProfile workloadAutoScalerProfile() {
+ return this.workloadAutoScalerProfile;
+ }
+
+ /**
+ * Set the workloadAutoScalerProfile property: Workload Auto-scaler profile for the managed cluster.
+ *
+ * @param workloadAutoScalerProfile the workloadAutoScalerProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties
+ withWorkloadAutoScalerProfile(ManagedClusterWorkloadAutoScalerProfile workloadAutoScalerProfile) {
+ this.workloadAutoScalerProfile = workloadAutoScalerProfile;
+ return this;
+ }
+
+ /**
+ * Get the azureMonitorProfile property: Azure Monitor addon profiles for monitoring the managed cluster.
+ *
+ * @return the azureMonitorProfile value.
+ */
+ public ManagedClusterAzureMonitorProfile azureMonitorProfile() {
+ return this.azureMonitorProfile;
+ }
+
+ /**
+ * Set the azureMonitorProfile property: Azure Monitor addon profiles for monitoring the managed cluster.
+ *
+ * @param azureMonitorProfile the azureMonitorProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAzureMonitorProfile(ManagedClusterAzureMonitorProfile azureMonitorProfile) {
+ this.azureMonitorProfile = azureMonitorProfile;
+ return this;
+ }
+
+ /**
+ * Get the serviceMeshProfile property: Service mesh profile for a managed cluster.
+ *
+ * @return the serviceMeshProfile value.
+ */
+ public ServiceMeshProfile serviceMeshProfile() {
+ return this.serviceMeshProfile;
+ }
+
+ /**
+ * Set the serviceMeshProfile property: Service mesh profile for a managed cluster.
+ *
+ * @param serviceMeshProfile the serviceMeshProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withServiceMeshProfile(ServiceMeshProfile serviceMeshProfile) {
+ this.serviceMeshProfile = serviceMeshProfile;
+ return this;
+ }
+
+ /**
+ * Get the resourceUID property: The resourceUID uniquely identifies ManagedClusters that reuse ARM ResourceIds
+ * (i.e: create, delete, create sequence).
+ *
+ * @return the resourceUID value.
+ */
+ public String resourceUID() {
+ return this.resourceUID;
+ }
+
+ /**
+ * Get the metricsProfile property: Optional cluster metrics configuration.
+ *
+ * @return the metricsProfile value.
+ */
+ public ManagedClusterMetricsProfile metricsProfile() {
+ return this.metricsProfile;
+ }
+
+ /**
+ * Set the metricsProfile property: Optional cluster metrics configuration.
+ *
+ * @param metricsProfile the metricsProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withMetricsProfile(ManagedClusterMetricsProfile metricsProfile) {
+ this.metricsProfile = metricsProfile;
+ return this;
+ }
+
+ /**
+ * Get the nodeProvisioningProfile property: Node provisioning settings that apply to the whole cluster.
+ *
+ * @return the nodeProvisioningProfile value.
+ */
+ public ManagedClusterNodeProvisioningProfile nodeProvisioningProfile() {
+ return this.nodeProvisioningProfile;
+ }
+
+ /**
+ * Set the nodeProvisioningProfile property: Node provisioning settings that apply to the whole cluster.
+ *
+ * @param nodeProvisioningProfile the nodeProvisioningProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties
+ withNodeProvisioningProfile(ManagedClusterNodeProvisioningProfile nodeProvisioningProfile) {
+ this.nodeProvisioningProfile = nodeProvisioningProfile;
+ return this;
+ }
+
+ /**
+ * Get the bootstrapProfile property: Profile of the cluster bootstrap configuration.
+ *
+ * @return the bootstrapProfile value.
+ */
+ public ManagedClusterBootstrapProfile bootstrapProfile() {
+ return this.bootstrapProfile;
+ }
+
+ /**
+ * Set the bootstrapProfile property: Profile of the cluster bootstrap configuration.
+ *
+ * @param bootstrapProfile the bootstrapProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withBootstrapProfile(ManagedClusterBootstrapProfile bootstrapProfile) {
+ this.bootstrapProfile = bootstrapProfile;
+ return this;
+ }
+
+ /**
+ * Get the aiToolchainOperatorProfile property: AI toolchain operator settings that apply to the whole cluster.
+ *
+ * @return the aiToolchainOperatorProfile value.
+ */
+ public ManagedClusterAIToolchainOperatorProfile aiToolchainOperatorProfile() {
+ return this.aiToolchainOperatorProfile;
+ }
+
+ /**
+ * Set the aiToolchainOperatorProfile property: AI toolchain operator settings that apply to the whole cluster.
+ *
+ * @param aiToolchainOperatorProfile the aiToolchainOperatorProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties
+ withAiToolchainOperatorProfile(ManagedClusterAIToolchainOperatorProfile aiToolchainOperatorProfile) {
+ this.aiToolchainOperatorProfile = aiToolchainOperatorProfile;
+ return this;
+ }
+
+ /**
+ * Get the status property: Contains read-only information about the Managed Cluster.
+ *
+ * @return the status value.
+ */
+ public ManagedClusterStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: Contains read-only information about the Managed Cluster.
+ *
+ * @param status the status value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withStatus(ManagedClusterStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("kubernetesVersion", this.kubernetesVersion);
+ jsonWriter.writeStringField("dnsPrefix", this.dnsPrefix);
+ jsonWriter.writeStringField("fqdnSubdomain", this.fqdnSubdomain);
+ jsonWriter.writeArrayField("agentPoolProfiles", this.agentPoolProfiles,
+ (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeJsonField("linuxProfile", this.linuxProfile);
+ jsonWriter.writeJsonField("windowsProfile", this.windowsProfile);
+ jsonWriter.writeJsonField("servicePrincipalProfile", this.servicePrincipalProfile);
+ jsonWriter.writeMapField("addonProfiles", this.addonProfiles, (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeJsonField("podIdentityProfile", this.podIdentityProfile);
+ jsonWriter.writeJsonField("oidcIssuerProfile", this.oidcIssuerProfile);
+ jsonWriter.writeStringField("nodeResourceGroup", this.nodeResourceGroup);
+ jsonWriter.writeJsonField("nodeResourceGroupProfile", this.nodeResourceGroupProfile);
+ jsonWriter.writeBooleanField("enableRBAC", this.enableRBAC);
+ jsonWriter.writeStringField("supportPlan", this.supportPlan == null ? null : this.supportPlan.toString());
+ jsonWriter.writeJsonField("networkProfile", this.networkProfile);
+ jsonWriter.writeJsonField("aadProfile", this.aadProfile);
+ jsonWriter.writeJsonField("autoUpgradeProfile", this.autoUpgradeProfile);
+ jsonWriter.writeJsonField("upgradeSettings", this.upgradeSettings);
+ jsonWriter.writeJsonField("autoScalerProfile", this.autoScalerProfile);
+ jsonWriter.writeJsonField("apiServerAccessProfile", this.apiServerAccessProfile);
+ jsonWriter.writeStringField("diskEncryptionSetID", this.diskEncryptionSetID);
+ jsonWriter.writeMapField("identityProfile", this.identityProfile,
+ (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeArrayField("privateLinkResources", this.privateLinkResources,
+ (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeBooleanField("disableLocalAccounts", this.disableLocalAccounts);
+ jsonWriter.writeJsonField("httpProxyConfig", this.httpProxyConfig);
+ jsonWriter.writeJsonField("securityProfile", this.securityProfile);
+ jsonWriter.writeJsonField("storageProfile", this.storageProfile);
+ jsonWriter.writeJsonField("ingressProfile", this.ingressProfile);
+ jsonWriter.writeStringField("publicNetworkAccess",
+ this.publicNetworkAccess == null ? null : this.publicNetworkAccess.toString());
+ jsonWriter.writeJsonField("workloadAutoScalerProfile", this.workloadAutoScalerProfile);
+ jsonWriter.writeJsonField("azureMonitorProfile", this.azureMonitorProfile);
+ jsonWriter.writeJsonField("serviceMeshProfile", this.serviceMeshProfile);
+ jsonWriter.writeJsonField("metricsProfile", this.metricsProfile);
+ jsonWriter.writeJsonField("nodeProvisioningProfile", this.nodeProvisioningProfile);
+ jsonWriter.writeJsonField("bootstrapProfile", this.bootstrapProfile);
+ jsonWriter.writeJsonField("aiToolchainOperatorProfile", this.aiToolchainOperatorProfile);
+ jsonWriter.writeJsonField("status", this.status);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of ManagedClusterProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of ManagedClusterProperties if the JsonReader was pointing to an instance of it, or null if
+ * it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the ManagedClusterProperties.
+ */
+ public static ManagedClusterProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ ManagedClusterProperties deserializedManagedClusterProperties = new ManagedClusterProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("provisioningState".equals(fieldName)) {
+ deserializedManagedClusterProperties.provisioningState = reader.getString();
+ } else if ("powerState".equals(fieldName)) {
+ deserializedManagedClusterProperties.powerState = PowerState.fromJson(reader);
+ } else if ("maxAgentPools".equals(fieldName)) {
+ deserializedManagedClusterProperties.maxAgentPools = reader.getNullable(JsonReader::getInt);
+ } else if ("kubernetesVersion".equals(fieldName)) {
+ deserializedManagedClusterProperties.kubernetesVersion = reader.getString();
+ } else if ("currentKubernetesVersion".equals(fieldName)) {
+ deserializedManagedClusterProperties.currentKubernetesVersion = reader.getString();
+ } else if ("dnsPrefix".equals(fieldName)) {
+ deserializedManagedClusterProperties.dnsPrefix = reader.getString();
+ } else if ("fqdnSubdomain".equals(fieldName)) {
+ deserializedManagedClusterProperties.fqdnSubdomain = reader.getString();
+ } else if ("fqdn".equals(fieldName)) {
+ deserializedManagedClusterProperties.fqdn = reader.getString();
+ } else if ("privateFQDN".equals(fieldName)) {
+ deserializedManagedClusterProperties.privateFQDN = reader.getString();
+ } else if ("azurePortalFQDN".equals(fieldName)) {
+ deserializedManagedClusterProperties.azurePortalFQDN = reader.getString();
+ } else if ("agentPoolProfiles".equals(fieldName)) {
+ List agentPoolProfiles
+ = reader.readArray(reader1 -> ManagedClusterAgentPoolProfile.fromJson(reader1));
+ deserializedManagedClusterProperties.agentPoolProfiles = agentPoolProfiles;
+ } else if ("linuxProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.linuxProfile = ContainerServiceLinuxProfile.fromJson(reader);
+ } else if ("windowsProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.windowsProfile = ManagedClusterWindowsProfile.fromJson(reader);
+ } else if ("servicePrincipalProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.servicePrincipalProfile
+ = ManagedClusterServicePrincipalProfile.fromJson(reader);
+ } else if ("addonProfiles".equals(fieldName)) {
+ Map addonProfiles
+ = reader.readMap(reader1 -> ManagedClusterAddonProfile.fromJson(reader1));
+ deserializedManagedClusterProperties.addonProfiles = addonProfiles;
+ } else if ("podIdentityProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.podIdentityProfile
+ = ManagedClusterPodIdentityProfile.fromJson(reader);
+ } else if ("oidcIssuerProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.oidcIssuerProfile
+ = ManagedClusterOIDCIssuerProfile.fromJson(reader);
+ } else if ("nodeResourceGroup".equals(fieldName)) {
+ deserializedManagedClusterProperties.nodeResourceGroup = reader.getString();
+ } else if ("nodeResourceGroupProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.nodeResourceGroupProfile
+ = ManagedClusterNodeResourceGroupProfile.fromJson(reader);
+ } else if ("enableRBAC".equals(fieldName)) {
+ deserializedManagedClusterProperties.enableRBAC = reader.getNullable(JsonReader::getBoolean);
+ } else if ("supportPlan".equals(fieldName)) {
+ deserializedManagedClusterProperties.supportPlan
+ = KubernetesSupportPlan.fromString(reader.getString());
+ } else if ("networkProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.networkProfile
+ = ContainerServiceNetworkProfile.fromJson(reader);
+ } else if ("aadProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.aadProfile = ManagedClusterAADProfile.fromJson(reader);
+ } else if ("autoUpgradeProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.autoUpgradeProfile
+ = ManagedClusterAutoUpgradeProfile.fromJson(reader);
+ } else if ("upgradeSettings".equals(fieldName)) {
+ deserializedManagedClusterProperties.upgradeSettings = ClusterUpgradeSettings.fromJson(reader);
+ } else if ("autoScalerProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.autoScalerProfile
+ = ManagedClusterPropertiesAutoScalerProfile.fromJson(reader);
+ } else if ("apiServerAccessProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.apiServerAccessProfile
+ = ManagedClusterApiServerAccessProfile.fromJson(reader);
+ } else if ("diskEncryptionSetID".equals(fieldName)) {
+ deserializedManagedClusterProperties.diskEncryptionSetID = reader.getString();
+ } else if ("identityProfile".equals(fieldName)) {
+ Map identityProfile
+ = reader.readMap(reader1 -> UserAssignedIdentity.fromJson(reader1));
+ deserializedManagedClusterProperties.identityProfile = identityProfile;
+ } else if ("privateLinkResources".equals(fieldName)) {
+ List privateLinkResources
+ = reader.readArray(reader1 -> PrivateLinkResourceInner.fromJson(reader1));
+ deserializedManagedClusterProperties.privateLinkResources = privateLinkResources;
+ } else if ("disableLocalAccounts".equals(fieldName)) {
+ deserializedManagedClusterProperties.disableLocalAccounts
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("httpProxyConfig".equals(fieldName)) {
+ deserializedManagedClusterProperties.httpProxyConfig
+ = ManagedClusterHttpProxyConfig.fromJson(reader);
+ } else if ("securityProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.securityProfile
+ = ManagedClusterSecurityProfile.fromJson(reader);
+ } else if ("storageProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.storageProfile = ManagedClusterStorageProfile.fromJson(reader);
+ } else if ("ingressProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.ingressProfile = ManagedClusterIngressProfile.fromJson(reader);
+ } else if ("publicNetworkAccess".equals(fieldName)) {
+ deserializedManagedClusterProperties.publicNetworkAccess
+ = PublicNetworkAccess.fromString(reader.getString());
+ } else if ("workloadAutoScalerProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.workloadAutoScalerProfile
+ = ManagedClusterWorkloadAutoScalerProfile.fromJson(reader);
+ } else if ("azureMonitorProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.azureMonitorProfile
+ = ManagedClusterAzureMonitorProfile.fromJson(reader);
+ } else if ("serviceMeshProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.serviceMeshProfile = ServiceMeshProfile.fromJson(reader);
+ } else if ("resourceUID".equals(fieldName)) {
+ deserializedManagedClusterProperties.resourceUID = reader.getString();
+ } else if ("metricsProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.metricsProfile = ManagedClusterMetricsProfile.fromJson(reader);
+ } else if ("nodeProvisioningProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.nodeProvisioningProfile
+ = ManagedClusterNodeProvisioningProfile.fromJson(reader);
+ } else if ("bootstrapProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.bootstrapProfile
+ = ManagedClusterBootstrapProfile.fromJson(reader);
+ } else if ("aiToolchainOperatorProfile".equals(fieldName)) {
+ deserializedManagedClusterProperties.aiToolchainOperatorProfile
+ = ManagedClusterAIToolchainOperatorProfile.fromJson(reader);
+ } else if ("status".equals(fieldName)) {
+ deserializedManagedClusterProperties.status = ManagedClusterStatus.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedManagedClusterProperties;
+ });
+ }
+}
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 000000000000..c7b8992509ab
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileInner.java
@@ -0,0 +1,165 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPoolUpgradeProfile;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * The list of available upgrades for compute pools.
+ */
+@Immutable
+public final class ManagedClusterUpgradeProfileInner extends ProxyResource {
+ /*
+ * The properties of the upgrade profile.
+ */
+ private ManagedClusterUpgradeProfileProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of ManagedClusterUpgradeProfileInner class.
+ */
+ private ManagedClusterUpgradeProfileInner() {
+ }
+
+ /**
+ * Get the innerProperties property: The properties of the upgrade profile.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterUpgradeProfileProperties 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;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of ManagedClusterUpgradeProfileInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of ManagedClusterUpgradeProfileInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the ManagedClusterUpgradeProfileInner.
+ */
+ public static ManagedClusterUpgradeProfileInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ ManagedClusterUpgradeProfileInner deserializedManagedClusterUpgradeProfileInner
+ = new ManagedClusterUpgradeProfileInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedManagedClusterUpgradeProfileInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedManagedClusterUpgradeProfileInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedManagedClusterUpgradeProfileInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedManagedClusterUpgradeProfileInner.innerProperties
+ = ManagedClusterUpgradeProfileProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedManagedClusterUpgradeProfileInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedManagedClusterUpgradeProfileInner;
+ });
+ }
+}
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 000000000000..8b6a932b4496
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedClusterUpgradeProfileProperties.java
@@ -0,0 +1,100 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.ManagedClusterPoolUpgradeProfile;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Control plane and agent pool upgrade profiles.
+ */
+@Immutable
+public final class ManagedClusterUpgradeProfileProperties
+ implements JsonSerializable {
+ /*
+ * The list of available upgrade versions for the control plane.
+ */
+ private ManagedClusterPoolUpgradeProfile controlPlaneProfile;
+
+ /*
+ * The list of available upgrade versions for agent pools.
+ */
+ private List agentPoolProfiles;
+
+ /**
+ * Creates an instance of ManagedClusterUpgradeProfileProperties class.
+ */
+ private ManagedClusterUpgradeProfileProperties() {
+ }
+
+ /**
+ * Get the controlPlaneProfile property: The list of available upgrade versions for the control plane.
+ *
+ * @return the controlPlaneProfile value.
+ */
+ public ManagedClusterPoolUpgradeProfile controlPlaneProfile() {
+ return this.controlPlaneProfile;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.agentPoolProfiles;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("controlPlaneProfile", this.controlPlaneProfile);
+ jsonWriter.writeArrayField("agentPoolProfiles", this.agentPoolProfiles,
+ (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of ManagedClusterUpgradeProfileProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of ManagedClusterUpgradeProfileProperties if the JsonReader was pointing to an instance of
+ * it, or null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the ManagedClusterUpgradeProfileProperties.
+ */
+ public static ManagedClusterUpgradeProfileProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ ManagedClusterUpgradeProfileProperties deserializedManagedClusterUpgradeProfileProperties
+ = new ManagedClusterUpgradeProfileProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("controlPlaneProfile".equals(fieldName)) {
+ deserializedManagedClusterUpgradeProfileProperties.controlPlaneProfile
+ = ManagedClusterPoolUpgradeProfile.fromJson(reader);
+ } else if ("agentPoolProfiles".equals(fieldName)) {
+ List agentPoolProfiles
+ = reader.readArray(reader1 -> ManagedClusterPoolUpgradeProfile.fromJson(reader1));
+ deserializedManagedClusterUpgradeProfileProperties.agentPoolProfiles = agentPoolProfiles;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedManagedClusterUpgradeProfileProperties;
+ });
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedNamespaceInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedNamespaceInner.java
new file mode 100644
index 000000000000..3b0bc514caf6
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/ManagedNamespaceInner.java
@@ -0,0 +1,235 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.NamespaceProperties;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * Namespace managed by ARM.
+ */
+@Fluent
+public final class ManagedNamespaceInner extends ProxyResource {
+ /*
+ * Properties of a namespace.
+ */
+ private NamespaceProperties properties;
+
+ /*
+ * Resource tags.
+ */
+ private Map tags;
+
+ /*
+ * The geo-location where the resource lives
+ */
+ private String location;
+
+ /*
+ * If eTag is provided in the response body, it may also be provided as a header per the normal etag convention.
+ * Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity
+ * tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section
+ * 14.27) header fields.
+ */
+ private String eTag;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of ManagedNamespaceInner class.
+ */
+ public ManagedNamespaceInner() {
+ }
+
+ /**
+ * Get the properties property: Properties of a namespace.
+ *
+ * @return the properties value.
+ */
+ public NamespaceProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Properties of a namespace.
+ *
+ * @param properties the properties value to set.
+ * @return the ManagedNamespaceInner object itself.
+ */
+ public ManagedNamespaceInner withProperties(NamespaceProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the tags property: Resource tags.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: Resource tags.
+ *
+ * @param tags the tags value to set.
+ * @return the ManagedNamespaceInner object itself.
+ */
+ public ManagedNamespaceInner withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the location property: The geo-location where the resource lives.
+ *
+ * @return the location value.
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location property: The geo-location where the resource lives.
+ *
+ * @param location the location value to set.
+ * @return the ManagedNamespaceInner object itself.
+ */
+ public ManagedNamespaceInner withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the eTag property: If eTag is provided in the response body, it may also be provided as a header per the
+ * normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource.
+ * HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26),
+ * and If-Range (section 14.27) header fields.
+ *
+ * @return the eTag value.
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeMapField("tags", this.tags, (writer, element) -> writer.writeString(element));
+ jsonWriter.writeStringField("location", this.location);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of ManagedNamespaceInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of ManagedNamespaceInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the ManagedNamespaceInner.
+ */
+ public static ManagedNamespaceInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ ManagedNamespaceInner deserializedManagedNamespaceInner = new ManagedNamespaceInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedManagedNamespaceInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedManagedNamespaceInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedManagedNamespaceInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedManagedNamespaceInner.properties = NamespaceProperties.fromJson(reader);
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedManagedNamespaceInner.tags = tags;
+ } else if ("location".equals(fieldName)) {
+ deserializedManagedNamespaceInner.location = reader.getString();
+ } else if ("eTag".equals(fieldName)) {
+ deserializedManagedNamespaceInner.eTag = reader.getString();
+ } else if ("systemData".equals(fieldName)) {
+ deserializedManagedNamespaceInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedManagedNamespaceInner;
+ });
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MeshRevisionProfileInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MeshRevisionProfileInner.java
new file mode 100644
index 000000000000..ffbe1144e16c
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MeshRevisionProfileInner.java
@@ -0,0 +1,144 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.MeshRevisionProfileProperties;
+import java.io.IOException;
+
+/**
+ * Mesh revision profile for a mesh.
+ */
+@Immutable
+public final class MeshRevisionProfileInner extends ProxyResource {
+ /*
+ * Mesh revision profile properties for a mesh
+ */
+ private MeshRevisionProfileProperties properties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of MeshRevisionProfileInner class.
+ */
+ private MeshRevisionProfileInner() {
+ }
+
+ /**
+ * Get the properties property: Mesh revision profile properties for a mesh.
+ *
+ * @return the properties value.
+ */
+ public MeshRevisionProfileProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of MeshRevisionProfileInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of MeshRevisionProfileInner if the JsonReader was pointing to an instance of it, or null if
+ * it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the MeshRevisionProfileInner.
+ */
+ public static MeshRevisionProfileInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ MeshRevisionProfileInner deserializedMeshRevisionProfileInner = new MeshRevisionProfileInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedMeshRevisionProfileInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedMeshRevisionProfileInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedMeshRevisionProfileInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedMeshRevisionProfileInner.properties = MeshRevisionProfileProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedMeshRevisionProfileInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedMeshRevisionProfileInner;
+ });
+ }
+}
diff --git a/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MeshUpgradeProfileInner.java b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MeshUpgradeProfileInner.java
new file mode 100644
index 000000000000..859e5ffb7375
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/MeshUpgradeProfileInner.java
@@ -0,0 +1,144 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.MeshUpgradeProfileProperties;
+import java.io.IOException;
+
+/**
+ * Upgrade profile for given mesh.
+ */
+@Immutable
+public final class MeshUpgradeProfileInner extends ProxyResource {
+ /*
+ * Mesh upgrade profile properties for a major.minor release.
+ */
+ private MeshUpgradeProfileProperties properties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of MeshUpgradeProfileInner class.
+ */
+ private MeshUpgradeProfileInner() {
+ }
+
+ /**
+ * Get the properties property: Mesh upgrade profile properties for a major.minor release.
+ *
+ * @return the properties value.
+ */
+ public MeshUpgradeProfileProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of MeshUpgradeProfileInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of MeshUpgradeProfileInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the MeshUpgradeProfileInner.
+ */
+ public static MeshUpgradeProfileInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ MeshUpgradeProfileInner deserializedMeshUpgradeProfileInner = new MeshUpgradeProfileInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedMeshUpgradeProfileInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedMeshUpgradeProfileInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedMeshUpgradeProfileInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedMeshUpgradeProfileInner.properties = MeshUpgradeProfileProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedMeshUpgradeProfileInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedMeshUpgradeProfileInner;
+ });
+ }
+}
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 000000000000..017e4f63c897
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueDisplay.java
@@ -0,0 +1,121 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+
+/**
+ * Describes the properties of a Operation Value Display.
+ */
+@Immutable
+public final class OperationValueDisplay implements JsonSerializable {
+ /*
+ * The display name of the operation.
+ */
+ private String operation;
+
+ /*
+ * The display name of the resource the operation applies to.
+ */
+ private String resource;
+
+ /*
+ * The description of the operation.
+ */
+ private String description;
+
+ /*
+ * The resource provider for the operation.
+ */
+ private String provider;
+
+ /**
+ * Creates an instance of OperationValueDisplay class.
+ */
+ private OperationValueDisplay() {
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of OperationValueDisplay from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of OperationValueDisplay if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the OperationValueDisplay.
+ */
+ public static OperationValueDisplay fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ OperationValueDisplay deserializedOperationValueDisplay = new OperationValueDisplay();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("operation".equals(fieldName)) {
+ deserializedOperationValueDisplay.operation = reader.getString();
+ } else if ("resource".equals(fieldName)) {
+ deserializedOperationValueDisplay.resource = reader.getString();
+ } else if ("description".equals(fieldName)) {
+ deserializedOperationValueDisplay.description = reader.getString();
+ } else if ("provider".equals(fieldName)) {
+ deserializedOperationValueDisplay.provider = reader.getString();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedOperationValueDisplay;
+ });
+ }
+}
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 000000000000..bcf584eac159
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OperationValueInner.java
@@ -0,0 +1,142 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+
+/**
+ * Describes the properties of a Operation value.
+ */
+@Immutable
+public final class OperationValueInner implements JsonSerializable {
+ /*
+ * The origin of the operation.
+ */
+ private String origin;
+
+ /*
+ * The name of the operation.
+ */
+ private String name;
+
+ /*
+ * Describes the properties of a Operation Value Display.
+ */
+ private OperationValueDisplay innerDisplay;
+
+ /**
+ * Creates an instance of OperationValueInner class.
+ */
+ private OperationValueInner() {
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("display", this.innerDisplay);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of OperationValueInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of OperationValueInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IOException If an error occurs while reading the OperationValueInner.
+ */
+ public static OperationValueInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ OperationValueInner deserializedOperationValueInner = new OperationValueInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("origin".equals(fieldName)) {
+ deserializedOperationValueInner.origin = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedOperationValueInner.name = reader.getString();
+ } else if ("display".equals(fieldName)) {
+ deserializedOperationValueInner.innerDisplay = OperationValueDisplay.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedOperationValueInner;
+ });
+ }
+}
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 000000000000..f73b89ed9ca0
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/OutboundEnvironmentEndpointInner.java
@@ -0,0 +1,97 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.containerservice.generated.models.EndpointDependency;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Egress endpoints which AKS agent nodes connect to for common purpose.
+ */
+@Immutable
+public final class OutboundEnvironmentEndpointInner implements JsonSerializable {
+ /*
+ * The category of endpoints accessed by the AKS agent node, e.g. azure-resource-management, apiserver, etc.
+ */
+ private String category;
+
+ /*
+ * The endpoints that AKS agent nodes connect to
+ */
+ private List endpoints;
+
+ /**
+ * Creates an instance of OutboundEnvironmentEndpointInner class.
+ */
+ private OutboundEnvironmentEndpointInner() {
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get the endpoints property: The endpoints that AKS agent nodes connect to.
+ *
+ * @return the endpoints value.
+ */
+ public List endpoints() {
+ return this.endpoints;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("category", this.category);
+ jsonWriter.writeArrayField("endpoints", this.endpoints, (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of OutboundEnvironmentEndpointInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of OutboundEnvironmentEndpointInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the OutboundEnvironmentEndpointInner.
+ */
+ public static OutboundEnvironmentEndpointInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ OutboundEnvironmentEndpointInner deserializedOutboundEnvironmentEndpointInner
+ = new OutboundEnvironmentEndpointInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("category".equals(fieldName)) {
+ deserializedOutboundEnvironmentEndpointInner.category = reader.getString();
+ } else if ("endpoints".equals(fieldName)) {
+ List endpoints
+ = reader.readArray(reader1 -> EndpointDependency.fromJson(reader1));
+ deserializedOutboundEnvironmentEndpointInner.endpoints = endpoints;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedOutboundEnvironmentEndpointInner;
+ });
+ }
+}
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 000000000000..4ec7acdcb59f
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionInner.java
@@ -0,0 +1,206 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+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 java.io.IOException;
+
+/**
+ * A private endpoint connection.
+ */
+@Fluent
+public final class PrivateEndpointConnectionInner extends ProxyResource {
+ /*
+ * The properties of a private endpoint connection.
+ */
+ private PrivateEndpointConnectionProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of PrivateEndpointConnectionInner class.
+ */
+ public PrivateEndpointConnectionInner() {
+ }
+
+ /**
+ * Get the innerProperties property: The properties of a private endpoint connection.
+ *
+ * @return the innerProperties value.
+ */
+ private PrivateEndpointConnectionProperties 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;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of PrivateEndpointConnectionInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of PrivateEndpointConnectionInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the PrivateEndpointConnectionInner.
+ */
+ public static PrivateEndpointConnectionInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ PrivateEndpointConnectionInner deserializedPrivateEndpointConnectionInner
+ = new PrivateEndpointConnectionInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedPrivateEndpointConnectionInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedPrivateEndpointConnectionInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedPrivateEndpointConnectionInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedPrivateEndpointConnectionInner.innerProperties
+ = PrivateEndpointConnectionProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedPrivateEndpointConnectionInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedPrivateEndpointConnectionInner;
+ });
+ }
+}
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 000000000000..b64d35137db7
--- /dev/null
+++ b/sdk/containerservice/azure-resourcemanager-containerservice-generated/src/main/java/com/azure/resourcemanager/containerservice/generated/fluent/models/PrivateEndpointConnectionListResultInner.java
@@ -0,0 +1,79 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.containerservice.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * A list of private endpoint connections.
+ */
+@Immutable
+public final class PrivateEndpointConnectionListResultInner
+ implements JsonSerializable {
+ /*
+ * The collection value.
+ */
+ private List value;
+
+ /**
+ * Creates an instance of PrivateEndpointConnectionListResultInner class.
+ */
+ private PrivateEndpointConnectionListResultInner() {
+ }
+
+ /**
+ * Get the value property: The collection value.
+ *
+ * @return the value value.
+ */
+ public List