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 Workloads service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Workloads service API instance.
+ */
+ public WorkloadsManager 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.workloadsmicrosoftworkloadssapvirtualinstance")
+ .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 WorkloadsManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of ResourceProviders.
+ *
+ * @return Resource collection API of ResourceProviders.
+ */
+ public ResourceProviders resourceProviders() {
+ if (this.resourceProviders == null) {
+ this.resourceProviders = new ResourceProvidersImpl(clientObject.getResourceProviders(), this);
+ }
+ return resourceProviders;
+ }
+
+ /**
+ * Gets the resource collection API of SapVirtualInstances. It manages SapVirtualInstance.
+ *
+ * @return Resource collection API of SapVirtualInstances.
+ */
+ public SapVirtualInstances sapVirtualInstances() {
+ if (this.sapVirtualInstances == null) {
+ this.sapVirtualInstances = new SapVirtualInstancesImpl(clientObject.getSapVirtualInstances(), this);
+ }
+ return sapVirtualInstances;
+ }
+
+ /**
+ * Gets the resource collection API of SapCentralInstances. It manages SapCentralServerInstance.
+ *
+ * @return Resource collection API of SapCentralInstances.
+ */
+ public SapCentralInstances sapCentralInstances() {
+ if (this.sapCentralInstances == null) {
+ this.sapCentralInstances = new SapCentralInstancesImpl(clientObject.getSapCentralInstances(), this);
+ }
+ return sapCentralInstances;
+ }
+
+ /**
+ * Gets the resource collection API of SapDatabaseInstances. It manages SapDatabaseInstance.
+ *
+ * @return Resource collection API of SapDatabaseInstances.
+ */
+ public SapDatabaseInstances sapDatabaseInstances() {
+ if (this.sapDatabaseInstances == null) {
+ this.sapDatabaseInstances = new SapDatabaseInstancesImpl(clientObject.getSapDatabaseInstances(), this);
+ }
+ return sapDatabaseInstances;
+ }
+
+ /**
+ * Gets the resource collection API of SapApplicationServerInstances. It manages SapApplicationServerInstance.
+ *
+ * @return Resource collection API of SapApplicationServerInstances.
+ */
+ public SapApplicationServerInstances sapApplicationServerInstances() {
+ if (this.sapApplicationServerInstances == null) {
+ this.sapApplicationServerInstances =
+ new SapApplicationServerInstancesImpl(clientObject.getSapApplicationServerInstances(), this);
+ }
+ return sapApplicationServerInstances;
+ }
+
+ /**
+ * 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 wrapped service client WorkloadsClient providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ *
+ * @return Wrapped service client WorkloadsClient.
+ */
+ public WorkloadsClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/OperationsClient.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..3d3c4ec3fb4bf
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/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.workloadsmicrosoftworkloadssapvirtualinstance.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.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all the available API operations under this PR.
+ *
+ * @throws com.azure.core.management.exception.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 REST API operations supported by an Azure Resource Provider as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the available API operations under this PR.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 REST API operations supported by an Azure Resource Provider as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/ResourceProvidersClient.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/ResourceProvidersClient.java
new file mode 100644
index 0000000000000..6945ea5758a9e
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/ResourceProvidersClient.java
@@ -0,0 +1,133 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.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.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapAvailabilityZoneDetailsResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapDiskConfigurationsResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapSizingRecommendationResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapSupportedResourceSkusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapAvailabilityZoneDetailsRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapDiskConfigurationsRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSizingRecommendationRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSupportedSkusRequest;
+
+/** An instance of this class provides access to all the operations defined in ResourceProvidersClient. */
+public interface ResourceProvidersClient {
+ /**
+ * Get SAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ *
+ * @param location The name of Azure region.
+ * @param sapSizingRecommendation SAP Sizing Recommendation Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response sapSizingRecommendationsWithResponse(
+ String location, SapSizingRecommendationRequest sapSizingRecommendation, Context context);
+
+ /**
+ * Get SAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapSizingRecommendationResultInner sapSizingRecommendations(String location);
+
+ /**
+ * Get a list of SAP supported SKUs for ASCS, Application and Database tier.
+ *
+ * @param location The name of Azure region.
+ * @param sapSupportedSku SAP Supported SKU Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 SAP supported SKUs for ASCS, Application and Database tier along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response sapSupportedSkuWithResponse(
+ String location, SapSupportedSkusRequest sapSupportedSku, Context context);
+
+ /**
+ * Get a list of SAP supported SKUs for ASCS, Application and Database tier.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of SAP supported SKUs for ASCS, Application and Database tier.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapSupportedResourceSkusResultInner sapSupportedSku(String location);
+
+ /**
+ * Get the SAP Disk Configuration Layout prod/non-prod SAP System.
+ *
+ * @param location The name of Azure region.
+ * @param sapDiskConfigurations SAP Disk Configurations Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Disk Configuration Layout prod/non-prod SAP System along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response sapDiskConfigurationsWithResponse(
+ String location, SapDiskConfigurationsRequest sapDiskConfigurations, Context context);
+
+ /**
+ * Get the SAP Disk Configuration Layout prod/non-prod SAP System.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Disk Configuration Layout prod/non-prod SAP System.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapDiskConfigurationsResultInner sapDiskConfigurations(String location);
+
+ /**
+ * Get the recommended SAP Availability Zone Pair Details for your region.
+ *
+ * @param location The name of Azure region.
+ * @param sapAvailabilityZoneDetails SAP Availability Zone Details Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the recommended SAP Availability Zone Pair Details for your region along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response sapAvailabilityZoneDetailsWithResponse(
+ String location, SapAvailabilityZoneDetailsRequest sapAvailabilityZoneDetails, Context context);
+
+ /**
+ * Get the recommended SAP Availability Zone Pair Details for your region.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the recommended SAP Availability Zone Pair Details for your region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapAvailabilityZoneDetailsResultInner sapAvailabilityZoneDetails(String location);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapApplicationServerInstancesClient.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapApplicationServerInstancesClient.java
new file mode 100644
index 0000000000000..06ed4e161aa76
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapApplicationServerInstancesClient.java
@@ -0,0 +1,402 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.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.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationStatusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapApplicationServerInstanceInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StartRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StopRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.UpdateSapApplicationInstanceRequest;
+
+/** An instance of this class provides access to all the operations defined in SapApplicationServerInstancesClient. */
+public interface SapApplicationServerInstancesClient {
+ /**
+ * Gets the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource
+ * along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context);
+
+ /**
+ * Gets the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapApplicationServerInstanceInner get(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SapApplicationServerInstanceInner> beginCreate(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SapApplicationServerInstanceInner> beginCreate(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body,
+ Context context);
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapApplicationServerInstanceInner create(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapApplicationServerInstanceInner create(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body,
+ Context context);
+
+ /**
+ * Puts the SAP Application Server Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ UpdateSapApplicationInstanceRequest body,
+ Context context);
+
+ /**
+ * Puts the SAP Application Server Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapApplicationServerInstanceInner update(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 sapVirtualInstanceName, String applicationInstanceName, Context context);
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 sapVirtualInstanceName, String applicationInstanceName, Context context);
+
+ /**
+ * Lists the SAP Application Server Instance resources for a given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 defines the collection of SAP Application Server Instance resources as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Lists the SAP Application Server Instance resources for a given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 defines the collection of SAP Application Server Instance resources as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String sapVirtualInstanceName, Context context);
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStartInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStartInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StartRequest body,
+ Context context);
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner startInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner startInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StartRequest body,
+ Context context);
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStopInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStopInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StopRequest body,
+ Context context);
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance 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 current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner stopInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName);
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner stopInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StopRequest body,
+ Context context);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapCentralInstancesClient.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapCentralInstancesClient.java
new file mode 100644
index 0000000000000..57b5cf3f828df
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapCentralInstancesClient.java
@@ -0,0 +1,426 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.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.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationStatusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapCentralServerInstanceInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StartRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StopRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.UpdateSapCentralInstanceRequest;
+
+/** An instance of this class provides access to all the operations defined in SapCentralInstancesClient. */
+public interface SapCentralInstancesClient {
+ /**
+ * Gets the SAP Central Services Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Central Services Instance resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName, Context context);
+
+ /**
+ * Gets the SAP Central Services Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Central Services Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapCentralServerInstanceInner get(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Creates the SAP Central Services Instance resource. <br><br>This will be used by service only. PUT
+ * operation on this resource by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 define the SAP Central Services Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SapCentralServerInstanceInner> beginCreate(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Creates the SAP Central Services Instance resource. <br><br>This will be used by service only. PUT
+ * operation on this resource by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param body The SAP Central Services Instance request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 define the SAP Central Services Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SapCentralServerInstanceInner> beginCreate(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String centralInstanceName,
+ SapCentralServerInstanceInner body,
+ Context context);
+
+ /**
+ * Creates the SAP Central Services Instance resource. <br><br>This will be used by service only. PUT
+ * operation on this resource by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Central Services Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapCentralServerInstanceInner create(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Creates the SAP Central Services Instance resource. <br><br>This will be used by service only. PUT
+ * operation on this resource by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param body The SAP Central Services Instance request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Central Services Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapCentralServerInstanceInner create(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String centralInstanceName,
+ SapCentralServerInstanceInner body,
+ Context context);
+
+ /**
+ * Updates the SAP Central Services Instance resource. <br><br>This can be used to update tags on the
+ * resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param body The SAP Central Services Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Central Services Instance resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String centralInstanceName,
+ UpdateSapCentralInstanceRequest body,
+ Context context);
+
+ /**
+ * Updates the SAP Central Services Instance resource. <br><br>This can be used to update tags on the
+ * resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Central Services Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapCentralServerInstanceInner update(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Deletes the SAP Central Services Instance resource. <br><br>This will be used by service only. Delete
+ * operation on this resource by end user will return a Bad Request error. You can delete the parent resource, which
+ * is the Virtual Instance for SAP solutions resource, using the delete operation on it.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Deletes the SAP Central Services Instance resource. <br><br>This will be used by service only. Delete
+ * operation on this resource by end user will return a Bad Request error. You can delete the parent resource, which
+ * is the Virtual Instance for SAP solutions resource, using the delete operation on it.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 sapVirtualInstanceName, String centralInstanceName, Context context);
+
+ /**
+ * Deletes the SAP Central Services Instance resource. <br><br>This will be used by service only. Delete
+ * operation on this resource by end user will return a Bad Request error. You can delete the parent resource, which
+ * is the Virtual Instance for SAP solutions resource, using the delete operation on it.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Deletes the SAP Central Services Instance resource. <br><br>This will be used by service only. Delete
+ * operation on this resource by end user will return a Bad Request error. You can delete the parent resource, which
+ * is the Virtual Instance for SAP solutions resource, using the delete operation on it.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 sapVirtualInstanceName, String centralInstanceName, Context context);
+
+ /**
+ * Lists the SAP Central Services Instance resource for the given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 defines the collection of SAP Central Services Instance resources as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Lists the SAP Central Services Instance resource for the given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 defines the collection of SAP Central Services Instance resources as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String sapVirtualInstanceName, Context context);
+
+ /**
+ * Starts the SAP Central Services Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStartInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Starts the SAP Central Services Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param body SAP Central Services instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStartInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String centralInstanceName,
+ StartRequest body,
+ Context context);
+
+ /**
+ * Starts the SAP Central Services Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner startInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Starts the SAP Central Services Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param body SAP Central Services instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner startInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String centralInstanceName,
+ StartRequest body,
+ Context context);
+
+ /**
+ * Stops the SAP Central Services Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStopInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Stops the SAP Central Services Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param body SAP Central Services instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStopInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String centralInstanceName,
+ StopRequest body,
+ Context context);
+
+ /**
+ * Stops the SAP Central Services Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner stopInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String centralInstanceName);
+
+ /**
+ * Stops the SAP Central Services Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param centralInstanceName Central Services Instance resource name string modeled as parameter for auto
+ * generation to work correctly.
+ * @param body SAP Central Services instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner stopInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String centralInstanceName,
+ StopRequest body,
+ Context context);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapDatabaseInstancesClient.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapDatabaseInstancesClient.java
new file mode 100644
index 0000000000000..2091e7d2ad89a
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapDatabaseInstancesClient.java
@@ -0,0 +1,417 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.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.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationStatusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapDatabaseInstanceInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StartRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StopRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.UpdateSapDatabaseInstanceRequest;
+
+/** An instance of this class provides access to all the operations defined in SapDatabaseInstancesClient. */
+public interface SapDatabaseInstancesClient {
+ /**
+ * Gets the SAP Database Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Database Instance resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName, Context context);
+
+ /**
+ * Gets the SAP Database Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Database Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapDatabaseInstanceInner get(String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Creates the Database resource corresponding to the Virtual Instance for SAP solutions resource.
+ * <br><br>This will be used by service only. PUT by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 define the Database resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SapDatabaseInstanceInner> beginCreate(
+ String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Creates the Database resource corresponding to the Virtual Instance for SAP solutions resource.
+ * <br><br>This will be used by service only. PUT by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param body Request body of Database resource of a SAP system.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 define the Database resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SapDatabaseInstanceInner> beginCreate(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String databaseInstanceName,
+ SapDatabaseInstanceInner body,
+ Context context);
+
+ /**
+ * Creates the Database resource corresponding to the Virtual Instance for SAP solutions resource.
+ * <br><br>This will be used by service only. PUT by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the Database resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapDatabaseInstanceInner create(
+ String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Creates the Database resource corresponding to the Virtual Instance for SAP solutions resource.
+ * <br><br>This will be used by service only. PUT by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param body Request body of Database resource of a SAP system.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the Database resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapDatabaseInstanceInner create(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String databaseInstanceName,
+ SapDatabaseInstanceInner body,
+ Context context);
+
+ /**
+ * Updates the Database resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param body Database resource update request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the Database resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String databaseInstanceName,
+ UpdateSapDatabaseInstanceRequest body,
+ Context context);
+
+ /**
+ * Updates the Database resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the Database resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapDatabaseInstanceInner update(
+ String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Deletes the Database resource corresponding to a Virtual Instance for SAP solutions resource.
+ * <br><br>This will be used by service only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Deletes the Database resource corresponding to a Virtual Instance for SAP solutions resource.
+ * <br><br>This will be used by service only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 sapVirtualInstanceName, String databaseInstanceName, Context context);
+
+ /**
+ * Deletes the Database resource corresponding to a Virtual Instance for SAP solutions resource.
+ * <br><br>This will be used by service only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Deletes the Database resource corresponding to a Virtual Instance for SAP solutions resource.
+ * <br><br>This will be used by service only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 sapVirtualInstanceName, String databaseInstanceName, Context context);
+
+ /**
+ * Lists the Database resources associated with a Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 defines the collection of SAP Database Instances as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Lists the Database resources associated with a Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 defines the collection of SAP Database Instances as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String sapVirtualInstanceName, Context context);
+
+ /**
+ * Starts the database instance of the SAP system.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStartInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Starts the database instance of the SAP system.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param body SAP Database server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStartInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String databaseInstanceName,
+ StartRequest body,
+ Context context);
+
+ /**
+ * Starts the database instance of the SAP system.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner startInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Starts the database instance of the SAP system.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param body SAP Database server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner startInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String databaseInstanceName,
+ StartRequest body,
+ Context context);
+
+ /**
+ * Stops the database instance of the SAP system.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStopInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Stops the database instance of the SAP system.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param body Stop request for the database instance of the SAP system.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStopInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String databaseInstanceName,
+ StopRequest body,
+ Context context);
+
+ /**
+ * Stops the database instance of the SAP system.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner stopInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String databaseInstanceName);
+
+ /**
+ * Stops the database instance of the SAP system.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param databaseInstanceName Database resource name string modeled as parameter for auto generation to work
+ * correctly.
+ * @param body Stop request for the database instance of the SAP system.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner stopInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String databaseInstanceName,
+ StopRequest body,
+ Context context);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapVirtualInstancesClient.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapVirtualInstancesClient.java
new file mode 100644
index 0000000000000..9df127b7ebd66
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/SapVirtualInstancesClient.java
@@ -0,0 +1,363 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.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.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationStatusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapVirtualInstanceInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StartRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StopRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.UpdateSapVirtualInstanceRequest;
+
+/** An instance of this class provides access to all the operations defined in SapVirtualInstancesClient. */
+public interface SapVirtualInstancesClient {
+ /**
+ * Creates a Virtual Instance for SAP solutions (VIS) resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 define the Virtual Instance for SAP solutions resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SapVirtualInstanceInner> beginCreate(
+ String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Creates a Virtual Instance for SAP solutions (VIS) resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param body Virtual Instance for SAP solutions resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 define the Virtual Instance for SAP solutions resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SapVirtualInstanceInner> beginCreate(
+ String resourceGroupName, String sapVirtualInstanceName, SapVirtualInstanceInner body, Context context);
+
+ /**
+ * Creates a Virtual Instance for SAP solutions (VIS) resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 define the Virtual Instance for SAP solutions resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapVirtualInstanceInner create(String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Creates a Virtual Instance for SAP solutions (VIS) resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param body Virtual Instance for SAP solutions resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the Virtual Instance for SAP solutions resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapVirtualInstanceInner create(
+ String resourceGroupName, String sapVirtualInstanceName, SapVirtualInstanceInner body, Context context);
+
+ /**
+ * Gets a Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 Virtual Instance for SAP solutions resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String sapVirtualInstanceName, Context context);
+
+ /**
+ * Gets a Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 Virtual Instance for SAP solutions resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapVirtualInstanceInner getByResourceGroup(String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Updates a Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param body Request body to update a Virtual Instance for SAP solutions 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 define the Virtual Instance for SAP solutions resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String sapVirtualInstanceName, UpdateSapVirtualInstanceRequest body, Context context);
+
+ /**
+ * Updates a Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 define the Virtual Instance for SAP solutions resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SapVirtualInstanceInner update(String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Deletes a Virtual Instance for SAP solutions resource and its child resources, that is the associated Central
+ * Services Instance, Application Server Instances and Database Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 sapVirtualInstanceName);
+
+ /**
+ * Deletes a Virtual Instance for SAP solutions resource and its child resources, that is the associated Central
+ * Services Instance, Application Server Instances and Database Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 sapVirtualInstanceName, Context context);
+
+ /**
+ * Deletes a Virtual Instance for SAP solutions resource and its child resources, that is the associated Central
+ * Services Instance, Application Server Instances and Database Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 sapVirtualInstanceName);
+
+ /**
+ * Deletes a Virtual Instance for SAP solutions resource and its child resources, that is the associated Central
+ * Services Instance, Application Server Instances and Database Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 sapVirtualInstanceName, Context context);
+
+ /**
+ * Gets all Virtual Instances for SAP solutions resources in a 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 all Virtual Instances for SAP solutions resources in a Resource Group as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Gets all Virtual Instances for SAP solutions resources in a 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 all Virtual Instances for SAP solutions resources in a Resource Group as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets all Virtual Instances for SAP solutions resources in a 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 all Virtual Instances for SAP solutions resources in a Subscription as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets all Virtual Instances for SAP solutions resources in a 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 all Virtual Instances for SAP solutions resources in a Subscription as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Starts the SAP application, that is the Central Services instance and Application server instances.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStart(
+ String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Starts the SAP application, that is the Central Services instance and Application server instances.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param body The Virtual Instance for SAP solutions resource start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStart(
+ String resourceGroupName, String sapVirtualInstanceName, StartRequest body, Context context);
+
+ /**
+ * Starts the SAP application, that is the Central Services instance and Application server instances.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner start(String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Starts the SAP application, that is the Central Services instance and Application server instances.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param body The Virtual Instance for SAP solutions resource start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner start(
+ String resourceGroupName, String sapVirtualInstanceName, StartRequest body, Context context);
+
+ /**
+ * Stops the SAP Application, that is the Application server instances and Central Services instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStop(
+ String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Stops the SAP Application, that is the Application server instances and Central Services instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param body The Virtual Instance for SAP solutions resource stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OperationStatusResultInner> beginStop(
+ String resourceGroupName, String sapVirtualInstanceName, StopRequest body, Context context);
+
+ /**
+ * Stops the SAP Application, that is the Application server instances and Central Services instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions 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 current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner stop(String resourceGroupName, String sapVirtualInstanceName);
+
+ /**
+ * Stops the SAP Application, that is the Application server instances and Central Services instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param body The Virtual Instance for SAP solutions resource stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusResultInner stop(
+ String resourceGroupName, String sapVirtualInstanceName, StopRequest body, Context context);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/WorkloadsClient.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/WorkloadsClient.java
new file mode 100644
index 0000000000000..deec6496976b9
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/WorkloadsClient.java
@@ -0,0 +1,88 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for WorkloadsClient class. */
+public interface WorkloadsClient {
+ /**
+ * Gets The ID of the target subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * 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 ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ ResourceProvidersClient getResourceProviders();
+
+ /**
+ * Gets the SapVirtualInstancesClient object to access its operations.
+ *
+ * @return the SapVirtualInstancesClient object.
+ */
+ SapVirtualInstancesClient getSapVirtualInstances();
+
+ /**
+ * Gets the SapCentralInstancesClient object to access its operations.
+ *
+ * @return the SapCentralInstancesClient object.
+ */
+ SapCentralInstancesClient getSapCentralInstances();
+
+ /**
+ * Gets the SapDatabaseInstancesClient object to access its operations.
+ *
+ * @return the SapDatabaseInstancesClient object.
+ */
+ SapDatabaseInstancesClient getSapDatabaseInstances();
+
+ /**
+ * Gets the SapApplicationServerInstancesClient object to access its operations.
+ *
+ * @return the SapApplicationServerInstancesClient object.
+ */
+ SapApplicationServerInstancesClient getSapApplicationServerInstances();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/OperationInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/OperationInner.java
new file mode 100644
index 0000000000000..c5c1bfa03d9f7
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/OperationInner.java
@@ -0,0 +1,127 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ActionType;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.OperationDisplay;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.Origin;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * REST API Operation
+ *
+ * Details of a REST API operation, returned from the Resource Provider Operations API.
+ */
+@Fluent
+public final class OperationInner {
+ /*
+ * The name of the operation, as per Resource-Based Access Control (RBAC). Examples:
+ * "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action"
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for
+ * ARM/control-plane operations.
+ */
+ @JsonProperty(value = "isDataAction", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isDataAction;
+
+ /*
+ * Localized display information for this particular operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default
+ * value is "user,system"
+ */
+ @JsonProperty(value = "origin", access = JsonProperty.Access.WRITE_ONLY)
+ private Origin origin;
+
+ /*
+ * Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.
+ */
+ @JsonProperty(value = "actionType", access = JsonProperty.Access.WRITE_ONLY)
+ private ActionType actionType;
+
+ /** Creates an instance of OperationInner class. */
+ public OperationInner() {
+ }
+
+ /**
+ * Get the name property: The name of the operation, as per Resource-Based Access Control (RBAC). Examples:
+ * "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action".
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the isDataAction property: Whether the operation applies to data-plane. This is "true" for data-plane
+ * operations and "false" for ARM/control-plane operations.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Get the display property: Localized display information for this particular operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Localized display information for this particular operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the origin property: The intended executor of the operation; as in Resource Based Access Control (RBAC) and
+ * audit logs UX. Default value is "user,system".
+ *
+ * @return the origin value.
+ */
+ public Origin origin() {
+ return this.origin;
+ }
+
+ /**
+ * Get the actionType property: Enum. Indicates the action type. "Internal" refers to actions that are for internal
+ * only APIs.
+ *
+ * @return the actionType value.
+ */
+ public ActionType actionType() {
+ return this.actionType;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/OperationStatusResultInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/OperationStatusResultInner.java
new file mode 100644
index 0000000000000..e624c704384ac
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/OperationStatusResultInner.java
@@ -0,0 +1,247 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The current status of an async operation. */
+@Fluent
+public final class OperationStatusResultInner {
+ /*
+ * Fully qualified ID for the async operation.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * Name of the async operation.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Operation status.
+ */
+ @JsonProperty(value = "status", required = true)
+ private String status;
+
+ /*
+ * Percent of the operation that is complete.
+ */
+ @JsonProperty(value = "percentComplete")
+ private Float percentComplete;
+
+ /*
+ * The start time of the operation.
+ */
+ @JsonProperty(value = "startTime")
+ private OffsetDateTime startTime;
+
+ /*
+ * The end time of the operation.
+ */
+ @JsonProperty(value = "endTime")
+ private OffsetDateTime endTime;
+
+ /*
+ * The operations list.
+ */
+ @JsonProperty(value = "operations")
+ private List operations;
+
+ /*
+ * If present, details of the operation error.
+ */
+ @JsonProperty(value = "error")
+ private ManagementError error;
+
+ /** Creates an instance of OperationStatusResultInner class. */
+ public OperationStatusResultInner() {
+ }
+
+ /**
+ * Get the id property: Fully qualified ID for the async operation.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: Fully qualified ID for the async operation.
+ *
+ * @param id the id value to set.
+ * @return the OperationStatusResultInner object itself.
+ */
+ public OperationStatusResultInner withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the name property: Name of the async operation.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Name of the async operation.
+ *
+ * @param name the name value to set.
+ * @return the OperationStatusResultInner object itself.
+ */
+ public OperationStatusResultInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the status property: Operation status.
+ *
+ * @return the status value.
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: Operation status.
+ *
+ * @param status the status value to set.
+ * @return the OperationStatusResultInner object itself.
+ */
+ public OperationStatusResultInner withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the percentComplete property: Percent of the operation that is complete.
+ *
+ * @return the percentComplete value.
+ */
+ public Float percentComplete() {
+ return this.percentComplete;
+ }
+
+ /**
+ * Set the percentComplete property: Percent of the operation that is complete.
+ *
+ * @param percentComplete the percentComplete value to set.
+ * @return the OperationStatusResultInner object itself.
+ */
+ public OperationStatusResultInner withPercentComplete(Float percentComplete) {
+ this.percentComplete = percentComplete;
+ return this;
+ }
+
+ /**
+ * Get the startTime property: The start time of the operation.
+ *
+ * @return the startTime value.
+ */
+ public OffsetDateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the startTime property: The start time of the operation.
+ *
+ * @param startTime the startTime value to set.
+ * @return the OperationStatusResultInner object itself.
+ */
+ public OperationStatusResultInner withStartTime(OffsetDateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get the endTime property: The end time of the operation.
+ *
+ * @return the endTime value.
+ */
+ public OffsetDateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Set the endTime property: The end time of the operation.
+ *
+ * @param endTime the endTime value to set.
+ * @return the OperationStatusResultInner object itself.
+ */
+ public OperationStatusResultInner withEndTime(OffsetDateTime endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Get the operations property: The operations list.
+ *
+ * @return the operations value.
+ */
+ public List operations() {
+ return this.operations;
+ }
+
+ /**
+ * Set the operations property: The operations list.
+ *
+ * @param operations the operations value to set.
+ * @return the OperationStatusResultInner object itself.
+ */
+ public OperationStatusResultInner withOperations(List operations) {
+ this.operations = operations;
+ return this;
+ }
+
+ /**
+ * Get the error property: If present, details of the operation error.
+ *
+ * @return the error value.
+ */
+ public ManagementError error() {
+ return this.error;
+ }
+
+ /**
+ * Set the error property: If present, details of the operation error.
+ *
+ * @param error the error value to set.
+ * @return the OperationStatusResultInner object itself.
+ */
+ public OperationStatusResultInner withError(ManagementError error) {
+ this.error = error;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (status() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property status in model OperationStatusResultInner"));
+ }
+ if (operations() != null) {
+ operations().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(OperationStatusResultInner.class);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapApplicationServerInstanceInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapApplicationServerInstanceInner.java
new file mode 100644
index 0000000000000..aa4678f692168
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapApplicationServerInstanceInner.java
@@ -0,0 +1,226 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ApplicationServerVmDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.LoadBalancerDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapHealthState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the SAP Application Server Instance resource. */
+@Fluent
+public final class SapApplicationServerInstanceInner extends Resource {
+ /*
+ * Defines the SAP Application Server instance properties.
+ */
+ @JsonProperty(value = "properties")
+ private SapApplicationServerProperties 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 SapApplicationServerInstanceInner class. */
+ public SapApplicationServerInstanceInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Defines the SAP Application Server instance properties.
+ *
+ * @return the innerProperties value.
+ */
+ private SapApplicationServerProperties 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 SapApplicationServerInstanceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SapApplicationServerInstanceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the instanceNo property: Application server Instance Number.
+ *
+ * @return the instanceNo value.
+ */
+ public String instanceNo() {
+ return this.innerProperties() == null ? null : this.innerProperties().instanceNo();
+ }
+
+ /**
+ * Get the subnet property: Application server Subnet.
+ *
+ * @return the subnet value.
+ */
+ public String subnet() {
+ return this.innerProperties() == null ? null : this.innerProperties().subnet();
+ }
+
+ /**
+ * Get the hostname property: Application server instance SAP hostname.
+ *
+ * @return the hostname value.
+ */
+ public String hostname() {
+ return this.innerProperties() == null ? null : this.innerProperties().hostname();
+ }
+
+ /**
+ * Get the kernelVersion property: Application server instance SAP Kernel Version.
+ *
+ * @return the kernelVersion value.
+ */
+ public String kernelVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().kernelVersion();
+ }
+
+ /**
+ * Get the kernelPatch property: Application server instance SAP Kernel Patch level.
+ *
+ * @return the kernelPatch value.
+ */
+ public String kernelPatch() {
+ return this.innerProperties() == null ? null : this.innerProperties().kernelPatch();
+ }
+
+ /**
+ * Get the ipAddress property: Application server instance SAP IP Address.
+ *
+ * @return the ipAddress value.
+ */
+ public String ipAddress() {
+ return this.innerProperties() == null ? null : this.innerProperties().ipAddress();
+ }
+
+ /**
+ * Get the gatewayPort property: Application server instance gateway Port.
+ *
+ * @return the gatewayPort value.
+ */
+ public Long gatewayPort() {
+ return this.innerProperties() == null ? null : this.innerProperties().gatewayPort();
+ }
+
+ /**
+ * Get the icmHttpPort property: Application server instance ICM HTTP Port.
+ *
+ * @return the icmHttpPort value.
+ */
+ public Long icmHttpPort() {
+ return this.innerProperties() == null ? null : this.innerProperties().icmHttpPort();
+ }
+
+ /**
+ * Get the icmHttpsPort property: Application server instance ICM HTTPS Port.
+ *
+ * @return the icmHttpsPort value.
+ */
+ public Long icmHttpsPort() {
+ return this.innerProperties() == null ? null : this.innerProperties().icmHttpsPort();
+ }
+
+ /**
+ * Get the dispatcherStatus property: Application server instance dispatcher status.
+ *
+ * @return the dispatcherStatus value.
+ */
+ public String dispatcherStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().dispatcherStatus();
+ }
+
+ /**
+ * Get the loadBalancerDetails property: The Load Balancer details such as LoadBalancer ID attached to Application
+ * Server Virtual Machines.
+ *
+ * @return the loadBalancerDetails value.
+ */
+ public LoadBalancerDetails loadBalancerDetails() {
+ return this.innerProperties() == null ? null : this.innerProperties().loadBalancerDetails();
+ }
+
+ /**
+ * Get the vmDetails property: The list of virtual machines.
+ *
+ * @return the vmDetails value.
+ */
+ public List vmDetails() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmDetails();
+ }
+
+ /**
+ * Get the status property: Defines the SAP Instance status.
+ *
+ * @return the status value.
+ */
+ public SapVirtualInstanceStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the health property: Defines the health of SAP Instances.
+ *
+ * @return the health value.
+ */
+ public SapHealthState health() {
+ return this.innerProperties() == null ? null : this.innerProperties().health();
+ }
+
+ /**
+ * Get the provisioningState property: Defines the provisioning states.
+ *
+ * @return the provisioningState value.
+ */
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the errors property: Defines the Application Instance errors.
+ *
+ * @return the errors value.
+ */
+ public SapVirtualInstanceError errors() {
+ return this.innerProperties() == null ? null : this.innerProperties().errors();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapApplicationServerProperties.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapApplicationServerProperties.java
new file mode 100644
index 0000000000000..c4dd45855112d
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapApplicationServerProperties.java
@@ -0,0 +1,281 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ApplicationServerVmDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.LoadBalancerDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapHealthState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the SAP Application Server instance properties. */
+@Immutable
+public final class SapApplicationServerProperties {
+ /*
+ * Application server Instance Number.
+ */
+ @JsonProperty(value = "instanceNo", access = JsonProperty.Access.WRITE_ONLY)
+ private String instanceNo;
+
+ /*
+ * Application server Subnet.
+ */
+ @JsonProperty(value = "subnet", access = JsonProperty.Access.WRITE_ONLY)
+ private String subnet;
+
+ /*
+ * Application server instance SAP hostname.
+ */
+ @JsonProperty(value = "hostname", access = JsonProperty.Access.WRITE_ONLY)
+ private String hostname;
+
+ /*
+ * Application server instance SAP Kernel Version.
+ */
+ @JsonProperty(value = "kernelVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String kernelVersion;
+
+ /*
+ * Application server instance SAP Kernel Patch level.
+ */
+ @JsonProperty(value = "kernelPatch", access = JsonProperty.Access.WRITE_ONLY)
+ private String kernelPatch;
+
+ /*
+ * Application server instance SAP IP Address.
+ */
+ @JsonProperty(value = "ipAddress", access = JsonProperty.Access.WRITE_ONLY)
+ private String ipAddress;
+
+ /*
+ * Application server instance gateway Port.
+ */
+ @JsonProperty(value = "gatewayPort", access = JsonProperty.Access.WRITE_ONLY)
+ private Long gatewayPort;
+
+ /*
+ * Application server instance ICM HTTP Port.
+ */
+ @JsonProperty(value = "icmHttpPort", access = JsonProperty.Access.WRITE_ONLY)
+ private Long icmHttpPort;
+
+ /*
+ * Application server instance ICM HTTPS Port.
+ */
+ @JsonProperty(value = "icmHttpsPort", access = JsonProperty.Access.WRITE_ONLY)
+ private Long icmHttpsPort;
+
+ /*
+ * Application server instance dispatcher status.
+ */
+ @JsonProperty(value = "dispatcherStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private String dispatcherStatus;
+
+ /*
+ * The Load Balancer details such as LoadBalancer ID attached to Application Server Virtual Machines
+ */
+ @JsonProperty(value = "loadBalancerDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private LoadBalancerDetails loadBalancerDetails;
+
+ /*
+ * The list of virtual machines.
+ */
+ @JsonProperty(value = "vmDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private List vmDetails;
+
+ /*
+ * Defines the SAP Instance status.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceStatus status;
+
+ /*
+ * Defines the health of SAP Instances.
+ */
+ @JsonProperty(value = "health", access = JsonProperty.Access.WRITE_ONLY)
+ private SapHealthState health;
+
+ /*
+ * Defines the provisioning states.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceProvisioningState provisioningState;
+
+ /*
+ * Defines the Application Instance errors.
+ */
+ @JsonProperty(value = "errors", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceError errors;
+
+ /** Creates an instance of SapApplicationServerProperties class. */
+ public SapApplicationServerProperties() {
+ }
+
+ /**
+ * Get the instanceNo property: Application server Instance Number.
+ *
+ * @return the instanceNo value.
+ */
+ public String instanceNo() {
+ return this.instanceNo;
+ }
+
+ /**
+ * Get the subnet property: Application server Subnet.
+ *
+ * @return the subnet value.
+ */
+ public String subnet() {
+ return this.subnet;
+ }
+
+ /**
+ * Get the hostname property: Application server instance SAP hostname.
+ *
+ * @return the hostname value.
+ */
+ public String hostname() {
+ return this.hostname;
+ }
+
+ /**
+ * Get the kernelVersion property: Application server instance SAP Kernel Version.
+ *
+ * @return the kernelVersion value.
+ */
+ public String kernelVersion() {
+ return this.kernelVersion;
+ }
+
+ /**
+ * Get the kernelPatch property: Application server instance SAP Kernel Patch level.
+ *
+ * @return the kernelPatch value.
+ */
+ public String kernelPatch() {
+ return this.kernelPatch;
+ }
+
+ /**
+ * Get the ipAddress property: Application server instance SAP IP Address.
+ *
+ * @return the ipAddress value.
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Get the gatewayPort property: Application server instance gateway Port.
+ *
+ * @return the gatewayPort value.
+ */
+ public Long gatewayPort() {
+ return this.gatewayPort;
+ }
+
+ /**
+ * Get the icmHttpPort property: Application server instance ICM HTTP Port.
+ *
+ * @return the icmHttpPort value.
+ */
+ public Long icmHttpPort() {
+ return this.icmHttpPort;
+ }
+
+ /**
+ * Get the icmHttpsPort property: Application server instance ICM HTTPS Port.
+ *
+ * @return the icmHttpsPort value.
+ */
+ public Long icmHttpsPort() {
+ return this.icmHttpsPort;
+ }
+
+ /**
+ * Get the dispatcherStatus property: Application server instance dispatcher status.
+ *
+ * @return the dispatcherStatus value.
+ */
+ public String dispatcherStatus() {
+ return this.dispatcherStatus;
+ }
+
+ /**
+ * Get the loadBalancerDetails property: The Load Balancer details such as LoadBalancer ID attached to Application
+ * Server Virtual Machines.
+ *
+ * @return the loadBalancerDetails value.
+ */
+ public LoadBalancerDetails loadBalancerDetails() {
+ return this.loadBalancerDetails;
+ }
+
+ /**
+ * Get the vmDetails property: The list of virtual machines.
+ *
+ * @return the vmDetails value.
+ */
+ public List vmDetails() {
+ return this.vmDetails;
+ }
+
+ /**
+ * Get the status property: Defines the SAP Instance status.
+ *
+ * @return the status value.
+ */
+ public SapVirtualInstanceStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the health property: Defines the health of SAP Instances.
+ *
+ * @return the health value.
+ */
+ public SapHealthState health() {
+ return this.health;
+ }
+
+ /**
+ * Get the provisioningState property: Defines the provisioning states.
+ *
+ * @return the provisioningState value.
+ */
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the errors property: Defines the Application Instance errors.
+ *
+ * @return the errors value.
+ */
+ public SapVirtualInstanceError errors() {
+ return this.errors;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (loadBalancerDetails() != null) {
+ loadBalancerDetails().validate();
+ }
+ if (vmDetails() != null) {
+ vmDetails().forEach(e -> e.validate());
+ }
+ if (errors() != null) {
+ errors().validate();
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapAvailabilityZoneDetailsResultInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapAvailabilityZoneDetailsResultInner.java
new file mode 100644
index 0000000000000..7e6d3b6e6387a
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapAvailabilityZoneDetailsResultInner.java
@@ -0,0 +1,56 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapAvailabilityZonePair;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of supported availability zone pairs which are part of SAP HA deployment. */
+@Fluent
+public final class SapAvailabilityZoneDetailsResultInner {
+ /*
+ * Gets the list of availability zone pairs.
+ */
+ @JsonProperty(value = "availabilityZonePairs")
+ private List availabilityZonePairs;
+
+ /** Creates an instance of SapAvailabilityZoneDetailsResultInner class. */
+ public SapAvailabilityZoneDetailsResultInner() {
+ }
+
+ /**
+ * Get the availabilityZonePairs property: Gets the list of availability zone pairs.
+ *
+ * @return the availabilityZonePairs value.
+ */
+ public List availabilityZonePairs() {
+ return this.availabilityZonePairs;
+ }
+
+ /**
+ * Set the availabilityZonePairs property: Gets the list of availability zone pairs.
+ *
+ * @param availabilityZonePairs the availabilityZonePairs value to set.
+ * @return the SapAvailabilityZoneDetailsResultInner object itself.
+ */
+ public SapAvailabilityZoneDetailsResultInner withAvailabilityZonePairs(
+ List availabilityZonePairs) {
+ this.availabilityZonePairs = availabilityZonePairs;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (availabilityZonePairs() != null) {
+ availabilityZonePairs().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapCentralServerInstanceInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapCentralServerInstanceInner.java
new file mode 100644
index 0000000000000..39c6bb446498d
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapCentralServerInstanceInner.java
@@ -0,0 +1,269 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.CentralServerVmDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.EnqueueReplicationServerProperties;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.EnqueueServerProperties;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.GatewayServerProperties;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.LoadBalancerDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.MessageServerProperties;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapHealthState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the SAP Central Services Instance resource. */
+@Fluent
+public final class SapCentralServerInstanceInner extends Resource {
+ /*
+ * Defines the SAP Central Services Instance properties.
+ */
+ @JsonProperty(value = "properties")
+ private SapCentralServerProperties 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 SapCentralServerInstanceInner class. */
+ public SapCentralServerInstanceInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Defines the SAP Central Services Instance properties.
+ *
+ * @return the innerProperties value.
+ */
+ private SapCentralServerProperties 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 SapCentralServerInstanceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SapCentralServerInstanceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the instanceNo property: The central services instance number.
+ *
+ * @return the instanceNo value.
+ */
+ public String instanceNo() {
+ return this.innerProperties() == null ? null : this.innerProperties().instanceNo();
+ }
+
+ /**
+ * Get the subnet property: The central services instance subnet.
+ *
+ * @return the subnet value.
+ */
+ public String subnet() {
+ return this.innerProperties() == null ? null : this.innerProperties().subnet();
+ }
+
+ /**
+ * Get the messageServerProperties property: Defines the SAP message server properties.
+ *
+ * @return the messageServerProperties value.
+ */
+ public MessageServerProperties messageServerProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().messageServerProperties();
+ }
+
+ /**
+ * Set the messageServerProperties property: Defines the SAP message server properties.
+ *
+ * @param messageServerProperties the messageServerProperties value to set.
+ * @return the SapCentralServerInstanceInner object itself.
+ */
+ public SapCentralServerInstanceInner withMessageServerProperties(MessageServerProperties messageServerProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapCentralServerProperties();
+ }
+ this.innerProperties().withMessageServerProperties(messageServerProperties);
+ return this;
+ }
+
+ /**
+ * Get the enqueueServerProperties property: Defines the SAP Enqueue Server properties.
+ *
+ * @return the enqueueServerProperties value.
+ */
+ public EnqueueServerProperties enqueueServerProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().enqueueServerProperties();
+ }
+
+ /**
+ * Set the enqueueServerProperties property: Defines the SAP Enqueue Server properties.
+ *
+ * @param enqueueServerProperties the enqueueServerProperties value to set.
+ * @return the SapCentralServerInstanceInner object itself.
+ */
+ public SapCentralServerInstanceInner withEnqueueServerProperties(EnqueueServerProperties enqueueServerProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapCentralServerProperties();
+ }
+ this.innerProperties().withEnqueueServerProperties(enqueueServerProperties);
+ return this;
+ }
+
+ /**
+ * Get the gatewayServerProperties property: Defines the SAP Gateway Server properties.
+ *
+ * @return the gatewayServerProperties value.
+ */
+ public GatewayServerProperties gatewayServerProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().gatewayServerProperties();
+ }
+
+ /**
+ * Set the gatewayServerProperties property: Defines the SAP Gateway Server properties.
+ *
+ * @param gatewayServerProperties the gatewayServerProperties value to set.
+ * @return the SapCentralServerInstanceInner object itself.
+ */
+ public SapCentralServerInstanceInner withGatewayServerProperties(GatewayServerProperties gatewayServerProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapCentralServerProperties();
+ }
+ this.innerProperties().withGatewayServerProperties(gatewayServerProperties);
+ return this;
+ }
+
+ /**
+ * Get the enqueueReplicationServerProperties property: Defines the SAP Enqueue Replication Server (ERS) properties.
+ *
+ * @return the enqueueReplicationServerProperties value.
+ */
+ public EnqueueReplicationServerProperties enqueueReplicationServerProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().enqueueReplicationServerProperties();
+ }
+
+ /**
+ * Set the enqueueReplicationServerProperties property: Defines the SAP Enqueue Replication Server (ERS) properties.
+ *
+ * @param enqueueReplicationServerProperties the enqueueReplicationServerProperties value to set.
+ * @return the SapCentralServerInstanceInner object itself.
+ */
+ public SapCentralServerInstanceInner withEnqueueReplicationServerProperties(
+ EnqueueReplicationServerProperties enqueueReplicationServerProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapCentralServerProperties();
+ }
+ this.innerProperties().withEnqueueReplicationServerProperties(enqueueReplicationServerProperties);
+ return this;
+ }
+
+ /**
+ * Get the kernelVersion property: The central services instance Kernel Version.
+ *
+ * @return the kernelVersion value.
+ */
+ public String kernelVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().kernelVersion();
+ }
+
+ /**
+ * Get the kernelPatch property: The central services instance Kernel Patch level.
+ *
+ * @return the kernelPatch value.
+ */
+ public String kernelPatch() {
+ return this.innerProperties() == null ? null : this.innerProperties().kernelPatch();
+ }
+
+ /**
+ * Get the loadBalancerDetails property: The Load Balancer details such as LoadBalancer ID attached to ASCS Virtual
+ * Machines.
+ *
+ * @return the loadBalancerDetails value.
+ */
+ public LoadBalancerDetails loadBalancerDetails() {
+ return this.innerProperties() == null ? null : this.innerProperties().loadBalancerDetails();
+ }
+
+ /**
+ * Get the vmDetails property: The list of virtual machines corresponding to the Central Services instance.
+ *
+ * @return the vmDetails value.
+ */
+ public List vmDetails() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmDetails();
+ }
+
+ /**
+ * Get the status property: Defines the SAP Instance status.
+ *
+ * @return the status value.
+ */
+ public SapVirtualInstanceStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the health property: Defines the health of SAP Instances.
+ *
+ * @return the health value.
+ */
+ public SapHealthState health() {
+ return this.innerProperties() == null ? null : this.innerProperties().health();
+ }
+
+ /**
+ * Get the provisioningState property: Defines the provisioning states.
+ *
+ * @return the provisioningState value.
+ */
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the errors property: Defines the errors related to SAP Central Services Instance resource.
+ *
+ * @return the errors value.
+ */
+ public SapVirtualInstanceError errors() {
+ return this.innerProperties() == null ? null : this.innerProperties().errors();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapCentralServerProperties.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapCentralServerProperties.java
new file mode 100644
index 0000000000000..8270a1b5f9804
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapCentralServerProperties.java
@@ -0,0 +1,312 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.CentralServerVmDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.EnqueueReplicationServerProperties;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.EnqueueServerProperties;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.GatewayServerProperties;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.LoadBalancerDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.MessageServerProperties;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapHealthState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the SAP Central Services Instance properties. */
+@Fluent
+public final class SapCentralServerProperties {
+ /*
+ * The central services instance number.
+ */
+ @JsonProperty(value = "instanceNo", access = JsonProperty.Access.WRITE_ONLY)
+ private String instanceNo;
+
+ /*
+ * The central services instance subnet.
+ */
+ @JsonProperty(value = "subnet", access = JsonProperty.Access.WRITE_ONLY)
+ private String subnet;
+
+ /*
+ * Defines the SAP message server properties.
+ */
+ @JsonProperty(value = "messageServerProperties")
+ private MessageServerProperties messageServerProperties;
+
+ /*
+ * Defines the SAP Enqueue Server properties.
+ */
+ @JsonProperty(value = "enqueueServerProperties")
+ private EnqueueServerProperties enqueueServerProperties;
+
+ /*
+ * Defines the SAP Gateway Server properties.
+ */
+ @JsonProperty(value = "gatewayServerProperties")
+ private GatewayServerProperties gatewayServerProperties;
+
+ /*
+ * Defines the SAP Enqueue Replication Server (ERS) properties.
+ */
+ @JsonProperty(value = "enqueueReplicationServerProperties")
+ private EnqueueReplicationServerProperties enqueueReplicationServerProperties;
+
+ /*
+ * The central services instance Kernel Version.
+ */
+ @JsonProperty(value = "kernelVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String kernelVersion;
+
+ /*
+ * The central services instance Kernel Patch level.
+ */
+ @JsonProperty(value = "kernelPatch", access = JsonProperty.Access.WRITE_ONLY)
+ private String kernelPatch;
+
+ /*
+ * The Load Balancer details such as LoadBalancer ID attached to ASCS Virtual Machines
+ */
+ @JsonProperty(value = "loadBalancerDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private LoadBalancerDetails loadBalancerDetails;
+
+ /*
+ * The list of virtual machines corresponding to the Central Services instance.
+ */
+ @JsonProperty(value = "vmDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private List vmDetails;
+
+ /*
+ * Defines the SAP Instance status.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceStatus status;
+
+ /*
+ * Defines the health of SAP Instances.
+ */
+ @JsonProperty(value = "health", access = JsonProperty.Access.WRITE_ONLY)
+ private SapHealthState health;
+
+ /*
+ * Defines the provisioning states.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceProvisioningState provisioningState;
+
+ /*
+ * Defines the errors related to SAP Central Services Instance resource.
+ */
+ @JsonProperty(value = "errors", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceError errors;
+
+ /** Creates an instance of SapCentralServerProperties class. */
+ public SapCentralServerProperties() {
+ }
+
+ /**
+ * Get the instanceNo property: The central services instance number.
+ *
+ * @return the instanceNo value.
+ */
+ public String instanceNo() {
+ return this.instanceNo;
+ }
+
+ /**
+ * Get the subnet property: The central services instance subnet.
+ *
+ * @return the subnet value.
+ */
+ public String subnet() {
+ return this.subnet;
+ }
+
+ /**
+ * Get the messageServerProperties property: Defines the SAP message server properties.
+ *
+ * @return the messageServerProperties value.
+ */
+ public MessageServerProperties messageServerProperties() {
+ return this.messageServerProperties;
+ }
+
+ /**
+ * Set the messageServerProperties property: Defines the SAP message server properties.
+ *
+ * @param messageServerProperties the messageServerProperties value to set.
+ * @return the SapCentralServerProperties object itself.
+ */
+ public SapCentralServerProperties withMessageServerProperties(MessageServerProperties messageServerProperties) {
+ this.messageServerProperties = messageServerProperties;
+ return this;
+ }
+
+ /**
+ * Get the enqueueServerProperties property: Defines the SAP Enqueue Server properties.
+ *
+ * @return the enqueueServerProperties value.
+ */
+ public EnqueueServerProperties enqueueServerProperties() {
+ return this.enqueueServerProperties;
+ }
+
+ /**
+ * Set the enqueueServerProperties property: Defines the SAP Enqueue Server properties.
+ *
+ * @param enqueueServerProperties the enqueueServerProperties value to set.
+ * @return the SapCentralServerProperties object itself.
+ */
+ public SapCentralServerProperties withEnqueueServerProperties(EnqueueServerProperties enqueueServerProperties) {
+ this.enqueueServerProperties = enqueueServerProperties;
+ return this;
+ }
+
+ /**
+ * Get the gatewayServerProperties property: Defines the SAP Gateway Server properties.
+ *
+ * @return the gatewayServerProperties value.
+ */
+ public GatewayServerProperties gatewayServerProperties() {
+ return this.gatewayServerProperties;
+ }
+
+ /**
+ * Set the gatewayServerProperties property: Defines the SAP Gateway Server properties.
+ *
+ * @param gatewayServerProperties the gatewayServerProperties value to set.
+ * @return the SapCentralServerProperties object itself.
+ */
+ public SapCentralServerProperties withGatewayServerProperties(GatewayServerProperties gatewayServerProperties) {
+ this.gatewayServerProperties = gatewayServerProperties;
+ return this;
+ }
+
+ /**
+ * Get the enqueueReplicationServerProperties property: Defines the SAP Enqueue Replication Server (ERS) properties.
+ *
+ * @return the enqueueReplicationServerProperties value.
+ */
+ public EnqueueReplicationServerProperties enqueueReplicationServerProperties() {
+ return this.enqueueReplicationServerProperties;
+ }
+
+ /**
+ * Set the enqueueReplicationServerProperties property: Defines the SAP Enqueue Replication Server (ERS) properties.
+ *
+ * @param enqueueReplicationServerProperties the enqueueReplicationServerProperties value to set.
+ * @return the SapCentralServerProperties object itself.
+ */
+ public SapCentralServerProperties withEnqueueReplicationServerProperties(
+ EnqueueReplicationServerProperties enqueueReplicationServerProperties) {
+ this.enqueueReplicationServerProperties = enqueueReplicationServerProperties;
+ return this;
+ }
+
+ /**
+ * Get the kernelVersion property: The central services instance Kernel Version.
+ *
+ * @return the kernelVersion value.
+ */
+ public String kernelVersion() {
+ return this.kernelVersion;
+ }
+
+ /**
+ * Get the kernelPatch property: The central services instance Kernel Patch level.
+ *
+ * @return the kernelPatch value.
+ */
+ public String kernelPatch() {
+ return this.kernelPatch;
+ }
+
+ /**
+ * Get the loadBalancerDetails property: The Load Balancer details such as LoadBalancer ID attached to ASCS Virtual
+ * Machines.
+ *
+ * @return the loadBalancerDetails value.
+ */
+ public LoadBalancerDetails loadBalancerDetails() {
+ return this.loadBalancerDetails;
+ }
+
+ /**
+ * Get the vmDetails property: The list of virtual machines corresponding to the Central Services instance.
+ *
+ * @return the vmDetails value.
+ */
+ public List vmDetails() {
+ return this.vmDetails;
+ }
+
+ /**
+ * Get the status property: Defines the SAP Instance status.
+ *
+ * @return the status value.
+ */
+ public SapVirtualInstanceStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the health property: Defines the health of SAP Instances.
+ *
+ * @return the health value.
+ */
+ public SapHealthState health() {
+ return this.health;
+ }
+
+ /**
+ * Get the provisioningState property: Defines the provisioning states.
+ *
+ * @return the provisioningState value.
+ */
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the errors property: Defines the errors related to SAP Central Services Instance resource.
+ *
+ * @return the errors value.
+ */
+ public SapVirtualInstanceError errors() {
+ return this.errors;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (messageServerProperties() != null) {
+ messageServerProperties().validate();
+ }
+ if (enqueueServerProperties() != null) {
+ enqueueServerProperties().validate();
+ }
+ if (gatewayServerProperties() != null) {
+ gatewayServerProperties().validate();
+ }
+ if (enqueueReplicationServerProperties() != null) {
+ enqueueReplicationServerProperties().validate();
+ }
+ if (loadBalancerDetails() != null) {
+ loadBalancerDetails().validate();
+ }
+ if (vmDetails() != null) {
+ vmDetails().forEach(e -> e.validate());
+ }
+ if (errors() != null) {
+ errors().validate();
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDatabaseInstanceInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDatabaseInstanceInner.java
new file mode 100644
index 0000000000000..2ef94dd74f5fe
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDatabaseInstanceInner.java
@@ -0,0 +1,163 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.DatabaseVmDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.LoadBalancerDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the Database resource. */
+@Fluent
+public final class SapDatabaseInstanceInner extends Resource {
+ /*
+ * Defines the Database properties.
+ */
+ @JsonProperty(value = "properties")
+ private SapDatabaseProperties 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 SapDatabaseInstanceInner class. */
+ public SapDatabaseInstanceInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Defines the Database properties.
+ *
+ * @return the innerProperties value.
+ */
+ private SapDatabaseProperties 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 SapDatabaseInstanceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SapDatabaseInstanceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the subnet property: Database subnet.
+ *
+ * @return the subnet value.
+ */
+ public String subnet() {
+ return this.innerProperties() == null ? null : this.innerProperties().subnet();
+ }
+
+ /**
+ * Get the databaseSid property: Database SID name.
+ *
+ * @return the databaseSid value.
+ */
+ public String databaseSid() {
+ return this.innerProperties() == null ? null : this.innerProperties().databaseSid();
+ }
+
+ /**
+ * Get the databaseType property: Database type, that is if the DB is HANA, DB2, Oracle, SAP ASE, Max DB or MS SQL
+ * Server.
+ *
+ * @return the databaseType value.
+ */
+ public String databaseType() {
+ return this.innerProperties() == null ? null : this.innerProperties().databaseType();
+ }
+
+ /**
+ * Get the ipAddress property: Database IP Address.
+ *
+ * @return the ipAddress value.
+ */
+ public String ipAddress() {
+ return this.innerProperties() == null ? null : this.innerProperties().ipAddress();
+ }
+
+ /**
+ * Get the loadBalancerDetails property: The Load Balancer details such as LoadBalancer ID attached to Database
+ * Virtual Machines.
+ *
+ * @return the loadBalancerDetails value.
+ */
+ public LoadBalancerDetails loadBalancerDetails() {
+ return this.innerProperties() == null ? null : this.innerProperties().loadBalancerDetails();
+ }
+
+ /**
+ * Get the vmDetails property: The list of virtual machines corresponding to the Database resource.
+ *
+ * @return the vmDetails value.
+ */
+ public List vmDetails() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmDetails();
+ }
+
+ /**
+ * Get the status property: Defines the SAP Instance status.
+ *
+ * @return the status value.
+ */
+ public SapVirtualInstanceStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the provisioningState property: Defines the provisioning states.
+ *
+ * @return the provisioningState value.
+ */
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the errors property: Defines the errors related to Database resource.
+ *
+ * @return the errors value.
+ */
+ public SapVirtualInstanceError errors() {
+ return this.innerProperties() == null ? null : this.innerProperties().errors();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDatabaseProperties.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDatabaseProperties.java
new file mode 100644
index 0000000000000..846f53f8f8483
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDatabaseProperties.java
@@ -0,0 +1,176 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.DatabaseVmDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.LoadBalancerDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the Database properties. */
+@Immutable
+public final class SapDatabaseProperties {
+ /*
+ * Database subnet.
+ */
+ @JsonProperty(value = "subnet", access = JsonProperty.Access.WRITE_ONLY)
+ private String subnet;
+
+ /*
+ * Database SID name.
+ */
+ @JsonProperty(value = "databaseSid", access = JsonProperty.Access.WRITE_ONLY)
+ private String databaseSid;
+
+ /*
+ * Database type, that is if the DB is HANA, DB2, Oracle, SAP ASE, Max DB or MS SQL Server.
+ */
+ @JsonProperty(value = "databaseType", access = JsonProperty.Access.WRITE_ONLY)
+ private String databaseType;
+
+ /*
+ * Database IP Address.
+ */
+ @JsonProperty(value = "ipAddress", access = JsonProperty.Access.WRITE_ONLY)
+ private String ipAddress;
+
+ /*
+ * The Load Balancer details such as LoadBalancer ID attached to Database Virtual Machines
+ */
+ @JsonProperty(value = "loadBalancerDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private LoadBalancerDetails loadBalancerDetails;
+
+ /*
+ * The list of virtual machines corresponding to the Database resource.
+ */
+ @JsonProperty(value = "vmDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private List vmDetails;
+
+ /*
+ * Defines the SAP Instance status.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceStatus status;
+
+ /*
+ * Defines the provisioning states.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceProvisioningState provisioningState;
+
+ /*
+ * Defines the errors related to Database resource.
+ */
+ @JsonProperty(value = "errors", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceError errors;
+
+ /** Creates an instance of SapDatabaseProperties class. */
+ public SapDatabaseProperties() {
+ }
+
+ /**
+ * Get the subnet property: Database subnet.
+ *
+ * @return the subnet value.
+ */
+ public String subnet() {
+ return this.subnet;
+ }
+
+ /**
+ * Get the databaseSid property: Database SID name.
+ *
+ * @return the databaseSid value.
+ */
+ public String databaseSid() {
+ return this.databaseSid;
+ }
+
+ /**
+ * Get the databaseType property: Database type, that is if the DB is HANA, DB2, Oracle, SAP ASE, Max DB or MS SQL
+ * Server.
+ *
+ * @return the databaseType value.
+ */
+ public String databaseType() {
+ return this.databaseType;
+ }
+
+ /**
+ * Get the ipAddress property: Database IP Address.
+ *
+ * @return the ipAddress value.
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Get the loadBalancerDetails property: The Load Balancer details such as LoadBalancer ID attached to Database
+ * Virtual Machines.
+ *
+ * @return the loadBalancerDetails value.
+ */
+ public LoadBalancerDetails loadBalancerDetails() {
+ return this.loadBalancerDetails;
+ }
+
+ /**
+ * Get the vmDetails property: The list of virtual machines corresponding to the Database resource.
+ *
+ * @return the vmDetails value.
+ */
+ public List vmDetails() {
+ return this.vmDetails;
+ }
+
+ /**
+ * Get the status property: Defines the SAP Instance status.
+ *
+ * @return the status value.
+ */
+ public SapVirtualInstanceStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the provisioningState property: Defines the provisioning states.
+ *
+ * @return the provisioningState value.
+ */
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the errors property: Defines the errors related to Database resource.
+ *
+ * @return the errors value.
+ */
+ public SapVirtualInstanceError errors() {
+ return this.errors;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (loadBalancerDetails() != null) {
+ loadBalancerDetails().validate();
+ }
+ if (vmDetails() != null) {
+ vmDetails().forEach(e -> e.validate());
+ }
+ if (errors() != null) {
+ errors().validate();
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDiskConfigurationsResultInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDiskConfigurationsResultInner.java
new file mode 100644
index 0000000000000..bdfa8c9e94167
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapDiskConfigurationsResultInner.java
@@ -0,0 +1,68 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapDiskConfiguration;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The list of disk configuration for vmSku which are part of SAP deployment. */
+@Fluent
+public final class SapDiskConfigurationsResultInner {
+ /*
+ * The disk configuration for the db volume. For HANA, Required volumes are: ['hana/data', 'hana/log',
+ * hana/shared', 'usr/sap', 'os'], Optional volume : ['backup'].
+ */
+ @JsonProperty(value = "volumeConfigurations")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map volumeConfigurations;
+
+ /** Creates an instance of SapDiskConfigurationsResultInner class. */
+ public SapDiskConfigurationsResultInner() {
+ }
+
+ /**
+ * Get the volumeConfigurations property: The disk configuration for the db volume. For HANA, Required volumes are:
+ * ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os'], Optional volume : ['backup'].
+ *
+ * @return the volumeConfigurations value.
+ */
+ public Map volumeConfigurations() {
+ return this.volumeConfigurations;
+ }
+
+ /**
+ * Set the volumeConfigurations property: The disk configuration for the db volume. For HANA, Required volumes are:
+ * ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os'], Optional volume : ['backup'].
+ *
+ * @param volumeConfigurations the volumeConfigurations value to set.
+ * @return the SapDiskConfigurationsResultInner object itself.
+ */
+ public SapDiskConfigurationsResultInner withVolumeConfigurations(
+ Map volumeConfigurations) {
+ this.volumeConfigurations = volumeConfigurations;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (volumeConfigurations() != null) {
+ volumeConfigurations()
+ .values()
+ .forEach(
+ e -> {
+ if (e != null) {
+ e.validate();
+ }
+ });
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapSizingRecommendationResultInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapSizingRecommendationResultInner.java
new file mode 100644
index 0000000000000..5febac615f0e9
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapSizingRecommendationResultInner.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.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SingleServerRecommendationResult;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ThreeTierRecommendationResult;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** The SAP sizing recommendation result. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "deploymentType",
+ defaultImpl = SapSizingRecommendationResultInner.class)
+@JsonTypeName("SapSizingRecommendationResult")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "SingleServer", value = SingleServerRecommendationResult.class),
+ @JsonSubTypes.Type(name = "ThreeTier", value = ThreeTierRecommendationResult.class)
+})
+@Immutable
+public class SapSizingRecommendationResultInner {
+ /** Creates an instance of SapSizingRecommendationResultInner class. */
+ public SapSizingRecommendationResultInner() {
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapSupportedResourceSkusResultInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapSupportedResourceSkusResultInner.java
new file mode 100644
index 0000000000000..32788fa7e77eb
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapSupportedResourceSkusResultInner.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.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSupportedSku;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The list of supported SKUs for different resources which are part of SAP deployment. */
+@Fluent
+public final class SapSupportedResourceSkusResultInner {
+ /*
+ * Gets the list of SAP supported SKUs.
+ */
+ @JsonProperty(value = "supportedSkus")
+ private List supportedSkus;
+
+ /** Creates an instance of SapSupportedResourceSkusResultInner class. */
+ public SapSupportedResourceSkusResultInner() {
+ }
+
+ /**
+ * Get the supportedSkus property: Gets the list of SAP supported SKUs.
+ *
+ * @return the supportedSkus value.
+ */
+ public List supportedSkus() {
+ return this.supportedSkus;
+ }
+
+ /**
+ * Set the supportedSkus property: Gets the list of SAP supported SKUs.
+ *
+ * @param supportedSkus the supportedSkus value to set.
+ * @return the SapSupportedResourceSkusResultInner object itself.
+ */
+ public SapSupportedResourceSkusResultInner withSupportedSkus(List supportedSkus) {
+ this.supportedSkus = supportedSkus;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (supportedSkus() != null) {
+ supportedSkus().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapVirtualInstanceInner.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapVirtualInstanceInner.java
new file mode 100644
index 0000000000000..92ab09926d8d6
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapVirtualInstanceInner.java
@@ -0,0 +1,296 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ManagedRGConfiguration;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ManagedResourcesNetworkAccessType;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapConfiguration;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapEnvironmentType;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapHealthState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapProductType;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.UserAssignedServiceIdentity;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Define the Virtual Instance for SAP solutions resource. */
+@Fluent
+public final class SapVirtualInstanceInner extends Resource {
+ /*
+ * Managed service identity (user assigned identities)
+ */
+ @JsonProperty(value = "identity")
+ private UserAssignedServiceIdentity identity;
+
+ /*
+ * Defines the Virtual Instance for SAP solutions resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private SapVirtualInstanceProperties innerProperties = new SapVirtualInstanceProperties();
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /** Creates an instance of SapVirtualInstanceInner class. */
+ public SapVirtualInstanceInner() {
+ }
+
+ /**
+ * Get the identity property: Managed service identity (user assigned identities).
+ *
+ * @return the identity value.
+ */
+ public UserAssignedServiceIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: Managed service identity (user assigned identities).
+ *
+ * @param identity the identity value to set.
+ * @return the SapVirtualInstanceInner object itself.
+ */
+ public SapVirtualInstanceInner withIdentity(UserAssignedServiceIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the innerProperties property: Defines the Virtual Instance for SAP solutions resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private SapVirtualInstanceProperties 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 SapVirtualInstanceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SapVirtualInstanceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the environment property: Defines the environment type - Production/Non Production.
+ *
+ * @return the environment value.
+ */
+ public SapEnvironmentType environment() {
+ return this.innerProperties() == null ? null : this.innerProperties().environment();
+ }
+
+ /**
+ * Set the environment property: Defines the environment type - Production/Non Production.
+ *
+ * @param environment the environment value to set.
+ * @return the SapVirtualInstanceInner object itself.
+ */
+ public SapVirtualInstanceInner withEnvironment(SapEnvironmentType environment) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapVirtualInstanceProperties();
+ }
+ this.innerProperties().withEnvironment(environment);
+ return this;
+ }
+
+ /**
+ * Get the sapProduct property: Defines the SAP Product type.
+ *
+ * @return the sapProduct value.
+ */
+ public SapProductType sapProduct() {
+ return this.innerProperties() == null ? null : this.innerProperties().sapProduct();
+ }
+
+ /**
+ * Set the sapProduct property: Defines the SAP Product type.
+ *
+ * @param sapProduct the sapProduct value to set.
+ * @return the SapVirtualInstanceInner object itself.
+ */
+ public SapVirtualInstanceInner withSapProduct(SapProductType sapProduct) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapVirtualInstanceProperties();
+ }
+ this.innerProperties().withSapProduct(sapProduct);
+ return this;
+ }
+
+ /**
+ * Get the managedResourcesNetworkAccessType property: Specifies the network access configuration for the resources
+ * that will be deployed in the Managed Resource Group. The options to choose from are Public and Private. If
+ * 'Private' is chosen, the Storage Account service tag should be enabled on the subnets in which the SAP VMs exist.
+ * This is required for establishing connectivity between VM extensions and the managed resource group storage
+ * account. This setting is currently applicable only to Storage Account. Learn more here
+ * https://go.microsoft.com/fwlink/?linkid=2247228.
+ *
+ * @return the managedResourcesNetworkAccessType value.
+ */
+ public ManagedResourcesNetworkAccessType managedResourcesNetworkAccessType() {
+ return this.innerProperties() == null ? null : this.innerProperties().managedResourcesNetworkAccessType();
+ }
+
+ /**
+ * Set the managedResourcesNetworkAccessType property: Specifies the network access configuration for the resources
+ * that will be deployed in the Managed Resource Group. The options to choose from are Public and Private. If
+ * 'Private' is chosen, the Storage Account service tag should be enabled on the subnets in which the SAP VMs exist.
+ * This is required for establishing connectivity between VM extensions and the managed resource group storage
+ * account. This setting is currently applicable only to Storage Account. Learn more here
+ * https://go.microsoft.com/fwlink/?linkid=2247228.
+ *
+ * @param managedResourcesNetworkAccessType the managedResourcesNetworkAccessType value to set.
+ * @return the SapVirtualInstanceInner object itself.
+ */
+ public SapVirtualInstanceInner withManagedResourcesNetworkAccessType(
+ ManagedResourcesNetworkAccessType managedResourcesNetworkAccessType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapVirtualInstanceProperties();
+ }
+ this.innerProperties().withManagedResourcesNetworkAccessType(managedResourcesNetworkAccessType);
+ return this;
+ }
+
+ /**
+ * Get the configuration property: Defines if the SAP system is being created using Azure Center for SAP solutions
+ * (ACSS) or if an existing SAP system is being registered with ACSS.
+ *
+ * @return the configuration value.
+ */
+ public SapConfiguration configuration() {
+ return this.innerProperties() == null ? null : this.innerProperties().configuration();
+ }
+
+ /**
+ * Set the configuration property: Defines if the SAP system is being created using Azure Center for SAP solutions
+ * (ACSS) or if an existing SAP system is being registered with ACSS.
+ *
+ * @param configuration the configuration value to set.
+ * @return the SapVirtualInstanceInner object itself.
+ */
+ public SapVirtualInstanceInner withConfiguration(SapConfiguration configuration) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapVirtualInstanceProperties();
+ }
+ this.innerProperties().withConfiguration(configuration);
+ return this;
+ }
+
+ /**
+ * Get the managedResourceGroupConfiguration property: Managed resource group configuration.
+ *
+ * @return the managedResourceGroupConfiguration value.
+ */
+ public ManagedRGConfiguration managedResourceGroupConfiguration() {
+ return this.innerProperties() == null ? null : this.innerProperties().managedResourceGroupConfiguration();
+ }
+
+ /**
+ * Set the managedResourceGroupConfiguration property: Managed resource group configuration.
+ *
+ * @param managedResourceGroupConfiguration the managedResourceGroupConfiguration value to set.
+ * @return the SapVirtualInstanceInner object itself.
+ */
+ public SapVirtualInstanceInner withManagedResourceGroupConfiguration(
+ ManagedRGConfiguration managedResourceGroupConfiguration) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SapVirtualInstanceProperties();
+ }
+ this.innerProperties().withManagedResourceGroupConfiguration(managedResourceGroupConfiguration);
+ return this;
+ }
+
+ /**
+ * Get the status property: Defines the SAP Instance status.
+ *
+ * @return the status value.
+ */
+ public SapVirtualInstanceStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the health property: Defines the health of SAP Instances.
+ *
+ * @return the health value.
+ */
+ public SapHealthState health() {
+ return this.innerProperties() == null ? null : this.innerProperties().health();
+ }
+
+ /**
+ * Get the state property: Defines the Virtual Instance for SAP state.
+ *
+ * @return the state value.
+ */
+ public SapVirtualInstanceState state() {
+ return this.innerProperties() == null ? null : this.innerProperties().state();
+ }
+
+ /**
+ * Get the provisioningState property: Defines the provisioning states.
+ *
+ * @return the provisioningState value.
+ */
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the errors property: Indicates any errors on the Virtual Instance for SAP solutions resource.
+ *
+ * @return the errors value.
+ */
+ public SapVirtualInstanceError errors() {
+ return this.innerProperties() == null ? null : this.innerProperties().errors();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (identity() != null) {
+ identity().validate();
+ }
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model SapVirtualInstanceInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(SapVirtualInstanceInner.class);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapVirtualInstanceProperties.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapVirtualInstanceProperties.java
new file mode 100644
index 0000000000000..170af2007abc8
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/SapVirtualInstanceProperties.java
@@ -0,0 +1,287 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ManagedRGConfiguration;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ManagedResourcesNetworkAccessType;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapConfiguration;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapEnvironmentType;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapHealthState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapProductType;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the Virtual Instance for SAP solutions resource properties. */
+@Fluent
+public final class SapVirtualInstanceProperties {
+ /*
+ * Defines the environment type - Production/Non Production.
+ */
+ @JsonProperty(value = "environment", required = true)
+ private SapEnvironmentType environment;
+
+ /*
+ * Defines the SAP Product type.
+ */
+ @JsonProperty(value = "sapProduct", required = true)
+ private SapProductType sapProduct;
+
+ /*
+ * Specifies the network access configuration for the resources that will be deployed in the Managed Resource
+ * Group. The options to choose from are Public and Private. If 'Private' is chosen, the Storage Account service
+ * tag should be enabled on the subnets in which the SAP VMs exist. This is required for establishing connectivity
+ * between VM extensions and the managed resource group storage account. This setting is currently applicable only
+ * to Storage Account. Learn more here https://go.microsoft.com/fwlink/?linkid=2247228
+ */
+ @JsonProperty(value = "managedResourcesNetworkAccessType")
+ private ManagedResourcesNetworkAccessType managedResourcesNetworkAccessType;
+
+ /*
+ * Defines if the SAP system is being created using Azure Center for SAP solutions (ACSS) or if an existing SAP
+ * system is being registered with ACSS
+ */
+ @JsonProperty(value = "configuration", required = true)
+ private SapConfiguration configuration;
+
+ /*
+ * Managed resource group configuration
+ */
+ @JsonProperty(value = "managedResourceGroupConfiguration")
+ private ManagedRGConfiguration managedResourceGroupConfiguration;
+
+ /*
+ * Defines the SAP Instance status.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceStatus status;
+
+ /*
+ * Defines the health of SAP Instances.
+ */
+ @JsonProperty(value = "health", access = JsonProperty.Access.WRITE_ONLY)
+ private SapHealthState health;
+
+ /*
+ * Defines the Virtual Instance for SAP state.
+ */
+ @JsonProperty(value = "state", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceState state;
+
+ /*
+ * Defines the provisioning states.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceProvisioningState provisioningState;
+
+ /*
+ * Indicates any errors on the Virtual Instance for SAP solutions resource.
+ */
+ @JsonProperty(value = "errors", access = JsonProperty.Access.WRITE_ONLY)
+ private SapVirtualInstanceError errors;
+
+ /** Creates an instance of SapVirtualInstanceProperties class. */
+ public SapVirtualInstanceProperties() {
+ }
+
+ /**
+ * Get the environment property: Defines the environment type - Production/Non Production.
+ *
+ * @return the environment value.
+ */
+ public SapEnvironmentType environment() {
+ return this.environment;
+ }
+
+ /**
+ * Set the environment property: Defines the environment type - Production/Non Production.
+ *
+ * @param environment the environment value to set.
+ * @return the SapVirtualInstanceProperties object itself.
+ */
+ public SapVirtualInstanceProperties withEnvironment(SapEnvironmentType environment) {
+ this.environment = environment;
+ return this;
+ }
+
+ /**
+ * Get the sapProduct property: Defines the SAP Product type.
+ *
+ * @return the sapProduct value.
+ */
+ public SapProductType sapProduct() {
+ return this.sapProduct;
+ }
+
+ /**
+ * Set the sapProduct property: Defines the SAP Product type.
+ *
+ * @param sapProduct the sapProduct value to set.
+ * @return the SapVirtualInstanceProperties object itself.
+ */
+ public SapVirtualInstanceProperties withSapProduct(SapProductType sapProduct) {
+ this.sapProduct = sapProduct;
+ return this;
+ }
+
+ /**
+ * Get the managedResourcesNetworkAccessType property: Specifies the network access configuration for the resources
+ * that will be deployed in the Managed Resource Group. The options to choose from are Public and Private. If
+ * 'Private' is chosen, the Storage Account service tag should be enabled on the subnets in which the SAP VMs exist.
+ * This is required for establishing connectivity between VM extensions and the managed resource group storage
+ * account. This setting is currently applicable only to Storage Account. Learn more here
+ * https://go.microsoft.com/fwlink/?linkid=2247228.
+ *
+ * @return the managedResourcesNetworkAccessType value.
+ */
+ public ManagedResourcesNetworkAccessType managedResourcesNetworkAccessType() {
+ return this.managedResourcesNetworkAccessType;
+ }
+
+ /**
+ * Set the managedResourcesNetworkAccessType property: Specifies the network access configuration for the resources
+ * that will be deployed in the Managed Resource Group. The options to choose from are Public and Private. If
+ * 'Private' is chosen, the Storage Account service tag should be enabled on the subnets in which the SAP VMs exist.
+ * This is required for establishing connectivity between VM extensions and the managed resource group storage
+ * account. This setting is currently applicable only to Storage Account. Learn more here
+ * https://go.microsoft.com/fwlink/?linkid=2247228.
+ *
+ * @param managedResourcesNetworkAccessType the managedResourcesNetworkAccessType value to set.
+ * @return the SapVirtualInstanceProperties object itself.
+ */
+ public SapVirtualInstanceProperties withManagedResourcesNetworkAccessType(
+ ManagedResourcesNetworkAccessType managedResourcesNetworkAccessType) {
+ this.managedResourcesNetworkAccessType = managedResourcesNetworkAccessType;
+ return this;
+ }
+
+ /**
+ * Get the configuration property: Defines if the SAP system is being created using Azure Center for SAP solutions
+ * (ACSS) or if an existing SAP system is being registered with ACSS.
+ *
+ * @return the configuration value.
+ */
+ public SapConfiguration configuration() {
+ return this.configuration;
+ }
+
+ /**
+ * Set the configuration property: Defines if the SAP system is being created using Azure Center for SAP solutions
+ * (ACSS) or if an existing SAP system is being registered with ACSS.
+ *
+ * @param configuration the configuration value to set.
+ * @return the SapVirtualInstanceProperties object itself.
+ */
+ public SapVirtualInstanceProperties withConfiguration(SapConfiguration configuration) {
+ this.configuration = configuration;
+ return this;
+ }
+
+ /**
+ * Get the managedResourceGroupConfiguration property: Managed resource group configuration.
+ *
+ * @return the managedResourceGroupConfiguration value.
+ */
+ public ManagedRGConfiguration managedResourceGroupConfiguration() {
+ return this.managedResourceGroupConfiguration;
+ }
+
+ /**
+ * Set the managedResourceGroupConfiguration property: Managed resource group configuration.
+ *
+ * @param managedResourceGroupConfiguration the managedResourceGroupConfiguration value to set.
+ * @return the SapVirtualInstanceProperties object itself.
+ */
+ public SapVirtualInstanceProperties withManagedResourceGroupConfiguration(
+ ManagedRGConfiguration managedResourceGroupConfiguration) {
+ this.managedResourceGroupConfiguration = managedResourceGroupConfiguration;
+ return this;
+ }
+
+ /**
+ * Get the status property: Defines the SAP Instance status.
+ *
+ * @return the status value.
+ */
+ public SapVirtualInstanceStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the health property: Defines the health of SAP Instances.
+ *
+ * @return the health value.
+ */
+ public SapHealthState health() {
+ return this.health;
+ }
+
+ /**
+ * Get the state property: Defines the Virtual Instance for SAP state.
+ *
+ * @return the state value.
+ */
+ public SapVirtualInstanceState state() {
+ return this.state;
+ }
+
+ /**
+ * Get the provisioningState property: Defines the provisioning states.
+ *
+ * @return the provisioningState value.
+ */
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the errors property: Indicates any errors on the Virtual Instance for SAP solutions resource.
+ *
+ * @return the errors value.
+ */
+ public SapVirtualInstanceError errors() {
+ return this.errors;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (environment() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property environment in model SapVirtualInstanceProperties"));
+ }
+ if (sapProduct() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property sapProduct in model SapVirtualInstanceProperties"));
+ }
+ if (configuration() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property configuration in model SapVirtualInstanceProperties"));
+ } else {
+ configuration().validate();
+ }
+ if (managedResourceGroupConfiguration() != null) {
+ managedResourceGroupConfiguration().validate();
+ }
+ if (errors() != null) {
+ errors().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(SapVirtualInstanceProperties.class);
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/package-info.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/package-info.java
new file mode 100644
index 0000000000000..873b5281c5aea
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/models/package-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/**
+ * Package containing the inner data models for WorkloadsClient. Workloads client provides access to various workload
+ * operations.
+ */
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models;
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/package-info.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/package-info.java
new file mode 100644
index 0000000000000..d819a0110309e
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/fluent/package-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/**
+ * Package containing the service clients for WorkloadsClient. Workloads client provides access to various workload
+ * operations.
+ */
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent;
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationImpl.java
new file mode 100644
index 0000000000000..d500c9e952c4b
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationImpl.java
@@ -0,0 +1,53 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ActionType;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.Operation;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.OperationDisplay;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.Origin;
+
+public final class OperationImpl implements Operation {
+ private OperationInner innerObject;
+
+ private final com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager
+ serviceManager;
+
+ OperationImpl(
+ OperationInner innerObject,
+ com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public Boolean isDataAction() {
+ return this.innerModel().isDataAction();
+ }
+
+ public OperationDisplay display() {
+ return this.innerModel().display();
+ }
+
+ public Origin origin() {
+ return this.innerModel().origin();
+ }
+
+ public ActionType actionType() {
+ return this.innerModel().actionType();
+ }
+
+ public OperationInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationStatusResultImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationStatusResultImpl.java
new file mode 100644
index 0000000000000..9d8b873f19428
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationStatusResultImpl.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.core.management.exception.ManagementError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationStatusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.OperationStatusResult;
+import java.time.OffsetDateTime;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public final class OperationStatusResultImpl implements OperationStatusResult {
+ private OperationStatusResultInner innerObject;
+
+ private final com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager
+ serviceManager;
+
+ OperationStatusResultImpl(
+ OperationStatusResultInner innerObject,
+ com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String status() {
+ return this.innerModel().status();
+ }
+
+ public Float percentComplete() {
+ return this.innerModel().percentComplete();
+ }
+
+ public OffsetDateTime startTime() {
+ return this.innerModel().startTime();
+ }
+
+ public OffsetDateTime endTime() {
+ return this.innerModel().endTime();
+ }
+
+ public List operations() {
+ List inner = this.innerModel().operations();
+ if (inner != null) {
+ return Collections
+ .unmodifiableList(
+ inner
+ .stream()
+ .map(inner1 -> new OperationStatusResultImpl(inner1, this.manager()))
+ .collect(Collectors.toList()));
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public ManagementError error() {
+ return this.innerModel().error();
+ }
+
+ public OperationStatusResultInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationsClientImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationsClientImpl.java
new file mode 100644
index 0000000000000..9cae1a1906ac2
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationsClientImpl.java
@@ -0,0 +1,276 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.OperationsClient;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.OperationListResult;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public final class OperationsClientImpl implements OperationsClient {
+ /** The proxy service used to perform REST calls. */
+ private final OperationsService service;
+
+ /** The service client containing this operation class. */
+ private final WorkloadsClientImpl client;
+
+ /**
+ * Initializes an instance of OperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ OperationsClientImpl(WorkloadsClientImpl client) {
+ this.service =
+ RestProxy.create(OperationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for WorkloadsClientOperations to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "WorkloadsClientOpera")
+ public interface OperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get("/providers/Microsoft.Workloads/operations")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all the available API operations under this PR.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider along with {@link PagedResponse} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync() {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context -> service.list(this.client.getEndpoint(), this.client.getApiVersion(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists all the available API operations under this PR.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider along with {@link PagedResponse} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(this.client.getEndpoint(), this.client.getApiVersion(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all the available API operations under this PR.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider as paginated response with {@link
+ * PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(() -> listSinglePageAsync(), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all the available API operations under this PR.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider as paginated response with {@link
+ * PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(context), nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all the available API operations under this PR.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * Lists all the available API operations under this PR.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(Context context) {
+ return new PagedIterable<>(listAsync(context));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The URL to get the next list of items
+ * The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider along with {@link PagedResponse} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The URL to get the next list of items
+ * The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider along with {@link PagedResponse} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationsImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationsImpl.java
new file mode 100644
index 0000000000000..7bf9b8d56efb6
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/OperationsImpl.java
@@ -0,0 +1,47 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.OperationsClient;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.Operation;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.Operations;
+
+public final class OperationsImpl implements Operations {
+ private static final ClientLogger LOGGER = new ClientLogger(OperationsImpl.class);
+
+ private final OperationsClient innerClient;
+
+ private final com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager
+ serviceManager;
+
+ public OperationsImpl(
+ OperationsClient innerClient,
+ com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list() {
+ PagedIterable inner = this.serviceClient().list();
+ return Utils.mapPage(inner, inner1 -> new OperationImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(Context context) {
+ PagedIterable inner = this.serviceClient().list(context);
+ return Utils.mapPage(inner, inner1 -> new OperationImpl(inner1, this.manager()));
+ }
+
+ private OperationsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/ResourceProvidersClientImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/ResourceProvidersClientImpl.java
new file mode 100644
index 0000000000000..0aa42aa6e2081
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/ResourceProvidersClientImpl.java
@@ -0,0 +1,696 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.ResourceProvidersClient;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapAvailabilityZoneDetailsResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapDiskConfigurationsResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapSizingRecommendationResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapSupportedResourceSkusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapAvailabilityZoneDetailsRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapDiskConfigurationsRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSizingRecommendationRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSupportedSkusRequest;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in ResourceProvidersClient. */
+public final class ResourceProvidersClientImpl implements ResourceProvidersClient {
+ /** The proxy service used to perform REST calls. */
+ private final ResourceProvidersService service;
+
+ /** The service client containing this operation class. */
+ private final WorkloadsClientImpl client;
+
+ /**
+ * Initializes an instance of ResourceProvidersClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ ResourceProvidersClientImpl(WorkloadsClientImpl client) {
+ this.service =
+ RestProxy.create(ResourceProvidersService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for WorkloadsClientResourceProviders to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "WorkloadsClientResou")
+ public interface ResourceProvidersService {
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Workloads/locations/{location}/sapVirtualInstanceMetadata/default/getSizingRecommendations")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> sapSizingRecommendations(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("location") String location,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") SapSizingRecommendationRequest sapSizingRecommendation,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Workloads/locations/{location}/sapVirtualInstanceMetadata/default/getSapSupportedSku")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> sapSupportedSku(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("location") String location,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") SapSupportedSkusRequest sapSupportedSku,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Workloads/locations/{location}/sapVirtualInstanceMetadata/default/getDiskConfigurations")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> sapDiskConfigurations(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("location") String location,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") SapDiskConfigurationsRequest sapDiskConfigurations,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Workloads/locations/{location}/sapVirtualInstanceMetadata/default/getAvailabilityZoneDetails")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> sapAvailabilityZoneDetails(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("location") String location,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") SapAvailabilityZoneDetailsRequest sapAvailabilityZoneDetails,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Get SAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ *
+ * @param location The name of Azure region.
+ * @param sapSizingRecommendation SAP Sizing Recommendation Request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> sapSizingRecommendationsWithResponseAsync(
+ String location, SapSizingRecommendationRequest sapSizingRecommendation) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (location == null) {
+ return Mono.error(new IllegalArgumentException("Parameter location is required and cannot be null."));
+ }
+ if (sapSizingRecommendation != null) {
+ sapSizingRecommendation.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .sapSizingRecommendations(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ location,
+ this.client.getApiVersion(),
+ sapSizingRecommendation,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get SAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ *
+ * @param location The name of Azure region.
+ * @param sapSizingRecommendation SAP Sizing Recommendation Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> sapSizingRecommendationsWithResponseAsync(
+ String location, SapSizingRecommendationRequest sapSizingRecommendation, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (location == null) {
+ return Mono.error(new IllegalArgumentException("Parameter location is required and cannot be null."));
+ }
+ if (sapSizingRecommendation != null) {
+ sapSizingRecommendation.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .sapSizingRecommendations(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ location,
+ this.client.getApiVersion(),
+ sapSizingRecommendation,
+ accept,
+ context);
+ }
+
+ /**
+ * Get SAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono sapSizingRecommendationsAsync(String location) {
+ final SapSizingRecommendationRequest sapSizingRecommendation = null;
+ return sapSizingRecommendationsWithResponseAsync(location, sapSizingRecommendation)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Get SAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ *
+ * @param location The name of Azure region.
+ * @param sapSizingRecommendation SAP Sizing Recommendation Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response sapSizingRecommendationsWithResponse(
+ String location, SapSizingRecommendationRequest sapSizingRecommendation, Context context) {
+ return sapSizingRecommendationsWithResponseAsync(location, sapSizingRecommendation, context).block();
+ }
+
+ /**
+ * Get SAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sAP sizing recommendations by providing input SAPS for application tier and memory required for database
+ * tier.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SapSizingRecommendationResultInner sapSizingRecommendations(String location) {
+ final SapSizingRecommendationRequest sapSizingRecommendation = null;
+ return sapSizingRecommendationsWithResponse(location, sapSizingRecommendation, Context.NONE).getValue();
+ }
+
+ /**
+ * Get a list of SAP supported SKUs for ASCS, Application and Database tier.
+ *
+ * @param location The name of Azure region.
+ * @param sapSupportedSku SAP Supported SKU Request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of SAP supported SKUs for ASCS, Application and Database tier along with {@link Response} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> sapSupportedSkuWithResponseAsync(
+ String location, SapSupportedSkusRequest sapSupportedSku) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (location == null) {
+ return Mono.error(new IllegalArgumentException("Parameter location is required and cannot be null."));
+ }
+ if (sapSupportedSku != null) {
+ sapSupportedSku.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .sapSupportedSku(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ location,
+ this.client.getApiVersion(),
+ sapSupportedSku,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get a list of SAP supported SKUs for ASCS, Application and Database tier.
+ *
+ * @param location The name of Azure region.
+ * @param sapSupportedSku SAP Supported SKU Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of SAP supported SKUs for ASCS, Application and Database tier along with {@link Response} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> sapSupportedSkuWithResponseAsync(
+ String location, SapSupportedSkusRequest sapSupportedSku, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (location == null) {
+ return Mono.error(new IllegalArgumentException("Parameter location is required and cannot be null."));
+ }
+ if (sapSupportedSku != null) {
+ sapSupportedSku.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .sapSupportedSku(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ location,
+ this.client.getApiVersion(),
+ sapSupportedSku,
+ accept,
+ context);
+ }
+
+ /**
+ * Get a list of SAP supported SKUs for ASCS, Application and Database tier.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of SAP supported SKUs for ASCS, Application and Database tier on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono sapSupportedSkuAsync(String location) {
+ final SapSupportedSkusRequest sapSupportedSku = null;
+ return sapSupportedSkuWithResponseAsync(location, sapSupportedSku)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Get a list of SAP supported SKUs for ASCS, Application and Database tier.
+ *
+ * @param location The name of Azure region.
+ * @param sapSupportedSku SAP Supported SKU Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of SAP supported SKUs for ASCS, Application and Database tier along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response sapSupportedSkuWithResponse(
+ String location, SapSupportedSkusRequest sapSupportedSku, Context context) {
+ return sapSupportedSkuWithResponseAsync(location, sapSupportedSku, context).block();
+ }
+
+ /**
+ * Get a list of SAP supported SKUs for ASCS, Application and Database tier.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of SAP supported SKUs for ASCS, Application and Database tier.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SapSupportedResourceSkusResultInner sapSupportedSku(String location) {
+ final SapSupportedSkusRequest sapSupportedSku = null;
+ return sapSupportedSkuWithResponse(location, sapSupportedSku, Context.NONE).getValue();
+ }
+
+ /**
+ * Get the SAP Disk Configuration Layout prod/non-prod SAP System.
+ *
+ * @param location The name of Azure region.
+ * @param sapDiskConfigurations SAP Disk Configurations Request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Disk Configuration Layout prod/non-prod SAP System along with {@link Response} on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> sapDiskConfigurationsWithResponseAsync(
+ String location, SapDiskConfigurationsRequest sapDiskConfigurations) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (location == null) {
+ return Mono.error(new IllegalArgumentException("Parameter location is required and cannot be null."));
+ }
+ if (sapDiskConfigurations != null) {
+ sapDiskConfigurations.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .sapDiskConfigurations(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ location,
+ this.client.getApiVersion(),
+ sapDiskConfigurations,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the SAP Disk Configuration Layout prod/non-prod SAP System.
+ *
+ * @param location The name of Azure region.
+ * @param sapDiskConfigurations SAP Disk Configurations Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Disk Configuration Layout prod/non-prod SAP System along with {@link Response} on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> sapDiskConfigurationsWithResponseAsync(
+ String location, SapDiskConfigurationsRequest sapDiskConfigurations, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (location == null) {
+ return Mono.error(new IllegalArgumentException("Parameter location is required and cannot be null."));
+ }
+ if (sapDiskConfigurations != null) {
+ sapDiskConfigurations.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .sapDiskConfigurations(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ location,
+ this.client.getApiVersion(),
+ sapDiskConfigurations,
+ accept,
+ context);
+ }
+
+ /**
+ * Get the SAP Disk Configuration Layout prod/non-prod SAP System.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Disk Configuration Layout prod/non-prod SAP System on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono sapDiskConfigurationsAsync(String location) {
+ final SapDiskConfigurationsRequest sapDiskConfigurations = null;
+ return sapDiskConfigurationsWithResponseAsync(location, sapDiskConfigurations)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Get the SAP Disk Configuration Layout prod/non-prod SAP System.
+ *
+ * @param location The name of Azure region.
+ * @param sapDiskConfigurations SAP Disk Configurations Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Disk Configuration Layout prod/non-prod SAP System along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response sapDiskConfigurationsWithResponse(
+ String location, SapDiskConfigurationsRequest sapDiskConfigurations, Context context) {
+ return sapDiskConfigurationsWithResponseAsync(location, sapDiskConfigurations, context).block();
+ }
+
+ /**
+ * Get the SAP Disk Configuration Layout prod/non-prod SAP System.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Disk Configuration Layout prod/non-prod SAP System.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SapDiskConfigurationsResultInner sapDiskConfigurations(String location) {
+ final SapDiskConfigurationsRequest sapDiskConfigurations = null;
+ return sapDiskConfigurationsWithResponse(location, sapDiskConfigurations, Context.NONE).getValue();
+ }
+
+ /**
+ * Get the recommended SAP Availability Zone Pair Details for your region.
+ *
+ * @param location The name of Azure region.
+ * @param sapAvailabilityZoneDetails SAP Availability Zone Details Request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the recommended SAP Availability Zone Pair Details for your region along with {@link Response} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> sapAvailabilityZoneDetailsWithResponseAsync(
+ String location, SapAvailabilityZoneDetailsRequest sapAvailabilityZoneDetails) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (location == null) {
+ return Mono.error(new IllegalArgumentException("Parameter location is required and cannot be null."));
+ }
+ if (sapAvailabilityZoneDetails != null) {
+ sapAvailabilityZoneDetails.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .sapAvailabilityZoneDetails(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ location,
+ this.client.getApiVersion(),
+ sapAvailabilityZoneDetails,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the recommended SAP Availability Zone Pair Details for your region.
+ *
+ * @param location The name of Azure region.
+ * @param sapAvailabilityZoneDetails SAP Availability Zone Details Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the recommended SAP Availability Zone Pair Details for your region along with {@link Response} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> sapAvailabilityZoneDetailsWithResponseAsync(
+ String location, SapAvailabilityZoneDetailsRequest sapAvailabilityZoneDetails, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (location == null) {
+ return Mono.error(new IllegalArgumentException("Parameter location is required and cannot be null."));
+ }
+ if (sapAvailabilityZoneDetails != null) {
+ sapAvailabilityZoneDetails.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .sapAvailabilityZoneDetails(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ location,
+ this.client.getApiVersion(),
+ sapAvailabilityZoneDetails,
+ accept,
+ context);
+ }
+
+ /**
+ * Get the recommended SAP Availability Zone Pair Details for your region.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the recommended SAP Availability Zone Pair Details for your region on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono sapAvailabilityZoneDetailsAsync(String location) {
+ final SapAvailabilityZoneDetailsRequest sapAvailabilityZoneDetails = null;
+ return sapAvailabilityZoneDetailsWithResponseAsync(location, sapAvailabilityZoneDetails)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Get the recommended SAP Availability Zone Pair Details for your region.
+ *
+ * @param location The name of Azure region.
+ * @param sapAvailabilityZoneDetails SAP Availability Zone Details Request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the recommended SAP Availability Zone Pair Details for your region along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response sapAvailabilityZoneDetailsWithResponse(
+ String location, SapAvailabilityZoneDetailsRequest sapAvailabilityZoneDetails, Context context) {
+ return sapAvailabilityZoneDetailsWithResponseAsync(location, sapAvailabilityZoneDetails, context).block();
+ }
+
+ /**
+ * Get the recommended SAP Availability Zone Pair Details for your region.
+ *
+ * @param location The name of Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the recommended SAP Availability Zone Pair Details for your region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SapAvailabilityZoneDetailsResultInner sapAvailabilityZoneDetails(String location) {
+ final SapAvailabilityZoneDetailsRequest sapAvailabilityZoneDetails = null;
+ return sapAvailabilityZoneDetailsWithResponse(location, sapAvailabilityZoneDetails, Context.NONE).getValue();
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/ResourceProvidersImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/ResourceProvidersImpl.java
new file mode 100644
index 0000000000000..3410acfe48d58
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/ResourceProvidersImpl.java
@@ -0,0 +1,144 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.ResourceProvidersClient;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapAvailabilityZoneDetailsResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapDiskConfigurationsResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapSizingRecommendationResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapSupportedResourceSkusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ResourceProviders;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapAvailabilityZoneDetailsRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapAvailabilityZoneDetailsResult;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapDiskConfigurationsRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapDiskConfigurationsResult;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSizingRecommendationRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSizingRecommendationResult;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSupportedResourceSkusResult;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapSupportedSkusRequest;
+
+public final class ResourceProvidersImpl implements ResourceProviders {
+ private static final ClientLogger LOGGER = new ClientLogger(ResourceProvidersImpl.class);
+
+ private final ResourceProvidersClient innerClient;
+
+ private final com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager
+ serviceManager;
+
+ public ResourceProvidersImpl(
+ ResourceProvidersClient innerClient,
+ com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public Response sapSizingRecommendationsWithResponse(
+ String location, SapSizingRecommendationRequest sapSizingRecommendation, Context context) {
+ Response inner =
+ this.serviceClient().sapSizingRecommendationsWithResponse(location, sapSizingRecommendation, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new SapSizingRecommendationResultImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public SapSizingRecommendationResult sapSizingRecommendations(String location) {
+ SapSizingRecommendationResultInner inner = this.serviceClient().sapSizingRecommendations(location);
+ if (inner != null) {
+ return new SapSizingRecommendationResultImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response sapSupportedSkuWithResponse(
+ String location, SapSupportedSkusRequest sapSupportedSku, Context context) {
+ Response inner =
+ this.serviceClient().sapSupportedSkuWithResponse(location, sapSupportedSku, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new SapSupportedResourceSkusResultImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public SapSupportedResourceSkusResult sapSupportedSku(String location) {
+ SapSupportedResourceSkusResultInner inner = this.serviceClient().sapSupportedSku(location);
+ if (inner != null) {
+ return new SapSupportedResourceSkusResultImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response sapDiskConfigurationsWithResponse(
+ String location, SapDiskConfigurationsRequest sapDiskConfigurations, Context context) {
+ Response inner =
+ this.serviceClient().sapDiskConfigurationsWithResponse(location, sapDiskConfigurations, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new SapDiskConfigurationsResultImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public SapDiskConfigurationsResult sapDiskConfigurations(String location) {
+ SapDiskConfigurationsResultInner inner = this.serviceClient().sapDiskConfigurations(location);
+ if (inner != null) {
+ return new SapDiskConfigurationsResultImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response sapAvailabilityZoneDetailsWithResponse(
+ String location, SapAvailabilityZoneDetailsRequest sapAvailabilityZoneDetails, Context context) {
+ Response inner =
+ this.serviceClient().sapAvailabilityZoneDetailsWithResponse(location, sapAvailabilityZoneDetails, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new SapAvailabilityZoneDetailsResultImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public SapAvailabilityZoneDetailsResult sapAvailabilityZoneDetails(String location) {
+ SapAvailabilityZoneDetailsResultInner inner = this.serviceClient().sapAvailabilityZoneDetails(location);
+ if (inner != null) {
+ return new SapAvailabilityZoneDetailsResultImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ private ResourceProvidersClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstanceImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstanceImpl.java
new file mode 100644
index 0000000000000..5d6ba2d94c899
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstanceImpl.java
@@ -0,0 +1,303 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.core.management.Region;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapApplicationServerInstanceInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.ApplicationServerVmDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.LoadBalancerDetails;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.OperationStatusResult;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapApplicationServerInstance;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapHealthState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceError;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceProvisioningState;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapVirtualInstanceStatus;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StartRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StopRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.UpdateSapApplicationInstanceRequest;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public final class SapApplicationServerInstanceImpl
+ implements SapApplicationServerInstance,
+ SapApplicationServerInstance.Definition,
+ SapApplicationServerInstance.Update {
+ private SapApplicationServerInstanceInner innerObject;
+
+ private final com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager
+ serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String location() {
+ return this.innerModel().location();
+ }
+
+ public Map tags() {
+ Map inner = this.innerModel().tags();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String instanceNo() {
+ return this.innerModel().instanceNo();
+ }
+
+ public String subnet() {
+ return this.innerModel().subnet();
+ }
+
+ public String hostname() {
+ return this.innerModel().hostname();
+ }
+
+ public String kernelVersion() {
+ return this.innerModel().kernelVersion();
+ }
+
+ public String kernelPatch() {
+ return this.innerModel().kernelPatch();
+ }
+
+ public String ipAddress() {
+ return this.innerModel().ipAddress();
+ }
+
+ public Long gatewayPort() {
+ return this.innerModel().gatewayPort();
+ }
+
+ public Long icmHttpPort() {
+ return this.innerModel().icmHttpPort();
+ }
+
+ public Long icmHttpsPort() {
+ return this.innerModel().icmHttpsPort();
+ }
+
+ public String dispatcherStatus() {
+ return this.innerModel().dispatcherStatus();
+ }
+
+ public LoadBalancerDetails loadBalancerDetails() {
+ return this.innerModel().loadBalancerDetails();
+ }
+
+ public List vmDetails() {
+ List inner = this.innerModel().vmDetails();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public SapVirtualInstanceStatus status() {
+ return this.innerModel().status();
+ }
+
+ public SapHealthState health() {
+ return this.innerModel().health();
+ }
+
+ public SapVirtualInstanceProvisioningState provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public SapVirtualInstanceError errors() {
+ return this.innerModel().errors();
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public String resourceGroupName() {
+ return resourceGroupName;
+ }
+
+ public SapApplicationServerInstanceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String sapVirtualInstanceName;
+
+ private String applicationInstanceName;
+
+ private UpdateSapApplicationInstanceRequest updateBody;
+
+ public SapApplicationServerInstanceImpl withExistingSapVirtualInstance(
+ String resourceGroupName, String sapVirtualInstanceName) {
+ this.resourceGroupName = resourceGroupName;
+ this.sapVirtualInstanceName = sapVirtualInstanceName;
+ return this;
+ }
+
+ public SapApplicationServerInstance create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getSapApplicationServerInstances()
+ .create(
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.innerModel(),
+ Context.NONE);
+ return this;
+ }
+
+ public SapApplicationServerInstance create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getSapApplicationServerInstances()
+ .create(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, this.innerModel(), context);
+ return this;
+ }
+
+ SapApplicationServerInstanceImpl(
+ String name,
+ com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager serviceManager) {
+ this.innerObject = new SapApplicationServerInstanceInner();
+ this.serviceManager = serviceManager;
+ this.applicationInstanceName = name;
+ }
+
+ public SapApplicationServerInstanceImpl update() {
+ this.updateBody = new UpdateSapApplicationInstanceRequest();
+ return this;
+ }
+
+ public SapApplicationServerInstance apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getSapApplicationServerInstances()
+ .updateWithResponse(
+ resourceGroupName, sapVirtualInstanceName, applicationInstanceName, updateBody, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public SapApplicationServerInstance apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getSapApplicationServerInstances()
+ .updateWithResponse(
+ resourceGroupName, sapVirtualInstanceName, applicationInstanceName, updateBody, context)
+ .getValue();
+ return this;
+ }
+
+ SapApplicationServerInstanceImpl(
+ SapApplicationServerInstanceInner innerObject,
+ com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.sapVirtualInstanceName = Utils.getValueFromIdByName(innerObject.id(), "sapVirtualInstances");
+ this.applicationInstanceName = Utils.getValueFromIdByName(innerObject.id(), "applicationInstances");
+ }
+
+ public SapApplicationServerInstance refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getSapApplicationServerInstances()
+ .getWithResponse(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public SapApplicationServerInstance refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getSapApplicationServerInstances()
+ .getWithResponse(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, context)
+ .getValue();
+ return this;
+ }
+
+ public OperationStatusResult startInstance() {
+ return serviceManager
+ .sapApplicationServerInstances()
+ .startInstance(resourceGroupName, sapVirtualInstanceName, applicationInstanceName);
+ }
+
+ public OperationStatusResult startInstance(StartRequest body, Context context) {
+ return serviceManager
+ .sapApplicationServerInstances()
+ .startInstance(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context);
+ }
+
+ public OperationStatusResult stopInstance() {
+ return serviceManager
+ .sapApplicationServerInstances()
+ .stopInstance(resourceGroupName, sapVirtualInstanceName, applicationInstanceName);
+ }
+
+ public OperationStatusResult stopInstance(StopRequest body, Context context) {
+ return serviceManager
+ .sapApplicationServerInstances()
+ .stopInstance(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context);
+ }
+
+ public SapApplicationServerInstanceImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public SapApplicationServerInstanceImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public SapApplicationServerInstanceImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.innerModel().withTags(tags);
+ return this;
+ } else {
+ this.updateBody.withTags(tags);
+ return this;
+ }
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstancesClientImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstancesClientImpl.java
new file mode 100644
index 0000000000000..ca1ed8da062b8
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstancesClientImpl.java
@@ -0,0 +1,2232 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.SapApplicationServerInstancesClient;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationStatusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapApplicationServerInstanceInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapApplicationServerInstanceList;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StartRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StopRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.UpdateSapApplicationInstanceRequest;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in SapApplicationServerInstancesClient. */
+public final class SapApplicationServerInstancesClientImpl implements SapApplicationServerInstancesClient {
+ /** The proxy service used to perform REST calls. */
+ private final SapApplicationServerInstancesService service;
+
+ /** The service client containing this operation class. */
+ private final WorkloadsClientImpl client;
+
+ /**
+ * Initializes an instance of SapApplicationServerInstancesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ SapApplicationServerInstancesClientImpl(WorkloadsClientImpl client) {
+ this.service =
+ RestProxy
+ .create(
+ SapApplicationServerInstancesService.class,
+ client.getHttpPipeline(),
+ client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for WorkloadsClientSapApplicationServerInstances to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "WorkloadsClientSapAp")
+ public interface SapApplicationServerInstancesService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Workloads/sapVirtualInstances/{sapVirtualInstanceName}/applicationInstances/{applicationInstanceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("sapVirtualInstanceName") String sapVirtualInstanceName,
+ @PathParam("applicationInstanceName") String applicationInstanceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Workloads/sapVirtualInstances/{sapVirtualInstanceName}/applicationInstances/{applicationInstanceName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> create(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("sapVirtualInstanceName") String sapVirtualInstanceName,
+ @PathParam("applicationInstanceName") String applicationInstanceName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") SapApplicationServerInstanceInner body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Workloads/sapVirtualInstances/{sapVirtualInstanceName}/applicationInstances/{applicationInstanceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> update(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("sapVirtualInstanceName") String sapVirtualInstanceName,
+ @PathParam("applicationInstanceName") String applicationInstanceName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") UpdateSapApplicationInstanceRequest body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Workloads/sapVirtualInstances/{sapVirtualInstanceName}/applicationInstances/{applicationInstanceName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("sapVirtualInstanceName") String sapVirtualInstanceName,
+ @PathParam("applicationInstanceName") String applicationInstanceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Workloads/sapVirtualInstances/{sapVirtualInstanceName}/applicationInstances")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("sapVirtualInstanceName") String sapVirtualInstanceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Workloads/sapVirtualInstances/{sapVirtualInstanceName}/applicationInstances/{applicationInstanceName}/start")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> startInstance(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("sapVirtualInstanceName") String sapVirtualInstanceName,
+ @PathParam("applicationInstanceName") String applicationInstanceName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") StartRequest body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Workloads/sapVirtualInstances/{sapVirtualInstanceName}/applicationInstances/{applicationInstanceName}/stop")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> stopInstance(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("sapVirtualInstanceName") String sapVirtualInstanceName,
+ @PathParam("applicationInstanceName") String applicationInstanceName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") StopRequest body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource
+ * along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource
+ * along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ return getWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Gets the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource
+ * along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context) {
+ return getWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, context)
+ .block();
+ }
+
+ /**
+ * Gets the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the SAP Application Server Instance corresponding to the Virtual Instance for SAP solutions resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SapApplicationServerInstanceInner get(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ return getWithResponse(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, Context.NONE)
+ .getValue();
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource along with {@link Response} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .create(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource along with {@link Response} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .create(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, SapApplicationServerInstanceInner>
+ beginCreateAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body) {
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ SapApplicationServerInstanceInner.class,
+ SapApplicationServerInstanceInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, SapApplicationServerInstanceInner>
+ beginCreateAsync(String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final SapApplicationServerInstanceInner body = null;
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ SapApplicationServerInstanceInner.class,
+ SapApplicationServerInstanceInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, SapApplicationServerInstanceInner>
+ beginCreateAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ SapApplicationServerInstanceInner.class,
+ SapApplicationServerInstanceInner.class,
+ context);
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, SapApplicationServerInstanceInner> beginCreate(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final SapApplicationServerInstanceInner body = null;
+ return this
+ .beginCreateAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .getSyncPoller();
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, SapApplicationServerInstanceInner> beginCreate(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body,
+ Context context) {
+ return this
+ .beginCreateAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body) {
+ return beginCreateAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final SapApplicationServerInstanceInner body = null;
+ return beginCreateAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body,
+ Context context) {
+ return beginCreateAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SapApplicationServerInstanceInner create(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final SapApplicationServerInstanceInner body = null;
+ return createAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body).block();
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource. <br><br>This will be used by service only. PUT by
+ * end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SapApplicationServerInstanceInner create(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ SapApplicationServerInstanceInner body,
+ Context context) {
+ return createAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context).block();
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource along with {@link Response} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ UpdateSapApplicationInstanceRequest body) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource along with {@link Response} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ UpdateSapApplicationInstanceRequest body,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final UpdateSapApplicationInstanceRequest body = null;
+ return updateWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body The SAP Application Server Instance resource request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response updateWithResponse(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ UpdateSapApplicationInstanceRequest body,
+ Context context) {
+ return updateWithResponseAsync(
+ resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .block();
+ }
+
+ /**
+ * Puts the SAP Application Server Instance resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the SAP Application Server Instance resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SapApplicationServerInstanceInner update(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final UpdateSapApplicationInstanceRequest body = null;
+ return updateWithResponse(
+ resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, Context.NONE)
+ .getValue();
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ return this
+ .beginDeleteAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName)
+ .getSyncPoller();
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context) {
+ return this
+ .beginDeleteAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ return beginDeleteAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context) {
+ return beginDeleteAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ deleteAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName).block();
+ }
+
+ /**
+ * Deletes the SAP Application Server Instance resource. <br><br>This operation will be used by service
+ * only. Delete by end user will return a Bad Request error.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context) {
+ deleteAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, context).block();
+ }
+
+ /**
+ * Lists the SAP Application Server Instance resources for a given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the collection of SAP Application Server Instance resources along with {@link PagedResponse} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String sapVirtualInstanceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists the SAP Application Server Instance resources for a given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the collection of SAP Application Server Instance resources along with {@link PagedResponse} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String sapVirtualInstanceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists the SAP Application Server Instance resources for a given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the collection of SAP Application Server Instance resources as paginated response with {@link
+ * PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String sapVirtualInstanceName) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, sapVirtualInstanceName),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists the SAP Application Server Instance resources for a given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the collection of SAP Application Server Instance resources as paginated response with {@link
+ * PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String sapVirtualInstanceName, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, sapVirtualInstanceName, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists the SAP Application Server Instance resources for a given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the collection of SAP Application Server Instance resources as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String sapVirtualInstanceName) {
+ return new PagedIterable<>(listAsync(resourceGroupName, sapVirtualInstanceName));
+ }
+
+ /**
+ * Lists the SAP Application Server Instance resources for a given Virtual Instance for SAP solutions resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the collection of SAP Application Server Instance resources as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String sapVirtualInstanceName, Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, sapVirtualInstanceName, context));
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> startInstanceWithResponseAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, StartRequest body) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .startInstance(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> startInstanceWithResponseAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StartRequest body,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .startInstance(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, OperationStatusResultInner> beginStartInstanceAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, StartRequest body) {
+ Mono>> mono =
+ startInstanceWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ OperationStatusResultInner.class,
+ OperationStatusResultInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, OperationStatusResultInner> beginStartInstanceAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final StartRequest body = null;
+ Mono>> mono =
+ startInstanceWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ OperationStatusResultInner.class,
+ OperationStatusResultInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, OperationStatusResultInner> beginStartInstanceAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StartRequest body,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ startInstanceWithResponseAsync(
+ resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ OperationStatusResultInner.class,
+ OperationStatusResultInner.class,
+ context);
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, OperationStatusResultInner> beginStartInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final StartRequest body = null;
+ return this
+ .beginStartInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .getSyncPoller();
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, OperationStatusResultInner> beginStartInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StartRequest body,
+ Context context) {
+ return this
+ .beginStartInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono startInstanceAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, StartRequest body) {
+ return beginStartInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono startInstanceAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final StartRequest body = null;
+ return beginStartInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono startInstanceAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StartRequest body,
+ Context context) {
+ return beginStartInstanceAsync(
+ resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public OperationStatusResultInner startInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final StartRequest body = null;
+ return startInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body).block();
+ }
+
+ /**
+ * Starts the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance start request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public OperationStatusResultInner startInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StartRequest body,
+ Context context) {
+ return startInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .block();
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> stopInstanceWithResponseAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, StopRequest body) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .stopInstance(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> stopInstanceWithResponseAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StopRequest body,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (sapVirtualInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter sapVirtualInstanceName is required and cannot be null."));
+ }
+ if (applicationInstanceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter applicationInstanceName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .stopInstance(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ sapVirtualInstanceName,
+ applicationInstanceName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, OperationStatusResultInner> beginStopInstanceAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, StopRequest body) {
+ Mono>> mono =
+ stopInstanceWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ OperationStatusResultInner.class,
+ OperationStatusResultInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, OperationStatusResultInner> beginStopInstanceAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final StopRequest body = null;
+ Mono>> mono =
+ stopInstanceWithResponseAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ OperationStatusResultInner.class,
+ OperationStatusResultInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, OperationStatusResultInner> beginStopInstanceAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StopRequest body,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ stopInstanceWithResponseAsync(
+ resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ OperationStatusResultInner.class,
+ OperationStatusResultInner.class,
+ context);
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, OperationStatusResultInner> beginStopInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final StopRequest body = null;
+ return this
+ .beginStopInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .getSyncPoller();
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, OperationStatusResultInner> beginStopInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StopRequest body,
+ Context context) {
+ return this
+ .beginStopInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono stopInstanceAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, StopRequest body) {
+ return beginStopInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono stopInstanceAsync(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final StopRequest body = null;
+ return beginStopInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono stopInstanceAsync(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StopRequest body,
+ Context context) {
+ return beginStopInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public OperationStatusResultInner stopInstance(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName) {
+ final StopRequest body = null;
+ return stopInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body).block();
+ }
+
+ /**
+ * Stops the SAP Application Server Instance.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param sapVirtualInstanceName The name of the Virtual Instances for SAP solutions resource.
+ * @param applicationInstanceName The name of SAP Application Server instance resource.
+ * @param body SAP Application server instance stop request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public OperationStatusResultInner stopInstance(
+ String resourceGroupName,
+ String sapVirtualInstanceName,
+ String applicationInstanceName,
+ StopRequest body,
+ Context context) {
+ return stopInstanceAsync(resourceGroupName, sapVirtualInstanceName, applicationInstanceName, body, context)
+ .block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The URL to get the next list of items
+ * The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the collection of SAP Application Server Instance resources along with {@link PagedResponse} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The URL to get the next list of items
+ * The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the collection of SAP Application Server Instance resources along with {@link PagedResponse} on
+ * successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstancesImpl.java b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstancesImpl.java
new file mode 100644
index 0000000000000..2c0318a9d5a41
--- /dev/null
+++ b/sdk/workloadsmicrosoftworkloadssapvirtualinstance/azure-resourcemanager-workloadsmicrosoftworkloadssapvirtualinstance/src/main/java/com/azure/resourcemanager/workloadsmicrosoftworkloadssapvirtualinstance/implementation/SapApplicationServerInstancesImpl.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.workloadsmicrosoftworkloadssapvirtualinstance.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.SapApplicationServerInstancesClient;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.OperationStatusResultInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.fluent.models.SapApplicationServerInstanceInner;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.OperationStatusResult;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapApplicationServerInstance;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.SapApplicationServerInstances;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StartRequest;
+import com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.models.StopRequest;
+
+public final class SapApplicationServerInstancesImpl implements SapApplicationServerInstances {
+ private static final ClientLogger LOGGER = new ClientLogger(SapApplicationServerInstancesImpl.class);
+
+ private final SapApplicationServerInstancesClient innerClient;
+
+ private final com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager
+ serviceManager;
+
+ public SapApplicationServerInstancesImpl(
+ SapApplicationServerInstancesClient innerClient,
+ com.azure.resourcemanager.workloadsmicrosoftworkloadssapvirtualinstance.WorkloadsManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String sapVirtualInstanceName, String applicationInstanceName, Context context) {
+ Response