scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private RetryOptions retryOptions;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the retry options for the HTTP pipeline retry policy.
+ *
+ * This setting has no effect, if retry policy is set via {@link #withRetryPolicy(RetryPolicy)}.
+ *
+ * @param retryOptions the retry options for the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryOptions(RetryOptions retryOptions) {
+ this.retryOptions = Objects.requireNonNull(retryOptions, "'retryOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval
+ = Objects.requireNonNull(defaultPollInterval, "'defaultPollInterval' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw LOGGER
+ .logExceptionAsError(new IllegalArgumentException("'defaultPollInterval' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of ContainerService service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ContainerService service API instance.
+ */
+ public ContainerServiceManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder.append("azsdk-java").append("-")
+ .append("com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated").append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder.append(" (").append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ").append(Configuration.getGlobalConfiguration().get("os.name")).append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version")).append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ if (retryOptions != null) {
+ retryPolicy = new RetryPolicy(retryOptions);
+ } else {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new AddHeadersFromContextPolicy());
+ policies.add(new RequestIdPolicy());
+ policies.addAll(this.policies.stream().filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies.addAll(this.policies.stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY).collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline = new HttpPipelineBuilder().httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0])).build();
+ return new ContainerServiceManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of OpenShiftManagedClusters. It manages OpenShiftManagedCluster.
+ *
+ * @return Resource collection API of OpenShiftManagedClusters.
+ */
+ public OpenShiftManagedClusters openShiftManagedClusters() {
+ if (this.openShiftManagedClusters == null) {
+ this.openShiftManagedClusters
+ = new OpenShiftManagedClustersImpl(clientObject.getOpenShiftManagedClusters(), this);
+ }
+ return openShiftManagedClusters;
+ }
+
+ /**
+ * Gets the resource collection API of ContainerServices.
+ *
+ * @return Resource collection API of ContainerServices.
+ */
+ public ContainerServices containerServices() {
+ if (this.containerServices == null) {
+ this.containerServices = new ContainerServicesImpl(clientObject.getContainerServices(), this);
+ }
+ return containerServices;
+ }
+
+ /**
+ * 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 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 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 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 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 OperationStatusResults.
+ *
+ * @return Resource collection API of OperationStatusResults.
+ */
+ public OperationStatusResults operationStatusResults() {
+ if (this.operationStatusResults == null) {
+ this.operationStatusResults
+ = new OperationStatusResultsImpl(clientObject.getOperationStatusResults(), this);
+ }
+ return operationStatusResults;
+ }
+
+ /**
+ * 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 ManagedClusterSnapshots. It manages ManagedClusterSnapshot.
+ *
+ * @return Resource collection API of ManagedClusterSnapshots.
+ */
+ public ManagedClusterSnapshots managedClusterSnapshots() {
+ if (this.managedClusterSnapshots == null) {
+ this.managedClusterSnapshots
+ = new ManagedClusterSnapshotsImpl(clientObject.getManagedClusterSnapshots(), this);
+ }
+ return managedClusterSnapshots;
+ }
+
+ /**
+ * 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 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 ScheduledEvents.
+ *
+ * @return Resource collection API of ScheduledEvents.
+ */
+ public ScheduledEvents scheduledEvents() {
+ if (this.scheduledEvents == null) {
+ this.scheduledEvents = new ScheduledEventsImpl(clientObject.getScheduledEvents(), this);
+ }
+ return scheduledEvents;
+ }
+
+ /**
+ * 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/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/AgentPoolsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/AgentPoolsClient.java
new file mode 100644
index 0000000000000..ad03046dfd626
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/AgentPoolsClient.java
@@ -0,0 +1,486 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.AgentPoolAvailableVersionsInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.AgentPoolInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.AgentPoolUpgradeProfileInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolDeleteMachinesParameter;
+
+/**
+ * An instance of this class provides access to all the operations defined in AgentPoolsClient.
+ */
+public interface AgentPoolsClient {
+ /**
+ * 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, an error 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, an error 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, an error 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, an error 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);
+
+ /**
+ * Gets a list of agent pools in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a list of agent pools in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of agent pools in the specified managed cluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Gets the specified managed cluster agent pool.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AgentPoolInner> beginCreateOrUpdate(String resourceGroupName,
+ String resourceName, String agentPoolName, AgentPoolInner parameters, Context context);
+
+ /**
+ * Creates or updates an agent pool in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @param parameters The agent pool to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner createOrUpdate(String resourceGroupName, String resourceName, String agentPoolName,
+ AgentPoolInner parameters);
+
+ /**
+ * Creates or updates an agent pool in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @param parameters The agent pool to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return agent Pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner createOrUpdate(String resourceGroupName, String resourceName, String agentPoolName,
+ AgentPoolInner parameters, Context context);
+
+ /**
+ * Deletes an agent pool in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param agentPoolName The name of the agent pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 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, 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 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,
+ 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.
+ * @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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 the list of available versions for an agent pool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getAvailableAgentPoolVersionsWithResponse(String resourceGroupName,
+ String resourceName, Context context);
+
+ /**
+ * 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 the list of available versions for an agent pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolAvailableVersionsInner getAvailableAgentPoolVersions(String resourceGroupName, String resourceName);
+
+ /**
+ * 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 long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AgentPoolInner> 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 long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AgentPoolInner> 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.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner 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.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AgentPoolInner upgradeNodeImageVersion(String resourceGroupName, String resourceName, String agentPoolName,
+ Context context);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ContainerServiceManagementClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ContainerServiceManagementClient.java
new file mode 100644
index 0000000000000..402bbeed0a158
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ContainerServiceManagementClient.java
@@ -0,0 +1,154 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/**
+ * The interface for ContainerServiceManagementClient class.
+ */
+public interface ContainerServiceManagementClient {
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms
+ * part of the URI for every service call.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the OpenShiftManagedClustersClient object to access its operations.
+ *
+ * @return the OpenShiftManagedClustersClient object.
+ */
+ OpenShiftManagedClustersClient getOpenShiftManagedClusters();
+
+ /**
+ * Gets the ContainerServicesClient object to access its operations.
+ *
+ * @return the ContainerServicesClient object.
+ */
+ ContainerServicesClient getContainerServices();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the ManagedClustersClient object to access its operations.
+ *
+ * @return the ManagedClustersClient object.
+ */
+ ManagedClustersClient getManagedClusters();
+
+ /**
+ * Gets the MaintenanceConfigurationsClient object to access its operations.
+ *
+ * @return the MaintenanceConfigurationsClient object.
+ */
+ MaintenanceConfigurationsClient getMaintenanceConfigurations();
+
+ /**
+ * Gets the AgentPoolsClient object to access its operations.
+ *
+ * @return the AgentPoolsClient object.
+ */
+ AgentPoolsClient getAgentPools();
+
+ /**
+ * Gets the 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 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 OperationStatusResultsClient object to access its operations.
+ *
+ * @return the OperationStatusResultsClient object.
+ */
+ OperationStatusResultsClient getOperationStatusResults();
+
+ /**
+ * Gets the SnapshotsClient object to access its operations.
+ *
+ * @return the SnapshotsClient object.
+ */
+ SnapshotsClient getSnapshots();
+
+ /**
+ * Gets the ManagedClusterSnapshotsClient object to access its operations.
+ *
+ * @return the ManagedClusterSnapshotsClient object.
+ */
+ ManagedClusterSnapshotsClient getManagedClusterSnapshots();
+
+ /**
+ * Gets the TrustedAccessRolesClient object to access its operations.
+ *
+ * @return the TrustedAccessRolesClient object.
+ */
+ TrustedAccessRolesClient getTrustedAccessRoles();
+
+ /**
+ * Gets the TrustedAccessRoleBindingsClient object to access its operations.
+ *
+ * @return the TrustedAccessRoleBindingsClient object.
+ */
+ TrustedAccessRoleBindingsClient getTrustedAccessRoleBindings();
+
+ /**
+ * Gets the ScheduledEventsClient object to access its operations.
+ *
+ * @return the ScheduledEventsClient object.
+ */
+ ScheduledEventsClient getScheduledEvents();
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ContainerServicesClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ContainerServicesClient.java
new file mode 100644
index 0000000000000..fd7c3342c1527
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ContainerServicesClient.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.OrchestratorVersionProfileListResultInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ContainerServicesClient.
+ */
+public interface ContainerServicesClient {
+ /**
+ * Gets a list of supported orchestrators in the specified subscription.
+ *
+ * Gets a list of supported orchestrators in the specified subscription. The operation returns properties of each
+ * orchestrator including version, available upgrades and whether that version or upgrades are in preview.
+ *
+ * @param location The name of a supported Azure region.
+ * @param resourceType resource type for which the list of orchestrators needs to be returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of supported orchestrators in the specified subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listOrchestratorsWithResponse(String location,
+ String resourceType, Context context);
+
+ /**
+ * Gets a list of supported orchestrators in the specified subscription.
+ *
+ * Gets a list of supported orchestrators in the specified subscription. The operation returns properties of each
+ * orchestrator including version, available upgrades and whether that version or upgrades are in preview.
+ *
+ * @param location The name of a supported Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of supported orchestrators in the specified subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OrchestratorVersionProfileListResultInner listOrchestrators(String location);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/MachinesClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/MachinesClient.java
new file mode 100644
index 0000000000000..b081f502eccab
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/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) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.MachineInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in MachinesClient.
+ */
+public interface MachinesClient {
+ /**
+ * 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);
+
+ /**
+ * 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);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/MaintenanceConfigurationsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/MaintenanceConfigurationsClient.java
new file mode 100644
index 0000000000000..3a47ea3545e75
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/MaintenanceConfigurationsClient.java
@@ -0,0 +1,140 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.MaintenanceConfigurationInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in MaintenanceConfigurationsClient.
+ */
+public interface MaintenanceConfigurationsClient {
+ /**
+ * Gets a list of maintenance configurations in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of maintenance configurations in the specified managed cluster as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByManagedCluster(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a list of maintenance configurations in the specified managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of maintenance configurations in the specified managed cluster as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByManagedCluster(String resourceGroupName, String resourceName,
+ Context context);
+
+ /**
+ * Gets the specified maintenance configuration of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param configName The name of the maintenance configuration.
+ * @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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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.
+ * @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.
+ * @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.
+ * @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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ManagedClusterSnapshotsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ManagedClusterSnapshotsClient.java
new file mode 100644
index 0000000000000..e690472d7e45e
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ManagedClusterSnapshotsClient.java
@@ -0,0 +1,184 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.ManagedClusterSnapshotInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.TagsObject;
+
+/**
+ * An instance of this class provides access to all the operations defined in ManagedClusterSnapshotsClient.
+ */
+public interface ManagedClusterSnapshotsClient {
+ /**
+ * Gets a list of managed cluster snapshots in the specified subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of managed cluster snapshots in the specified subscription as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of managed cluster snapshots in the specified subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of managed cluster snapshots in the specified subscription as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists managed cluster snapshots in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Managed Cluster Snapshots operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists managed cluster snapshots in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Managed Cluster Snapshots operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a managed cluster snapshot along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String resourceName,
+ Context context);
+
+ /**
+ * Gets a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a managed cluster snapshot.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterSnapshotInner getByResourceGroup(String resourceGroupName, String resourceName);
+
+ /**
+ * Creates or updates a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster snapshot to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a managed cluster snapshot resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(String resourceGroupName, String resourceName,
+ ManagedClusterSnapshotInner parameters, Context context);
+
+ /**
+ * Creates or updates a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster snapshot to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a managed cluster snapshot resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterSnapshotInner createOrUpdate(String resourceGroupName, String resourceName,
+ ManagedClusterSnapshotInner parameters);
+
+ /**
+ * Updates tags on a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update managed cluster snapshot Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a managed cluster snapshot resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateTagsWithResponse(String resourceGroupName, String resourceName,
+ TagsObject parameters, Context context);
+
+ /**
+ * Updates tags on a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update managed cluster snapshot Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a managed cluster snapshot resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterSnapshotInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Deletes a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Deletes a managed cluster snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ManagedClustersClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ManagedClustersClient.java
new file mode 100644
index 0000000000000..bda66b3fb6281
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ManagedClustersClient.java
@@ -0,0 +1,1363 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.CredentialResultsInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.GuardrailsAvailableVersionInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.KubernetesVersionListResultInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.ManagedClusterAccessProfileInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.ManagedClusterInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.ManagedClusterUpgradeProfileInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.MeshRevisionProfileInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.MeshUpgradeProfileInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.OSOptionProfileInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.OutboundEnvironmentEndpointInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.RunCommandResultInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.SafeguardsAvailableVersionInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.Format;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAadProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterServicePrincipalProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClustersGetCommandResultResponse;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.RunCommandRequest;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.TagsObject;
+
+/**
+ * An instance of this class provides access to all the operations defined in ManagedClustersClient.
+ */
+public interface ManagedClustersClient {
+ /**
+ * Gets supported OS options in the specified subscription.
+ *
+ * @param location The name of the Azure region.
+ * @param resourceType The resource type for which the OS options needs to be returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return supported OS options in the specified subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getOSOptionsWithResponse(String location, String resourceType, Context context);
+
+ /**
+ * Gets supported OS options in the specified subscription.
+ *
+ * @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 supported OS options in the specified subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OSOptionProfileInner getOSOptions(String location);
+
+ /**
+ * 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 hold values properties, which is array of KubernetesVersion 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 hold values properties, which is array of KubernetesVersion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ KubernetesVersionListResultInner listKubernetesVersions(String location);
+
+ /**
+ * Gets a list of managed clusters in the specified subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of managed clusters in the specified subscription as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of managed clusters in the specified subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of managed clusters in the specified subscription as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists managed clusters in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Managed Clusters operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists managed clusters in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Managed Clusters operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets the upgrade profile of a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @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 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 managed cluster Access Profile 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 managed cluster Access Profile.
+ */
+ @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);
+
+ /**
+ * 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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedClusterInner> beginCreateOrUpdate(String resourceGroupName,
+ String resourceName, ManagedClusterInner parameters, Context context);
+
+ /**
+ * Creates or updates a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner createOrUpdate(String resourceGroupName, String resourceName, ManagedClusterInner parameters);
+
+ /**
+ * Creates or updates a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters The managed cluster to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner createOrUpdate(String resourceGroupName, String resourceName, ManagedClusterInner parameters,
+ Context context);
+
+ /**
+ * Updates tags on a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update Managed Cluster Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedClusterInner> beginUpdateTags(String resourceGroupName,
+ String resourceName, TagsObject parameters);
+
+ /**
+ * Updates tags on a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update Managed Cluster Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ManagedClusterInner> beginUpdateTags(String resourceGroupName,
+ String resourceName, TagsObject parameters, Context context);
+
+ /**
+ * Updates tags on a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update Managed Cluster Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates tags on a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param parameters Parameters supplied to the Update Managed Cluster Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagedClusterInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters,
+ Context context);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName,
+ Boolean ignorePodDisruptionBudget, Context context);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes a managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param ignorePodDisruptionBudget ignore-pod-disruption-budget=true to delete those pods on a node without
+ * considering Pod Disruption Budget.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, Boolean ignorePodDisruptionBudget, 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.
+ * @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);
+
+ /**
+ * 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, an error 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, an error 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, an error 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, an error 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 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);
+
+ /**
+ * 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 run command result.
+ */
+ @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 run command result.
+ */
+ @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 run command result.
+ */
+ @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 run command result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RunCommandResultInner runCommand(String resourceGroupName, String resourceName, RunCommandRequest requestPayload,
+ Context context);
+
+ /**
+ * Gets the results of a command which has been run on the Managed Cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param commandId Id of the command.
+ * @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 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 as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listOutboundNetworkDependenciesEndpoints(String resourceGroupName,
+ String resourceName, Context context);
+
+ /**
+ * Gets supported Guardrails version in the specified subscription and location.
+ *
+ * Contains Guardrails version along with its support info and whether it is a default version.
+ *
+ * @param location The name of the Azure region.
+ * @param version Safeguards version.
+ * @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 Guardrails Version along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getGuardrailsVersionsWithResponse(String location, String version,
+ Context context);
+
+ /**
+ * Gets supported Guardrails version in the specified subscription and location.
+ *
+ * Contains Guardrails version along with its support info and whether it is a default version.
+ *
+ * @param location The name of the Azure region.
+ * @param version Safeguards version.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 Guardrails Version.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GuardrailsAvailableVersionInner getGuardrailsVersions(String location, String version);
+
+ /**
+ * Gets a list of supported Guardrails versions in the specified subscription and location.
+ *
+ * Contains list of Guardrails version along with its support info and whether it is a default 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 hold values properties, which is array of GuardrailsVersions as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listGuardrailsVersions(String location);
+
+ /**
+ * Gets a list of supported Guardrails versions in the specified subscription and location.
+ *
+ * Contains list of Guardrails version along with its support info and whether it is a default 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 hold values properties, which is array of GuardrailsVersions as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listGuardrailsVersions(String location, Context context);
+
+ /**
+ * Gets supported Safeguards version in the specified subscription and location.
+ *
+ * Contains Safeguards version along with its support info and whether it is a default version.
+ *
+ * @param location The name of the Azure region.
+ * @param version Safeguards version.
+ * @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 Safeguards Version along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getSafeguardsVersionsWithResponse(String location, String version,
+ Context context);
+
+ /**
+ * Gets supported Safeguards version in the specified subscription and location.
+ *
+ * Contains Safeguards version along with its support info and whether it is a default version.
+ *
+ * @param location The name of the Azure region.
+ * @param version Safeguards version.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 Safeguards Version.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SafeguardsAvailableVersionInner getSafeguardsVersions(String location, String version);
+
+ /**
+ * Gets a list of supported Safeguards versions in the specified subscription and location.
+ *
+ * Contains list of Safeguards version along with its support info and whether it is a default 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 hold values properties, which is array of SafeguardsVersions as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listSafeguardsVersions(String location);
+
+ /**
+ * Gets a list of supported Safeguards versions in the specified subscription and location.
+ *
+ * Contains list of Safeguards version along with its support info and whether it is a default 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 hold values properties, which is array of SafeguardsVersions as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listSafeguardsVersions(String location, Context context);
+
+ /**
+ * 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 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 mesh revision profile for a mesh 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 mesh revision profile for a mesh.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MeshRevisionProfileInner getMeshRevisionProfile(String location, 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 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);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/OpenShiftManagedClustersClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/OpenShiftManagedClustersClient.java
new file mode 100644
index 0000000000000..eb3eef292aff5
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/OpenShiftManagedClustersClient.java
@@ -0,0 +1,315 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.OpenShiftManagedClusterInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.TagsObject;
+
+/**
+ * An instance of this class provides access to all the operations defined in OpenShiftManagedClustersClient.
+ */
+public interface OpenShiftManagedClustersClient {
+ /**
+ * Gets a list of OpenShift managed clusters in the specified subscription.
+ *
+ * Gets a list of OpenShift managed clusters in the specified subscription. The operation returns properties of each
+ * OpenShift managed cluster.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of OpenShift managed clusters in the specified subscription as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of OpenShift managed clusters in the specified subscription.
+ *
+ * Gets a list of OpenShift managed clusters in the specified subscription. The operation returns properties of each
+ * OpenShift managed cluster.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of OpenShift managed clusters in the specified subscription as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists OpenShift managed clusters in the specified subscription and resource group.
+ *
+ * Lists OpenShift managed clusters in the specified subscription and resource group. The operation returns
+ * properties of each OpenShift managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List OpenShift Managed Clusters operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists OpenShift managed clusters in the specified subscription and resource group.
+ *
+ * Lists OpenShift managed clusters in the specified subscription and resource group. The operation returns
+ * properties of each OpenShift managed cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List OpenShift Managed Clusters operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets a OpenShift managed cluster.
+ *
+ * Gets the details of the managed OpenShift cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the managed OpenShift cluster with a specified resource group and name along with
+ * {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String resourceName,
+ Context context);
+
+ /**
+ * Gets a OpenShift managed cluster.
+ *
+ * Gets the details of the managed OpenShift cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the managed OpenShift cluster with a specified resource group and name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner getByResourceGroup(String resourceGroupName, String resourceName);
+
+ /**
+ * Creates or updates an OpenShift managed cluster.
+ *
+ * Creates or updates a OpenShift managed cluster with the specified configuration for agents and OpenShift version.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Create or Update an OpenShift Managed Cluster operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OpenShiftManagedClusterInner>
+ beginCreateOrUpdate(String resourceGroupName, String resourceName, OpenShiftManagedClusterInner parameters);
+
+ /**
+ * Creates or updates an OpenShift managed cluster.
+ *
+ * Creates or updates a OpenShift managed cluster with the specified configuration for agents and OpenShift version.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Create or Update an OpenShift Managed Cluster operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OpenShiftManagedClusterInner> beginCreateOrUpdate(
+ String resourceGroupName, String resourceName, OpenShiftManagedClusterInner parameters, Context context);
+
+ /**
+ * Creates or updates an OpenShift managed cluster.
+ *
+ * Creates or updates a OpenShift managed cluster with the specified configuration for agents and OpenShift version.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Create or Update an OpenShift Managed Cluster operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner createOrUpdate(String resourceGroupName, String resourceName,
+ OpenShiftManagedClusterInner parameters);
+
+ /**
+ * Creates or updates an OpenShift managed cluster.
+ *
+ * Creates or updates a OpenShift managed cluster with the specified configuration for agents and OpenShift version.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Create or Update an OpenShift Managed Cluster operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner createOrUpdate(String resourceGroupName, String resourceName,
+ OpenShiftManagedClusterInner parameters, Context context);
+
+ /**
+ * Updates tags on an OpenShift managed cluster.
+ *
+ * Updates an OpenShift managed cluster with the specified tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Update OpenShift Managed Cluster Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OpenShiftManagedClusterInner>
+ beginUpdateTags(String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates tags on an OpenShift managed cluster.
+ *
+ * Updates an OpenShift managed cluster with the specified tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Update OpenShift Managed Cluster Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OpenShiftManagedClusterInner>
+ beginUpdateTags(String resourceGroupName, String resourceName, TagsObject parameters, Context context);
+
+ /**
+ * Updates tags on an OpenShift managed cluster.
+ *
+ * Updates an OpenShift managed cluster with the specified tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Update OpenShift Managed Cluster Tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters);
+
+ /**
+ * Updates tags on an OpenShift managed cluster.
+ *
+ * Updates an OpenShift managed cluster with the specified tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param parameters Parameters supplied to the Update OpenShift Managed Cluster Tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return openShift Managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OpenShiftManagedClusterInner updateTags(String resourceGroupName, String resourceName, TagsObject parameters,
+ Context context);
+
+ /**
+ * Deletes an OpenShift managed cluster.
+ *
+ * Deletes the OpenShift managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes an OpenShift managed cluster.
+ *
+ * Deletes the OpenShift managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Deletes an OpenShift managed cluster.
+ *
+ * Deletes the OpenShift managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName);
+
+ /**
+ * Deletes an OpenShift managed cluster.
+ *
+ * Deletes the OpenShift managed cluster with a specified resource group and name.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param resourceName The name of the OpenShift managed cluster resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String resourceName, Context context);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/OperationStatusResultsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/OperationStatusResultsClient.java
new file mode 100644
index 0000000000000..e19956eefbee4
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/OperationStatusResultsClient.java
@@ -0,0 +1,107 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.OperationStatusResultInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in OperationStatusResultsClient.
+ */
+public interface OperationStatusResultsClient {
+ /**
+ * Gets a list of operations in the specified managedCluster.
+ *
+ * @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 operations in the specified managedCluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName);
+
+ /**
+ * Gets a list of operations in the specified managedCluster.
+ *
+ * @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 operations in the specified managedCluster as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Get the status of a specific operation 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 operationId The ID of an ongoing async operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the status of a specific operation in the specified managed cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String resourceName,
+ String operationId, Context context);
+
+ /**
+ * Get the status of a specific operation 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 operationId The ID of an ongoing async 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 status of a specific operation in the specified managed cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner get(String resourceGroupName, String resourceName, String operationId);
+
+ /**
+ * Get the status of a specific operation 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 operationId The ID of an ongoing async operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the status of a specific operation in the specified agent pool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByAgentPoolWithResponse(String resourceGroupName, String resourceName,
+ String agentPoolName, String operationId, Context context);
+
+ /**
+ * Get the status of a specific operation 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 operationId The ID of an ongoing async 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 status of a specific operation in the specified agent pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner getByAgentPool(String resourceGroupName, String resourceName, String agentPoolName,
+ String operationId);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/OperationsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..da9f8b2a59b7f
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/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) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.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/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/PrivateEndpointConnectionsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/PrivateEndpointConnectionsClient.java
new file mode 100644
index 0000000000000..a9eaa5ea185e0
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/PrivateEndpointConnectionsClient.java
@@ -0,0 +1,177 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.PrivateEndpointConnectionInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.PrivateEndpointConnectionListResultInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in PrivateEndpointConnectionsClient.
+ */
+public interface PrivateEndpointConnectionsClient {
+ /**
+ * 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionListResultInner list(String resourceGroupName, String resourceName);
+
+ /**
+ * 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 a private endpoint connection 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 a private endpoint connection.
+ */
+ @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);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/PrivateLinkResourcesClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/PrivateLinkResourcesClient.java
new file mode 100644
index 0000000000000..8e674d7108ac6
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/PrivateLinkResourcesClient.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.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 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateLinkResourcesListResultInner list(String resourceGroupName, String resourceName);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ResolvePrivateLinkServiceIdsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ResolvePrivateLinkServiceIdsClient.java
new file mode 100644
index 0000000000000..6a085ec96ee91
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/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) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.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/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ScheduledEventsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ScheduledEventsClient.java
new file mode 100644
index 0000000000000..31f4526a7f707
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/ScheduledEventsClient.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.ScheduledEventInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ScheduledEventsClient.
+ */
+public interface ScheduledEventsClient {
+ /**
+ * Access to this resource type is not currently available via GET. To consume please use System Topics or Azure
+ * Resource Graph.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param scheduledEventName The name of the scheduled event.
+ * @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 body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String resourceName,
+ String scheduledEventName, Context context);
+
+ /**
+ * Access to this resource type is not currently available via GET. To consume please use System Topics or Azure
+ * Resource Graph.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @param scheduledEventName The name of the scheduled event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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)
+ ScheduledEventInner get(String resourceGroupName, String resourceName, String scheduledEventName);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/SnapshotsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/SnapshotsClient.java
new file mode 100644
index 0000000000000..fab12564673c5
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/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) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.SnapshotInner;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.TagsObject;
+
+/**
+ * An instance of this class provides access to all the operations defined in SnapshotsClient.
+ */
+public interface SnapshotsClient {
+ /**
+ * Gets a list of snapshots in the specified subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of snapshots in the specified subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of snapshots in the specified subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of snapshots in the specified subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists snapshots in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Snapshots operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists snapshots in the specified subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Snapshots operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceName The name of the managed cluster resource.
+ * @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);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/TrustedAccessRoleBindingsClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/TrustedAccessRoleBindingsClient.java
new file mode 100644
index 0000000000000..7a0887442a209
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/TrustedAccessRoleBindingsClient.java
@@ -0,0 +1,203 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.generated.fluent.models.TrustedAccessRoleBindingInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in TrustedAccessRoleBindingsClient.
+ */
+public interface TrustedAccessRoleBindingsClient {
+ /**
+ * 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 list of trusted access role bindings 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 list of trusted access role bindings as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String resourceName, 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.
+ * @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);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/TrustedAccessRolesClient.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/TrustedAccessRolesClient.java
new file mode 100644
index 0000000000000..1591dc722359d
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/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) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.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.containerservicemicrosoftcontainerserviceaks.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/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AccessProfile.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AccessProfile.java
new file mode 100644
index 0000000000000..fe4a8038a8576
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AccessProfile.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.CoreUtils;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Profile for enabling a user to access a managed cluster.
+ */
+@Fluent
+public final class AccessProfile {
+ /*
+ * Base64-encoded Kubernetes configuration file.
+ */
+ @JsonProperty(value = "kubeConfig")
+ private byte[] kubeConfig;
+
+ /**
+ * Creates an instance of AccessProfile class.
+ */
+ public AccessProfile() {
+ }
+
+ /**
+ * Get the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeConfig value.
+ */
+ public byte[] kubeConfig() {
+ return CoreUtils.clone(this.kubeConfig);
+ }
+
+ /**
+ * Set the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @param kubeConfig the kubeConfig value to set.
+ * @return the AccessProfile object itself.
+ */
+ public AccessProfile withKubeConfig(byte[] kubeConfig) {
+ this.kubeConfig = CoreUtils.clone(kubeConfig);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolAvailableVersionsInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolAvailableVersionsInner.java
new file mode 100644
index 0000000000000..9a68e9d404f8b
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolAvailableVersionsInner.java
@@ -0,0 +1,123 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * The list of available versions for an agent pool.
+ */
+@Fluent
+public final class AgentPoolAvailableVersionsInner {
+ /*
+ * The ID of the agent pool version list.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the agent pool version list.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Type of the agent pool version list.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Properties of agent pool available versions.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private AgentPoolAvailableVersionsProperties innerProperties = new AgentPoolAvailableVersionsProperties();
+
+ /**
+ * Creates an instance of AgentPoolAvailableVersionsInner class.
+ */
+ public 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();
+ }
+
+ /**
+ * Set the agentPoolVersions property: List of versions available for agent pool.
+ *
+ * @param agentPoolVersions the agentPoolVersions value to set.
+ * @return the AgentPoolAvailableVersionsInner object itself.
+ */
+ public AgentPoolAvailableVersionsInner
+ withAgentPoolVersions(List agentPoolVersions) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolAvailableVersionsProperties();
+ }
+ this.innerProperties().withAgentPoolVersions(agentPoolVersions);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property innerProperties in model AgentPoolAvailableVersionsInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AgentPoolAvailableVersionsInner.class);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolAvailableVersionsProperties.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolAvailableVersionsProperties.java
new file mode 100644
index 0000000000000..80040c5e88db6
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolAvailableVersionsProperties.java
@@ -0,0 +1,60 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * The list of available agent pool versions.
+ */
+@Fluent
+public final class AgentPoolAvailableVersionsProperties {
+ /*
+ * List of versions available for agent pool.
+ */
+ @JsonProperty(value = "agentPoolVersions")
+ private List agentPoolVersions;
+
+ /**
+ * Creates an instance of AgentPoolAvailableVersionsProperties class.
+ */
+ public AgentPoolAvailableVersionsProperties() {
+ }
+
+ /**
+ * Get the agentPoolVersions property: List of versions available for agent pool.
+ *
+ * @return the agentPoolVersions value.
+ */
+ public List agentPoolVersions() {
+ return this.agentPoolVersions;
+ }
+
+ /**
+ * Set the agentPoolVersions property: List of versions available for agent pool.
+ *
+ * @param agentPoolVersions the agentPoolVersions value to set.
+ * @return the AgentPoolAvailableVersionsProperties object itself.
+ */
+ public AgentPoolAvailableVersionsProperties
+ withAgentPoolVersions(List agentPoolVersions) {
+ this.agentPoolVersions = agentPoolVersions;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (agentPoolVersions() != null) {
+ agentPoolVersions().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolInner.java
new file mode 100644
index 0000000000000..c0b806e6f334c
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolInner.java
@@ -0,0 +1,1458 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.SubResource;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolArtifactStreamingProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolGpuProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolNetworkProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolSecurityProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolType;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolUpgradeSettings;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolWindowsProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.CreationData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.GpuInstanceProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.KubeletConfig;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.KubeletDiskType;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.LinuxOSConfig;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OSDiskType;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OSType;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.Ossku;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.PowerState;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ScaleDownMode;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ScaleSetEvictionPolicy;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ScaleSetPriority;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.VirtualMachineNodes;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.VirtualMachinesProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.WorkloadRuntime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Agent Pool.
+ */
+@Fluent
+public final class AgentPoolInner extends SubResource {
+ /*
+ * Properties of an agent pool.
+ */
+ @JsonProperty(value = "properties")
+ private ManagedClusterAgentPoolProfileProperties innerProperties;
+
+ /*
+ * The name of the resource that is unique within a resource group. This name can be used to access the resource.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Resource type
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * 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 name property: The name of the resource that is unique within a resource group. This name can be used to
+ * access the resource.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: Resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AgentPoolInner withId(String id) {
+ super.withId(id);
+ return this;
+ }
+
+ /**
+ * Get the count property: Number of agents (VMs) to host docker containers. Allowed values must be in the range of
+ * 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default
+ * value is 1.
+ *
+ * @return the count value.
+ */
+ public Integer count() {
+ return this.innerProperties() == null ? null : this.innerProperties().count();
+ }
+
+ /**
+ * Set the count property: Number of agents (VMs) to host docker containers. Allowed values must be in the range of
+ * 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default
+ * value is 1.
+ *
+ * @param count the count value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withCount(Integer count) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withCount(count);
+ return this;
+ }
+
+ /**
+ * Get the vmSize property: The size of the agent pool VMs.
+ *
+ * VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods
+ * might fail to run correctly. For more details on restricted VM sizes, see:
+ * https://docs.microsoft.com/azure/aks/quotas-skus-regions.
+ *
+ * @return the vmSize value.
+ */
+ public String vmSize() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmSize();
+ }
+
+ /**
+ * Set the vmSize property: The size of the agent pool VMs.
+ *
+ * VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods
+ * might fail to run correctly. For more details on restricted VM sizes, see:
+ * https://docs.microsoft.com/azure/aks/quotas-skus-regions.
+ *
+ * @param vmSize the vmSize value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withVmSize(String vmSize) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withVmSize(vmSize);
+ return this;
+ }
+
+ /**
+ * Get the osDiskSizeGB property: OS Disk Size in GB to be used to specify the disk size for every machine in the
+ * master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @return the osDiskSizeGB value.
+ */
+ public Integer osDiskSizeGB() {
+ return this.innerProperties() == null ? null : this.innerProperties().osDiskSizeGB();
+ }
+
+ /**
+ * Set the osDiskSizeGB property: OS Disk Size in GB to be used to specify the disk size for every machine in the
+ * master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @param osDiskSizeGB the osDiskSizeGB value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsDiskSizeGB(Integer osDiskSizeGB) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOsDiskSizeGB(osDiskSizeGB);
+ return this;
+ }
+
+ /**
+ * Get the osDiskType property: The OS disk type to be used for machines in the agent pool.
+ *
+ * The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB.
+ * Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ *
+ * @return the osDiskType value.
+ */
+ public OSDiskType osDiskType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osDiskType();
+ }
+
+ /**
+ * Set the osDiskType property: The OS disk type to be used for machines in the agent pool.
+ *
+ * The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB.
+ * Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ *
+ * @param osDiskType the osDiskType value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsDiskType(OSDiskType osDiskType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOsDiskType(osDiskType);
+ return this;
+ }
+
+ /**
+ * Get the kubeletDiskType property: Determines the placement of emptyDir volumes, container runtime data root, and
+ * Kubelet ephemeral storage.
+ *
+ * @return the kubeletDiskType value.
+ */
+ public KubeletDiskType kubeletDiskType() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubeletDiskType();
+ }
+
+ /**
+ * Set the kubeletDiskType property: Determines the placement of emptyDir volumes, container runtime data root, and
+ * Kubelet ephemeral storage.
+ *
+ * @param kubeletDiskType the kubeletDiskType value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withKubeletDiskType(KubeletDiskType kubeletDiskType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withKubeletDiskType(kubeletDiskType);
+ return this;
+ }
+
+ /**
+ * Get the workloadRuntime property: Determines the type of workload a node can run.
+ *
+ * @return the workloadRuntime value.
+ */
+ public WorkloadRuntime workloadRuntime() {
+ return this.innerProperties() == null ? null : this.innerProperties().workloadRuntime();
+ }
+
+ /**
+ * Set the workloadRuntime property: Determines the type of workload a node can run.
+ *
+ * @param workloadRuntime the workloadRuntime value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withWorkloadRuntime(WorkloadRuntime workloadRuntime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withWorkloadRuntime(workloadRuntime);
+ return this;
+ }
+
+ /**
+ * Get the messageOfTheDay property: Message of the day for Linux nodes, base64-encoded.
+ *
+ * A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the
+ * message of the day for Linux nodes. It must not be specified for Windows nodes. It must be a static string
+ * (i.e., will be printed raw and not be executed as a script).
+ *
+ * @return the messageOfTheDay value.
+ */
+ public String messageOfTheDay() {
+ return this.innerProperties() == null ? null : this.innerProperties().messageOfTheDay();
+ }
+
+ /**
+ * Set the messageOfTheDay property: Message of the day for Linux nodes, base64-encoded.
+ *
+ * A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the
+ * message of the day for Linux nodes. It must not be specified for Windows nodes. It must be a static string
+ * (i.e., will be printed raw and not be executed as a script).
+ *
+ * @param messageOfTheDay the messageOfTheDay value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMessageOfTheDay(String messageOfTheDay) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMessageOfTheDay(messageOfTheDay);
+ return this;
+ }
+
+ /**
+ * Get the vnetSubnetId property: The ID of the subnet which agent pool nodes and optionally pods will join on
+ * startup.
+ *
+ * If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, this
+ * applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @return the vnetSubnetId value.
+ */
+ public String vnetSubnetId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vnetSubnetId();
+ }
+
+ /**
+ * Set the vnetSubnetId property: The ID of the subnet which agent pool nodes and optionally pods will join on
+ * startup.
+ *
+ * If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, this
+ * applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @param vnetSubnetId the vnetSubnetId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withVnetSubnetId(String vnetSubnetId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withVnetSubnetId(vnetSubnetId);
+ return this;
+ }
+
+ /**
+ * Get the podSubnetId property: The ID of the subnet which pods will join when launched.
+ *
+ * If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is of
+ * the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @return the podSubnetId value.
+ */
+ public String podSubnetId() {
+ return this.innerProperties() == null ? null : this.innerProperties().podSubnetId();
+ }
+
+ /**
+ * Set the podSubnetId property: The ID of the subnet which pods will join when launched.
+ *
+ * If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is of
+ * the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @param podSubnetId the podSubnetId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withPodSubnetId(String podSubnetId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withPodSubnetId(podSubnetId);
+ return this;
+ }
+
+ /**
+ * Get the maxPods property: The maximum number of pods that can run on a node.
+ *
+ * @return the maxPods value.
+ */
+ public Integer maxPods() {
+ return this.innerProperties() == null ? null : this.innerProperties().maxPods();
+ }
+
+ /**
+ * Set the maxPods property: The maximum number of pods that can run on a node.
+ *
+ * @param maxPods the maxPods value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMaxPods(Integer maxPods) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMaxPods(maxPods);
+ return this;
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * Set the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @param osType the osType value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsType(OSType osType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOsType(osType);
+ return this;
+ }
+
+ /**
+ * Get the osSku property: Specifies the OS SKU used by the agent pool. If not specified, the default is Ubuntu if
+ * OSType=Linux or Windows2019 if OSType=Windows. And the default Windows OSSKU will be changed to Windows2022
+ * after Windows2019 is deprecated.
+ *
+ * @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. If not specified, the default is Ubuntu if
+ * OSType=Linux or Windows2019 if OSType=Windows. And the default Windows OSSKU will be changed to Windows2022
+ * after Windows2019 is deprecated.
+ *
+ * @param osSku the osSku value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOsSku(Ossku osSku) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOsSku(osSku);
+ return this;
+ }
+
+ /**
+ * Get the maxCount property: The maximum number of nodes for auto-scaling.
+ *
+ * @return the maxCount value.
+ */
+ public Integer maxCount() {
+ return this.innerProperties() == null ? null : this.innerProperties().maxCount();
+ }
+
+ /**
+ * Set the maxCount property: The maximum number of nodes for auto-scaling.
+ *
+ * @param maxCount the maxCount value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMaxCount(Integer maxCount) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMaxCount(maxCount);
+ return this;
+ }
+
+ /**
+ * Get the minCount property: The minimum number of nodes for auto-scaling.
+ *
+ * @return the minCount value.
+ */
+ public Integer minCount() {
+ return this.innerProperties() == null ? null : this.innerProperties().minCount();
+ }
+
+ /**
+ * Set the minCount property: The minimum number of nodes for auto-scaling.
+ *
+ * @param minCount the minCount value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMinCount(Integer minCount) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMinCount(minCount);
+ return this;
+ }
+
+ /**
+ * Get the enableAutoScaling property: Whether to enable auto-scaler.
+ *
+ * @return the enableAutoScaling value.
+ */
+ public Boolean enableAutoScaling() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableAutoScaling();
+ }
+
+ /**
+ * Set the enableAutoScaling property: Whether to enable auto-scaler.
+ *
+ * @param enableAutoScaling the enableAutoScaling value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableAutoScaling(Boolean enableAutoScaling) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableAutoScaling(enableAutoScaling);
+ return this;
+ }
+
+ /**
+ * Get the scaleDownMode property: This also effects the cluster autoscaler behavior. If not specified, it defaults
+ * to Delete.
+ *
+ * @return the scaleDownMode value.
+ */
+ public ScaleDownMode scaleDownMode() {
+ return this.innerProperties() == null ? null : this.innerProperties().scaleDownMode();
+ }
+
+ /**
+ * Set the scaleDownMode property: This also effects the cluster autoscaler behavior. If not specified, it defaults
+ * to Delete.
+ *
+ * @param scaleDownMode the scaleDownMode value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withScaleDownMode(ScaleDownMode scaleDownMode) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withScaleDownMode(scaleDownMode);
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of Agent Pool.
+ *
+ * @return the type value.
+ */
+ public AgentPoolType typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Set the type property: The type of Agent Pool.
+ *
+ * @param type the type value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withTypePropertiesType(AgentPoolType type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the mode property: The mode of an agent pool.
+ *
+ * A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool
+ * restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools.
+ *
+ * @return the mode value.
+ */
+ public AgentPoolMode mode() {
+ return this.innerProperties() == null ? null : this.innerProperties().mode();
+ }
+
+ /**
+ * Set the mode property: The mode of an agent pool.
+ *
+ * A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool
+ * restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools.
+ *
+ * @param mode the mode value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withMode(AgentPoolMode mode) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withMode(mode);
+ return this;
+ }
+
+ /**
+ * Get the orchestratorVersion property: The version of Kubernetes specified by the user.
+ *
+ * Both patch version <major.minor.patch> and <major.minor> are supported. When <major.minor> is
+ * specified, the latest supported patch version is chosen automatically. Updating the agent pool with the same
+ * <major.minor> once it has been created will not trigger an upgrade, even if a newer patch version is
+ * available. As a best practice, you should upgrade all node pools in an AKS cluster to the same Kubernetes
+ * version. The node pool version must have the same major version as the control plane. The node pool minor
+ * version must be within two minor versions of the control plane version. The node pool version cannot be greater
+ * than the control plane version. For more information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ *
+ * @return the orchestratorVersion value.
+ */
+ public String orchestratorVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().orchestratorVersion();
+ }
+
+ /**
+ * Set the orchestratorVersion property: The version of Kubernetes specified by the user.
+ *
+ * Both patch version <major.minor.patch> and <major.minor> are supported. When <major.minor> is
+ * specified, the latest supported patch version is chosen automatically. Updating the agent pool with the same
+ * <major.minor> once it has been created will not trigger an upgrade, even if a newer patch version is
+ * available. As a best practice, you should upgrade all node pools in an AKS cluster to the same Kubernetes
+ * version. The node pool version must have the same major version as the control plane. The node pool minor
+ * version must be within two minor versions of the control plane version. The node pool version cannot be greater
+ * than the control plane version. For more information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withOrchestratorVersion(String orchestratorVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withOrchestratorVersion(orchestratorVersion);
+ return this;
+ }
+
+ /**
+ * Get the currentOrchestratorVersion property: The version of Kubernetes running on the Agent Pool.
+ *
+ * If orchestratorVersion was a fully specified version <major.minor.patch>, this field will be exactly equal
+ * to it. If orchestratorVersion was <major.minor>, this field will contain the full
+ * <major.minor.patch> version being used.
+ *
+ * @return the currentOrchestratorVersion value.
+ */
+ public String currentOrchestratorVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().currentOrchestratorVersion();
+ }
+
+ /**
+ * Get the nodeImageVersion property: The version of node image.
+ *
+ * @return the nodeImageVersion value.
+ */
+ public String nodeImageVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeImageVersion();
+ }
+
+ /**
+ * Get the upgradeSettings property: Settings for upgrading the agentpool.
+ *
+ * @return the upgradeSettings value.
+ */
+ public AgentPoolUpgradeSettings upgradeSettings() {
+ return this.innerProperties() == null ? null : this.innerProperties().upgradeSettings();
+ }
+
+ /**
+ * Set the upgradeSettings property: Settings for upgrading the agentpool.
+ *
+ * @param upgradeSettings the upgradeSettings value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withUpgradeSettings(upgradeSettings);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The current deployment or provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the powerState property: When an Agent Pool is first created it is initially Running. The Agent Pool can be
+ * stopped by setting this field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing
+ * charges. An Agent Pool can only be stopped if it is Running and provisioning state is Succeeded.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.innerProperties() == null ? null : this.innerProperties().powerState();
+ }
+
+ /**
+ * Set the powerState property: When an Agent Pool is first created it is initially Running. The Agent Pool can be
+ * stopped by setting this field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing
+ * charges. An Agent Pool can only be stopped if it is Running and provisioning state is Succeeded.
+ *
+ * @param powerState the powerState value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withPowerState(PowerState powerState) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withPowerState(powerState);
+ return this;
+ }
+
+ /**
+ * Get the availabilityZones property: The list of Availability zones to use for nodes. This can only be specified
+ * if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ *
+ * @return the availabilityZones value.
+ */
+ public List availabilityZones() {
+ return this.innerProperties() == null ? null : this.innerProperties().availabilityZones();
+ }
+
+ /**
+ * Set the availabilityZones property: The list of Availability zones to use for nodes. This can only be specified
+ * if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ *
+ * @param availabilityZones the availabilityZones value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withAvailabilityZones(List availabilityZones) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withAvailabilityZones(availabilityZones);
+ return this;
+ }
+
+ /**
+ * Get the enableNodePublicIp property: Whether each node is allocated its own public IP.
+ *
+ * Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. A common
+ * scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine
+ * to minimize hops. For more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ *
+ * @return the enableNodePublicIp value.
+ */
+ public Boolean enableNodePublicIp() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableNodePublicIp();
+ }
+
+ /**
+ * Set the enableNodePublicIp property: Whether each node is allocated its own public IP.
+ *
+ * Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. A common
+ * scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine
+ * to minimize hops. For more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ *
+ * @param enableNodePublicIp the enableNodePublicIp value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableNodePublicIp(Boolean enableNodePublicIp) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableNodePublicIp(enableNodePublicIp);
+ return this;
+ }
+
+ /**
+ * Get the enableCustomCATrust property: Whether to enable Custom CA Trust feature.
+ *
+ * When set to true, AKS adds a label to the node indicating that the feature is enabled and deploys a daemonset
+ * along with host services to sync custom certificate authorities from user-provided list of base64 encoded
+ * certificates into node trust stores. Defaults to false.
+ *
+ * @return the enableCustomCATrust value.
+ */
+ public Boolean enableCustomCATrust() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableCustomCATrust();
+ }
+
+ /**
+ * Set the enableCustomCATrust property: Whether to enable Custom CA Trust feature.
+ *
+ * When set to true, AKS adds a label to the node indicating that the feature is enabled and deploys a daemonset
+ * along with host services to sync custom certificate authorities from user-provided list of base64 encoded
+ * certificates into node trust stores. Defaults to false.
+ *
+ * @param enableCustomCATrust the enableCustomCATrust value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableCustomCATrust(Boolean enableCustomCATrust) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableCustomCATrust(enableCustomCATrust);
+ return this;
+ }
+
+ /**
+ * Get the nodePublicIpPrefixId property: The public IP prefix ID which VM nodes should use IPs from.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}.
+ *
+ * @return the nodePublicIpPrefixId value.
+ */
+ public String nodePublicIpPrefixId() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodePublicIpPrefixId();
+ }
+
+ /**
+ * Set the nodePublicIpPrefixId property: The public IP prefix ID which VM nodes should use IPs from.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}.
+ *
+ * @param nodePublicIpPrefixId the nodePublicIpPrefixId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNodePublicIpPrefixId(String nodePublicIpPrefixId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withNodePublicIpPrefixId(nodePublicIpPrefixId);
+ return this;
+ }
+
+ /**
+ * Get the scaleSetPriority property: The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ *
+ * @return the scaleSetPriority value.
+ */
+ public ScaleSetPriority scaleSetPriority() {
+ return this.innerProperties() == null ? null : this.innerProperties().scaleSetPriority();
+ }
+
+ /**
+ * Set the scaleSetPriority property: The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ *
+ * @param scaleSetPriority the scaleSetPriority value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withScaleSetPriority(ScaleSetPriority scaleSetPriority) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withScaleSetPriority(scaleSetPriority);
+ return this;
+ }
+
+ /**
+ * Get the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy.
+ *
+ * This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ *
+ * @return the scaleSetEvictionPolicy value.
+ */
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().scaleSetEvictionPolicy();
+ }
+
+ /**
+ * Set the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy.
+ *
+ * This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ *
+ * @param scaleSetEvictionPolicy the scaleSetEvictionPolicy value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withScaleSetEvictionPolicy(scaleSetEvictionPolicy);
+ return this;
+ }
+
+ /**
+ * Get the spotMaxPrice property: The max price (in US Dollars) you are willing to pay for spot instances. Possible
+ * values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing).
+ *
+ * @return the spotMaxPrice value.
+ */
+ public Float spotMaxPrice() {
+ return this.innerProperties() == null ? null : this.innerProperties().spotMaxPrice();
+ }
+
+ /**
+ * Set the spotMaxPrice property: The max price (in US Dollars) you are willing to pay for spot instances. Possible
+ * values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing).
+ *
+ * @param spotMaxPrice the spotMaxPrice value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withSpotMaxPrice(Float spotMaxPrice) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withSpotMaxPrice(spotMaxPrice);
+ return this;
+ }
+
+ /**
+ * Get the tags property: The tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.innerProperties() == null ? null : this.innerProperties().tags();
+ }
+
+ /**
+ * Set the tags property: The tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @param tags the tags value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withTags(Map tags) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the nodeLabels property: The node labels to be persisted across all nodes in agent pool.
+ *
+ * @return the nodeLabels value.
+ */
+ public Map nodeLabels() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeLabels();
+ }
+
+ /**
+ * Set the nodeLabels property: The node labels to be persisted across all nodes in agent pool.
+ *
+ * @param nodeLabels the nodeLabels value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNodeLabels(Map nodeLabels) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withNodeLabels(nodeLabels);
+ return this;
+ }
+
+ /**
+ * Get the nodeTaints property: The taints added to new nodes during node pool create and scale. For example,
+ * key=value:NoSchedule.
+ *
+ * @return the nodeTaints value.
+ */
+ public List nodeTaints() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeTaints();
+ }
+
+ /**
+ * Set the nodeTaints property: The taints added to new nodes during node pool create and scale. For example,
+ * key=value:NoSchedule.
+ *
+ * @param nodeTaints the nodeTaints value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNodeTaints(List nodeTaints) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withNodeTaints(nodeTaints);
+ return this;
+ }
+
+ /**
+ * Get the nodeInitializationTaints property: Taints added on the nodes during creation that will not be reconciled
+ * by AKS.
+ *
+ * These taints will not be reconciled by AKS and can be removed with a kubectl call. This field can be modified
+ * after node pool is created, but nodes will not be recreated with new taints until another operation that
+ * requires recreation (e.g. node image upgrade) happens. These taints allow for required configuration to run
+ * before the node is ready to accept workloads, for example 'key1=value1:NoSchedule' that then can be removed with
+ * `kubectl taint nodes node1 key1=value1:NoSchedule-`.
+ *
+ * @return the nodeInitializationTaints value.
+ */
+ public List nodeInitializationTaints() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeInitializationTaints();
+ }
+
+ /**
+ * Set the nodeInitializationTaints property: Taints added on the nodes during creation that will not be reconciled
+ * by AKS.
+ *
+ * These taints will not be reconciled by AKS and can be removed with a kubectl call. This field can be modified
+ * after node pool is created, but nodes will not be recreated with new taints until another operation that
+ * requires recreation (e.g. node image upgrade) happens. These taints allow for required configuration to run
+ * before the node is ready to accept workloads, for example 'key1=value1:NoSchedule' that then can be removed with
+ * `kubectl taint nodes node1 key1=value1:NoSchedule-`.
+ *
+ * @param nodeInitializationTaints the nodeInitializationTaints value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withNodeInitializationTaints(List nodeInitializationTaints) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withNodeInitializationTaints(nodeInitializationTaints);
+ return this;
+ }
+
+ /**
+ * Get the proximityPlacementGroupId property: The ID for Proximity Placement Group.
+ *
+ * @return the proximityPlacementGroupId value.
+ */
+ public String proximityPlacementGroupId() {
+ return this.innerProperties() == null ? null : this.innerProperties().proximityPlacementGroupId();
+ }
+
+ /**
+ * Set the proximityPlacementGroupId property: The ID for Proximity Placement Group.
+ *
+ * @param proximityPlacementGroupId the proximityPlacementGroupId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withProximityPlacementGroupId(String proximityPlacementGroupId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withProximityPlacementGroupId(proximityPlacementGroupId);
+ return this;
+ }
+
+ /**
+ * Get the kubeletConfig property: Kubelet configurations of agent nodes.
+ *
+ * The Kubelet configuration on the agent pool nodes.
+ *
+ * @return the kubeletConfig value.
+ */
+ public KubeletConfig kubeletConfig() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubeletConfig();
+ }
+
+ /**
+ * Set the kubeletConfig property: Kubelet configurations of agent nodes.
+ *
+ * The Kubelet configuration on the agent pool nodes.
+ *
+ * @param kubeletConfig the kubeletConfig value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withKubeletConfig(KubeletConfig kubeletConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withKubeletConfig(kubeletConfig);
+ return this;
+ }
+
+ /**
+ * Get the linuxOSConfig property: OS configurations of Linux agent nodes.
+ *
+ * The OS configuration of Linux agent nodes.
+ *
+ * @return the linuxOSConfig value.
+ */
+ public LinuxOSConfig linuxOSConfig() {
+ return this.innerProperties() == null ? null : this.innerProperties().linuxOSConfig();
+ }
+
+ /**
+ * Set the linuxOSConfig property: OS configurations of Linux agent nodes.
+ *
+ * The OS configuration of Linux agent nodes.
+ *
+ * @param linuxOSConfig the linuxOSConfig value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withLinuxOSConfig(LinuxOSConfig linuxOSConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withLinuxOSConfig(linuxOSConfig);
+ return this;
+ }
+
+ /**
+ * Get the enableEncryptionAtHost property: Whether to enable host based OS and data drive encryption.
+ *
+ * This is only supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption.
+ *
+ * @return the enableEncryptionAtHost value.
+ */
+ public Boolean enableEncryptionAtHost() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableEncryptionAtHost();
+ }
+
+ /**
+ * Set the enableEncryptionAtHost property: Whether to enable host based OS and data drive encryption.
+ *
+ * This is only supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption.
+ *
+ * @param enableEncryptionAtHost the enableEncryptionAtHost value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableEncryptionAtHost(Boolean enableEncryptionAtHost) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableEncryptionAtHost(enableEncryptionAtHost);
+ return this;
+ }
+
+ /**
+ * Get the enableUltraSsd property: Whether to enable UltraSSD.
+ *
+ * @return the enableUltraSsd value.
+ */
+ public Boolean enableUltraSsd() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableUltraSsd();
+ }
+
+ /**
+ * Set the enableUltraSsd property: Whether to enable UltraSSD.
+ *
+ * @param enableUltraSsd the enableUltraSsd value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableUltraSsd(Boolean enableUltraSsd) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableUltraSsd(enableUltraSsd);
+ return this;
+ }
+
+ /**
+ * Get the enableFips property: Whether to use a FIPS-enabled OS.
+ *
+ * See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for
+ * more details.
+ *
+ * @return the enableFips value.
+ */
+ public Boolean enableFips() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableFips();
+ }
+
+ /**
+ * Set the enableFips property: Whether to use a FIPS-enabled OS.
+ *
+ * See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for
+ * more details.
+ *
+ * @param enableFips the enableFips value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withEnableFips(Boolean enableFips) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withEnableFips(enableFips);
+ return this;
+ }
+
+ /**
+ * Get the gpuInstanceProfile property: GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ *
+ * @return the gpuInstanceProfile value.
+ */
+ public GpuInstanceProfile gpuInstanceProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().gpuInstanceProfile();
+ }
+
+ /**
+ * Set the gpuInstanceProfile property: GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ *
+ * @param gpuInstanceProfile the gpuInstanceProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withGpuInstanceProfile(GpuInstanceProfile gpuInstanceProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withGpuInstanceProfile(gpuInstanceProfile);
+ return this;
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source Snapshot ID if the node pool will
+ * be created/upgraded using a snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.innerProperties() == null ? null : this.innerProperties().creationData();
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source Snapshot ID if the node pool will
+ * be created/upgraded using a snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withCreationData(CreationData creationData) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withCreationData(creationData);
+ return this;
+ }
+
+ /**
+ * Get the capacityReservationGroupId property: The fully qualified resource ID of the Capacity Reservation Group
+ * to provide virtual machines from a reserved group of Virtual Machines.
+ *
+ * AKS will associate the specified agent pool with the Capacity Reservation Group.
+ *
+ * @return the capacityReservationGroupId value.
+ */
+ public String capacityReservationGroupId() {
+ return this.innerProperties() == null ? null : this.innerProperties().capacityReservationGroupId();
+ }
+
+ /**
+ * Set the capacityReservationGroupId property: The fully qualified resource ID of the Capacity Reservation Group
+ * to provide virtual machines from a reserved group of Virtual Machines.
+ *
+ * AKS will associate the specified agent pool with the Capacity Reservation Group.
+ *
+ * @param capacityReservationGroupId the capacityReservationGroupId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withCapacityReservationGroupId(String capacityReservationGroupId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withCapacityReservationGroupId(capacityReservationGroupId);
+ return this;
+ }
+
+ /**
+ * Get the hostGroupId property: The fully qualified resource ID of the Dedicated Host Group to provision virtual
+ * machines from, used only in creation scenario and not allowed to changed once set.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ *
+ * @return the hostGroupId value.
+ */
+ public String hostGroupId() {
+ return this.innerProperties() == null ? null : this.innerProperties().hostGroupId();
+ }
+
+ /**
+ * Set the hostGroupId property: The fully qualified resource ID of the Dedicated Host Group to provision virtual
+ * machines from, used only in creation scenario and not allowed to changed once set.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ *
+ * @param hostGroupId the hostGroupId value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withHostGroupId(String hostGroupId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withHostGroupId(hostGroupId);
+ return this;
+ }
+
+ /**
+ * 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 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 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: The GPU settings of an agent pool.
+ *
+ * @return the gpuProfile value.
+ */
+ public AgentPoolGpuProfile gpuProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().gpuProfile();
+ }
+
+ /**
+ * Set the gpuProfile property: The GPU settings of an agent pool.
+ *
+ * @param gpuProfile the gpuProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withGpuProfile(AgentPoolGpuProfile gpuProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withGpuProfile(gpuProfile);
+ return this;
+ }
+
+ /**
+ * Get the artifactStreamingProfile property: Configuration for using artifact streaming on AKS.
+ *
+ * @return the artifactStreamingProfile value.
+ */
+ public AgentPoolArtifactStreamingProfile artifactStreamingProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().artifactStreamingProfile();
+ }
+
+ /**
+ * Set the artifactStreamingProfile property: Configuration for using artifact streaming on AKS.
+ *
+ * @param artifactStreamingProfile the artifactStreamingProfile value to set.
+ * @return the AgentPoolInner object itself.
+ */
+ public AgentPoolInner withArtifactStreamingProfile(AgentPoolArtifactStreamingProfile artifactStreamingProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterAgentPoolProfileProperties();
+ }
+ this.innerProperties().withArtifactStreamingProfile(artifactStreamingProfile);
+ 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolUpgradeProfileInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolUpgradeProfileInner.java
new file mode 100644
index 0000000000000..69988678063be
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolUpgradeProfileInner.java
@@ -0,0 +1,192 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OSType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * The list of available upgrades for an agent pool.
+ */
+@Fluent
+public final class AgentPoolUpgradeProfileInner {
+ /*
+ * The ID of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The type of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The properties of the agent pool upgrade profile.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private AgentPoolUpgradeProfileProperties innerProperties = new AgentPoolUpgradeProfileProperties();
+
+ /**
+ * Creates an instance of AgentPoolUpgradeProfileInner class.
+ */
+ public AgentPoolUpgradeProfileInner() {
+ }
+
+ /**
+ * Get the id property: The ID of the agent pool upgrade profile.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The name of the agent pool upgrade profile.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The type of the agent pool upgrade profile.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: The properties of the agent pool upgrade profile.
+ *
+ * @return the innerProperties value.
+ */
+ private AgentPoolUpgradeProfileProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubernetesVersion();
+ }
+
+ /**
+ * Set the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set.
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withKubernetesVersion(String kubernetesVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolUpgradeProfileProperties();
+ }
+ this.innerProperties().withKubernetesVersion(kubernetesVersion);
+ return this;
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * Set the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @param osType the osType value to set.
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withOsType(OSType osType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolUpgradeProfileProperties();
+ }
+ this.innerProperties().withOsType(osType);
+ return this;
+ }
+
+ /**
+ * Get the upgrades property: List of orchestrator types and versions available for upgrade.
+ *
+ * @return the upgrades value.
+ */
+ public List upgrades() {
+ return this.innerProperties() == null ? null : this.innerProperties().upgrades();
+ }
+
+ /**
+ * Set the upgrades property: List of orchestrator types and versions available for upgrade.
+ *
+ * @param upgrades the upgrades value to set.
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withUpgrades(List upgrades) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolUpgradeProfileProperties();
+ }
+ this.innerProperties().withUpgrades(upgrades);
+ return this;
+ }
+
+ /**
+ * Get the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @return the latestNodeImageVersion value.
+ */
+ public String latestNodeImageVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().latestNodeImageVersion();
+ }
+
+ /**
+ * Set the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @param latestNodeImageVersion the latestNodeImageVersion value to set.
+ * @return the AgentPoolUpgradeProfileInner object itself.
+ */
+ public AgentPoolUpgradeProfileInner withLatestNodeImageVersion(String latestNodeImageVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AgentPoolUpgradeProfileProperties();
+ }
+ this.innerProperties().withLatestNodeImageVersion(latestNodeImageVersion);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property innerProperties in model AgentPoolUpgradeProfileInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AgentPoolUpgradeProfileInner.class);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolUpgradeProfileProperties.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolUpgradeProfileProperties.java
new file mode 100644
index 0000000000000..000b9ba544cbd
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/AgentPoolUpgradeProfileProperties.java
@@ -0,0 +1,150 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolUpgradeProfilePropertiesUpgradesItem;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OSType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * The list of available upgrade versions.
+ */
+@Fluent
+public final class AgentPoolUpgradeProfileProperties {
+ /*
+ * The Kubernetes version (major.minor.patch).
+ */
+ @JsonProperty(value = "kubernetesVersion", required = true)
+ private String kubernetesVersion;
+
+ /*
+ * OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ */
+ @JsonProperty(value = "osType", required = true)
+ private OSType osType;
+
+ /*
+ * List of orchestrator types and versions available for upgrade.
+ */
+ @JsonProperty(value = "upgrades")
+ private List upgrades;
+
+ /*
+ * The latest AKS supported node image version.
+ */
+ @JsonProperty(value = "latestNodeImageVersion")
+ private String latestNodeImageVersion;
+
+ /**
+ * Creates an instance of AgentPoolUpgradeProfileProperties class.
+ */
+ public AgentPoolUpgradeProfileProperties() {
+ }
+
+ /**
+ * Get the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set the kubernetesVersion property: The Kubernetes version (major.minor.patch).
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set.
+ * @return the AgentPoolUpgradeProfileProperties object itself.
+ */
+ public AgentPoolUpgradeProfileProperties withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @param osType the osType value to set.
+ * @return the AgentPoolUpgradeProfileProperties object itself.
+ */
+ public AgentPoolUpgradeProfileProperties withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the upgrades property: List of orchestrator types and versions available for upgrade.
+ *
+ * @return the upgrades value.
+ */
+ public List upgrades() {
+ return this.upgrades;
+ }
+
+ /**
+ * Set the upgrades property: List of orchestrator types and versions available for upgrade.
+ *
+ * @param upgrades the upgrades value to set.
+ * @return the AgentPoolUpgradeProfileProperties object itself.
+ */
+ public AgentPoolUpgradeProfileProperties
+ withUpgrades(List upgrades) {
+ this.upgrades = upgrades;
+ return this;
+ }
+
+ /**
+ * Get the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @return the latestNodeImageVersion value.
+ */
+ public String latestNodeImageVersion() {
+ return this.latestNodeImageVersion;
+ }
+
+ /**
+ * Set the latestNodeImageVersion property: The latest AKS supported node image version.
+ *
+ * @param latestNodeImageVersion the latestNodeImageVersion value to set.
+ * @return the AgentPoolUpgradeProfileProperties object itself.
+ */
+ public AgentPoolUpgradeProfileProperties withLatestNodeImageVersion(String latestNodeImageVersion) {
+ this.latestNodeImageVersion = latestNodeImageVersion;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (kubernetesVersion() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property kubernetesVersion in model AgentPoolUpgradeProfileProperties"));
+ }
+ if (osType() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property osType in model AgentPoolUpgradeProfileProperties"));
+ }
+ if (upgrades() != null) {
+ upgrades().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AgentPoolUpgradeProfileProperties.class);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/CommandResultProperties.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/CommandResultProperties.java
new file mode 100644
index 0000000000000..83061a9799485
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/CommandResultProperties.java
@@ -0,0 +1,119 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/**
+ * The results of a run command.
+ */
+@Immutable
+public final class CommandResultProperties {
+ /*
+ * provisioning State
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * The exit code of the command
+ */
+ @JsonProperty(value = "exitCode", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer exitCode;
+
+ /*
+ * The time when the command started.
+ */
+ @JsonProperty(value = "startedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime startedAt;
+
+ /*
+ * The time when the command finished.
+ */
+ @JsonProperty(value = "finishedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime finishedAt;
+
+ /*
+ * The command output.
+ */
+ @JsonProperty(value = "logs", access = JsonProperty.Access.WRITE_ONLY)
+ private String logs;
+
+ /*
+ * An explanation of why provisioningState is set to failed (if so).
+ */
+ @JsonProperty(value = "reason", access = JsonProperty.Access.WRITE_ONLY)
+ private String reason;
+
+ /**
+ * Creates an instance of CommandResultProperties class.
+ */
+ public 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/CredentialResultsInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/CredentialResultsInner.java
new file mode 100644
index 0000000000000..b71cac07562e8
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/CredentialResultsInner.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.CredentialResult;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * The list credential result response.
+ */
+@Immutable
+public final class CredentialResultsInner {
+ /*
+ * Base64-encoded Kubernetes configuration file.
+ */
+ @JsonProperty(value = "kubeconfigs", access = JsonProperty.Access.WRITE_ONLY)
+ private List kubeconfigs;
+
+ /**
+ * Creates an instance of CredentialResultsInner class.
+ */
+ public CredentialResultsInner() {
+ }
+
+ /**
+ * Get the kubeconfigs property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeconfigs value.
+ */
+ public List kubeconfigs() {
+ return this.kubeconfigs;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (kubeconfigs() != null) {
+ kubeconfigs().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/GuardrailsAvailableVersionInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/GuardrailsAvailableVersionInner.java
new file mode 100644
index 0000000000000..cfde3d18e9b58
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/GuardrailsAvailableVersionInner.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.GuardrailsAvailableVersionsProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Available Guardrails Version.
+ */
+@Fluent
+public final class GuardrailsAvailableVersionInner extends ProxyResource {
+ /*
+ * Whether the version is default or not and support info.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private GuardrailsAvailableVersionsProperties properties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Creates an instance of GuardrailsAvailableVersionInner class.
+ */
+ public GuardrailsAvailableVersionInner() {
+ }
+
+ /**
+ * Get the properties property: Whether the version is default or not and support info.
+ *
+ * @return the properties value.
+ */
+ public GuardrailsAvailableVersionsProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Whether the version is default or not and support info.
+ *
+ * @param properties the properties value to set.
+ * @return the GuardrailsAvailableVersionInner object itself.
+ */
+ public GuardrailsAvailableVersionInner withProperties(GuardrailsAvailableVersionsProperties properties) {
+ this.properties = properties;
+ 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property properties in model GuardrailsAvailableVersionInner"));
+ } else {
+ properties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(GuardrailsAvailableVersionInner.class);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/KubernetesVersionListResultInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/KubernetesVersionListResultInner.java
new file mode 100644
index 0000000000000..0a55116d962c8
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/KubernetesVersionListResultInner.java
@@ -0,0 +1,59 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.KubernetesVersion;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * Hold values properties, which is array of KubernetesVersion.
+ */
+@Fluent
+public final class KubernetesVersionListResultInner {
+ /*
+ * Array of AKS supported Kubernetes versions.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Creates an instance of KubernetesVersionListResultInner class.
+ */
+ public KubernetesVersionListResultInner() {
+ }
+
+ /**
+ * Get the values property: Array of AKS supported Kubernetes versions.
+ *
+ * @return the values value.
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the values property: Array of AKS supported Kubernetes versions.
+ *
+ * @param values the values value to set.
+ * @return the KubernetesVersionListResultInner object itself.
+ */
+ public KubernetesVersionListResultInner withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (values() != null) {
+ values().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MachineInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MachineInner.java
new file mode 100644
index 0000000000000..e877d23b477db
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MachineInner.java
@@ -0,0 +1,89 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.SubResource;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.MachineProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * 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.
+ */
+@Fluent
+public final class MachineInner extends SubResource {
+ /*
+ * The properties of the machine
+ */
+ @JsonProperty(value = "properties", access = JsonProperty.Access.WRITE_ONLY)
+ private MachineProperties properties;
+
+ /*
+ * The name of the resource that is unique within a resource group. This name can be used to access the resource.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Resource type
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * Creates an instance of MachineInner class.
+ */
+ public MachineInner() {
+ }
+
+ /**
+ * Get the properties property: The properties of the machine.
+ *
+ * @return the properties value.
+ */
+ public MachineProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Get the name property: The name of the resource that is unique within a resource group. This name can be used to
+ * access the resource.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: Resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public MachineInner withId(String id) {
+ super.withId(id);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MaintenanceConfigurationInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MaintenanceConfigurationInner.java
new file mode 100644
index 0000000000000..657442f90413c
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MaintenanceConfigurationInner.java
@@ -0,0 +1,185 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.SubResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.MaintenanceWindow;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.TimeSpan;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * Planned maintenance configuration, used to configure when updates can be deployed to a Managed Cluster.
+ *
+ * See [planned maintenance](https://docs.microsoft.com/azure/aks/planned-maintenance) for more information about
+ * planned maintenance.
+ */
+@Fluent
+public final class MaintenanceConfigurationInner extends SubResource {
+ /*
+ * The system metadata relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a default maintenance configuration.
+ */
+ @JsonProperty(value = "properties")
+ private MaintenanceConfigurationProperties innerProperties;
+
+ /*
+ * The name of the resource that is unique within a resource group. This name can be used to access the resource.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Resource type
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * Creates an instance of MaintenanceConfigurationInner class.
+ */
+ public MaintenanceConfigurationInner() {
+ }
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a default maintenance configuration.
+ *
+ * @return the innerProperties value.
+ */
+ private MaintenanceConfigurationProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the name property: The name of the resource that is unique within a resource group. This name can be used to
+ * access the resource.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: Resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public MaintenanceConfigurationInner withId(String id) {
+ super.withId(id);
+ return this;
+ }
+
+ /**
+ * Get the timeInWeek property: Time slots during the week when planned maintenance is allowed to proceed.
+ *
+ * If two array entries specify the same day of the week, the applied configuration is the union of times in both
+ * entries.
+ *
+ * @return the timeInWeek value.
+ */
+ public List timeInWeek() {
+ return this.innerProperties() == null ? null : this.innerProperties().timeInWeek();
+ }
+
+ /**
+ * Set the timeInWeek property: Time slots during the week when planned maintenance is allowed to proceed.
+ *
+ * If two array entries specify the same day of the week, the applied configuration is the union of times in both
+ * entries.
+ *
+ * @param timeInWeek the timeInWeek value to set.
+ * @return the MaintenanceConfigurationInner object itself.
+ */
+ public MaintenanceConfigurationInner withTimeInWeek(List timeInWeek) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MaintenanceConfigurationProperties();
+ }
+ this.innerProperties().withTimeInWeek(timeInWeek);
+ return this;
+ }
+
+ /**
+ * Get the notAllowedTime property: Time slots on which upgrade is not allowed.
+ *
+ * @return the notAllowedTime value.
+ */
+ public List notAllowedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().notAllowedTime();
+ }
+
+ /**
+ * Set the notAllowedTime property: Time slots on which upgrade is not allowed.
+ *
+ * @param notAllowedTime the notAllowedTime value to set.
+ * @return the MaintenanceConfigurationInner object itself.
+ */
+ public MaintenanceConfigurationInner withNotAllowedTime(List notAllowedTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MaintenanceConfigurationProperties();
+ }
+ this.innerProperties().withNotAllowedTime(notAllowedTime);
+ return this;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MaintenanceConfigurationProperties.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MaintenanceConfigurationProperties.java
new file mode 100644
index 0000000000000..a6b5b35c154fa
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MaintenanceConfigurationProperties.java
@@ -0,0 +1,128 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.MaintenanceWindow;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.TimeInWeek;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.TimeSpan;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * Properties used to configure planned maintenance for a Managed Cluster.
+ */
+@Fluent
+public final class MaintenanceConfigurationProperties {
+ /*
+ * Time slots during the week when planned maintenance is allowed to proceed.
+ *
+ * If two array entries specify the same day of the week, the applied configuration is the union of times in both
+ * entries.
+ */
+ @JsonProperty(value = "timeInWeek")
+ private List timeInWeek;
+
+ /*
+ * Time slots on which upgrade is not allowed.
+ */
+ @JsonProperty(value = "notAllowedTime")
+ private List notAllowedTime;
+
+ /*
+ * Maintenance window for the maintenance configuration.
+ */
+ @JsonProperty(value = "maintenanceWindow")
+ 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (timeInWeek() != null) {
+ timeInWeek().forEach(e -> e.validate());
+ }
+ if (notAllowedTime() != null) {
+ notAllowedTime().forEach(e -> e.validate());
+ }
+ if (maintenanceWindow() != null) {
+ maintenanceWindow().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterAccessProfileInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterAccessProfileInner.java
new file mode 100644
index 0000000000000..56d1664b2aac1
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterAccessProfileInner.java
@@ -0,0 +1,107 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/**
+ * Managed cluster Access Profile.
+ */
+@Fluent
+public final class ManagedClusterAccessProfileInner extends Resource {
+ private static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
+
+ /*
+ * AccessProfile of a managed cluster.
+ */
+ @JsonProperty(value = "properties")
+ private AccessProfile innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Creates an instance of ManagedClusterAccessProfileInner class.
+ */
+ public 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;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ManagedClusterAccessProfileInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ManagedClusterAccessProfileInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @return the kubeConfig value.
+ */
+ public byte[] kubeConfig() {
+ return this.innerProperties() == null ? EMPTY_BYTE_ARRAY : this.innerProperties().kubeConfig();
+ }
+
+ /**
+ * Set the kubeConfig property: Base64-encoded Kubernetes configuration file.
+ *
+ * @param kubeConfig the kubeConfig value to set.
+ * @return the ManagedClusterAccessProfileInner object itself.
+ */
+ public ManagedClusterAccessProfileInner withKubeConfig(byte[] kubeConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessProfile();
+ }
+ this.innerProperties().withKubeConfig(kubeConfig);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterAgentPoolProfileProperties.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterAgentPoolProfileProperties.java
new file mode 100644
index 0000000000000..5b53568937851
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterAgentPoolProfileProperties.java
@@ -0,0 +1,1703 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolArtifactStreamingProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolGpuProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolMode;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolNetworkProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolSecurityProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolType;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolUpgradeSettings;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.AgentPoolWindowsProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.CreationData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.GpuInstanceProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.KubeletConfig;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.KubeletDiskType;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.LinuxOSConfig;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OSDiskType;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OSType;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.Ossku;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.PowerState;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ScaleDownMode;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ScaleSetEvictionPolicy;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ScaleSetPriority;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.VirtualMachineNodes;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.VirtualMachinesProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.WorkloadRuntime;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Properties for the container service agent pool profile.
+ */
+@Fluent
+public class ManagedClusterAgentPoolProfileProperties {
+ /*
+ * Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive)
+ * for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1.
+ */
+ @JsonProperty(value = "count")
+ private Integer count;
+
+ /*
+ * The size of the agent pool VMs.
+ *
+ * VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods
+ * might fail to run correctly. For more details on restricted VM sizes, see:
+ * https://docs.microsoft.com/azure/aks/quotas-skus-regions
+ */
+ @JsonProperty(value = "vmSize")
+ private String vmSize;
+
+ /*
+ * OS Disk Size in GB to be used to specify the disk size for every machine in the master/agent pool. If you
+ * specify 0, it will apply the default osDisk size according to the vmSize specified.
+ */
+ @JsonProperty(value = "osDiskSizeGB")
+ private Integer osDiskSizeGB;
+
+ /*
+ * The OS disk type to be used for machines in the agent pool.
+ *
+ * The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB.
+ * Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ */
+ @JsonProperty(value = "osDiskType")
+ private OSDiskType osDiskType;
+
+ /*
+ * Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage.
+ */
+ @JsonProperty(value = "kubeletDiskType")
+ private KubeletDiskType kubeletDiskType;
+
+ /*
+ * Determines the type of workload a node can run.
+ */
+ @JsonProperty(value = "workloadRuntime")
+ private WorkloadRuntime workloadRuntime;
+
+ /*
+ * Message of the day for Linux nodes, base64-encoded.
+ *
+ * A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the
+ * message of the day for Linux nodes. It must not be specified for Windows nodes. It must be a static string
+ * (i.e., will be printed raw and not be executed as a script).
+ */
+ @JsonProperty(value = "messageOfTheDay")
+ private String messageOfTheDay;
+
+ /*
+ * The ID of the subnet which agent pool nodes and optionally pods will join on startup.
+ *
+ * If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, this
+ * applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{
+ * virtualNetworkName}/subnets/{subnetName}
+ */
+ @JsonProperty(value = "vnetSubnetID")
+ private String vnetSubnetId;
+
+ /*
+ * The ID of the subnet which pods will join when launched.
+ *
+ * If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is of
+ * the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{
+ * virtualNetworkName}/subnets/{subnetName}
+ */
+ @JsonProperty(value = "podSubnetID")
+ private String podSubnetId;
+
+ /*
+ * The maximum number of pods that can run on a node.
+ */
+ @JsonProperty(value = "maxPods")
+ private Integer maxPods;
+
+ /*
+ * OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ */
+ @JsonProperty(value = "osType")
+ private OSType osType;
+
+ /*
+ * Specifies the OS SKU used by the agent pool. If not specified, the default is Ubuntu if OSType=Linux or
+ * Windows2019 if OSType=Windows. And the default Windows OSSKU will be changed to Windows2022 after Windows2019 is
+ * deprecated.
+ */
+ @JsonProperty(value = "osSKU")
+ private Ossku osSku;
+
+ /*
+ * The maximum number of nodes for auto-scaling
+ */
+ @JsonProperty(value = "maxCount")
+ private Integer maxCount;
+
+ /*
+ * The minimum number of nodes for auto-scaling
+ */
+ @JsonProperty(value = "minCount")
+ private Integer minCount;
+
+ /*
+ * Whether to enable auto-scaler
+ */
+ @JsonProperty(value = "enableAutoScaling")
+ private Boolean enableAutoScaling;
+
+ /*
+ * This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete.
+ */
+ @JsonProperty(value = "scaleDownMode")
+ private ScaleDownMode scaleDownMode;
+
+ /*
+ * The type of Agent Pool.
+ */
+ @JsonProperty(value = "type")
+ private AgentPoolType type;
+
+ /*
+ * The mode of an agent pool.
+ *
+ * A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool
+ * restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools
+ */
+ @JsonProperty(value = "mode")
+ private AgentPoolMode mode;
+
+ /*
+ * The version of Kubernetes specified by the user.
+ *
+ * Both patch version and are supported. When is specified, the
+ * latest supported patch version is chosen automatically. Updating the agent pool with the same once
+ * it has been created will not trigger an upgrade, even if a newer patch version is available. As a best practice,
+ * you should upgrade all node pools in an AKS cluster to the same Kubernetes version. The node pool version must
+ * have the same major version as the control plane. The node pool minor version must be within two minor versions
+ * of the control plane version. The node pool version cannot be greater than the control plane version. For more
+ * information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ */
+ @JsonProperty(value = "orchestratorVersion")
+ private String orchestratorVersion;
+
+ /*
+ * The version of Kubernetes running on the Agent Pool.
+ *
+ * If orchestratorVersion was a fully specified version , this field will be exactly equal to
+ * it. If orchestratorVersion was , this field will contain the full version being
+ * used.
+ */
+ @JsonProperty(value = "currentOrchestratorVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String currentOrchestratorVersion;
+
+ /*
+ * The version of node image
+ */
+ @JsonProperty(value = "nodeImageVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeImageVersion;
+
+ /*
+ * Settings for upgrading the agentpool
+ */
+ @JsonProperty(value = "upgradeSettings")
+ private AgentPoolUpgradeSettings upgradeSettings;
+
+ /*
+ * The current deployment or provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this field
+ * to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can
+ * only be stopped if it is Running and provisioning state is Succeeded
+ */
+ @JsonProperty(value = "powerState")
+ private PowerState powerState;
+
+ /*
+ * The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType property is
+ * 'VirtualMachineScaleSets'.
+ */
+ @JsonProperty(value = "availabilityZones")
+ private List availabilityZones;
+
+ /*
+ * Whether each node is allocated its own public IP.
+ *
+ * Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. A common
+ * scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine
+ * to minimize hops. For more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-
+ * pools).
+ * The default is false.
+ */
+ @JsonProperty(value = "enableNodePublicIP")
+ private Boolean enableNodePublicIp;
+
+ /*
+ * Whether to enable Custom CA Trust feature.
+ *
+ * When set to true, AKS adds a label to the node indicating that the feature is enabled and deploys a daemonset
+ * along with host services to sync custom certificate authorities from user-provided list of base64 encoded
+ * certificates into node trust stores. Defaults to false.
+ */
+ @JsonProperty(value = "enableCustomCATrust")
+ private Boolean enableCustomCATrust;
+
+ /*
+ * The public IP prefix ID which VM nodes should use IPs from.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{
+ * publicIPPrefixName}
+ */
+ @JsonProperty(value = "nodePublicIPPrefixID")
+ private String nodePublicIpPrefixId;
+
+ /*
+ * The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'.
+ */
+ @JsonProperty(value = "scaleSetPriority")
+ private ScaleSetPriority scaleSetPriority;
+
+ /*
+ * The Virtual Machine Scale Set eviction policy.
+ *
+ * This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ */
+ @JsonProperty(value = "scaleSetEvictionPolicy")
+ private ScaleSetEvictionPolicy scaleSetEvictionPolicy;
+
+ /*
+ * The max price (in US Dollars) you are willing to pay for spot instances. Possible values are any decimal value
+ * greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing)
+ */
+ @JsonProperty(value = "spotMaxPrice")
+ private Float spotMaxPrice;
+
+ /*
+ * The tags to be persisted on the agent pool virtual machine scale set.
+ */
+ @JsonProperty(value = "tags")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map tags;
+
+ /*
+ * The node labels to be persisted across all nodes in agent pool.
+ */
+ @JsonProperty(value = "nodeLabels")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map nodeLabels;
+
+ /*
+ * The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
+ */
+ @JsonProperty(value = "nodeTaints")
+ private List nodeTaints;
+
+ /*
+ * Taints added on the nodes during creation that will not be reconciled by AKS.
+ *
+ * These taints will not be reconciled by AKS and can be removed with a kubectl call. This field can be modified
+ * after node pool is created, but nodes will not be recreated with new taints until another operation that
+ * requires recreation (e.g. node image upgrade) happens. These taints allow for required configuration to run
+ * before the node is ready to accept workloads, for example 'key1=value1:NoSchedule' that then can be removed with
+ * `kubectl taint nodes node1 key1=value1:NoSchedule-`
+ */
+ @JsonProperty(value = "nodeInitializationTaints")
+ private List nodeInitializationTaints;
+
+ /*
+ * The ID for Proximity Placement Group.
+ */
+ @JsonProperty(value = "proximityPlacementGroupID")
+ private String proximityPlacementGroupId;
+
+ /*
+ * Kubelet configurations of agent nodes.
+ *
+ * The Kubelet configuration on the agent pool nodes.
+ */
+ @JsonProperty(value = "kubeletConfig")
+ private KubeletConfig kubeletConfig;
+
+ /*
+ * OS configurations of Linux agent nodes.
+ *
+ * The OS configuration of Linux agent nodes.
+ */
+ @JsonProperty(value = "linuxOSConfig")
+ private LinuxOSConfig linuxOSConfig;
+
+ /*
+ * Whether to enable host based OS and data drive encryption.
+ *
+ * This is only supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption
+ */
+ @JsonProperty(value = "enableEncryptionAtHost")
+ private Boolean enableEncryptionAtHost;
+
+ /*
+ * Whether to enable UltraSSD
+ */
+ @JsonProperty(value = "enableUltraSSD")
+ private Boolean enableUltraSsd;
+
+ /*
+ * Whether to use a FIPS-enabled OS.
+ *
+ * See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for
+ * more details.
+ */
+ @JsonProperty(value = "enableFIPS")
+ private Boolean enableFips;
+
+ /*
+ * GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU.
+ */
+ @JsonProperty(value = "gpuInstanceProfile")
+ private GpuInstanceProfile gpuInstanceProfile;
+
+ /*
+ * CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using a
+ * snapshot.
+ */
+ @JsonProperty(value = "creationData")
+ private CreationData creationData;
+
+ /*
+ * The fully qualified resource ID of the Capacity Reservation Group to provide virtual machines from a reserved
+ * group of Virtual Machines.
+ *
+ * AKS will associate the specified agent pool with the Capacity Reservation Group.
+ */
+ @JsonProperty(value = "capacityReservationGroupID")
+ private String capacityReservationGroupId;
+
+ /*
+ * The fully qualified resource ID of the Dedicated Host Group to provision virtual machines from, used only in
+ * creation scenario and not allowed to changed once set.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{
+ * hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ */
+ @JsonProperty(value = "hostGroupID")
+ private String hostGroupId;
+
+ /*
+ * The Windows agent pool's specific profile.
+ */
+ @JsonProperty(value = "windowsProfile")
+ private AgentPoolWindowsProfile windowsProfile;
+
+ /*
+ * Network-related settings of an agent pool.
+ */
+ @JsonProperty(value = "networkProfile")
+ private AgentPoolNetworkProfile networkProfile;
+
+ /*
+ * The security settings of an agent pool.
+ */
+ @JsonProperty(value = "securityProfile")
+ private AgentPoolSecurityProfile securityProfile;
+
+ /*
+ * The GPU settings of an agent pool.
+ */
+ @JsonProperty(value = "gpuProfile")
+ private AgentPoolGpuProfile gpuProfile;
+
+ /*
+ * Configuration for using artifact streaming on AKS.
+ */
+ @JsonProperty(value = "artifactStreamingProfile")
+ private AgentPoolArtifactStreamingProfile artifactStreamingProfile;
+
+ /*
+ * Specifications on VirtualMachines agent pool.
+ */
+ @JsonProperty(value = "virtualMachinesProfile")
+ private VirtualMachinesProfile virtualMachinesProfile;
+
+ /*
+ * The status of nodes in a VirtualMachines agent pool.
+ */
+ @JsonProperty(value = "virtualMachineNodesStatus")
+ private List virtualMachineNodesStatus;
+
+ /**
+ * Creates an instance of ManagedClusterAgentPoolProfileProperties class.
+ */
+ public ManagedClusterAgentPoolProfileProperties() {
+ }
+
+ /**
+ * Get the count property: Number of agents (VMs) to host docker containers. Allowed values must be in the range of
+ * 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default
+ * value is 1.
+ *
+ * @return the count value.
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set the count property: Number of agents (VMs) to host docker containers. Allowed values must be in the range of
+ * 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default
+ * value is 1.
+ *
+ * @param count the count value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withCount(Integer count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get the vmSize property: The size of the agent pool VMs.
+ *
+ * VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods
+ * might fail to run correctly. For more details on restricted VM sizes, see:
+ * https://docs.microsoft.com/azure/aks/quotas-skus-regions.
+ *
+ * @return the vmSize value.
+ */
+ public String vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set the vmSize property: The size of the agent pool VMs.
+ *
+ * VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods
+ * might fail to run correctly. For more details on restricted VM sizes, see:
+ * https://docs.microsoft.com/azure/aks/quotas-skus-regions.
+ *
+ * @param vmSize the vmSize value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withVmSize(String vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get the osDiskSizeGB property: OS Disk Size in GB to be used to specify the disk size for every machine in the
+ * master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @return the osDiskSizeGB value.
+ */
+ public Integer osDiskSizeGB() {
+ return this.osDiskSizeGB;
+ }
+
+ /**
+ * Set the osDiskSizeGB property: OS Disk Size in GB to be used to specify the disk size for every machine in the
+ * master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
+ *
+ * @param osDiskSizeGB the osDiskSizeGB value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsDiskSizeGB(Integer osDiskSizeGB) {
+ this.osDiskSizeGB = osDiskSizeGB;
+ return this;
+ }
+
+ /**
+ * Get the osDiskType property: The OS disk type to be used for machines in the agent pool.
+ *
+ * The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB.
+ * Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ *
+ * @return the osDiskType value.
+ */
+ public OSDiskType osDiskType() {
+ return this.osDiskType;
+ }
+
+ /**
+ * Set the osDiskType property: The OS disk type to be used for machines in the agent pool.
+ *
+ * The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB.
+ * Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
+ * OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
+ *
+ * @param osDiskType the osDiskType value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsDiskType(OSDiskType osDiskType) {
+ this.osDiskType = osDiskType;
+ return this;
+ }
+
+ /**
+ * Get the kubeletDiskType property: Determines the placement of emptyDir volumes, container runtime data root, and
+ * Kubelet ephemeral storage.
+ *
+ * @return the kubeletDiskType value.
+ */
+ public KubeletDiskType kubeletDiskType() {
+ return this.kubeletDiskType;
+ }
+
+ /**
+ * Set the kubeletDiskType property: Determines the placement of emptyDir volumes, container runtime data root, and
+ * Kubelet ephemeral storage.
+ *
+ * @param kubeletDiskType the kubeletDiskType value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withKubeletDiskType(KubeletDiskType kubeletDiskType) {
+ this.kubeletDiskType = kubeletDiskType;
+ return this;
+ }
+
+ /**
+ * Get the workloadRuntime property: Determines the type of workload a node can run.
+ *
+ * @return the workloadRuntime value.
+ */
+ public WorkloadRuntime workloadRuntime() {
+ return this.workloadRuntime;
+ }
+
+ /**
+ * Set the workloadRuntime property: Determines the type of workload a node can run.
+ *
+ * @param workloadRuntime the workloadRuntime value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withWorkloadRuntime(WorkloadRuntime workloadRuntime) {
+ this.workloadRuntime = workloadRuntime;
+ return this;
+ }
+
+ /**
+ * Get the messageOfTheDay property: Message of the day for Linux nodes, base64-encoded.
+ *
+ * A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the
+ * message of the day for Linux nodes. It must not be specified for Windows nodes. It must be a static string
+ * (i.e., will be printed raw and not be executed as a script).
+ *
+ * @return the messageOfTheDay value.
+ */
+ public String messageOfTheDay() {
+ return this.messageOfTheDay;
+ }
+
+ /**
+ * Set the messageOfTheDay property: Message of the day for Linux nodes, base64-encoded.
+ *
+ * A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the
+ * message of the day for Linux nodes. It must not be specified for Windows nodes. It must be a static string
+ * (i.e., will be printed raw and not be executed as a script).
+ *
+ * @param messageOfTheDay the messageOfTheDay value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMessageOfTheDay(String messageOfTheDay) {
+ this.messageOfTheDay = messageOfTheDay;
+ return this;
+ }
+
+ /**
+ * Get the vnetSubnetId property: The ID of the subnet which agent pool nodes and optionally pods will join on
+ * startup.
+ *
+ * If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, this
+ * applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @return the vnetSubnetId value.
+ */
+ public String vnetSubnetId() {
+ return this.vnetSubnetId;
+ }
+
+ /**
+ * Set the vnetSubnetId property: The ID of the subnet which agent pool nodes and optionally pods will join on
+ * startup.
+ *
+ * If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, this
+ * applies to nodes and pods, otherwise it applies to just nodes. This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @param vnetSubnetId the vnetSubnetId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withVnetSubnetId(String vnetSubnetId) {
+ this.vnetSubnetId = vnetSubnetId;
+ return this;
+ }
+
+ /**
+ * Get the podSubnetId property: The ID of the subnet which pods will join when launched.
+ *
+ * If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is of
+ * the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @return the podSubnetId value.
+ */
+ public String podSubnetId() {
+ return this.podSubnetId;
+ }
+
+ /**
+ * Set the podSubnetId property: The ID of the subnet which pods will join when launched.
+ *
+ * If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is of
+ * the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.
+ *
+ * @param podSubnetId the podSubnetId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withPodSubnetId(String podSubnetId) {
+ this.podSubnetId = podSubnetId;
+ return this;
+ }
+
+ /**
+ * Get the maxPods property: The maximum number of pods that can run on a node.
+ *
+ * @return the maxPods value.
+ */
+ public Integer maxPods() {
+ return this.maxPods;
+ }
+
+ /**
+ * Set the maxPods property: The maximum number of pods that can run on a node.
+ *
+ * @param maxPods the maxPods value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMaxPods(Integer maxPods) {
+ this.maxPods = maxPods;
+ return this;
+ }
+
+ /**
+ * Get the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @return the osType value.
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the osType property: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
+ *
+ * @param osType the osType value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the osSku property: Specifies the OS SKU used by the agent pool. If not specified, the default is Ubuntu if
+ * OSType=Linux or Windows2019 if OSType=Windows. And the default Windows OSSKU will be changed to Windows2022
+ * after Windows2019 is deprecated.
+ *
+ * @return the osSku value.
+ */
+ public Ossku osSku() {
+ return this.osSku;
+ }
+
+ /**
+ * Set the osSku property: Specifies the OS SKU used by the agent pool. If not specified, the default is Ubuntu if
+ * OSType=Linux or Windows2019 if OSType=Windows. And the default Windows OSSKU will be changed to Windows2022
+ * after Windows2019 is deprecated.
+ *
+ * @param osSku the osSku value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOsSku(Ossku osSku) {
+ this.osSku = osSku;
+ return this;
+ }
+
+ /**
+ * Get the maxCount property: The maximum number of nodes for auto-scaling.
+ *
+ * @return the maxCount value.
+ */
+ public Integer maxCount() {
+ return this.maxCount;
+ }
+
+ /**
+ * Set the maxCount property: The maximum number of nodes for auto-scaling.
+ *
+ * @param maxCount the maxCount value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMaxCount(Integer maxCount) {
+ this.maxCount = maxCount;
+ return this;
+ }
+
+ /**
+ * Get the minCount property: The minimum number of nodes for auto-scaling.
+ *
+ * @return the minCount value.
+ */
+ public Integer minCount() {
+ return this.minCount;
+ }
+
+ /**
+ * Set the minCount property: The minimum number of nodes for auto-scaling.
+ *
+ * @param minCount the minCount value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMinCount(Integer minCount) {
+ this.minCount = minCount;
+ return this;
+ }
+
+ /**
+ * Get the enableAutoScaling property: Whether to enable auto-scaler.
+ *
+ * @return the enableAutoScaling value.
+ */
+ public Boolean enableAutoScaling() {
+ return this.enableAutoScaling;
+ }
+
+ /**
+ * Set the enableAutoScaling property: Whether to enable auto-scaler.
+ *
+ * @param enableAutoScaling the enableAutoScaling value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableAutoScaling(Boolean enableAutoScaling) {
+ this.enableAutoScaling = enableAutoScaling;
+ return this;
+ }
+
+ /**
+ * Get the scaleDownMode property: This also effects the cluster autoscaler behavior. If not specified, it defaults
+ * to Delete.
+ *
+ * @return the scaleDownMode value.
+ */
+ public ScaleDownMode scaleDownMode() {
+ return this.scaleDownMode;
+ }
+
+ /**
+ * Set the scaleDownMode property: This also effects the cluster autoscaler behavior. If not specified, it defaults
+ * to Delete.
+ *
+ * @param scaleDownMode the scaleDownMode value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withScaleDownMode(ScaleDownMode scaleDownMode) {
+ this.scaleDownMode = scaleDownMode;
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of Agent Pool.
+ *
+ * @return the type value.
+ */
+ public AgentPoolType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The type of Agent Pool.
+ *
+ * @param type the type value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withType(AgentPoolType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the mode property: The mode of an agent pool.
+ *
+ * A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool
+ * restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools.
+ *
+ * @return the mode value.
+ */
+ public AgentPoolMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set the mode property: The mode of an agent pool.
+ *
+ * A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool
+ * restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools.
+ *
+ * @param mode the mode value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withMode(AgentPoolMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+ /**
+ * Get the orchestratorVersion property: The version of Kubernetes specified by the user.
+ *
+ * Both patch version <major.minor.patch> and <major.minor> are supported. When <major.minor> is
+ * specified, the latest supported patch version is chosen automatically. Updating the agent pool with the same
+ * <major.minor> once it has been created will not trigger an upgrade, even if a newer patch version is
+ * available. As a best practice, you should upgrade all node pools in an AKS cluster to the same Kubernetes
+ * version. The node pool version must have the same major version as the control plane. The node pool minor
+ * version must be within two minor versions of the control plane version. The node pool version cannot be greater
+ * than the control plane version. For more information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ *
+ * @return the orchestratorVersion value.
+ */
+ public String orchestratorVersion() {
+ return this.orchestratorVersion;
+ }
+
+ /**
+ * Set the orchestratorVersion property: The version of Kubernetes specified by the user.
+ *
+ * Both patch version <major.minor.patch> and <major.minor> are supported. When <major.minor> is
+ * specified, the latest supported patch version is chosen automatically. Updating the agent pool with the same
+ * <major.minor> once it has been created will not trigger an upgrade, even if a newer patch version is
+ * available. As a best practice, you should upgrade all node pools in an AKS cluster to the same Kubernetes
+ * version. The node pool version must have the same major version as the control plane. The node pool minor
+ * version must be within two minor versions of the control plane version. The node pool version cannot be greater
+ * than the control plane version. For more information see [upgrading a node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
+ *
+ * @param orchestratorVersion the orchestratorVersion value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withOrchestratorVersion(String orchestratorVersion) {
+ this.orchestratorVersion = orchestratorVersion;
+ return this;
+ }
+
+ /**
+ * Get the currentOrchestratorVersion property: The version of Kubernetes running on the Agent Pool.
+ *
+ * If orchestratorVersion was a fully specified version <major.minor.patch>, this field will be exactly equal
+ * to it. If orchestratorVersion was <major.minor>, this field will contain the full
+ * <major.minor.patch> version being used.
+ *
+ * @return the currentOrchestratorVersion value.
+ */
+ public String currentOrchestratorVersion() {
+ return this.currentOrchestratorVersion;
+ }
+
+ /**
+ * Get the nodeImageVersion property: The version of node image.
+ *
+ * @return the nodeImageVersion value.
+ */
+ public String nodeImageVersion() {
+ return this.nodeImageVersion;
+ }
+
+ /**
+ * Get the upgradeSettings property: Settings for upgrading the agentpool.
+ *
+ * @return the upgradeSettings value.
+ */
+ public AgentPoolUpgradeSettings upgradeSettings() {
+ return this.upgradeSettings;
+ }
+
+ /**
+ * Set the upgradeSettings property: Settings for upgrading the agentpool.
+ *
+ * @param upgradeSettings the upgradeSettings value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withUpgradeSettings(AgentPoolUpgradeSettings upgradeSettings) {
+ this.upgradeSettings = upgradeSettings;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The current deployment or provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the powerState property: When an Agent Pool is first created it is initially Running. The Agent Pool can be
+ * stopped by setting this field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing
+ * charges. An Agent Pool can only be stopped if it is Running and provisioning state is Succeeded.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.powerState;
+ }
+
+ /**
+ * Set the powerState property: When an Agent Pool is first created it is initially Running. The Agent Pool can be
+ * stopped by setting this field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing
+ * charges. An Agent Pool can only be stopped if it is Running and provisioning state is Succeeded.
+ *
+ * @param powerState the powerState value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withPowerState(PowerState powerState) {
+ this.powerState = powerState;
+ return this;
+ }
+
+ /**
+ * Get the availabilityZones property: The list of Availability zones to use for nodes. This can only be specified
+ * if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ *
+ * @return the availabilityZones value.
+ */
+ public List availabilityZones() {
+ return this.availabilityZones;
+ }
+
+ /**
+ * Set the availabilityZones property: The list of Availability zones to use for nodes. This can only be specified
+ * if the AgentPoolType property is 'VirtualMachineScaleSets'.
+ *
+ * @param availabilityZones the availabilityZones value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withAvailabilityZones(List availabilityZones) {
+ this.availabilityZones = availabilityZones;
+ return this;
+ }
+
+ /**
+ * Get the enableNodePublicIp property: Whether each node is allocated its own public IP.
+ *
+ * Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. A common
+ * scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine
+ * to minimize hops. For more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ *
+ * @return the enableNodePublicIp value.
+ */
+ public Boolean enableNodePublicIp() {
+ return this.enableNodePublicIp;
+ }
+
+ /**
+ * Set the enableNodePublicIp property: Whether each node is allocated its own public IP.
+ *
+ * Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. A common
+ * scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine
+ * to minimize hops. For more information see [assigning a public IP per
+ * node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools).
+ * The default is false.
+ *
+ * @param enableNodePublicIp the enableNodePublicIp value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableNodePublicIp(Boolean enableNodePublicIp) {
+ this.enableNodePublicIp = enableNodePublicIp;
+ return this;
+ }
+
+ /**
+ * Get the enableCustomCATrust property: Whether to enable Custom CA Trust feature.
+ *
+ * When set to true, AKS adds a label to the node indicating that the feature is enabled and deploys a daemonset
+ * along with host services to sync custom certificate authorities from user-provided list of base64 encoded
+ * certificates into node trust stores. Defaults to false.
+ *
+ * @return the enableCustomCATrust value.
+ */
+ public Boolean enableCustomCATrust() {
+ return this.enableCustomCATrust;
+ }
+
+ /**
+ * Set the enableCustomCATrust property: Whether to enable Custom CA Trust feature.
+ *
+ * When set to true, AKS adds a label to the node indicating that the feature is enabled and deploys a daemonset
+ * along with host services to sync custom certificate authorities from user-provided list of base64 encoded
+ * certificates into node trust stores. Defaults to false.
+ *
+ * @param enableCustomCATrust the enableCustomCATrust value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableCustomCATrust(Boolean enableCustomCATrust) {
+ this.enableCustomCATrust = enableCustomCATrust;
+ return this;
+ }
+
+ /**
+ * Get the nodePublicIpPrefixId property: The public IP prefix ID which VM nodes should use IPs from.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}.
+ *
+ * @return the nodePublicIpPrefixId value.
+ */
+ public String nodePublicIpPrefixId() {
+ return this.nodePublicIpPrefixId;
+ }
+
+ /**
+ * Set the nodePublicIpPrefixId property: The public IP prefix ID which VM nodes should use IPs from.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}.
+ *
+ * @param nodePublicIpPrefixId the nodePublicIpPrefixId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withNodePublicIpPrefixId(String nodePublicIpPrefixId) {
+ this.nodePublicIpPrefixId = nodePublicIpPrefixId;
+ return this;
+ }
+
+ /**
+ * Get the scaleSetPriority property: The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ *
+ * @return the scaleSetPriority value.
+ */
+ public ScaleSetPriority scaleSetPriority() {
+ return this.scaleSetPriority;
+ }
+
+ /**
+ * Set the scaleSetPriority property: The Virtual Machine Scale Set priority. If not specified, the default is
+ * 'Regular'.
+ *
+ * @param scaleSetPriority the scaleSetPriority value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withScaleSetPriority(ScaleSetPriority scaleSetPriority) {
+ this.scaleSetPriority = scaleSetPriority;
+ return this;
+ }
+
+ /**
+ * Get the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy.
+ *
+ * This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ *
+ * @return the scaleSetEvictionPolicy value.
+ */
+ public ScaleSetEvictionPolicy scaleSetEvictionPolicy() {
+ return this.scaleSetEvictionPolicy;
+ }
+
+ /**
+ * Set the scaleSetEvictionPolicy property: The Virtual Machine Scale Set eviction policy.
+ *
+ * This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'.
+ *
+ * @param scaleSetEvictionPolicy the scaleSetEvictionPolicy value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties
+ withScaleSetEvictionPolicy(ScaleSetEvictionPolicy scaleSetEvictionPolicy) {
+ this.scaleSetEvictionPolicy = scaleSetEvictionPolicy;
+ return this;
+ }
+
+ /**
+ * Get the spotMaxPrice property: The max price (in US Dollars) you are willing to pay for spot instances. Possible
+ * values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing).
+ *
+ * @return the spotMaxPrice value.
+ */
+ public Float spotMaxPrice() {
+ return this.spotMaxPrice;
+ }
+
+ /**
+ * Set the spotMaxPrice property: The max price (in US Dollars) you are willing to pay for spot instances. Possible
+ * values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
+ *
+ * Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
+ * on-demand price. For more details on spot pricing, see [spot VMs
+ * pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing).
+ *
+ * @param spotMaxPrice the spotMaxPrice value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withSpotMaxPrice(Float spotMaxPrice) {
+ this.spotMaxPrice = spotMaxPrice;
+ return this;
+ }
+
+ /**
+ * Get the tags property: The tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: The tags to be persisted on the agent pool virtual machine scale set.
+ *
+ * @param tags the tags value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the nodeLabels property: The node labels to be persisted across all nodes in agent pool.
+ *
+ * @return the nodeLabels value.
+ */
+ public Map nodeLabels() {
+ return this.nodeLabels;
+ }
+
+ /**
+ * Set the nodeLabels property: The node labels to be persisted across all nodes in agent pool.
+ *
+ * @param nodeLabels the nodeLabels value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withNodeLabels(Map nodeLabels) {
+ this.nodeLabels = nodeLabels;
+ return this;
+ }
+
+ /**
+ * Get the nodeTaints property: The taints added to new nodes during node pool create and scale. For example,
+ * key=value:NoSchedule.
+ *
+ * @return the nodeTaints value.
+ */
+ public List nodeTaints() {
+ return this.nodeTaints;
+ }
+
+ /**
+ * Set the nodeTaints property: The taints added to new nodes during node pool create and scale. For example,
+ * key=value:NoSchedule.
+ *
+ * @param nodeTaints the nodeTaints value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withNodeTaints(List nodeTaints) {
+ this.nodeTaints = nodeTaints;
+ return this;
+ }
+
+ /**
+ * Get the nodeInitializationTaints property: Taints added on the nodes during creation that will not be reconciled
+ * by AKS.
+ *
+ * These taints will not be reconciled by AKS and can be removed with a kubectl call. This field can be modified
+ * after node pool is created, but nodes will not be recreated with new taints until another operation that
+ * requires recreation (e.g. node image upgrade) happens. These taints allow for required configuration to run
+ * before the node is ready to accept workloads, for example 'key1=value1:NoSchedule' that then can be removed with
+ * `kubectl taint nodes node1 key1=value1:NoSchedule-`.
+ *
+ * @return the nodeInitializationTaints value.
+ */
+ public List nodeInitializationTaints() {
+ return this.nodeInitializationTaints;
+ }
+
+ /**
+ * Set the nodeInitializationTaints property: Taints added on the nodes during creation that will not be reconciled
+ * by AKS.
+ *
+ * These taints will not be reconciled by AKS and can be removed with a kubectl call. This field can be modified
+ * after node pool is created, but nodes will not be recreated with new taints until another operation that
+ * requires recreation (e.g. node image upgrade) happens. These taints allow for required configuration to run
+ * before the node is ready to accept workloads, for example 'key1=value1:NoSchedule' that then can be removed with
+ * `kubectl taint nodes node1 key1=value1:NoSchedule-`.
+ *
+ * @param nodeInitializationTaints the nodeInitializationTaints value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties
+ withNodeInitializationTaints(List nodeInitializationTaints) {
+ this.nodeInitializationTaints = nodeInitializationTaints;
+ return this;
+ }
+
+ /**
+ * Get the proximityPlacementGroupId property: The ID for Proximity Placement Group.
+ *
+ * @return the proximityPlacementGroupId value.
+ */
+ public String proximityPlacementGroupId() {
+ return this.proximityPlacementGroupId;
+ }
+
+ /**
+ * Set the proximityPlacementGroupId property: The ID for Proximity Placement Group.
+ *
+ * @param proximityPlacementGroupId the proximityPlacementGroupId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withProximityPlacementGroupId(String proximityPlacementGroupId) {
+ this.proximityPlacementGroupId = proximityPlacementGroupId;
+ return this;
+ }
+
+ /**
+ * Get the kubeletConfig property: Kubelet configurations of agent nodes.
+ *
+ * The Kubelet configuration on the agent pool nodes.
+ *
+ * @return the kubeletConfig value.
+ */
+ public KubeletConfig kubeletConfig() {
+ return this.kubeletConfig;
+ }
+
+ /**
+ * Set the kubeletConfig property: Kubelet configurations of agent nodes.
+ *
+ * The Kubelet configuration on the agent pool nodes.
+ *
+ * @param kubeletConfig the kubeletConfig value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withKubeletConfig(KubeletConfig kubeletConfig) {
+ this.kubeletConfig = kubeletConfig;
+ return this;
+ }
+
+ /**
+ * Get the linuxOSConfig property: OS configurations of Linux agent nodes.
+ *
+ * The OS configuration of Linux agent nodes.
+ *
+ * @return the linuxOSConfig value.
+ */
+ public LinuxOSConfig linuxOSConfig() {
+ return this.linuxOSConfig;
+ }
+
+ /**
+ * Set the linuxOSConfig property: OS configurations of Linux agent nodes.
+ *
+ * The OS configuration of Linux agent nodes.
+ *
+ * @param linuxOSConfig the linuxOSConfig value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withLinuxOSConfig(LinuxOSConfig linuxOSConfig) {
+ this.linuxOSConfig = linuxOSConfig;
+ return this;
+ }
+
+ /**
+ * Get the enableEncryptionAtHost property: Whether to enable host based OS and data drive encryption.
+ *
+ * This is only supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption.
+ *
+ * @return the enableEncryptionAtHost value.
+ */
+ public Boolean enableEncryptionAtHost() {
+ return this.enableEncryptionAtHost;
+ }
+
+ /**
+ * Set the enableEncryptionAtHost property: Whether to enable host based OS and data drive encryption.
+ *
+ * This is only supported on certain VM sizes and in certain Azure regions. For more information, see:
+ * https://docs.microsoft.com/azure/aks/enable-host-encryption.
+ *
+ * @param enableEncryptionAtHost the enableEncryptionAtHost value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableEncryptionAtHost(Boolean enableEncryptionAtHost) {
+ this.enableEncryptionAtHost = enableEncryptionAtHost;
+ return this;
+ }
+
+ /**
+ * Get the enableUltraSsd property: Whether to enable UltraSSD.
+ *
+ * @return the enableUltraSsd value.
+ */
+ public Boolean enableUltraSsd() {
+ return this.enableUltraSsd;
+ }
+
+ /**
+ * Set the enableUltraSsd property: Whether to enable UltraSSD.
+ *
+ * @param enableUltraSsd the enableUltraSsd value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableUltraSsd(Boolean enableUltraSsd) {
+ this.enableUltraSsd = enableUltraSsd;
+ return this;
+ }
+
+ /**
+ * Get the enableFips property: Whether to use a FIPS-enabled OS.
+ *
+ * See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for
+ * more details.
+ *
+ * @return the enableFips value.
+ */
+ public Boolean enableFips() {
+ return this.enableFips;
+ }
+
+ /**
+ * Set the enableFips property: Whether to use a FIPS-enabled OS.
+ *
+ * See [Add a FIPS-enabled node
+ * pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for
+ * more details.
+ *
+ * @param enableFips the enableFips value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withEnableFips(Boolean enableFips) {
+ this.enableFips = enableFips;
+ return this;
+ }
+
+ /**
+ * Get the gpuInstanceProfile property: GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ *
+ * @return the gpuInstanceProfile value.
+ */
+ public GpuInstanceProfile gpuInstanceProfile() {
+ return this.gpuInstanceProfile;
+ }
+
+ /**
+ * Set the gpuInstanceProfile property: GPUInstanceProfile to be used to specify GPU MIG instance profile for
+ * supported GPU VM SKU.
+ *
+ * @param gpuInstanceProfile the gpuInstanceProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withGpuInstanceProfile(GpuInstanceProfile gpuInstanceProfile) {
+ this.gpuInstanceProfile = gpuInstanceProfile;
+ return this;
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source Snapshot ID if the node pool will
+ * be created/upgraded using a snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.creationData;
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source Snapshot ID if the node pool will
+ * be created/upgraded using a snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withCreationData(CreationData creationData) {
+ this.creationData = creationData;
+ return this;
+ }
+
+ /**
+ * Get the capacityReservationGroupId property: The fully qualified resource ID of the Capacity Reservation Group
+ * to provide virtual machines from a reserved group of Virtual Machines.
+ *
+ * AKS will associate the specified agent pool with the Capacity Reservation Group.
+ *
+ * @return the capacityReservationGroupId value.
+ */
+ public String capacityReservationGroupId() {
+ return this.capacityReservationGroupId;
+ }
+
+ /**
+ * Set the capacityReservationGroupId property: The fully qualified resource ID of the Capacity Reservation Group
+ * to provide virtual machines from a reserved group of Virtual Machines.
+ *
+ * AKS will associate the specified agent pool with the Capacity Reservation Group.
+ *
+ * @param capacityReservationGroupId the capacityReservationGroupId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withCapacityReservationGroupId(String capacityReservationGroupId) {
+ this.capacityReservationGroupId = capacityReservationGroupId;
+ return this;
+ }
+
+ /**
+ * Get the hostGroupId property: The fully qualified resource ID of the Dedicated Host Group to provision virtual
+ * machines from, used only in creation scenario and not allowed to changed once set.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ *
+ * @return the hostGroupId value.
+ */
+ public String hostGroupId() {
+ return this.hostGroupId;
+ }
+
+ /**
+ * Set the hostGroupId property: The fully qualified resource ID of the Dedicated Host Group to provision virtual
+ * machines from, used only in creation scenario and not allowed to changed once set.
+ *
+ * This is of the form:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}.
+ * For more information see [Azure dedicated
+ * hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts).
+ *
+ * @param hostGroupId the hostGroupId value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withHostGroupId(String hostGroupId) {
+ this.hostGroupId = hostGroupId;
+ return this;
+ }
+
+ /**
+ * 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 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 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: The GPU settings of an agent pool.
+ *
+ * @return the gpuProfile value.
+ */
+ public AgentPoolGpuProfile gpuProfile() {
+ return this.gpuProfile;
+ }
+
+ /**
+ * Set the gpuProfile property: The GPU settings of an agent pool.
+ *
+ * @param gpuProfile the gpuProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties withGpuProfile(AgentPoolGpuProfile gpuProfile) {
+ this.gpuProfile = gpuProfile;
+ return this;
+ }
+
+ /**
+ * Get the artifactStreamingProfile property: Configuration for using artifact streaming on AKS.
+ *
+ * @return the artifactStreamingProfile value.
+ */
+ public AgentPoolArtifactStreamingProfile artifactStreamingProfile() {
+ return this.artifactStreamingProfile;
+ }
+
+ /**
+ * Set the artifactStreamingProfile property: Configuration for using artifact streaming on AKS.
+ *
+ * @param artifactStreamingProfile the artifactStreamingProfile value to set.
+ * @return the ManagedClusterAgentPoolProfileProperties object itself.
+ */
+ public ManagedClusterAgentPoolProfileProperties
+ withArtifactStreamingProfile(AgentPoolArtifactStreamingProfile artifactStreamingProfile) {
+ this.artifactStreamingProfile = artifactStreamingProfile;
+ 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (upgradeSettings() != null) {
+ upgradeSettings().validate();
+ }
+ if (powerState() != null) {
+ powerState().validate();
+ }
+ if (kubeletConfig() != null) {
+ kubeletConfig().validate();
+ }
+ if (linuxOSConfig() != null) {
+ linuxOSConfig().validate();
+ }
+ if (creationData() != null) {
+ creationData().validate();
+ }
+ if (windowsProfile() != null) {
+ windowsProfile().validate();
+ }
+ if (networkProfile() != null) {
+ networkProfile().validate();
+ }
+ if (securityProfile() != null) {
+ securityProfile().validate();
+ }
+ if (gpuProfile() != null) {
+ gpuProfile().validate();
+ }
+ if (artifactStreamingProfile() != null) {
+ artifactStreamingProfile().validate();
+ }
+ if (virtualMachinesProfile() != null) {
+ virtualMachinesProfile().validate();
+ }
+ if (virtualMachineNodesStatus() != null) {
+ virtualMachineNodesStatus().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterInner.java
new file mode 100644
index 0000000000000..c96757e3523a0
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterInner.java
@@ -0,0 +1,1251 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ClusterUpgradeSettings;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.CreationData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ExtendedLocation;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.KubernetesSupportPlan;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAIToolchainOperatorProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAadProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAddonProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterApiServerAccessProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAutoUpgradeProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAzureMonitorProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterHttpProxyConfig;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterIdentity;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterIngressProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterMetricsProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterNodeProvisioningProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterNodeResourceGroupProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterOidcIssuerProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterPodIdentityProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterPropertiesAutoScalerProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterSecurityProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterServicePrincipalProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterSku;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterStorageProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterWindowsProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterWorkloadAutoScalerProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.PowerState;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.SafeguardsProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ServiceMeshProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.UserAssignedIdentity;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Managed cluster.
+ */
+@Fluent
+public final class ManagedClusterInner extends Resource {
+ /*
+ * The managed cluster SKU.
+ */
+ @JsonProperty(value = "sku")
+ private ManagedClusterSku sku;
+
+ /*
+ * The extended location of the Virtual Machine.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The identity of the managed cluster, if configured.
+ */
+ @JsonProperty(value = "identity")
+ private ManagedClusterIdentity identity;
+
+ /*
+ * Properties of a managed cluster.
+ */
+ @JsonProperty(value = "properties")
+ private ManagedClusterProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Creates an instance of ManagedClusterInner class.
+ */
+ public ManagedClusterInner() {
+ }
+
+ /**
+ * Get the sku property: The managed cluster SKU.
+ *
+ * @return the sku value.
+ */
+ public ManagedClusterSku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: The managed cluster SKU.
+ *
+ * @param sku the sku value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withSku(ManagedClusterSku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extended location of the Virtual Machine.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extended location of the Virtual Machine.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the identity property: The identity of the managed cluster, if configured.
+ *
+ * @return the identity value.
+ */
+ public ManagedClusterIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: The identity of the managed cluster, if configured.
+ *
+ * @param identity the identity value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withIdentity(ManagedClusterIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a managed cluster.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ManagedClusterInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ManagedClusterInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The current provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the powerState property: The Power State of the cluster.
+ *
+ * @return the powerState value.
+ */
+ public PowerState powerState() {
+ return this.innerProperties() == null ? null : this.innerProperties().powerState();
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source Snapshot ID if the cluster will be
+ * created/upgraded using a snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.innerProperties() == null ? null : this.innerProperties().creationData();
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source Snapshot ID if the cluster will be
+ * created/upgraded using a snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withCreationData(CreationData creationData) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withCreationData(creationData);
+ return this;
+ }
+
+ /**
+ * Get the maxAgentPools property: The max number of agent pools for the managed cluster.
+ *
+ * @return the maxAgentPools value.
+ */
+ public Integer maxAgentPools() {
+ return this.innerProperties() == null ? null : this.innerProperties().maxAgentPools();
+ }
+
+ /**
+ * Get the kubernetesVersion property: The version of Kubernetes the Managed Cluster is requested to run.
+ *
+ * When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be
+ * performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x
+ * -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().kubernetesVersion();
+ }
+
+ /**
+ * Set the kubernetesVersion property: The version of Kubernetes the Managed Cluster is requested to run.
+ *
+ * When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be
+ * performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x
+ * -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withKubernetesVersion(String kubernetesVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withKubernetesVersion(kubernetesVersion);
+ return this;
+ }
+
+ /**
+ * Get the currentKubernetesVersion property: The version of Kubernetes the Managed Cluster is running.
+ *
+ * @return the currentKubernetesVersion value.
+ */
+ public String currentKubernetesVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().currentKubernetesVersion();
+ }
+
+ /**
+ * Get the dnsPrefix property: The DNS prefix of the Managed Cluster.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ *
+ * @return the dnsPrefix value.
+ */
+ public String dnsPrefix() {
+ return this.innerProperties() == null ? null : this.innerProperties().dnsPrefix();
+ }
+
+ /**
+ * Set the dnsPrefix property: The DNS prefix of the Managed Cluster.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ *
+ * @param dnsPrefix the dnsPrefix value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withDnsPrefix(String dnsPrefix) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withDnsPrefix(dnsPrefix);
+ return this;
+ }
+
+ /**
+ * Get the fqdnSubdomain property: The FQDN subdomain of the private cluster with custom private dns zone.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ *
+ * @return the fqdnSubdomain value.
+ */
+ public String fqdnSubdomain() {
+ return this.innerProperties() == null ? null : this.innerProperties().fqdnSubdomain();
+ }
+
+ /**
+ * Set the fqdnSubdomain property: The FQDN subdomain of the private cluster with custom private dns zone.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ *
+ * @param fqdnSubdomain the fqdnSubdomain value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withFqdnSubdomain(String fqdnSubdomain) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withFqdnSubdomain(fqdnSubdomain);
+ return this;
+ }
+
+ /**
+ * Get the fqdn property: The FQDN of the master pool.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().fqdn();
+ }
+
+ /**
+ * Get the privateFqdn property: The FQDN of private cluster.
+ *
+ * @return the privateFqdn value.
+ */
+ public String privateFqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateFqdn();
+ }
+
+ /**
+ * Get the azurePortalFqdn property: The special FQDN used by the Azure Portal to access the Managed Cluster. This
+ * FQDN is for use only by the Azure Portal and should not be used by other clients.
+ *
+ * The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) headers to be sent in some responses,
+ * which Kubernetes APIServer doesn't handle by default. This special FQDN supports CORS, allowing the Azure Portal
+ * to function properly.
+ *
+ * @return the azurePortalFqdn value.
+ */
+ public String azurePortalFqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().azurePortalFqdn();
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The agent pool properties.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().agentPoolProfiles();
+ }
+
+ /**
+ * Set the agentPoolProfiles property: The agent pool properties.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAgentPoolProfiles(List agentPoolProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAgentPoolProfiles(agentPoolProfiles);
+ return this;
+ }
+
+ /**
+ * Get the linuxProfile property: The profile for Linux VMs in the Managed Cluster.
+ *
+ * @return the linuxProfile value.
+ */
+ public ContainerServiceLinuxProfile linuxProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().linuxProfile();
+ }
+
+ /**
+ * Set the linuxProfile property: The profile for Linux VMs in the Managed Cluster.
+ *
+ * @param linuxProfile the linuxProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withLinuxProfile(ContainerServiceLinuxProfile linuxProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withLinuxProfile(linuxProfile);
+ return this;
+ }
+
+ /**
+ * Get the windowsProfile property: The profile for Windows VMs in the Managed Cluster.
+ *
+ * @return the windowsProfile value.
+ */
+ public ManagedClusterWindowsProfile windowsProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().windowsProfile();
+ }
+
+ /**
+ * Set the windowsProfile property: The profile for Windows VMs in the Managed Cluster.
+ *
+ * @param windowsProfile the windowsProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withWindowsProfile(ManagedClusterWindowsProfile windowsProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withWindowsProfile(windowsProfile);
+ return this;
+ }
+
+ /**
+ * Get the servicePrincipalProfile property: Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ *
+ * @return the servicePrincipalProfile value.
+ */
+ public ManagedClusterServicePrincipalProfile servicePrincipalProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().servicePrincipalProfile();
+ }
+
+ /**
+ * Set the servicePrincipalProfile property: Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ *
+ * @param servicePrincipalProfile the servicePrincipalProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner
+ withServicePrincipalProfile(ManagedClusterServicePrincipalProfile servicePrincipalProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withServicePrincipalProfile(servicePrincipalProfile);
+ return this;
+ }
+
+ /**
+ * Get the addonProfiles property: The profile of managed cluster add-on.
+ *
+ * @return the addonProfiles value.
+ */
+ public Map addonProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().addonProfiles();
+ }
+
+ /**
+ * Set the addonProfiles property: The profile of managed cluster add-on.
+ *
+ * @param addonProfiles the addonProfiles value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAddonProfiles(Map addonProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAddonProfiles(addonProfiles);
+ return this;
+ }
+
+ /**
+ * Get the podIdentityProfile property: The pod identity profile of the Managed Cluster.
+ *
+ * See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on
+ * AAD pod identity integration.
+ *
+ * @return the podIdentityProfile value.
+ */
+ public ManagedClusterPodIdentityProfile podIdentityProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().podIdentityProfile();
+ }
+
+ /**
+ * Set the podIdentityProfile property: The pod identity profile of the Managed Cluster.
+ *
+ * See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on
+ * AAD pod identity integration.
+ *
+ * @param podIdentityProfile the podIdentityProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withPodIdentityProfile(ManagedClusterPodIdentityProfile podIdentityProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withPodIdentityProfile(podIdentityProfile);
+ return this;
+ }
+
+ /**
+ * Get the oidcIssuerProfile property: The OIDC issuer profile of the Managed Cluster.
+ *
+ * @return the oidcIssuerProfile value.
+ */
+ public ManagedClusterOidcIssuerProfile oidcIssuerProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().oidcIssuerProfile();
+ }
+
+ /**
+ * Set the oidcIssuerProfile property: The OIDC issuer profile of the Managed Cluster.
+ *
+ * @param oidcIssuerProfile the oidcIssuerProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withOidcIssuerProfile(ManagedClusterOidcIssuerProfile oidcIssuerProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withOidcIssuerProfile(oidcIssuerProfile);
+ return this;
+ }
+
+ /**
+ * Get the nodeResourceGroup property: The name of the resource group containing agent pool nodes.
+ *
+ * @return the nodeResourceGroup value.
+ */
+ public String nodeResourceGroup() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeResourceGroup();
+ }
+
+ /**
+ * Set the nodeResourceGroup property: The name of the resource group containing agent pool nodes.
+ *
+ * @param nodeResourceGroup the nodeResourceGroup value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withNodeResourceGroup(String nodeResourceGroup) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withNodeResourceGroup(nodeResourceGroup);
+ return this;
+ }
+
+ /**
+ * Get the nodeResourceGroupProfile property: The node resource group configuration profile.
+ *
+ * @return the nodeResourceGroupProfile value.
+ */
+ public ManagedClusterNodeResourceGroupProfile nodeResourceGroupProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().nodeResourceGroupProfile();
+ }
+
+ /**
+ * Set the nodeResourceGroupProfile property: The node resource group configuration profile.
+ *
+ * @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 enablePodSecurityPolicy property: (DEPRECATED) Whether to enable Kubernetes pod security policy
+ * (preview). PodSecurityPolicy was deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn
+ * more at https://aka.ms/k8s/psp and https://aka.ms/aks/psp.
+ *
+ * @return the enablePodSecurityPolicy value.
+ */
+ public Boolean enablePodSecurityPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().enablePodSecurityPolicy();
+ }
+
+ /**
+ * Set the enablePodSecurityPolicy property: (DEPRECATED) Whether to enable Kubernetes pod security policy
+ * (preview). PodSecurityPolicy was deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn
+ * more at https://aka.ms/k8s/psp and https://aka.ms/aks/psp.
+ *
+ * @param enablePodSecurityPolicy the enablePodSecurityPolicy value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withEnablePodSecurityPolicy(Boolean enablePodSecurityPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withEnablePodSecurityPolicy(enablePodSecurityPolicy);
+ return this;
+ }
+
+ /**
+ * Get the enableNamespaceResources property: Enable namespace as Azure resource.
+ *
+ * The default value is false. It can be enabled/disabled on creation and updating of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a
+ * ARM Resource.
+ *
+ * @return the enableNamespaceResources value.
+ */
+ public Boolean enableNamespaceResources() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableNamespaceResources();
+ }
+
+ /**
+ * Set the enableNamespaceResources property: Enable namespace as Azure resource.
+ *
+ * The default value is false. It can be enabled/disabled on creation and updating of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a
+ * ARM Resource.
+ *
+ * @param enableNamespaceResources the enableNamespaceResources value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withEnableNamespaceResources(Boolean enableNamespaceResources) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withEnableNamespaceResources(enableNamespaceResources);
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: The network configuration profile.
+ *
+ * @return the networkProfile value.
+ */
+ public ContainerServiceNetworkProfile networkProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkProfile();
+ }
+
+ /**
+ * Set the networkProfile property: The network configuration profile.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withNetworkProfile(ContainerServiceNetworkProfile networkProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withNetworkProfile(networkProfile);
+ return this;
+ }
+
+ /**
+ * Get the aadProfile property: AADProfile specifies attributes for Azure Active Directory integration.
+ *
+ * The Azure Active Directory configuration.
+ *
+ * @return the aadProfile value.
+ */
+ public ManagedClusterAadProfile aadProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().aadProfile();
+ }
+
+ /**
+ * Set the aadProfile property: AADProfile specifies attributes for Azure Active Directory integration.
+ *
+ * The Azure Active Directory configuration.
+ *
+ * @param aadProfile the aadProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAadProfile(ManagedClusterAadProfile aadProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAadProfile(aadProfile);
+ return this;
+ }
+
+ /**
+ * Get the autoUpgradeProfile property: The auto upgrade configuration.
+ *
+ * @return the autoUpgradeProfile value.
+ */
+ public ManagedClusterAutoUpgradeProfile autoUpgradeProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().autoUpgradeProfile();
+ }
+
+ /**
+ * Set the autoUpgradeProfile property: The auto upgrade configuration.
+ *
+ * @param autoUpgradeProfile the autoUpgradeProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withAutoUpgradeProfile(ManagedClusterAutoUpgradeProfile autoUpgradeProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withAutoUpgradeProfile(autoUpgradeProfile);
+ return this;
+ }
+
+ /**
+ * Get the 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: Identities associated with the cluster.
+ *
+ * @return the identityProfile value.
+ */
+ public Map identityProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().identityProfile();
+ }
+
+ /**
+ * Set the identityProfile property: Identities associated with the cluster.
+ *
+ * @param identityProfile the identityProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withIdentityProfile(Map identityProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withIdentityProfile(identityProfile);
+ return this;
+ }
+
+ /**
+ * Get the privateLinkResources property: Private link resources associated with the cluster.
+ *
+ * @return the privateLinkResources value.
+ */
+ public List privateLinkResources() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateLinkResources();
+ }
+
+ /**
+ * Set the privateLinkResources property: Private link resources associated with the cluster.
+ *
+ * @param privateLinkResources the privateLinkResources value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withPrivateLinkResources(List privateLinkResources) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withPrivateLinkResources(privateLinkResources);
+ return this;
+ }
+
+ /**
+ * Get the disableLocalAccounts property: If local accounts should be disabled on the Managed Cluster.
+ *
+ * If set to true, getting static credentials will be disabled for this cluster. This must only be used on Managed
+ * Clusters that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ *
+ * @return the disableLocalAccounts value.
+ */
+ public Boolean disableLocalAccounts() {
+ return this.innerProperties() == null ? null : this.innerProperties().disableLocalAccounts();
+ }
+
+ /**
+ * Set the disableLocalAccounts property: If local accounts should be disabled on the Managed Cluster.
+ *
+ * If set to true, getting static credentials will be disabled for this cluster. This must only be used on Managed
+ * Clusters that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ *
+ * @param disableLocalAccounts the disableLocalAccounts value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withDisableLocalAccounts(Boolean disableLocalAccounts) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withDisableLocalAccounts(disableLocalAccounts);
+ return this;
+ }
+
+ /**
+ * Get the httpProxyConfig property: Configurations for provisioning the cluster with HTTP proxy servers.
+ *
+ * @return the httpProxyConfig value.
+ */
+ public ManagedClusterHttpProxyConfig httpProxyConfig() {
+ return this.innerProperties() == null ? null : this.innerProperties().httpProxyConfig();
+ }
+
+ /**
+ * Set the httpProxyConfig property: Configurations for provisioning the cluster with HTTP proxy servers.
+ *
+ * @param httpProxyConfig the httpProxyConfig value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withHttpProxyConfig(ManagedClusterHttpProxyConfig httpProxyConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withHttpProxyConfig(httpProxyConfig);
+ return this;
+ }
+
+ /**
+ * Get the securityProfile property: Security profile for the managed cluster.
+ *
+ * @return the securityProfile value.
+ */
+ public ManagedClusterSecurityProfile securityProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().securityProfile();
+ }
+
+ /**
+ * Set the securityProfile property: Security profile for the managed cluster.
+ *
+ * @param securityProfile the securityProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withSecurityProfile(ManagedClusterSecurityProfile securityProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withSecurityProfile(securityProfile);
+ return this;
+ }
+
+ /**
+ * Get the 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: Prometheus addon profile for the container service cluster.
+ *
+ * @return the azureMonitorProfile value.
+ */
+ public ManagedClusterAzureMonitorProfile azureMonitorProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().azureMonitorProfile();
+ }
+
+ /**
+ * Set the azureMonitorProfile property: Prometheus addon profile for the container service 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 safeguardsProfile property: The Safeguards profile holds all the safeguards information for a given
+ * cluster.
+ *
+ * @return the safeguardsProfile value.
+ */
+ public SafeguardsProfile safeguardsProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().safeguardsProfile();
+ }
+
+ /**
+ * Set the safeguardsProfile property: The Safeguards profile holds all the safeguards information for a given
+ * cluster.
+ *
+ * @param safeguardsProfile the safeguardsProfile value to set.
+ * @return the ManagedClusterInner object itself.
+ */
+ public ManagedClusterInner withSafeguardsProfile(SafeguardsProfile safeguardsProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterProperties();
+ }
+ this.innerProperties().withSafeguardsProfile(safeguardsProfile);
+ 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 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 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() != null) {
+ sku().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterProperties.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterProperties.java
new file mode 100644
index 0000000000000..335c2a47e1977
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterProperties.java
@@ -0,0 +1,1409 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ClusterUpgradeSettings;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ContainerServiceLinuxProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ContainerServiceNetworkProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.CreationData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.KubernetesSupportPlan;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAIToolchainOperatorProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAadProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAddonProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterApiServerAccessProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAutoUpgradeProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterAzureMonitorProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterHttpProxyConfig;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterIngressProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterMetricsProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterNodeProvisioningProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterNodeResourceGroupProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterOidcIssuerProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterPodIdentityProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterPropertiesAutoScalerProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterSecurityProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterServicePrincipalProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterStorageProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterWindowsProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterWorkloadAutoScalerProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.PowerState;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.SafeguardsProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ServiceMeshProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.UserAssignedIdentity;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Properties of the managed cluster.
+ */
+@Fluent
+public final class ManagedClusterProperties {
+ /*
+ * The current provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * The Power State of the cluster.
+ */
+ @JsonProperty(value = "powerState", access = JsonProperty.Access.WRITE_ONLY)
+ private PowerState powerState;
+
+ /*
+ * CreationData to be used to specify the source Snapshot ID if the cluster will be created/upgraded using a
+ * snapshot.
+ */
+ @JsonProperty(value = "creationData")
+ private CreationData creationData;
+
+ /*
+ * The max number of agent pools for the managed cluster.
+ */
+ @JsonProperty(value = "maxAgentPools", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer maxAgentPools;
+
+ /*
+ * The version of Kubernetes the Managed Cluster is requested to run.
+ *
+ * When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be
+ * performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x ->
+ * 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ */
+ @JsonProperty(value = "kubernetesVersion")
+ private String kubernetesVersion;
+
+ /*
+ * The version of Kubernetes the Managed Cluster is running.
+ */
+ @JsonProperty(value = "currentKubernetesVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String currentKubernetesVersion;
+
+ /*
+ * The DNS prefix of the Managed Cluster.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ */
+ @JsonProperty(value = "dnsPrefix")
+ private String dnsPrefix;
+
+ /*
+ * The FQDN subdomain of the private cluster with custom private dns zone.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ */
+ @JsonProperty(value = "fqdnSubdomain")
+ private String fqdnSubdomain;
+
+ /*
+ * The FQDN of the master pool.
+ */
+ @JsonProperty(value = "fqdn", access = JsonProperty.Access.WRITE_ONLY)
+ private String fqdn;
+
+ /*
+ * The FQDN of private cluster.
+ */
+ @JsonProperty(value = "privateFQDN", access = JsonProperty.Access.WRITE_ONLY)
+ private String privateFqdn;
+
+ /*
+ * The special FQDN used by the Azure Portal to access the Managed Cluster. This FQDN is for use only by the Azure
+ * Portal and should not be used by other clients.
+ *
+ * The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) headers to be sent in some responses,
+ * which Kubernetes APIServer doesn't handle by default. This special FQDN supports CORS, allowing the Azure Portal
+ * to function properly.
+ */
+ @JsonProperty(value = "azurePortalFQDN", access = JsonProperty.Access.WRITE_ONLY)
+ private String azurePortalFqdn;
+
+ /*
+ * The agent pool properties.
+ */
+ @JsonProperty(value = "agentPoolProfiles")
+ private List agentPoolProfiles;
+
+ /*
+ * The profile for Linux VMs in the Managed Cluster.
+ */
+ @JsonProperty(value = "linuxProfile")
+ private ContainerServiceLinuxProfile linuxProfile;
+
+ /*
+ * The profile for Windows VMs in the Managed Cluster.
+ */
+ @JsonProperty(value = "windowsProfile")
+ private ManagedClusterWindowsProfile windowsProfile;
+
+ /*
+ * Information about a service principal identity for the cluster to use for manipulating Azure APIs.
+ */
+ @JsonProperty(value = "servicePrincipalProfile")
+ private ManagedClusterServicePrincipalProfile servicePrincipalProfile;
+
+ /*
+ * The profile of managed cluster add-on.
+ */
+ @JsonProperty(value = "addonProfiles")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map addonProfiles;
+
+ /*
+ * The pod identity profile of the Managed Cluster.
+ *
+ * See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on
+ * AAD pod identity integration.
+ */
+ @JsonProperty(value = "podIdentityProfile")
+ private ManagedClusterPodIdentityProfile podIdentityProfile;
+
+ /*
+ * The OIDC issuer profile of the Managed Cluster.
+ */
+ @JsonProperty(value = "oidcIssuerProfile")
+ private ManagedClusterOidcIssuerProfile oidcIssuerProfile;
+
+ /*
+ * The name of the resource group containing agent pool nodes.
+ */
+ @JsonProperty(value = "nodeResourceGroup")
+ private String nodeResourceGroup;
+
+ /*
+ * The node resource group configuration profile.
+ */
+ @JsonProperty(value = "nodeResourceGroupProfile")
+ private ManagedClusterNodeResourceGroupProfile nodeResourceGroupProfile;
+
+ /*
+ * Whether to enable Kubernetes Role-Based Access Control.
+ */
+ @JsonProperty(value = "enableRBAC")
+ private Boolean enableRbac;
+
+ /*
+ * The support plan for the Managed Cluster. If unspecified, the default is 'KubernetesOfficial'.
+ */
+ @JsonProperty(value = "supportPlan")
+ private KubernetesSupportPlan supportPlan;
+
+ /*
+ * (DEPRECATED) Whether to enable Kubernetes pod security policy (preview). PodSecurityPolicy was deprecated in
+ * Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn more at https://aka.ms/k8s/psp and
+ * https://aka.ms/aks/psp.
+ */
+ @JsonProperty(value = "enablePodSecurityPolicy")
+ private Boolean enablePodSecurityPolicy;
+
+ /*
+ * Enable namespace as Azure resource.
+ *
+ * The default value is false. It can be enabled/disabled on creation and updating of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a
+ * ARM Resource.
+ */
+ @JsonProperty(value = "enableNamespaceResources")
+ private Boolean enableNamespaceResources;
+
+ /*
+ * The network configuration profile.
+ */
+ @JsonProperty(value = "networkProfile")
+ private ContainerServiceNetworkProfile networkProfile;
+
+ /*
+ * AADProfile specifies attributes for Azure Active Directory integration.
+ *
+ * The Azure Active Directory configuration.
+ */
+ @JsonProperty(value = "aadProfile")
+ private ManagedClusterAadProfile aadProfile;
+
+ /*
+ * The auto upgrade configuration.
+ */
+ @JsonProperty(value = "autoUpgradeProfile")
+ private ManagedClusterAutoUpgradeProfile autoUpgradeProfile;
+
+ /*
+ * Settings for upgrading a cluster.
+ */
+ @JsonProperty(value = "upgradeSettings")
+ private ClusterUpgradeSettings upgradeSettings;
+
+ /*
+ * Parameters to be applied to the cluster-autoscaler when enabled
+ */
+ @JsonProperty(value = "autoScalerProfile")
+ private ManagedClusterPropertiesAutoScalerProfile autoScalerProfile;
+
+ /*
+ * The access profile for managed cluster API server.
+ */
+ @JsonProperty(value = "apiServerAccessProfile")
+ private ManagedClusterApiServerAccessProfile apiServerAccessProfile;
+
+ /*
+ * The Resource ID of the disk encryption set to use for enabling encryption at rest.
+ *
+ * This is of the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/
+ * diskEncryptionSets/{encryptionSetName}'
+ */
+ @JsonProperty(value = "diskEncryptionSetID")
+ private String diskEncryptionSetId;
+
+ /*
+ * Identities associated with the cluster.
+ */
+ @JsonProperty(value = "identityProfile")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map identityProfile;
+
+ /*
+ * Private link resources associated with the cluster.
+ */
+ @JsonProperty(value = "privateLinkResources")
+ private List privateLinkResources;
+
+ /*
+ * If local accounts should be disabled on the Managed Cluster.
+ *
+ * If set to true, getting static credentials will be disabled for this cluster. This must only be used on Managed
+ * Clusters that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ */
+ @JsonProperty(value = "disableLocalAccounts")
+ private Boolean disableLocalAccounts;
+
+ /*
+ * Configurations for provisioning the cluster with HTTP proxy servers.
+ */
+ @JsonProperty(value = "httpProxyConfig")
+ private ManagedClusterHttpProxyConfig httpProxyConfig;
+
+ /*
+ * Security profile for the managed cluster.
+ */
+ @JsonProperty(value = "securityProfile")
+ private ManagedClusterSecurityProfile securityProfile;
+
+ /*
+ * Storage profile for the managed cluster.
+ */
+ @JsonProperty(value = "storageProfile")
+ private ManagedClusterStorageProfile storageProfile;
+
+ /*
+ * Ingress profile for the managed cluster.
+ */
+ @JsonProperty(value = "ingressProfile")
+ private ManagedClusterIngressProfile ingressProfile;
+
+ /*
+ * PublicNetworkAccess of the managedCluster
+ *
+ * Allow or deny public network access for AKS
+ */
+ @JsonProperty(value = "publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /*
+ * Workload Auto-scaler profile for the managed cluster.
+ */
+ @JsonProperty(value = "workloadAutoScalerProfile")
+ private ManagedClusterWorkloadAutoScalerProfile workloadAutoScalerProfile;
+
+ /*
+ * Prometheus addon profile for the container service cluster
+ */
+ @JsonProperty(value = "azureMonitorProfile")
+ private ManagedClusterAzureMonitorProfile azureMonitorProfile;
+
+ /*
+ * The Safeguards profile holds all the safeguards information for a given cluster
+ */
+ @JsonProperty(value = "safeguardsProfile")
+ private SafeguardsProfile safeguardsProfile;
+
+ /*
+ * Service mesh profile for a managed cluster.
+ */
+ @JsonProperty(value = "serviceMeshProfile")
+ private ServiceMeshProfile serviceMeshProfile;
+
+ /*
+ * The resourceUID uniquely identifies ManagedClusters that reuse ARM ResourceIds (i.e: create, delete, create
+ * sequence)
+ */
+ @JsonProperty(value = "resourceUID", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceUid;
+
+ /*
+ * Optional cluster metrics configuration.
+ */
+ @JsonProperty(value = "metricsProfile")
+ private ManagedClusterMetricsProfile metricsProfile;
+
+ /*
+ * AI toolchain operator settings that apply to the whole cluster.
+ */
+ @JsonProperty(value = "aiToolchainOperatorProfile")
+ private ManagedClusterAIToolchainOperatorProfile aiToolchainOperatorProfile;
+
+ /*
+ * Node provisioning settings that apply to the whole cluster.
+ */
+ @JsonProperty(value = "nodeProvisioningProfile")
+ private ManagedClusterNodeProvisioningProfile nodeProvisioningProfile;
+
+ /**
+ * 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 creationData property: CreationData to be used to specify the source Snapshot ID if the cluster will be
+ * created/upgraded using a snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.creationData;
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source Snapshot ID if the cluster will be
+ * created/upgraded using a snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withCreationData(CreationData creationData) {
+ this.creationData = creationData;
+ return this;
+ }
+
+ /**
+ * Get the maxAgentPools property: The max number of agent pools for the managed cluster.
+ *
+ * @return the maxAgentPools value.
+ */
+ public Integer maxAgentPools() {
+ return this.maxAgentPools;
+ }
+
+ /**
+ * Get the kubernetesVersion property: The version of Kubernetes the Managed Cluster is requested to run.
+ *
+ * When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be
+ * performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x
+ * -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ *
+ * @return the kubernetesVersion value.
+ */
+ public String kubernetesVersion() {
+ return this.kubernetesVersion;
+ }
+
+ /**
+ * Set the kubernetesVersion property: The version of Kubernetes the Managed Cluster is requested to run.
+ *
+ * When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be
+ * performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x
+ * -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS
+ * cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
+ *
+ * @param kubernetesVersion the kubernetesVersion value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ return this;
+ }
+
+ /**
+ * Get the currentKubernetesVersion property: The version of Kubernetes the Managed Cluster is running.
+ *
+ * @return the currentKubernetesVersion value.
+ */
+ public String currentKubernetesVersion() {
+ return this.currentKubernetesVersion;
+ }
+
+ /**
+ * Get the dnsPrefix property: The DNS prefix of the Managed Cluster.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ *
+ * @return the dnsPrefix value.
+ */
+ public String dnsPrefix() {
+ return this.dnsPrefix;
+ }
+
+ /**
+ * Set the dnsPrefix property: The DNS prefix of the Managed Cluster.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ *
+ * @param dnsPrefix the dnsPrefix value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withDnsPrefix(String dnsPrefix) {
+ this.dnsPrefix = dnsPrefix;
+ return this;
+ }
+
+ /**
+ * Get the fqdnSubdomain property: The FQDN subdomain of the private cluster with custom private dns zone.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ *
+ * @return the fqdnSubdomain value.
+ */
+ public String fqdnSubdomain() {
+ return this.fqdnSubdomain;
+ }
+
+ /**
+ * Set the fqdnSubdomain property: The FQDN subdomain of the private cluster with custom private dns zone.
+ *
+ * This cannot be updated once the Managed Cluster has been created.
+ *
+ * @param fqdnSubdomain the fqdnSubdomain value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withFqdnSubdomain(String fqdnSubdomain) {
+ this.fqdnSubdomain = fqdnSubdomain;
+ return this;
+ }
+
+ /**
+ * Get the fqdn property: The FQDN of the master pool.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+ /**
+ * Get the privateFqdn property: The FQDN of private cluster.
+ *
+ * @return the privateFqdn value.
+ */
+ public String privateFqdn() {
+ return this.privateFqdn;
+ }
+
+ /**
+ * Get the azurePortalFqdn property: The special FQDN used by the Azure Portal to access the Managed Cluster. This
+ * FQDN is for use only by the Azure Portal and should not be used by other clients.
+ *
+ * The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) headers to be sent in some responses,
+ * which Kubernetes APIServer doesn't handle by default. This special FQDN supports CORS, allowing the Azure Portal
+ * to function properly.
+ *
+ * @return the azurePortalFqdn value.
+ */
+ public String azurePortalFqdn() {
+ return this.azurePortalFqdn;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The agent pool properties.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.agentPoolProfiles;
+ }
+
+ /**
+ * Set the agentPoolProfiles property: The agent pool properties.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAgentPoolProfiles(List agentPoolProfiles) {
+ this.agentPoolProfiles = agentPoolProfiles;
+ return this;
+ }
+
+ /**
+ * Get the linuxProfile property: The profile for Linux VMs in the Managed Cluster.
+ *
+ * @return the linuxProfile value.
+ */
+ public ContainerServiceLinuxProfile linuxProfile() {
+ return this.linuxProfile;
+ }
+
+ /**
+ * Set the linuxProfile property: The profile for Linux VMs in the Managed Cluster.
+ *
+ * @param linuxProfile the linuxProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withLinuxProfile(ContainerServiceLinuxProfile linuxProfile) {
+ this.linuxProfile = linuxProfile;
+ return this;
+ }
+
+ /**
+ * Get the windowsProfile property: The profile for Windows VMs in the Managed Cluster.
+ *
+ * @return the windowsProfile value.
+ */
+ public ManagedClusterWindowsProfile windowsProfile() {
+ return this.windowsProfile;
+ }
+
+ /**
+ * Set the windowsProfile property: The profile for Windows VMs in the Managed Cluster.
+ *
+ * @param windowsProfile the windowsProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withWindowsProfile(ManagedClusterWindowsProfile windowsProfile) {
+ this.windowsProfile = windowsProfile;
+ return this;
+ }
+
+ /**
+ * Get the servicePrincipalProfile property: Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ *
+ * @return the servicePrincipalProfile value.
+ */
+ public ManagedClusterServicePrincipalProfile servicePrincipalProfile() {
+ return this.servicePrincipalProfile;
+ }
+
+ /**
+ * Set the servicePrincipalProfile property: Information about a service principal identity for the cluster to use
+ * for manipulating Azure APIs.
+ *
+ * @param servicePrincipalProfile the servicePrincipalProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties
+ withServicePrincipalProfile(ManagedClusterServicePrincipalProfile servicePrincipalProfile) {
+ this.servicePrincipalProfile = servicePrincipalProfile;
+ return this;
+ }
+
+ /**
+ * Get the addonProfiles property: The profile of managed cluster add-on.
+ *
+ * @return the addonProfiles value.
+ */
+ public Map addonProfiles() {
+ return this.addonProfiles;
+ }
+
+ /**
+ * Set the addonProfiles property: The profile of managed cluster add-on.
+ *
+ * @param addonProfiles the addonProfiles value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAddonProfiles(Map addonProfiles) {
+ this.addonProfiles = addonProfiles;
+ return this;
+ }
+
+ /**
+ * Get the podIdentityProfile property: The pod identity profile of the Managed Cluster.
+ *
+ * See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on
+ * AAD pod identity integration.
+ *
+ * @return the podIdentityProfile value.
+ */
+ public ManagedClusterPodIdentityProfile podIdentityProfile() {
+ return this.podIdentityProfile;
+ }
+
+ /**
+ * Set the podIdentityProfile property: The pod identity profile of the Managed Cluster.
+ *
+ * See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on
+ * AAD pod identity integration.
+ *
+ * @param podIdentityProfile the podIdentityProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withPodIdentityProfile(ManagedClusterPodIdentityProfile podIdentityProfile) {
+ this.podIdentityProfile = podIdentityProfile;
+ return this;
+ }
+
+ /**
+ * Get the oidcIssuerProfile property: The OIDC issuer profile of the Managed Cluster.
+ *
+ * @return the oidcIssuerProfile value.
+ */
+ public ManagedClusterOidcIssuerProfile oidcIssuerProfile() {
+ return this.oidcIssuerProfile;
+ }
+
+ /**
+ * Set the oidcIssuerProfile property: The OIDC issuer profile of the Managed Cluster.
+ *
+ * @param oidcIssuerProfile the oidcIssuerProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withOidcIssuerProfile(ManagedClusterOidcIssuerProfile oidcIssuerProfile) {
+ this.oidcIssuerProfile = oidcIssuerProfile;
+ return this;
+ }
+
+ /**
+ * Get the nodeResourceGroup property: The name of the resource group containing agent pool nodes.
+ *
+ * @return the nodeResourceGroup value.
+ */
+ public String nodeResourceGroup() {
+ return this.nodeResourceGroup;
+ }
+
+ /**
+ * Set the nodeResourceGroup property: The name of the resource group containing agent pool nodes.
+ *
+ * @param nodeResourceGroup the nodeResourceGroup value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withNodeResourceGroup(String nodeResourceGroup) {
+ this.nodeResourceGroup = nodeResourceGroup;
+ return this;
+ }
+
+ /**
+ * Get the nodeResourceGroupProfile property: The node resource group configuration profile.
+ *
+ * @return the nodeResourceGroupProfile value.
+ */
+ public ManagedClusterNodeResourceGroupProfile nodeResourceGroupProfile() {
+ return this.nodeResourceGroupProfile;
+ }
+
+ /**
+ * Set the nodeResourceGroupProfile property: The node resource group configuration profile.
+ *
+ * @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 enablePodSecurityPolicy property: (DEPRECATED) Whether to enable Kubernetes pod security policy
+ * (preview). PodSecurityPolicy was deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn
+ * more at https://aka.ms/k8s/psp and https://aka.ms/aks/psp.
+ *
+ * @return the enablePodSecurityPolicy value.
+ */
+ public Boolean enablePodSecurityPolicy() {
+ return this.enablePodSecurityPolicy;
+ }
+
+ /**
+ * Set the enablePodSecurityPolicy property: (DEPRECATED) Whether to enable Kubernetes pod security policy
+ * (preview). PodSecurityPolicy was deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn
+ * more at https://aka.ms/k8s/psp and https://aka.ms/aks/psp.
+ *
+ * @param enablePodSecurityPolicy the enablePodSecurityPolicy value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withEnablePodSecurityPolicy(Boolean enablePodSecurityPolicy) {
+ this.enablePodSecurityPolicy = enablePodSecurityPolicy;
+ return this;
+ }
+
+ /**
+ * Get the enableNamespaceResources property: Enable namespace as Azure resource.
+ *
+ * The default value is false. It can be enabled/disabled on creation and updating of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a
+ * ARM Resource.
+ *
+ * @return the enableNamespaceResources value.
+ */
+ public Boolean enableNamespaceResources() {
+ return this.enableNamespaceResources;
+ }
+
+ /**
+ * Set the enableNamespaceResources property: Enable namespace as Azure resource.
+ *
+ * The default value is false. It can be enabled/disabled on creation and updating of the managed cluster. See
+ * [https://aka.ms/NamespaceARMResource](https://aka.ms/NamespaceARMResource) for more details on Namespace as a
+ * ARM Resource.
+ *
+ * @param enableNamespaceResources the enableNamespaceResources value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withEnableNamespaceResources(Boolean enableNamespaceResources) {
+ this.enableNamespaceResources = enableNamespaceResources;
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: The network configuration profile.
+ *
+ * @return the networkProfile value.
+ */
+ public ContainerServiceNetworkProfile networkProfile() {
+ return this.networkProfile;
+ }
+
+ /**
+ * Set the networkProfile property: The network configuration profile.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withNetworkProfile(ContainerServiceNetworkProfile networkProfile) {
+ this.networkProfile = networkProfile;
+ return this;
+ }
+
+ /**
+ * Get the aadProfile property: AADProfile specifies attributes for Azure Active Directory integration.
+ *
+ * The Azure Active Directory configuration.
+ *
+ * @return the aadProfile value.
+ */
+ public ManagedClusterAadProfile aadProfile() {
+ return this.aadProfile;
+ }
+
+ /**
+ * Set the aadProfile property: AADProfile specifies attributes for Azure Active Directory integration.
+ *
+ * The Azure Active Directory configuration.
+ *
+ * @param aadProfile the aadProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAadProfile(ManagedClusterAadProfile aadProfile) {
+ this.aadProfile = aadProfile;
+ return this;
+ }
+
+ /**
+ * Get the autoUpgradeProfile property: The auto upgrade configuration.
+ *
+ * @return the autoUpgradeProfile value.
+ */
+ public ManagedClusterAutoUpgradeProfile autoUpgradeProfile() {
+ return this.autoUpgradeProfile;
+ }
+
+ /**
+ * Set the autoUpgradeProfile property: The auto upgrade configuration.
+ *
+ * @param autoUpgradeProfile the autoUpgradeProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withAutoUpgradeProfile(ManagedClusterAutoUpgradeProfile autoUpgradeProfile) {
+ this.autoUpgradeProfile = autoUpgradeProfile;
+ return this;
+ }
+
+ /**
+ * Get the 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: Identities associated with the cluster.
+ *
+ * @return the identityProfile value.
+ */
+ public Map identityProfile() {
+ return this.identityProfile;
+ }
+
+ /**
+ * Set the identityProfile property: Identities associated with the cluster.
+ *
+ * @param identityProfile the identityProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withIdentityProfile(Map identityProfile) {
+ this.identityProfile = identityProfile;
+ return this;
+ }
+
+ /**
+ * Get the privateLinkResources property: Private link resources associated with the cluster.
+ *
+ * @return the privateLinkResources value.
+ */
+ public List privateLinkResources() {
+ return this.privateLinkResources;
+ }
+
+ /**
+ * Set the privateLinkResources property: Private link resources associated with the cluster.
+ *
+ * @param privateLinkResources the privateLinkResources value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withPrivateLinkResources(List privateLinkResources) {
+ this.privateLinkResources = privateLinkResources;
+ return this;
+ }
+
+ /**
+ * Get the disableLocalAccounts property: If local accounts should be disabled on the Managed Cluster.
+ *
+ * If set to true, getting static credentials will be disabled for this cluster. This must only be used on Managed
+ * Clusters that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ *
+ * @return the disableLocalAccounts value.
+ */
+ public Boolean disableLocalAccounts() {
+ return this.disableLocalAccounts;
+ }
+
+ /**
+ * Set the disableLocalAccounts property: If local accounts should be disabled on the Managed Cluster.
+ *
+ * If set to true, getting static credentials will be disabled for this cluster. This must only be used on Managed
+ * Clusters that are AAD enabled. For more details see [disable local
+ * accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview).
+ *
+ * @param disableLocalAccounts the disableLocalAccounts value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withDisableLocalAccounts(Boolean disableLocalAccounts) {
+ this.disableLocalAccounts = disableLocalAccounts;
+ return this;
+ }
+
+ /**
+ * Get the httpProxyConfig property: Configurations for provisioning the cluster with HTTP proxy servers.
+ *
+ * @return the httpProxyConfig value.
+ */
+ public ManagedClusterHttpProxyConfig httpProxyConfig() {
+ return this.httpProxyConfig;
+ }
+
+ /**
+ * Set the httpProxyConfig property: Configurations for provisioning the cluster with HTTP proxy servers.
+ *
+ * @param httpProxyConfig the httpProxyConfig value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withHttpProxyConfig(ManagedClusterHttpProxyConfig httpProxyConfig) {
+ this.httpProxyConfig = httpProxyConfig;
+ return this;
+ }
+
+ /**
+ * Get the securityProfile property: Security profile for the managed cluster.
+ *
+ * @return the securityProfile value.
+ */
+ public ManagedClusterSecurityProfile securityProfile() {
+ return this.securityProfile;
+ }
+
+ /**
+ * Set the securityProfile property: Security profile for the managed cluster.
+ *
+ * @param securityProfile the securityProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withSecurityProfile(ManagedClusterSecurityProfile securityProfile) {
+ this.securityProfile = securityProfile;
+ return this;
+ }
+
+ /**
+ * Get the 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: Prometheus addon profile for the container service cluster.
+ *
+ * @return the azureMonitorProfile value.
+ */
+ public ManagedClusterAzureMonitorProfile azureMonitorProfile() {
+ return this.azureMonitorProfile;
+ }
+
+ /**
+ * Set the azureMonitorProfile property: Prometheus addon profile for the container service 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 safeguardsProfile property: The Safeguards profile holds all the safeguards information for a given
+ * cluster.
+ *
+ * @return the safeguardsProfile value.
+ */
+ public SafeguardsProfile safeguardsProfile() {
+ return this.safeguardsProfile;
+ }
+
+ /**
+ * Set the safeguardsProfile property: The Safeguards profile holds all the safeguards information for a given
+ * cluster.
+ *
+ * @param safeguardsProfile the safeguardsProfile value to set.
+ * @return the ManagedClusterProperties object itself.
+ */
+ public ManagedClusterProperties withSafeguardsProfile(SafeguardsProfile safeguardsProfile) {
+ this.safeguardsProfile = safeguardsProfile;
+ 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 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 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (powerState() != null) {
+ powerState().validate();
+ }
+ if (creationData() != null) {
+ creationData().validate();
+ }
+ if (agentPoolProfiles() != null) {
+ agentPoolProfiles().forEach(e -> e.validate());
+ }
+ if (linuxProfile() != null) {
+ linuxProfile().validate();
+ }
+ if (windowsProfile() != null) {
+ windowsProfile().validate();
+ }
+ if (servicePrincipalProfile() != null) {
+ servicePrincipalProfile().validate();
+ }
+ if (addonProfiles() != null) {
+ addonProfiles().values().forEach(e -> {
+ if (e != null) {
+ e.validate();
+ }
+ });
+ }
+ if (podIdentityProfile() != null) {
+ podIdentityProfile().validate();
+ }
+ if (oidcIssuerProfile() != null) {
+ oidcIssuerProfile().validate();
+ }
+ if (nodeResourceGroupProfile() != null) {
+ nodeResourceGroupProfile().validate();
+ }
+ if (networkProfile() != null) {
+ networkProfile().validate();
+ }
+ if (aadProfile() != null) {
+ aadProfile().validate();
+ }
+ if (autoUpgradeProfile() != null) {
+ autoUpgradeProfile().validate();
+ }
+ if (upgradeSettings() != null) {
+ upgradeSettings().validate();
+ }
+ if (autoScalerProfile() != null) {
+ autoScalerProfile().validate();
+ }
+ if (apiServerAccessProfile() != null) {
+ apiServerAccessProfile().validate();
+ }
+ if (identityProfile() != null) {
+ identityProfile().values().forEach(e -> {
+ if (e != null) {
+ e.validate();
+ }
+ });
+ }
+ if (privateLinkResources() != null) {
+ privateLinkResources().forEach(e -> e.validate());
+ }
+ if (httpProxyConfig() != null) {
+ httpProxyConfig().validate();
+ }
+ if (securityProfile() != null) {
+ securityProfile().validate();
+ }
+ if (storageProfile() != null) {
+ storageProfile().validate();
+ }
+ if (ingressProfile() != null) {
+ ingressProfile().validate();
+ }
+ if (workloadAutoScalerProfile() != null) {
+ workloadAutoScalerProfile().validate();
+ }
+ if (azureMonitorProfile() != null) {
+ azureMonitorProfile().validate();
+ }
+ if (safeguardsProfile() != null) {
+ safeguardsProfile().validate();
+ }
+ if (serviceMeshProfile() != null) {
+ serviceMeshProfile().validate();
+ }
+ if (metricsProfile() != null) {
+ metricsProfile().validate();
+ }
+ if (aiToolchainOperatorProfile() != null) {
+ aiToolchainOperatorProfile().validate();
+ }
+ if (nodeProvisioningProfile() != null) {
+ nodeProvisioningProfile().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterSnapshotInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterSnapshotInner.java
new file mode 100644
index 0000000000000..d0533e18a06a0
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterSnapshotInner.java
@@ -0,0 +1,143 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.CreationData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterPropertiesForSnapshot;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.SnapshotType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/**
+ * A managed cluster snapshot resource.
+ */
+@Fluent
+public final class ManagedClusterSnapshotInner extends Resource {
+ /*
+ * Properties of a managed cluster snapshot.
+ */
+ @JsonProperty(value = "properties")
+ private ManagedClusterSnapshotProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Creates an instance of ManagedClusterSnapshotInner class.
+ */
+ public ManagedClusterSnapshotInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a managed cluster snapshot.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterSnapshotProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ManagedClusterSnapshotInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ManagedClusterSnapshotInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source resource ID to create this
+ * snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.innerProperties() == null ? null : this.innerProperties().creationData();
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source resource ID to create this
+ * snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterSnapshotInner object itself.
+ */
+ public ManagedClusterSnapshotInner withCreationData(CreationData creationData) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterSnapshotProperties();
+ }
+ this.innerProperties().withCreationData(creationData);
+ return this;
+ }
+
+ /**
+ * Get the snapshotType property: The type of a snapshot. The default is NodePool.
+ *
+ * @return the snapshotType value.
+ */
+ public SnapshotType snapshotType() {
+ return this.innerProperties() == null ? null : this.innerProperties().snapshotType();
+ }
+
+ /**
+ * Set the snapshotType property: The type of a snapshot. The default is NodePool.
+ *
+ * @param snapshotType the snapshotType value to set.
+ * @return the ManagedClusterSnapshotInner object itself.
+ */
+ public ManagedClusterSnapshotInner withSnapshotType(SnapshotType snapshotType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterSnapshotProperties();
+ }
+ this.innerProperties().withSnapshotType(snapshotType);
+ return this;
+ }
+
+ /**
+ * Get the managedClusterPropertiesReadOnly property: What the properties will be showed when getting managed
+ * cluster snapshot. Those properties are read-only.
+ *
+ * @return the managedClusterPropertiesReadOnly value.
+ */
+ public ManagedClusterPropertiesForSnapshot managedClusterPropertiesReadOnly() {
+ return this.innerProperties() == null ? null : this.innerProperties().managedClusterPropertiesReadOnly();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterSnapshotProperties.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterSnapshotProperties.java
new file mode 100644
index 0000000000000..2e4b65770ca92
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterSnapshotProperties.java
@@ -0,0 +1,107 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.CreationData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterPropertiesForSnapshot;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.SnapshotType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties for a managed cluster snapshot.
+ */
+@Fluent
+public final class ManagedClusterSnapshotProperties {
+ /*
+ * CreationData to be used to specify the source resource ID to create this snapshot.
+ */
+ @JsonProperty(value = "creationData")
+ private CreationData creationData;
+
+ /*
+ * The type of a snapshot. The default is NodePool.
+ */
+ @JsonProperty(value = "snapshotType")
+ private SnapshotType snapshotType;
+
+ /*
+ * What the properties will be showed when getting managed cluster snapshot. Those properties are read-only.
+ */
+ @JsonProperty(value = "managedClusterPropertiesReadOnly", access = JsonProperty.Access.WRITE_ONLY)
+ private ManagedClusterPropertiesForSnapshot managedClusterPropertiesReadOnly;
+
+ /**
+ * Creates an instance of ManagedClusterSnapshotProperties class.
+ */
+ public ManagedClusterSnapshotProperties() {
+ }
+
+ /**
+ * Get the creationData property: CreationData to be used to specify the source resource ID to create this
+ * snapshot.
+ *
+ * @return the creationData value.
+ */
+ public CreationData creationData() {
+ return this.creationData;
+ }
+
+ /**
+ * Set the creationData property: CreationData to be used to specify the source resource ID to create this
+ * snapshot.
+ *
+ * @param creationData the creationData value to set.
+ * @return the ManagedClusterSnapshotProperties object itself.
+ */
+ public ManagedClusterSnapshotProperties withCreationData(CreationData creationData) {
+ this.creationData = creationData;
+ return this;
+ }
+
+ /**
+ * Get the snapshotType property: The type of a snapshot. The default is NodePool.
+ *
+ * @return the snapshotType value.
+ */
+ public SnapshotType snapshotType() {
+ return this.snapshotType;
+ }
+
+ /**
+ * Set the snapshotType property: The type of a snapshot. The default is NodePool.
+ *
+ * @param snapshotType the snapshotType value to set.
+ * @return the ManagedClusterSnapshotProperties object itself.
+ */
+ public ManagedClusterSnapshotProperties withSnapshotType(SnapshotType snapshotType) {
+ this.snapshotType = snapshotType;
+ return this;
+ }
+
+ /**
+ * Get the managedClusterPropertiesReadOnly property: What the properties will be showed when getting managed
+ * cluster snapshot. Those properties are read-only.
+ *
+ * @return the managedClusterPropertiesReadOnly value.
+ */
+ public ManagedClusterPropertiesForSnapshot managedClusterPropertiesReadOnly() {
+ return this.managedClusterPropertiesReadOnly;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (creationData() != null) {
+ creationData().validate();
+ }
+ if (managedClusterPropertiesReadOnly() != null) {
+ managedClusterPropertiesReadOnly().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterUpgradeProfileInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterUpgradeProfileInner.java
new file mode 100644
index 0000000000000..b6f633d509bce
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterUpgradeProfileInner.java
@@ -0,0 +1,147 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterPoolUpgradeProfile;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * The list of available upgrades for compute pools.
+ */
+@Fluent
+public final class ManagedClusterUpgradeProfileInner {
+ /*
+ * The ID of the upgrade profile.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the upgrade profile.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The type of the upgrade profile.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The properties of the upgrade profile.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ManagedClusterUpgradeProfileProperties innerProperties = new ManagedClusterUpgradeProfileProperties();
+
+ /**
+ * Creates an instance of ManagedClusterUpgradeProfileInner class.
+ */
+ public ManagedClusterUpgradeProfileInner() {
+ }
+
+ /**
+ * Get the id property: The ID of the upgrade profile.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The name of the upgrade profile.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The type of the upgrade profile.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: The properties of the upgrade profile.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagedClusterUpgradeProfileProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the controlPlaneProfile property: The list of available upgrade versions for the control plane.
+ *
+ * @return the controlPlaneProfile value.
+ */
+ public ManagedClusterPoolUpgradeProfile controlPlaneProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().controlPlaneProfile();
+ }
+
+ /**
+ * Set the controlPlaneProfile property: The list of available upgrade versions for the control plane.
+ *
+ * @param controlPlaneProfile the controlPlaneProfile value to set.
+ * @return the ManagedClusterUpgradeProfileInner object itself.
+ */
+ public ManagedClusterUpgradeProfileInner
+ withControlPlaneProfile(ManagedClusterPoolUpgradeProfile controlPlaneProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterUpgradeProfileProperties();
+ }
+ this.innerProperties().withControlPlaneProfile(controlPlaneProfile);
+ return this;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().agentPoolProfiles();
+ }
+
+ /**
+ * Set the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the ManagedClusterUpgradeProfileInner object itself.
+ */
+ public ManagedClusterUpgradeProfileInner
+ withAgentPoolProfiles(List agentPoolProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagedClusterUpgradeProfileProperties();
+ }
+ this.innerProperties().withAgentPoolProfiles(agentPoolProfiles);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property innerProperties in model ManagedClusterUpgradeProfileInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ManagedClusterUpgradeProfileInner.class);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterUpgradeProfileProperties.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterUpgradeProfileProperties.java
new file mode 100644
index 0000000000000..3066878fb2625
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/ManagedClusterUpgradeProfileProperties.java
@@ -0,0 +1,99 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.ManagedClusterPoolUpgradeProfile;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * Control plane and agent pool upgrade profiles.
+ */
+@Fluent
+public final class ManagedClusterUpgradeProfileProperties {
+ /*
+ * The list of available upgrade versions for the control plane.
+ */
+ @JsonProperty(value = "controlPlaneProfile", required = true)
+ private ManagedClusterPoolUpgradeProfile controlPlaneProfile;
+
+ /*
+ * The list of available upgrade versions for agent pools.
+ */
+ @JsonProperty(value = "agentPoolProfiles", required = true)
+ private List agentPoolProfiles;
+
+ /**
+ * Creates an instance of ManagedClusterUpgradeProfileProperties class.
+ */
+ public 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;
+ }
+
+ /**
+ * Set the controlPlaneProfile property: The list of available upgrade versions for the control plane.
+ *
+ * @param controlPlaneProfile the controlPlaneProfile value to set.
+ * @return the ManagedClusterUpgradeProfileProperties object itself.
+ */
+ public ManagedClusterUpgradeProfileProperties
+ withControlPlaneProfile(ManagedClusterPoolUpgradeProfile controlPlaneProfile) {
+ this.controlPlaneProfile = controlPlaneProfile;
+ return this;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.agentPoolProfiles;
+ }
+
+ /**
+ * Set the agentPoolProfiles property: The list of available upgrade versions for agent pools.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the ManagedClusterUpgradeProfileProperties object itself.
+ */
+ public ManagedClusterUpgradeProfileProperties
+ withAgentPoolProfiles(List agentPoolProfiles) {
+ this.agentPoolProfiles = agentPoolProfiles;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (controlPlaneProfile() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property controlPlaneProfile in model ManagedClusterUpgradeProfileProperties"));
+ } else {
+ controlPlaneProfile().validate();
+ }
+ if (agentPoolProfiles() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property agentPoolProfiles in model ManagedClusterUpgradeProfileProperties"));
+ } else {
+ agentPoolProfiles().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ManagedClusterUpgradeProfileProperties.class);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MeshRevisionProfileInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MeshRevisionProfileInner.java
new file mode 100644
index 0000000000000..517f4d49b19b5
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MeshRevisionProfileInner.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.MeshRevisionProfileProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Mesh revision profile for a mesh.
+ */
+@Fluent
+public final class MeshRevisionProfileInner extends ProxyResource {
+ /*
+ * Mesh revision profile properties for a mesh
+ */
+ @JsonProperty(value = "properties")
+ private MeshRevisionProfileProperties properties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Creates an instance of MeshRevisionProfileInner class.
+ */
+ public MeshRevisionProfileInner() {
+ }
+
+ /**
+ * Get the properties property: Mesh revision profile properties for a mesh.
+ *
+ * @return the properties value.
+ */
+ public MeshRevisionProfileProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Mesh revision profile properties for a mesh.
+ *
+ * @param properties the properties value to set.
+ * @return the MeshRevisionProfileInner object itself.
+ */
+ public MeshRevisionProfileInner withProperties(MeshRevisionProfileProperties properties) {
+ this.properties = properties;
+ 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MeshUpgradeProfileInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MeshUpgradeProfileInner.java
new file mode 100644
index 0000000000000..9633458584cba
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/MeshUpgradeProfileInner.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.MeshUpgradeProfileProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Upgrade profile for given mesh.
+ */
+@Fluent
+public final class MeshUpgradeProfileInner extends ProxyResource {
+ /*
+ * Mesh upgrade profile properties for a major.minor release.
+ */
+ @JsonProperty(value = "properties")
+ private MeshUpgradeProfileProperties properties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Creates an instance of MeshUpgradeProfileInner class.
+ */
+ public MeshUpgradeProfileInner() {
+ }
+
+ /**
+ * Get the properties property: Mesh upgrade profile properties for a major.minor release.
+ *
+ * @return the properties value.
+ */
+ public MeshUpgradeProfileProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Mesh upgrade profile properties for a major.minor release.
+ *
+ * @param properties the properties value to set.
+ * @return the MeshUpgradeProfileInner object itself.
+ */
+ public MeshUpgradeProfileInner withProperties(MeshUpgradeProfileProperties properties) {
+ this.properties = properties;
+ 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OSOptionProfileInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OSOptionProfileInner.java
new file mode 100644
index 0000000000000..14b6c0848b8c1
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OSOptionProfileInner.java
@@ -0,0 +1,122 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OSOptionProperty;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * The OS option profile.
+ */
+@Fluent
+public final class OSOptionProfileInner {
+ /*
+ * The ID of the OS option resource.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the OS option resource.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The type of the OS option resource.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The list of OS options.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private OSOptionPropertyList innerProperties = new OSOptionPropertyList();
+
+ /**
+ * Creates an instance of OSOptionProfileInner class.
+ */
+ public OSOptionProfileInner() {
+ }
+
+ /**
+ * Get the id property: The ID of the OS option resource.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The name of the OS option resource.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The type of the OS option resource.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: The list of OS options.
+ *
+ * @return the innerProperties value.
+ */
+ private OSOptionPropertyList innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the osOptionPropertyList property: The list of OS options.
+ *
+ * @return the osOptionPropertyList value.
+ */
+ public List osOptionPropertyList() {
+ return this.innerProperties() == null ? null : this.innerProperties().osOptionPropertyList();
+ }
+
+ /**
+ * Set the osOptionPropertyList property: The list of OS options.
+ *
+ * @param osOptionPropertyList the osOptionPropertyList value to set.
+ * @return the OSOptionProfileInner object itself.
+ */
+ public OSOptionProfileInner withOsOptionPropertyList(List osOptionPropertyList) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSOptionPropertyList();
+ }
+ this.innerProperties().withOsOptionPropertyList(osOptionPropertyList);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property innerProperties in model OSOptionProfileInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(OSOptionProfileInner.class);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OSOptionPropertyList.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OSOptionPropertyList.java
new file mode 100644
index 0000000000000..5b3d5acb5e406
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OSOptionPropertyList.java
@@ -0,0 +1,65 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OSOptionProperty;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * The list of OS option properties.
+ */
+@Fluent
+public final class OSOptionPropertyList {
+ /*
+ * The list of OS options.
+ */
+ @JsonProperty(value = "osOptionPropertyList", required = true)
+ private List osOptionPropertyList;
+
+ /**
+ * Creates an instance of OSOptionPropertyList class.
+ */
+ public OSOptionPropertyList() {
+ }
+
+ /**
+ * Get the osOptionPropertyList property: The list of OS options.
+ *
+ * @return the osOptionPropertyList value.
+ */
+ public List osOptionPropertyList() {
+ return this.osOptionPropertyList;
+ }
+
+ /**
+ * Set the osOptionPropertyList property: The list of OS options.
+ *
+ * @param osOptionPropertyList the osOptionPropertyList value to set.
+ * @return the OSOptionPropertyList object itself.
+ */
+ public OSOptionPropertyList withOsOptionPropertyList(List osOptionPropertyList) {
+ this.osOptionPropertyList = osOptionPropertyList;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (osOptionPropertyList() == null) {
+ throw LOGGER.logExceptionAsError(new IllegalArgumentException(
+ "Missing required property osOptionPropertyList in model OSOptionPropertyList"));
+ } else {
+ osOptionPropertyList().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(OSOptionPropertyList.class);
+}
diff --git a/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OpenShiftManagedClusterInner.java b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OpenShiftManagedClusterInner.java
new file mode 100644
index 0000000000000..a8c3d5b8b8e41
--- /dev/null
+++ b/sdk/containerservicemicrosoftcontainerserviceaks/azure-resourcemanager-containerservicemicrosoftcontainerserviceaks-generated/src/main/java/com/azure/resourcemanager/containerservicemicrosoftcontainerserviceaks/generated/fluent/models/OpenShiftManagedClusterInner.java
@@ -0,0 +1,279 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.NetworkProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OpenShiftManagedClusterAgentPoolProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OpenShiftManagedClusterAuthProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OpenShiftManagedClusterMasterPoolProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.OpenShiftRouterProfile;
+import com.azure.resourcemanager.containerservicemicrosoftcontainerserviceaks.generated.models.PurchasePlan;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * OpenShift Managed cluster.
+ */
+@Fluent
+public final class OpenShiftManagedClusterInner extends Resource {
+ /*
+ * Define the resource plan as required by ARM for billing purposes
+ */
+ @JsonProperty(value = "plan")
+ private PurchasePlan plan;
+
+ /*
+ * Properties of a OpenShift managed cluster.
+ */
+ @JsonProperty(value = "properties")
+ private OpenShiftManagedClusterProperties innerProperties;
+
+ /**
+ * Creates an instance of OpenShiftManagedClusterInner class.
+ */
+ public OpenShiftManagedClusterInner() {
+ }
+
+ /**
+ * Get the plan property: Define the resource plan as required by ARM for billing purposes.
+ *
+ * @return the plan value.
+ */
+ public PurchasePlan plan() {
+ return this.plan;
+ }
+
+ /**
+ * Set the plan property: Define the resource plan as required by ARM for billing purposes.
+ *
+ * @param plan the plan value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withPlan(PurchasePlan plan) {
+ this.plan = plan;
+ return this;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a OpenShift managed cluster.
+ *
+ * @return the innerProperties value.
+ */
+ private OpenShiftManagedClusterProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public OpenShiftManagedClusterInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public OpenShiftManagedClusterInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The current deployment or provisioning state, which only appears in the
+ * response.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the openShiftVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @return the openShiftVersion value.
+ */
+ public String openShiftVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().openShiftVersion();
+ }
+
+ /**
+ * Set the openShiftVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @param openShiftVersion the openShiftVersion value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withOpenShiftVersion(String openShiftVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withOpenShiftVersion(openShiftVersion);
+ return this;
+ }
+
+ /**
+ * Get the clusterVersion property: Version of OpenShift specified when creating the cluster.
+ *
+ * @return the clusterVersion value.
+ */
+ public String clusterVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().clusterVersion();
+ }
+
+ /**
+ * Get the publicHostname property: Service generated FQDN for OpenShift API server.
+ *
+ * @return the publicHostname value.
+ */
+ public String publicHostname() {
+ return this.innerProperties() == null ? null : this.innerProperties().publicHostname();
+ }
+
+ /**
+ * Get the fqdn property: Service generated FQDN for OpenShift API server loadbalancer internal hostname.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().fqdn();
+ }
+
+ /**
+ * Get the networkProfile property: Configuration for OpenShift networking.
+ *
+ * @return the networkProfile value.
+ */
+ public NetworkProfile networkProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkProfile();
+ }
+
+ /**
+ * Set the networkProfile property: Configuration for OpenShift networking.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withNetworkProfile(NetworkProfile networkProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withNetworkProfile(networkProfile);
+ return this;
+ }
+
+ /**
+ * Get the routerProfiles property: Configuration for OpenShift router(s).
+ *
+ * @return the routerProfiles value.
+ */
+ public List routerProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().routerProfiles();
+ }
+
+ /**
+ * Set the routerProfiles property: Configuration for OpenShift router(s).
+ *
+ * @param routerProfiles the routerProfiles value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner withRouterProfiles(List routerProfiles) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withRouterProfiles(routerProfiles);
+ return this;
+ }
+
+ /**
+ * Get the masterPoolProfile property: Configuration for OpenShift master VMs.
+ *
+ * @return the masterPoolProfile value.
+ */
+ public OpenShiftManagedClusterMasterPoolProfile masterPoolProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().masterPoolProfile();
+ }
+
+ /**
+ * Set the masterPoolProfile property: Configuration for OpenShift master VMs.
+ *
+ * @param masterPoolProfile the masterPoolProfile value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner
+ withMasterPoolProfile(OpenShiftManagedClusterMasterPoolProfile masterPoolProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OpenShiftManagedClusterProperties();
+ }
+ this.innerProperties().withMasterPoolProfile(masterPoolProfile);
+ return this;
+ }
+
+ /**
+ * Get the agentPoolProfiles property: Configuration of OpenShift cluster VMs.
+ *
+ * @return the agentPoolProfiles value.
+ */
+ public List agentPoolProfiles() {
+ return this.innerProperties() == null ? null : this.innerProperties().agentPoolProfiles();
+ }
+
+ /**
+ * Set the agentPoolProfiles property: Configuration of OpenShift cluster VMs.
+ *
+ * @param agentPoolProfiles the agentPoolProfiles value to set.
+ * @return the OpenShiftManagedClusterInner object itself.
+ */
+ public OpenShiftManagedClusterInner
+ withAgentPoolProfiles(List