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 Scvmm service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Scvmm service API instance.
+ */
+ public ScvmmManager 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.scvmm")
+ .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 ScvmmManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of VmmServers. */
+ public VmmServers vmmServers() {
+ if (this.vmmServers == null) {
+ this.vmmServers = new VmmServersImpl(clientObject.getVmmServers(), this);
+ }
+ return vmmServers;
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /** @return Resource collection API of Clouds. */
+ public Clouds clouds() {
+ if (this.clouds == null) {
+ this.clouds = new CloudsImpl(clientObject.getClouds(), this);
+ }
+ return clouds;
+ }
+
+ /** @return Resource collection API of VirtualNetworks. */
+ public VirtualNetworks virtualNetworks() {
+ if (this.virtualNetworks == null) {
+ this.virtualNetworks = new VirtualNetworksImpl(clientObject.getVirtualNetworks(), this);
+ }
+ return virtualNetworks;
+ }
+
+ /** @return Resource collection API of VirtualMachines. */
+ public VirtualMachines virtualMachines() {
+ if (this.virtualMachines == null) {
+ this.virtualMachines = new VirtualMachinesImpl(clientObject.getVirtualMachines(), this);
+ }
+ return virtualMachines;
+ }
+
+ /** @return Resource collection API of VirtualMachineTemplates. */
+ public VirtualMachineTemplates virtualMachineTemplates() {
+ if (this.virtualMachineTemplates == null) {
+ this.virtualMachineTemplates =
+ new VirtualMachineTemplatesImpl(clientObject.getVirtualMachineTemplates(), this);
+ }
+ return virtualMachineTemplates;
+ }
+
+ /** @return Resource collection API of AvailabilitySets. */
+ public AvailabilitySets availabilitySets() {
+ if (this.availabilitySets == null) {
+ this.availabilitySets = new AvailabilitySetsImpl(clientObject.getAvailabilitySets(), this);
+ }
+ return availabilitySets;
+ }
+
+ /** @return Resource collection API of InventoryItems. */
+ public InventoryItems inventoryItems() {
+ if (this.inventoryItems == null) {
+ this.inventoryItems = new InventoryItemsImpl(clientObject.getInventoryItems(), this);
+ }
+ return inventoryItems;
+ }
+
+ /**
+ * @return Wrapped service client ScvmmClient providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public ScvmmClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/AvailabilitySetsClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/AvailabilitySetsClient.java
new file mode 100644
index 0000000000000..41a0d72042414
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/AvailabilitySetsClient.java
@@ -0,0 +1,289 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.fluent.models.AvailabilitySetInner;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in AvailabilitySetsClient. */
+public interface AvailabilitySetsClient {
+ /**
+ * Implements AvailabilitySet GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailabilitySetInner getByResourceGroup(String resourceGroupName, String availabilitySetName);
+
+ /**
+ * Implements AvailabilitySet GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the AvailabilitySets resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String availabilitySetName, Context context);
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AvailabilitySetInner> beginCreateOrUpdate(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body);
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AvailabilitySetInner> beginCreateOrUpdate(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body, Context context);
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailabilitySetInner createOrUpdate(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body);
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailabilitySetInner createOrUpdate(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body, Context context);
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 availabilitySetName, Boolean force);
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 availabilitySetName, Boolean force, Context context);
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 availabilitySetName, Boolean force);
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 availabilitySetName);
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 availabilitySetName, Boolean force, Context context);
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AvailabilitySetInner> beginUpdate(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body);
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AvailabilitySetInner> beginUpdate(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body, Context context);
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailabilitySetInner update(String resourceGroupName, String availabilitySetName, ResourcePatch body);
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailabilitySetInner update(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body, Context context);
+
+ /**
+ * List of AvailabilitySets in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of AvailabilitySets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of AvailabilitySets in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of AvailabilitySets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * List of AvailabilitySets 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 list of AvailabilitySets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of AvailabilitySets 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 list of AvailabilitySets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/CloudsClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/CloudsClient.java
new file mode 100644
index 0000000000000..6f3236475f18a
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/CloudsClient.java
@@ -0,0 +1,285 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.fluent.models.CloudInner;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in CloudsClient. */
+public interface CloudsClient {
+ /**
+ * Implements Cloud GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CloudInner getByResourceGroup(String resourceGroupName, String cloudName);
+
+ /**
+ * Implements Cloud GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Clouds resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String cloudName, Context context);
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CloudInner> beginCreateOrUpdate(
+ String resourceGroupName, String cloudName, CloudInner body);
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CloudInner> beginCreateOrUpdate(
+ String resourceGroupName, String cloudName, CloudInner body, Context context);
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CloudInner createOrUpdate(String resourceGroupName, String cloudName, CloudInner body);
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CloudInner createOrUpdate(String resourceGroupName, String cloudName, CloudInner body, Context context);
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 cloudName, Boolean force);
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 cloudName, Boolean force, Context context);
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 cloudName, Boolean force);
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 cloudName);
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 cloudName, Boolean force, Context context);
+
+ /**
+ * Updates the Clouds resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Clouds patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CloudInner> beginUpdate(
+ String resourceGroupName, String cloudName, ResourcePatch body);
+
+ /**
+ * Updates the Clouds resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Clouds patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CloudInner> beginUpdate(
+ String resourceGroupName, String cloudName, ResourcePatch body, Context context);
+
+ /**
+ * Updates the Clouds resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Clouds patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CloudInner update(String resourceGroupName, String cloudName, ResourcePatch body);
+
+ /**
+ * Updates the Clouds resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Clouds patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CloudInner update(String resourceGroupName, String cloudName, ResourcePatch body, Context context);
+
+ /**
+ * List of Clouds in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clouds as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of Clouds in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clouds as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * List of Clouds 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 list of Clouds as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of Clouds 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 list of Clouds as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/InventoryItemsClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/InventoryItemsClient.java
new file mode 100644
index 0000000000000..cb386bca2ecc2
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/InventoryItemsClient.java
@@ -0,0 +1,136 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.scvmm.fluent.models.InventoryItemInner;
+
+/** An instance of this class provides access to all the operations defined in InventoryItemsClient. */
+public interface InventoryItemsClient {
+ /**
+ * Create Or Update InventoryItem.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 inventory item.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ InventoryItemInner create(String resourceGroupName, String vmmServerName, String inventoryItemName);
+
+ /**
+ * Create Or Update InventoryItem.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 inventory item along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName,
+ String vmmServerName,
+ String inventoryItemName,
+ InventoryItemInner body,
+ Context context);
+
+ /**
+ * Shows an inventory item.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 inventory item.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ InventoryItemInner get(String resourceGroupName, String vmmServerName, String inventoryItemName);
+
+ /**
+ * Shows an inventory item.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 inventory item along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String vmmServerName, String inventoryItemName, Context context);
+
+ /**
+ * Deletes an inventoryItem.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vmmServerName, String inventoryItemName);
+
+ /**
+ * Deletes an inventoryItem.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String vmmServerName, String inventoryItemName, Context context);
+
+ /**
+ * Returns the list of inventoryItems in the given VMMServer.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of InventoryItems as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVmmServer(String resourceGroupName, String vmmServerName);
+
+ /**
+ * Returns the list of inventoryItems in the given VMMServer.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of InventoryItems as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVmmServer(String resourceGroupName, String vmmServerName, Context context);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/OperationsClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..36f33fb8ffe24
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.fluent.models.ResourceProviderOperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Returns list of all operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the request to list operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Returns list of all operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the request to list operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/ScvmmClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/ScvmmClient.java
new file mode 100644
index 0000000000000..7d130a42a24bc
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/ScvmmClient.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for ScvmmClient class. */
+public interface ScvmmClient {
+ /**
+ * Gets The Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000).
+ *
+ * @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 VmmServersClient object to access its operations.
+ *
+ * @return the VmmServersClient object.
+ */
+ VmmServersClient getVmmServers();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the CloudsClient object to access its operations.
+ *
+ * @return the CloudsClient object.
+ */
+ CloudsClient getClouds();
+
+ /**
+ * Gets the VirtualNetworksClient object to access its operations.
+ *
+ * @return the VirtualNetworksClient object.
+ */
+ VirtualNetworksClient getVirtualNetworks();
+
+ /**
+ * Gets the VirtualMachinesClient object to access its operations.
+ *
+ * @return the VirtualMachinesClient object.
+ */
+ VirtualMachinesClient getVirtualMachines();
+
+ /**
+ * Gets the VirtualMachineTemplatesClient object to access its operations.
+ *
+ * @return the VirtualMachineTemplatesClient object.
+ */
+ VirtualMachineTemplatesClient getVirtualMachineTemplates();
+
+ /**
+ * Gets the AvailabilitySetsClient object to access its operations.
+ *
+ * @return the AvailabilitySetsClient object.
+ */
+ AvailabilitySetsClient getAvailabilitySets();
+
+ /**
+ * Gets the InventoryItemsClient object to access its operations.
+ *
+ * @return the InventoryItemsClient object.
+ */
+ InventoryItemsClient getInventoryItems();
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualMachineTemplatesClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualMachineTemplatesClient.java
new file mode 100644
index 0000000000000..4cb11297666b4
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualMachineTemplatesClient.java
@@ -0,0 +1,290 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.fluent.models.VirtualMachineTemplateInner;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in VirtualMachineTemplatesClient. */
+public interface VirtualMachineTemplatesClient {
+ /**
+ * Implements VirtualMachineTemplate GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner getByResourceGroup(String resourceGroupName, String virtualMachineTemplateName);
+
+ /**
+ * Implements VirtualMachineTemplate GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachineTemplates resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String virtualMachineTemplateName, Context context);
+
+ /**
+ * Onboards the ScVmm VM Template as an Azure VM Template resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineTemplateInner> beginCreateOrUpdate(
+ String resourceGroupName, String virtualMachineTemplateName, VirtualMachineTemplateInner body);
+
+ /**
+ * Onboards the ScVmm VM Template as an Azure VM Template resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineTemplateInner> beginCreateOrUpdate(
+ String resourceGroupName, String virtualMachineTemplateName, VirtualMachineTemplateInner body, Context context);
+
+ /**
+ * Onboards the ScVmm VM Template as an Azure VM Template resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner createOrUpdate(
+ String resourceGroupName, String virtualMachineTemplateName, VirtualMachineTemplateInner body);
+
+ /**
+ * Onboards the ScVmm VM Template as an Azure VM Template resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner createOrUpdate(
+ String resourceGroupName, String virtualMachineTemplateName, VirtualMachineTemplateInner body, Context context);
+
+ /**
+ * Deregisters the ScVmm VM Template from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtualMachineTemplateName, Boolean force);
+
+ /**
+ * Deregisters the ScVmm VM Template from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtualMachineTemplateName, Boolean force, Context context);
+
+ /**
+ * Deregisters the ScVmm VM Template from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualMachineTemplateName, Boolean force);
+
+ /**
+ * Deregisters the ScVmm VM Template from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualMachineTemplateName);
+
+ /**
+ * Deregisters the ScVmm VM Template from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualMachineTemplateName, Boolean force, Context context);
+
+ /**
+ * Updates the VirtualMachineTemplate resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param body VirtualMachineTemplates patch details.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineTemplateInner> beginUpdate(
+ String resourceGroupName, String virtualMachineTemplateName, ResourcePatch body);
+
+ /**
+ * Updates the VirtualMachineTemplate resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param body VirtualMachineTemplates patch details.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineTemplateInner> beginUpdate(
+ String resourceGroupName, String virtualMachineTemplateName, ResourcePatch body, Context context);
+
+ /**
+ * Updates the VirtualMachineTemplate resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param body VirtualMachineTemplates patch details.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner update(String resourceGroupName, String virtualMachineTemplateName, ResourcePatch body);
+
+ /**
+ * Updates the VirtualMachineTemplate resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineTemplateName Name of the VirtualMachineTemplate.
+ * @param body VirtualMachineTemplates patch details.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachineTemplates resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner update(
+ String resourceGroupName, String virtualMachineTemplateName, ResourcePatch body, Context context);
+
+ /**
+ * List of VirtualMachineTemplates in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachineTemplates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of VirtualMachineTemplates in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachineTemplates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * List of VirtualMachineTemplates 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 list of VirtualMachineTemplates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of VirtualMachineTemplates 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 list of VirtualMachineTemplates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualMachinesClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualMachinesClient.java
new file mode 100644
index 0000000000000..ea76ff19ba7d8
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualMachinesClient.java
@@ -0,0 +1,685 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.fluent.models.VirtualMachineInner;
+import com.azure.resourcemanager.scvmm.models.StopVirtualMachineOptions;
+import com.azure.resourcemanager.scvmm.models.VirtualMachineCreateCheckpoint;
+import com.azure.resourcemanager.scvmm.models.VirtualMachineDeleteCheckpoint;
+import com.azure.resourcemanager.scvmm.models.VirtualMachineRestoreCheckpoint;
+import com.azure.resourcemanager.scvmm.models.VirtualMachineUpdate;
+
+/** An instance of this class provides access to all the operations defined in VirtualMachinesClient. */
+public interface VirtualMachinesClient {
+ /**
+ * Implements VirtualMachine GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner getByResourceGroup(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Implements VirtualMachine GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachines resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * Creates Or Updates virtual machines deployed on scvmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInner> beginCreateOrUpdate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineInner body);
+
+ /**
+ * Creates Or Updates virtual machines deployed on scvmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInner> beginCreateOrUpdate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineInner body, Context context);
+
+ /**
+ * Creates Or Updates virtual machines deployed on scvmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner createOrUpdate(String resourceGroupName, String virtualMachineName, VirtualMachineInner body);
+
+ /**
+ * Creates Or Updates virtual machines deployed on scvmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner createOrUpdate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineInner body, Context context);
+
+ /**
+ * Deletes a VirtualMachine deployed on ScVmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param retain Whether to just disable the VM from azure and retain the VM in the VMM.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtualMachineName, Boolean retain, Boolean force);
+
+ /**
+ * Deletes a VirtualMachine deployed on ScVmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param retain Whether to just disable the VM from azure and retain the VM in the VMM.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtualMachineName, Boolean retain, Boolean force, Context context);
+
+ /**
+ * Deletes a VirtualMachine deployed on ScVmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param retain Whether to just disable the VM from azure and retain the VM in the VMM.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualMachineName, Boolean retain, Boolean force);
+
+ /**
+ * Deletes a VirtualMachine deployed on ScVmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualMachineName);
+
+ /**
+ * Deletes a VirtualMachine deployed on ScVmm fabric.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param retain Whether to just disable the VM from azure and retain the VM in the VMM.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualMachineName, Boolean retain, Boolean force, Context context);
+
+ /**
+ * Updates the VirtualMachines resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body VirtualMachines patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInner> beginUpdate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineUpdate body);
+
+ /**
+ * Updates the VirtualMachines resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body VirtualMachines patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInner> beginUpdate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineUpdate body, Context context);
+
+ /**
+ * Updates the VirtualMachines resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body VirtualMachines patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner update(String resourceGroupName, String virtualMachineName, VirtualMachineUpdate body);
+
+ /**
+ * Updates the VirtualMachines resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body VirtualMachines patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualMachines resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner update(
+ String resourceGroupName, String virtualMachineName, VirtualMachineUpdate body, Context context);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine stop action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStop(
+ String resourceGroupName, String virtualMachineName, StopVirtualMachineOptions body);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine stop action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStop(
+ String resourceGroupName, String virtualMachineName, StopVirtualMachineOptions body, Context context);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine stop action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceGroupName, String virtualMachineName, StopVirtualMachineOptions body);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine stop action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceGroupName, String virtualMachineName, StopVirtualMachineOptions body, Context context);
+
+ /**
+ * Start virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStart(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Start virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStart(String resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * Start virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Start virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * Restart virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginRestart(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Restart virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginRestart(
+ String resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * Restart virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 restart(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Restart virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 restart(String resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * Creates a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine create checkpoint action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginCreateCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineCreateCheckpoint body);
+
+ /**
+ * Creates a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine create checkpoint action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginCreateCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineCreateCheckpoint body, Context context);
+
+ /**
+ * Creates a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine create checkpoint action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 createCheckpoint(String resourceGroupName, String virtualMachineName, VirtualMachineCreateCheckpoint body);
+
+ /**
+ * Creates a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 createCheckpoint(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Creates a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine create checkpoint action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 createCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineCreateCheckpoint body, Context context);
+
+ /**
+ * Deletes a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine delete checkpoint action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginDeleteCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineDeleteCheckpoint body);
+
+ /**
+ * Deletes a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine delete checkpoint action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginDeleteCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineDeleteCheckpoint body, Context context);
+
+ /**
+ * Deletes a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine delete checkpoint action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 deleteCheckpoint(String resourceGroupName, String virtualMachineName, VirtualMachineDeleteCheckpoint body);
+
+ /**
+ * Deletes a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 deleteCheckpoint(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Deletes a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine delete checkpoint action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 deleteCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineDeleteCheckpoint body, Context context);
+
+ /**
+ * Restores to a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine restore checkpoint action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginRestoreCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineRestoreCheckpoint body);
+
+ /**
+ * Restores to a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine restore checkpoint action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginRestoreCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineRestoreCheckpoint body, Context context);
+
+ /**
+ * Restores to a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine restore checkpoint action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 restoreCheckpoint(String resourceGroupName, String virtualMachineName, VirtualMachineRestoreCheckpoint body);
+
+ /**
+ * Restores to a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 restoreCheckpoint(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Restores to a checkpoint in virtual machine.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualMachineName Name of the VirtualMachine.
+ * @param body Virtualmachine restore checkpoint action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 restoreCheckpoint(
+ String resourceGroupName, String virtualMachineName, VirtualMachineRestoreCheckpoint body, Context context);
+
+ /**
+ * List of VirtualMachines in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachines as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of VirtualMachines in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachines as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * List of VirtualMachines 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 list of VirtualMachines as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of VirtualMachines 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 list of VirtualMachines as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualNetworksClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualNetworksClient.java
new file mode 100644
index 0000000000000..ac674ac85490f
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VirtualNetworksClient.java
@@ -0,0 +1,288 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.fluent.models.VirtualNetworkInner;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in VirtualNetworksClient. */
+public interface VirtualNetworksClient {
+ /**
+ * Implements VirtualNetwork GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner getByResourceGroup(String resourceGroupName, String virtualNetworkName);
+
+ /**
+ * Implements VirtualNetwork GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualNetworks resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String virtualNetworkName, Context context);
+
+ /**
+ * Onboards the ScVmm virtual network as an Azure virtual network resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualNetworkInner> beginCreateOrUpdate(
+ String resourceGroupName, String virtualNetworkName, VirtualNetworkInner body);
+
+ /**
+ * Onboards the ScVmm virtual network as an Azure virtual network resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualNetworkInner> beginCreateOrUpdate(
+ String resourceGroupName, String virtualNetworkName, VirtualNetworkInner body, Context context);
+
+ /**
+ * Onboards the ScVmm virtual network as an Azure virtual network resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner createOrUpdate(String resourceGroupName, String virtualNetworkName, VirtualNetworkInner body);
+
+ /**
+ * Onboards the ScVmm virtual network as an Azure virtual network resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner createOrUpdate(
+ String resourceGroupName, String virtualNetworkName, VirtualNetworkInner body, Context context);
+
+ /**
+ * Deregisters the ScVmm virtual network from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtualNetworkName, Boolean force);
+
+ /**
+ * Deregisters the ScVmm virtual network from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtualNetworkName, Boolean force, Context context);
+
+ /**
+ * Deregisters the ScVmm virtual network from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualNetworkName, Boolean force);
+
+ /**
+ * Deregisters the ScVmm virtual network from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualNetworkName);
+
+ /**
+ * Deregisters the ScVmm virtual network from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualNetworkName, Boolean force, Context context);
+
+ /**
+ * Updates the VirtualNetworks resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param body VirtualNetworks patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualNetworkInner> beginUpdate(
+ String resourceGroupName, String virtualNetworkName, ResourcePatch body);
+
+ /**
+ * Updates the VirtualNetworks resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param body VirtualNetworks patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualNetworkInner> beginUpdate(
+ String resourceGroupName, String virtualNetworkName, ResourcePatch body, Context context);
+
+ /**
+ * Updates the VirtualNetworks resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param body VirtualNetworks patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner update(String resourceGroupName, String virtualNetworkName, ResourcePatch body);
+
+ /**
+ * Updates the VirtualNetworks resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param virtualNetworkName Name of the VirtualNetwork.
+ * @param body VirtualNetworks patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VirtualNetworks resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner update(
+ String resourceGroupName, String virtualNetworkName, ResourcePatch body, Context context);
+
+ /**
+ * List of VirtualNetworks in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualNetworks as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of VirtualNetworks in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualNetworks as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * List of VirtualNetworks 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 list of VirtualNetworks as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of VirtualNetworks 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 list of VirtualNetworks as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VmmServersClient.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VmmServersClient.java
new file mode 100644
index 0000000000000..fa50ed9e81f21
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/VmmServersClient.java
@@ -0,0 +1,286 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.fluent.models.VmmServerInner;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in VmmServersClient. */
+public interface VmmServersClient {
+ /**
+ * Implements VMMServer GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VmmServerInner getByResourceGroup(String resourceGroupName, String vmmServerName);
+
+ /**
+ * Implements VMMServer GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VmmServers resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String vmmServerName, Context context);
+
+ /**
+ * Onboards the SCVMM fabric as an Azure VmmServer resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VmmServerInner> beginCreateOrUpdate(
+ String resourceGroupName, String vmmServerName, VmmServerInner body);
+
+ /**
+ * Onboards the SCVMM fabric as an Azure VmmServer resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VmmServerInner> beginCreateOrUpdate(
+ String resourceGroupName, String vmmServerName, VmmServerInner body, Context context);
+
+ /**
+ * Onboards the SCVMM fabric as an Azure VmmServer resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VmmServerInner createOrUpdate(String resourceGroupName, String vmmServerName, VmmServerInner body);
+
+ /**
+ * Onboards the SCVMM fabric as an Azure VmmServer resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VmmServerInner createOrUpdate(String resourceGroupName, String vmmServerName, VmmServerInner body, Context context);
+
+ /**
+ * Deboards the SCVMM fabric from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 vmmServerName, Boolean force);
+
+ /**
+ * Deboards the SCVMM fabric from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 vmmServerName, Boolean force, Context context);
+
+ /**
+ * Deboards the SCVMM fabric from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vmmServerName, Boolean force);
+
+ /**
+ * Deboards the SCVMM fabric from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vmmServerName);
+
+ /**
+ * Deboards the SCVMM fabric from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vmmServerName, Boolean force, Context context);
+
+ /**
+ * Updates the VmmServers resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param body VmmServers patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VmmServerInner> beginUpdate(
+ String resourceGroupName, String vmmServerName, ResourcePatch body);
+
+ /**
+ * Updates the VmmServers resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param body VmmServers patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VmmServerInner> beginUpdate(
+ String resourceGroupName, String vmmServerName, ResourcePatch body, Context context);
+
+ /**
+ * Updates the VmmServers resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param body VmmServers patch payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VmmServerInner update(String resourceGroupName, String vmmServerName, ResourcePatch body);
+
+ /**
+ * Updates the VmmServers resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param vmmServerName Name of the VMMServer.
+ * @param body VmmServers patch payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the VmmServers resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VmmServerInner update(String resourceGroupName, String vmmServerName, ResourcePatch body, Context context);
+
+ /**
+ * List of VmmServers in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VmmServers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of VmmServers in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VmmServers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * List of VmmServers 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 list of VmmServers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of VmmServers 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 list of VmmServers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/AvailabilitySetInner.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/AvailabilitySetInner.java
new file mode 100644
index 0000000000000..ff4f7f540c2ac
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/AvailabilitySetInner.java
@@ -0,0 +1,155 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.scvmm.models.ExtendedLocation;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The AvailabilitySets resource definition. */
+@Fluent
+public final class AvailabilitySetInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties")
+ private AvailabilitySetProperties innerProperties;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AvailabilitySetProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the extendedLocation property: The extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the AvailabilitySetInner object itself.
+ */
+ public AvailabilitySetInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public AvailabilitySetInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public AvailabilitySetInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the availabilitySetName property: Name of the availability set.
+ *
+ * @return the availabilitySetName value.
+ */
+ public String availabilitySetName() {
+ return this.innerProperties() == null ? null : this.innerProperties().availabilitySetName();
+ }
+
+ /**
+ * Set the availabilitySetName property: Name of the availability set.
+ *
+ * @param availabilitySetName the availabilitySetName value to set.
+ * @return the AvailabilitySetInner object itself.
+ */
+ public AvailabilitySetInner withAvailabilitySetName(String availabilitySetName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailabilitySetProperties();
+ }
+ this.innerProperties().withAvailabilitySetName(availabilitySetName);
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmmServerId();
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the AvailabilitySetInner object itself.
+ */
+ public AvailabilitySetInner withVmmServerId(String vmmServerId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailabilitySetProperties();
+ }
+ this.innerProperties().withVmmServerId(vmmServerId);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/AvailabilitySetProperties.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/AvailabilitySetProperties.java
new file mode 100644
index 0000000000000..16bb3669ea231
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/AvailabilitySetProperties.java
@@ -0,0 +1,87 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the resource properties. */
+@Fluent
+public final class AvailabilitySetProperties {
+ /*
+ * Name of the availability set.
+ */
+ @JsonProperty(value = "availabilitySetName")
+ private String availabilitySetName;
+
+ /*
+ * ARM Id of the vmmServer resource in which this resource resides.
+ */
+ @JsonProperty(value = "vmmServerId")
+ private String vmmServerId;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the availabilitySetName property: Name of the availability set.
+ *
+ * @return the availabilitySetName value.
+ */
+ public String availabilitySetName() {
+ return this.availabilitySetName;
+ }
+
+ /**
+ * Set the availabilitySetName property: Name of the availability set.
+ *
+ * @param availabilitySetName the availabilitySetName value to set.
+ * @return the AvailabilitySetProperties object itself.
+ */
+ public AvailabilitySetProperties withAvailabilitySetName(String availabilitySetName) {
+ this.availabilitySetName = availabilitySetName;
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.vmmServerId;
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the AvailabilitySetProperties object itself.
+ */
+ public AvailabilitySetProperties withVmmServerId(String vmmServerId) {
+ this.vmmServerId = vmmServerId;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/CloudInner.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/CloudInner.java
new file mode 100644
index 0000000000000..ee1551b8e7c3c
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/CloudInner.java
@@ -0,0 +1,219 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.models.CloudCapacity;
+import com.azure.resourcemanager.scvmm.models.ExtendedLocation;
+import com.azure.resourcemanager.scvmm.models.StorageQoSPolicy;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** The Clouds resource definition. */
+@Fluent
+public final class CloudInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private CloudProperties innerProperties = new CloudProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The extended location.
+ */
+ @JsonProperty(value = "extendedLocation", required = true)
+ private ExtendedLocation extendedLocation;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private CloudProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the extendedLocation property: The extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the CloudInner object itself.
+ */
+ public CloudInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public CloudInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public CloudInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the CloudInner object itself.
+ */
+ public CloudInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CloudProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of the cloud.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Set the uuid property: Unique ID of the cloud.
+ *
+ * @param uuid the uuid value to set.
+ * @return the CloudInner object itself.
+ */
+ public CloudInner withUuid(String uuid) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CloudProperties();
+ }
+ this.innerProperties().withUuid(uuid);
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmmServerId();
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the CloudInner object itself.
+ */
+ public CloudInner withVmmServerId(String vmmServerId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CloudProperties();
+ }
+ this.innerProperties().withVmmServerId(vmmServerId);
+ return this;
+ }
+
+ /**
+ * Get the cloudName property: Name of the cloud in VMMServer.
+ *
+ * @return the cloudName value.
+ */
+ public String cloudName() {
+ return this.innerProperties() == null ? null : this.innerProperties().cloudName();
+ }
+
+ /**
+ * Get the cloudCapacity property: Capacity of the cloud.
+ *
+ * @return the cloudCapacity value.
+ */
+ public CloudCapacity cloudCapacity() {
+ return this.innerProperties() == null ? null : this.innerProperties().cloudCapacity();
+ }
+
+ /**
+ * Get the storageQoSPolicies property: List of QoS policies available for the cloud.
+ *
+ * @return the storageQoSPolicies value.
+ */
+ public List storageQoSPolicies() {
+ return this.innerProperties() == null ? null : this.innerProperties().storageQoSPolicies();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property innerProperties in model CloudInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property extendedLocation in model CloudInner"));
+ } else {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(CloudInner.class);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/CloudProperties.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/CloudProperties.java
new file mode 100644
index 0000000000000..feed0e6a045ca
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/CloudProperties.java
@@ -0,0 +1,167 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.scvmm.models.CloudCapacity;
+import com.azure.resourcemanager.scvmm.models.StorageQoSPolicy;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class CloudProperties {
+ /*
+ * Gets or sets the inventory Item ID for the resource.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Unique ID of the cloud.
+ */
+ @JsonProperty(value = "uuid")
+ private String uuid;
+
+ /*
+ * ARM Id of the vmmServer resource in which this resource resides.
+ */
+ @JsonProperty(value = "vmmServerId")
+ private String vmmServerId;
+
+ /*
+ * Name of the cloud in VMMServer.
+ */
+ @JsonProperty(value = "cloudName", access = JsonProperty.Access.WRITE_ONLY)
+ private String cloudName;
+
+ /*
+ * Capacity of the cloud.
+ */
+ @JsonProperty(value = "cloudCapacity", access = JsonProperty.Access.WRITE_ONLY)
+ private CloudCapacity cloudCapacity;
+
+ /*
+ * List of QoS policies available for the cloud.
+ */
+ @JsonProperty(value = "storageQoSPolicies", access = JsonProperty.Access.WRITE_ONLY)
+ private List storageQoSPolicies;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the CloudProperties object itself.
+ */
+ public CloudProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of the cloud.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Set the uuid property: Unique ID of the cloud.
+ *
+ * @param uuid the uuid value to set.
+ * @return the CloudProperties object itself.
+ */
+ public CloudProperties withUuid(String uuid) {
+ this.uuid = uuid;
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.vmmServerId;
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the CloudProperties object itself.
+ */
+ public CloudProperties withVmmServerId(String vmmServerId) {
+ this.vmmServerId = vmmServerId;
+ return this;
+ }
+
+ /**
+ * Get the cloudName property: Name of the cloud in VMMServer.
+ *
+ * @return the cloudName value.
+ */
+ public String cloudName() {
+ return this.cloudName;
+ }
+
+ /**
+ * Get the cloudCapacity property: Capacity of the cloud.
+ *
+ * @return the cloudCapacity value.
+ */
+ public CloudCapacity cloudCapacity() {
+ return this.cloudCapacity;
+ }
+
+ /**
+ * Get the storageQoSPolicies property: List of QoS policies available for the cloud.
+ *
+ * @return the storageQoSPolicies value.
+ */
+ public List storageQoSPolicies() {
+ return this.storageQoSPolicies;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (cloudCapacity() != null) {
+ cloudCapacity().validate();
+ }
+ if (storageQoSPolicies() != null) {
+ storageQoSPolicies().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/InventoryItemInner.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/InventoryItemInner.java
new file mode 100644
index 0000000000000..b41488e2dd7d1
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/InventoryItemInner.java
@@ -0,0 +1,132 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the inventory item. */
+@Fluent
+public final class InventoryItemInner extends ProxyResource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private InventoryItemProperties innerProperties = new InventoryItemProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private InventoryItemProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the InventoryItemInner object itself.
+ */
+ public InventoryItemInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the managedResourceId property: Gets the tracked resource id corresponding to the inventory resource.
+ *
+ * @return the managedResourceId value.
+ */
+ public String managedResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().managedResourceId();
+ }
+
+ /**
+ * Get the uuid property: Gets the UUID (which is assigned by VMM) for the inventory item.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the inventoryItemName property: Gets the Managed Object name in VMM for the inventory item.
+ *
+ * @return the inventoryItemName value.
+ */
+ public String inventoryItemName() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemName();
+ }
+
+ /**
+ * Get the provisioningState property: Gets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model InventoryItemInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(InventoryItemInner.class);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/InventoryItemProperties.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/InventoryItemProperties.java
new file mode 100644
index 0000000000000..7a5297045502f
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/InventoryItemProperties.java
@@ -0,0 +1,99 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.scvmm.models.CloudInventoryItem;
+import com.azure.resourcemanager.scvmm.models.VirtualMachineInventoryItem;
+import com.azure.resourcemanager.scvmm.models.VirtualMachineTemplateInventoryItem;
+import com.azure.resourcemanager.scvmm.models.VirtualNetworkInventoryItem;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** Defines the resource properties. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "inventoryType",
+ defaultImpl = InventoryItemProperties.class)
+@JsonTypeName("InventoryItemProperties")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Cloud", value = CloudInventoryItem.class),
+ @JsonSubTypes.Type(name = "VirtualNetwork", value = VirtualNetworkInventoryItem.class),
+ @JsonSubTypes.Type(name = "VirtualMachineTemplate", value = VirtualMachineTemplateInventoryItem.class),
+ @JsonSubTypes.Type(name = "VirtualMachine", value = VirtualMachineInventoryItem.class)
+})
+@Immutable
+public class InventoryItemProperties {
+ /*
+ * Gets the tracked resource id corresponding to the inventory resource.
+ */
+ @JsonProperty(value = "managedResourceId", access = JsonProperty.Access.WRITE_ONLY)
+ private String managedResourceId;
+
+ /*
+ * Gets the UUID (which is assigned by VMM) for the inventory item.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Gets the Managed Object name in VMM for the inventory item.
+ */
+ @JsonProperty(value = "inventoryItemName", access = JsonProperty.Access.WRITE_ONLY)
+ private String inventoryItemName;
+
+ /*
+ * Gets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the managedResourceId property: Gets the tracked resource id corresponding to the inventory resource.
+ *
+ * @return the managedResourceId value.
+ */
+ public String managedResourceId() {
+ return this.managedResourceId;
+ }
+
+ /**
+ * Get the uuid property: Gets the UUID (which is assigned by VMM) for the inventory item.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the inventoryItemName property: Gets the Managed Object name in VMM for the inventory item.
+ *
+ * @return the inventoryItemName value.
+ */
+ public String inventoryItemName() {
+ return this.inventoryItemName;
+ }
+
+ /**
+ * Get the provisioningState property: Gets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/ResourceProviderOperationInner.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/ResourceProviderOperationInner.java
new file mode 100644
index 0000000000000..079a06ef5c788
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/ResourceProviderOperationInner.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.scvmm.models.ResourceProviderOperationDisplay;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Results of the request to list operations. */
+@Fluent
+public final class ResourceProviderOperationInner {
+ /*
+ * Indicates whether the operation applies to data-plane.
+ */
+ @JsonProperty(value = "isDataAction")
+ private String isDataAction;
+
+ /*
+ * Operation name, in format of {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Display metadata associated with the operation.
+ */
+ @JsonProperty(value = "display")
+ private ResourceProviderOperationDisplay display;
+
+ /**
+ * Get the isDataAction property: Indicates whether the operation applies to data-plane.
+ *
+ * @return the isDataAction value.
+ */
+ public String isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Set the isDataAction property: Indicates whether the operation applies to data-plane.
+ *
+ * @param isDataAction the isDataAction value to set.
+ * @return the ResourceProviderOperationInner object itself.
+ */
+ public ResourceProviderOperationInner withIsDataAction(String isDataAction) {
+ this.isDataAction = isDataAction;
+ return this;
+ }
+
+ /**
+ * Get the name property: Operation name, in format of {provider}/{resource}/{operation}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Operation name, in format of {provider}/{resource}/{operation}.
+ *
+ * @param name the name value to set.
+ * @return the ResourceProviderOperationInner object itself.
+ */
+ public ResourceProviderOperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display property: Display metadata associated with the operation.
+ *
+ * @return the display value.
+ */
+ public ResourceProviderOperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Display metadata associated with the operation.
+ *
+ * @param display the display value to set.
+ * @return the ResourceProviderOperationInner object itself.
+ */
+ public ResourceProviderOperationInner withDisplay(ResourceProviderOperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineInner.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineInner.java
new file mode 100644
index 0000000000000..1ad3a83421bde
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineInner.java
@@ -0,0 +1,460 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.models.AvailabilitySetListItem;
+import com.azure.resourcemanager.scvmm.models.Checkpoint;
+import com.azure.resourcemanager.scvmm.models.ExtendedLocation;
+import com.azure.resourcemanager.scvmm.models.HardwareProfile;
+import com.azure.resourcemanager.scvmm.models.NetworkProfile;
+import com.azure.resourcemanager.scvmm.models.OsProfile;
+import com.azure.resourcemanager.scvmm.models.StorageProfile;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** The VirtualMachines resource definition. */
+@Fluent
+public final class VirtualMachineInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private VirtualMachineProperties innerProperties = new VirtualMachineProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The extended location.
+ */
+ @JsonProperty(value = "extendedLocation", required = true)
+ private ExtendedLocation extendedLocation;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private VirtualMachineProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the extendedLocation property: The extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualMachineInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualMachineInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmmServerId();
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withVmmServerId(String vmmServerId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withVmmServerId(vmmServerId);
+ return this;
+ }
+
+ /**
+ * Get the cloudId property: ARM Id of the cloud resource to use for deploying the vm.
+ *
+ * @return the cloudId value.
+ */
+ public String cloudId() {
+ return this.innerProperties() == null ? null : this.innerProperties().cloudId();
+ }
+
+ /**
+ * Set the cloudId property: ARM Id of the cloud resource to use for deploying the vm.
+ *
+ * @param cloudId the cloudId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withCloudId(String cloudId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withCloudId(cloudId);
+ return this;
+ }
+
+ /**
+ * Get the templateId property: ARM Id of the template resource to use for deploying the vm.
+ *
+ * @return the templateId value.
+ */
+ public String templateId() {
+ return this.innerProperties() == null ? null : this.innerProperties().templateId();
+ }
+
+ /**
+ * Set the templateId property: ARM Id of the template resource to use for deploying the vm.
+ *
+ * @param templateId the templateId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withTemplateId(String templateId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withTemplateId(templateId);
+ return this;
+ }
+
+ /**
+ * Get the checkpointType property: Type of checkpoint supported for the vm.
+ *
+ * @return the checkpointType value.
+ */
+ public String checkpointType() {
+ return this.innerProperties() == null ? null : this.innerProperties().checkpointType();
+ }
+
+ /**
+ * Set the checkpointType property: Type of checkpoint supported for the vm.
+ *
+ * @param checkpointType the checkpointType value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withCheckpointType(String checkpointType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withCheckpointType(checkpointType);
+ return this;
+ }
+
+ /**
+ * Get the checkpoints property: Checkpoints in the vm.
+ *
+ * @return the checkpoints value.
+ */
+ public List checkpoints() {
+ return this.innerProperties() == null ? null : this.innerProperties().checkpoints();
+ }
+
+ /**
+ * Set the checkpoints property: Checkpoints in the vm.
+ *
+ * @param checkpoints the checkpoints value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withCheckpoints(List checkpoints) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withCheckpoints(checkpoints);
+ return this;
+ }
+
+ /**
+ * Get the availabilitySets property: Availability Sets in vm.
+ *
+ * @return the availabilitySets value.
+ */
+ public List availabilitySets() {
+ return this.innerProperties() == null ? null : this.innerProperties().availabilitySets();
+ }
+
+ /**
+ * Set the availabilitySets property: Availability Sets in vm.
+ *
+ * @param availabilitySets the availabilitySets value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withAvailabilitySets(List availabilitySets) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withAvailabilitySets(availabilitySets);
+ return this;
+ }
+
+ /**
+ * Get the osProfile property: OS properties.
+ *
+ * @return the osProfile value.
+ */
+ public OsProfile osProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().osProfile();
+ }
+
+ /**
+ * Set the osProfile property: OS properties.
+ *
+ * @param osProfile the osProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withOsProfile(OsProfile osProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withOsProfile(osProfile);
+ return this;
+ }
+
+ /**
+ * Get the hardwareProfile property: Hardware properties.
+ *
+ * @return the hardwareProfile value.
+ */
+ public HardwareProfile hardwareProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().hardwareProfile();
+ }
+
+ /**
+ * Set the hardwareProfile property: Hardware properties.
+ *
+ * @param hardwareProfile the hardwareProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withHardwareProfile(HardwareProfile hardwareProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withHardwareProfile(hardwareProfile);
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: Network properties.
+ *
+ * @return the networkProfile value.
+ */
+ public NetworkProfile networkProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkProfile();
+ }
+
+ /**
+ * Set the networkProfile property: Network properties.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withNetworkProfile(NetworkProfile networkProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withNetworkProfile(networkProfile);
+ return this;
+ }
+
+ /**
+ * Get the storageProfile property: Storage properties.
+ *
+ * @return the storageProfile value.
+ */
+ public StorageProfile storageProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().storageProfile();
+ }
+
+ /**
+ * Set the storageProfile property: Storage properties.
+ *
+ * @param storageProfile the storageProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withStorageProfile(StorageProfile storageProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withStorageProfile(storageProfile);
+ return this;
+ }
+
+ /**
+ * Get the vmName property: VMName is the name of VM on the SCVMM server.
+ *
+ * @return the vmName value.
+ */
+ public String vmName() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmName();
+ }
+
+ /**
+ * Set the vmName property: VMName is the name of VM on the SCVMM server.
+ *
+ * @param vmName the vmName value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withVmName(String vmName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withVmName(vmName);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of the virtual machine.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Set the uuid property: Unique ID of the virtual machine.
+ *
+ * @param uuid the uuid value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withUuid(String uuid) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withUuid(uuid);
+ return this;
+ }
+
+ /**
+ * Get the generation property: Gets or sets the generation for the vm.
+ *
+ * @return the generation value.
+ */
+ public Integer generation() {
+ return this.innerProperties() == null ? null : this.innerProperties().generation();
+ }
+
+ /**
+ * Set the generation property: Gets or sets the generation for the vm.
+ *
+ * @param generation the generation value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withGeneration(Integer generation) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withGeneration(generation);
+ return this;
+ }
+
+ /**
+ * Get the powerState property: Gets the power state of the virtual machine.
+ *
+ * @return the powerState value.
+ */
+ public String powerState() {
+ return this.innerProperties() == null ? null : this.innerProperties().powerState();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model VirtualMachineInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property extendedLocation in model VirtualMachineInner"));
+ } else {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VirtualMachineInner.class);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineProperties.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineProperties.java
new file mode 100644
index 0000000000000..842675b918287
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineProperties.java
@@ -0,0 +1,439 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.scvmm.models.AvailabilitySetListItem;
+import com.azure.resourcemanager.scvmm.models.Checkpoint;
+import com.azure.resourcemanager.scvmm.models.HardwareProfile;
+import com.azure.resourcemanager.scvmm.models.NetworkProfile;
+import com.azure.resourcemanager.scvmm.models.OsProfile;
+import com.azure.resourcemanager.scvmm.models.StorageProfile;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VirtualMachineProperties {
+ /*
+ * Gets or sets the inventory Item ID for the resource.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * ARM Id of the vmmServer resource in which this resource resides.
+ */
+ @JsonProperty(value = "vmmServerId")
+ private String vmmServerId;
+
+ /*
+ * ARM Id of the cloud resource to use for deploying the vm.
+ */
+ @JsonProperty(value = "cloudId")
+ private String cloudId;
+
+ /*
+ * ARM Id of the template resource to use for deploying the vm.
+ */
+ @JsonProperty(value = "templateId")
+ private String templateId;
+
+ /*
+ * Type of checkpoint supported for the vm.
+ */
+ @JsonProperty(value = "checkpointType")
+ private String checkpointType;
+
+ /*
+ * Checkpoints in the vm.
+ */
+ @JsonProperty(value = "checkpoints")
+ private List checkpoints;
+
+ /*
+ * Availability Sets in vm.
+ */
+ @JsonProperty(value = "availabilitySets")
+ private List availabilitySets;
+
+ /*
+ * OS properties.
+ */
+ @JsonProperty(value = "osProfile")
+ private OsProfile osProfile;
+
+ /*
+ * Hardware properties.
+ */
+ @JsonProperty(value = "hardwareProfile")
+ private HardwareProfile hardwareProfile;
+
+ /*
+ * Network properties.
+ */
+ @JsonProperty(value = "networkProfile")
+ private NetworkProfile networkProfile;
+
+ /*
+ * Storage properties.
+ */
+ @JsonProperty(value = "storageProfile")
+ private StorageProfile storageProfile;
+
+ /*
+ * VMName is the name of VM on the SCVMM server.
+ */
+ @JsonProperty(value = "vmName")
+ private String vmName;
+
+ /*
+ * Unique ID of the virtual machine.
+ */
+ @JsonProperty(value = "uuid")
+ private String uuid;
+
+ /*
+ * Gets or sets the generation for the vm.
+ */
+ @JsonProperty(value = "generation")
+ private Integer generation;
+
+ /*
+ * Gets the power state of the virtual machine.
+ */
+ @JsonProperty(value = "powerState", access = JsonProperty.Access.WRITE_ONLY)
+ private String powerState;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.vmmServerId;
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withVmmServerId(String vmmServerId) {
+ this.vmmServerId = vmmServerId;
+ return this;
+ }
+
+ /**
+ * Get the cloudId property: ARM Id of the cloud resource to use for deploying the vm.
+ *
+ * @return the cloudId value.
+ */
+ public String cloudId() {
+ return this.cloudId;
+ }
+
+ /**
+ * Set the cloudId property: ARM Id of the cloud resource to use for deploying the vm.
+ *
+ * @param cloudId the cloudId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withCloudId(String cloudId) {
+ this.cloudId = cloudId;
+ return this;
+ }
+
+ /**
+ * Get the templateId property: ARM Id of the template resource to use for deploying the vm.
+ *
+ * @return the templateId value.
+ */
+ public String templateId() {
+ return this.templateId;
+ }
+
+ /**
+ * Set the templateId property: ARM Id of the template resource to use for deploying the vm.
+ *
+ * @param templateId the templateId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withTemplateId(String templateId) {
+ this.templateId = templateId;
+ return this;
+ }
+
+ /**
+ * Get the checkpointType property: Type of checkpoint supported for the vm.
+ *
+ * @return the checkpointType value.
+ */
+ public String checkpointType() {
+ return this.checkpointType;
+ }
+
+ /**
+ * Set the checkpointType property: Type of checkpoint supported for the vm.
+ *
+ * @param checkpointType the checkpointType value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withCheckpointType(String checkpointType) {
+ this.checkpointType = checkpointType;
+ return this;
+ }
+
+ /**
+ * Get the checkpoints property: Checkpoints in the vm.
+ *
+ * @return the checkpoints value.
+ */
+ public List checkpoints() {
+ return this.checkpoints;
+ }
+
+ /**
+ * Set the checkpoints property: Checkpoints in the vm.
+ *
+ * @param checkpoints the checkpoints value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withCheckpoints(List checkpoints) {
+ this.checkpoints = checkpoints;
+ return this;
+ }
+
+ /**
+ * Get the availabilitySets property: Availability Sets in vm.
+ *
+ * @return the availabilitySets value.
+ */
+ public List availabilitySets() {
+ return this.availabilitySets;
+ }
+
+ /**
+ * Set the availabilitySets property: Availability Sets in vm.
+ *
+ * @param availabilitySets the availabilitySets value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withAvailabilitySets(List availabilitySets) {
+ this.availabilitySets = availabilitySets;
+ return this;
+ }
+
+ /**
+ * Get the osProfile property: OS properties.
+ *
+ * @return the osProfile value.
+ */
+ public OsProfile osProfile() {
+ return this.osProfile;
+ }
+
+ /**
+ * Set the osProfile property: OS properties.
+ *
+ * @param osProfile the osProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withOsProfile(OsProfile osProfile) {
+ this.osProfile = osProfile;
+ return this;
+ }
+
+ /**
+ * Get the hardwareProfile property: Hardware properties.
+ *
+ * @return the hardwareProfile value.
+ */
+ public HardwareProfile hardwareProfile() {
+ return this.hardwareProfile;
+ }
+
+ /**
+ * Set the hardwareProfile property: Hardware properties.
+ *
+ * @param hardwareProfile the hardwareProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withHardwareProfile(HardwareProfile hardwareProfile) {
+ this.hardwareProfile = hardwareProfile;
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: Network properties.
+ *
+ * @return the networkProfile value.
+ */
+ public NetworkProfile networkProfile() {
+ return this.networkProfile;
+ }
+
+ /**
+ * Set the networkProfile property: Network properties.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withNetworkProfile(NetworkProfile networkProfile) {
+ this.networkProfile = networkProfile;
+ return this;
+ }
+
+ /**
+ * Get the storageProfile property: Storage properties.
+ *
+ * @return the storageProfile value.
+ */
+ public StorageProfile storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set the storageProfile property: Storage properties.
+ *
+ * @param storageProfile the storageProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withStorageProfile(StorageProfile storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+ /**
+ * Get the vmName property: VMName is the name of VM on the SCVMM server.
+ *
+ * @return the vmName value.
+ */
+ public String vmName() {
+ return this.vmName;
+ }
+
+ /**
+ * Set the vmName property: VMName is the name of VM on the SCVMM server.
+ *
+ * @param vmName the vmName value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withVmName(String vmName) {
+ this.vmName = vmName;
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of the virtual machine.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Set the uuid property: Unique ID of the virtual machine.
+ *
+ * @param uuid the uuid value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withUuid(String uuid) {
+ this.uuid = uuid;
+ return this;
+ }
+
+ /**
+ * Get the generation property: Gets or sets the generation for the vm.
+ *
+ * @return the generation value.
+ */
+ public Integer generation() {
+ return this.generation;
+ }
+
+ /**
+ * Set the generation property: Gets or sets the generation for the vm.
+ *
+ * @param generation the generation value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withGeneration(Integer generation) {
+ this.generation = generation;
+ return this;
+ }
+
+ /**
+ * Get the powerState property: Gets the power state of the virtual machine.
+ *
+ * @return the powerState value.
+ */
+ public String powerState() {
+ return this.powerState;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (checkpoints() != null) {
+ checkpoints().forEach(e -> e.validate());
+ }
+ if (availabilitySets() != null) {
+ availabilitySets().forEach(e -> e.validate());
+ }
+ if (osProfile() != null) {
+ osProfile().validate();
+ }
+ if (hardwareProfile() != null) {
+ hardwareProfile().validate();
+ }
+ if (networkProfile() != null) {
+ networkProfile().validate();
+ }
+ if (storageProfile() != null) {
+ storageProfile().validate();
+ }
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineTemplateInner.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineTemplateInner.java
new file mode 100644
index 0000000000000..780727522e47d
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineTemplateInner.java
@@ -0,0 +1,325 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.models.DynamicMemoryEnabled;
+import com.azure.resourcemanager.scvmm.models.ExtendedLocation;
+import com.azure.resourcemanager.scvmm.models.IsCustomizable;
+import com.azure.resourcemanager.scvmm.models.LimitCpuForMigration;
+import com.azure.resourcemanager.scvmm.models.NetworkInterfaces;
+import com.azure.resourcemanager.scvmm.models.OsType;
+import com.azure.resourcemanager.scvmm.models.VirtualDisk;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** The VirtualMachineTemplates resource definition. */
+@Fluent
+public final class VirtualMachineTemplateInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private VirtualMachineTemplateProperties innerProperties = new VirtualMachineTemplateProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The extended location.
+ */
+ @JsonProperty(value = "extendedLocation", required = true)
+ private ExtendedLocation extendedLocation;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private VirtualMachineTemplateProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the extendedLocation property: The extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualMachineTemplateInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualMachineTemplateInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineTemplateProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of the virtual machine template.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Set the uuid property: Unique ID of the virtual machine template.
+ *
+ * @param uuid the uuid value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withUuid(String uuid) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineTemplateProperties();
+ }
+ this.innerProperties().withUuid(uuid);
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmmServerId();
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withVmmServerId(String vmmServerId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineTemplateProperties();
+ }
+ this.innerProperties().withVmmServerId(vmmServerId);
+ return this;
+ }
+
+ /**
+ * Get the osType property: Gets or sets the type of the os.
+ *
+ * @return the osType value.
+ */
+ public OsType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * Get the osName property: Gets or sets os name.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.innerProperties() == null ? null : this.innerProperties().osName();
+ }
+
+ /**
+ * Get the computerName property: Gets or sets computer name.
+ *
+ * @return the computerName value.
+ */
+ public String computerName() {
+ return this.innerProperties() == null ? null : this.innerProperties().computerName();
+ }
+
+ /**
+ * Get the memoryMB property: MemoryMB is the desired size of a virtual machine's memory, in MB.
+ *
+ * @return the memoryMB value.
+ */
+ public Integer memoryMB() {
+ return this.innerProperties() == null ? null : this.innerProperties().memoryMB();
+ }
+
+ /**
+ * Get the cpuCount property: Gets or sets the desired number of vCPUs for the vm.
+ *
+ * @return the cpuCount value.
+ */
+ public Integer cpuCount() {
+ return this.innerProperties() == null ? null : this.innerProperties().cpuCount();
+ }
+
+ /**
+ * Get the limitCpuForMigration property: Gets or sets a value indicating whether to enable processor compatibility
+ * mode for live migration of VMs.
+ *
+ * @return the limitCpuForMigration value.
+ */
+ public LimitCpuForMigration limitCpuForMigration() {
+ return this.innerProperties() == null ? null : this.innerProperties().limitCpuForMigration();
+ }
+
+ /**
+ * Get the dynamicMemoryEnabled property: Gets or sets a value indicating whether to enable dynamic memory or not.
+ *
+ * @return the dynamicMemoryEnabled value.
+ */
+ public DynamicMemoryEnabled dynamicMemoryEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().dynamicMemoryEnabled();
+ }
+
+ /**
+ * Get the isCustomizable property: Gets or sets a value indicating whether the vm template is customizable or not.
+ *
+ * @return the isCustomizable value.
+ */
+ public IsCustomizable isCustomizable() {
+ return this.innerProperties() == null ? null : this.innerProperties().isCustomizable();
+ }
+
+ /**
+ * Get the dynamicMemoryMaxMB property: Gets or sets the max dynamic memory for the vm.
+ *
+ * @return the dynamicMemoryMaxMB value.
+ */
+ public Integer dynamicMemoryMaxMB() {
+ return this.innerProperties() == null ? null : this.innerProperties().dynamicMemoryMaxMB();
+ }
+
+ /**
+ * Get the dynamicMemoryMinMB property: Gets or sets the min dynamic memory for the vm.
+ *
+ * @return the dynamicMemoryMinMB value.
+ */
+ public Integer dynamicMemoryMinMB() {
+ return this.innerProperties() == null ? null : this.innerProperties().dynamicMemoryMinMB();
+ }
+
+ /**
+ * Get the isHighlyAvailable property: Gets highly available property.
+ *
+ * @return the isHighlyAvailable value.
+ */
+ public String isHighlyAvailable() {
+ return this.innerProperties() == null ? null : this.innerProperties().isHighlyAvailable();
+ }
+
+ /**
+ * Get the generation property: Gets or sets the generation for the vm.
+ *
+ * @return the generation value.
+ */
+ public Integer generation() {
+ return this.innerProperties() == null ? null : this.innerProperties().generation();
+ }
+
+ /**
+ * Get the networkInterfaces property: Gets or sets the network interfaces of the template.
+ *
+ * @return the networkInterfaces value.
+ */
+ public List networkInterfaces() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkInterfaces();
+ }
+
+ /**
+ * Get the disks property: Gets or sets the disks of the template.
+ *
+ * @return the disks value.
+ */
+ public List disks() {
+ return this.innerProperties() == null ? null : this.innerProperties().disks();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model VirtualMachineTemplateInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property extendedLocation in model VirtualMachineTemplateInner"));
+ } else {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VirtualMachineTemplateInner.class);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineTemplateProperties.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineTemplateProperties.java
new file mode 100644
index 0000000000000..017bbce09cfee
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualMachineTemplateProperties.java
@@ -0,0 +1,339 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.scvmm.models.DynamicMemoryEnabled;
+import com.azure.resourcemanager.scvmm.models.IsCustomizable;
+import com.azure.resourcemanager.scvmm.models.LimitCpuForMigration;
+import com.azure.resourcemanager.scvmm.models.NetworkInterfaces;
+import com.azure.resourcemanager.scvmm.models.OsType;
+import com.azure.resourcemanager.scvmm.models.VirtualDisk;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VirtualMachineTemplateProperties {
+ /*
+ * Gets or sets the inventory Item ID for the resource.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Unique ID of the virtual machine template.
+ */
+ @JsonProperty(value = "uuid")
+ private String uuid;
+
+ /*
+ * ARM Id of the vmmServer resource in which this resource resides.
+ */
+ @JsonProperty(value = "vmmServerId")
+ private String vmmServerId;
+
+ /*
+ * Gets or sets the type of the os.
+ */
+ @JsonProperty(value = "osType", access = JsonProperty.Access.WRITE_ONLY)
+ private OsType osType;
+
+ /*
+ * Gets or sets os name.
+ */
+ @JsonProperty(value = "osName", access = JsonProperty.Access.WRITE_ONLY)
+ private String osName;
+
+ /*
+ * Gets or sets computer name.
+ */
+ @JsonProperty(value = "computerName", access = JsonProperty.Access.WRITE_ONLY)
+ private String computerName;
+
+ /*
+ * MemoryMB is the desired size of a virtual machine's memory, in MB.
+ */
+ @JsonProperty(value = "memoryMB", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer memoryMB;
+
+ /*
+ * Gets or sets the desired number of vCPUs for the vm.
+ */
+ @JsonProperty(value = "cpuCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer cpuCount;
+
+ /*
+ * Gets or sets a value indicating whether to enable processor
+ * compatibility mode for live migration of VMs.
+ */
+ @JsonProperty(value = "limitCpuForMigration", access = JsonProperty.Access.WRITE_ONLY)
+ private LimitCpuForMigration limitCpuForMigration;
+
+ /*
+ * Gets or sets a value indicating whether to enable dynamic memory or not.
+ */
+ @JsonProperty(value = "dynamicMemoryEnabled", access = JsonProperty.Access.WRITE_ONLY)
+ private DynamicMemoryEnabled dynamicMemoryEnabled;
+
+ /*
+ * Gets or sets a value indicating whether the vm template is customizable
+ * or not.
+ */
+ @JsonProperty(value = "isCustomizable", access = JsonProperty.Access.WRITE_ONLY)
+ private IsCustomizable isCustomizable;
+
+ /*
+ * Gets or sets the max dynamic memory for the vm.
+ */
+ @JsonProperty(value = "dynamicMemoryMaxMB", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer dynamicMemoryMaxMB;
+
+ /*
+ * Gets or sets the min dynamic memory for the vm.
+ */
+ @JsonProperty(value = "dynamicMemoryMinMB", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer dynamicMemoryMinMB;
+
+ /*
+ * Gets highly available property.
+ */
+ @JsonProperty(value = "isHighlyAvailable", access = JsonProperty.Access.WRITE_ONLY)
+ private String isHighlyAvailable;
+
+ /*
+ * Gets or sets the generation for the vm.
+ */
+ @JsonProperty(value = "generation", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer generation;
+
+ /*
+ * Gets or sets the network interfaces of the template.
+ */
+ @JsonProperty(value = "networkInterfaces", access = JsonProperty.Access.WRITE_ONLY)
+ private List networkInterfaces;
+
+ /*
+ * Gets or sets the disks of the template.
+ */
+ @JsonProperty(value = "disks", access = JsonProperty.Access.WRITE_ONLY)
+ private List disks;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualMachineTemplateProperties object itself.
+ */
+ public VirtualMachineTemplateProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of the virtual machine template.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Set the uuid property: Unique ID of the virtual machine template.
+ *
+ * @param uuid the uuid value to set.
+ * @return the VirtualMachineTemplateProperties object itself.
+ */
+ public VirtualMachineTemplateProperties withUuid(String uuid) {
+ this.uuid = uuid;
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.vmmServerId;
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the VirtualMachineTemplateProperties object itself.
+ */
+ public VirtualMachineTemplateProperties withVmmServerId(String vmmServerId) {
+ this.vmmServerId = vmmServerId;
+ return this;
+ }
+
+ /**
+ * Get the osType property: Gets or sets the type of the os.
+ *
+ * @return the osType value.
+ */
+ public OsType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Get the osName property: Gets or sets os name.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.osName;
+ }
+
+ /**
+ * Get the computerName property: Gets or sets computer name.
+ *
+ * @return the computerName value.
+ */
+ public String computerName() {
+ return this.computerName;
+ }
+
+ /**
+ * Get the memoryMB property: MemoryMB is the desired size of a virtual machine's memory, in MB.
+ *
+ * @return the memoryMB value.
+ */
+ public Integer memoryMB() {
+ return this.memoryMB;
+ }
+
+ /**
+ * Get the cpuCount property: Gets or sets the desired number of vCPUs for the vm.
+ *
+ * @return the cpuCount value.
+ */
+ public Integer cpuCount() {
+ return this.cpuCount;
+ }
+
+ /**
+ * Get the limitCpuForMigration property: Gets or sets a value indicating whether to enable processor compatibility
+ * mode for live migration of VMs.
+ *
+ * @return the limitCpuForMigration value.
+ */
+ public LimitCpuForMigration limitCpuForMigration() {
+ return this.limitCpuForMigration;
+ }
+
+ /**
+ * Get the dynamicMemoryEnabled property: Gets or sets a value indicating whether to enable dynamic memory or not.
+ *
+ * @return the dynamicMemoryEnabled value.
+ */
+ public DynamicMemoryEnabled dynamicMemoryEnabled() {
+ return this.dynamicMemoryEnabled;
+ }
+
+ /**
+ * Get the isCustomizable property: Gets or sets a value indicating whether the vm template is customizable or not.
+ *
+ * @return the isCustomizable value.
+ */
+ public IsCustomizable isCustomizable() {
+ return this.isCustomizable;
+ }
+
+ /**
+ * Get the dynamicMemoryMaxMB property: Gets or sets the max dynamic memory for the vm.
+ *
+ * @return the dynamicMemoryMaxMB value.
+ */
+ public Integer dynamicMemoryMaxMB() {
+ return this.dynamicMemoryMaxMB;
+ }
+
+ /**
+ * Get the dynamicMemoryMinMB property: Gets or sets the min dynamic memory for the vm.
+ *
+ * @return the dynamicMemoryMinMB value.
+ */
+ public Integer dynamicMemoryMinMB() {
+ return this.dynamicMemoryMinMB;
+ }
+
+ /**
+ * Get the isHighlyAvailable property: Gets highly available property.
+ *
+ * @return the isHighlyAvailable value.
+ */
+ public String isHighlyAvailable() {
+ return this.isHighlyAvailable;
+ }
+
+ /**
+ * Get the generation property: Gets or sets the generation for the vm.
+ *
+ * @return the generation value.
+ */
+ public Integer generation() {
+ return this.generation;
+ }
+
+ /**
+ * Get the networkInterfaces property: Gets or sets the network interfaces of the template.
+ *
+ * @return the networkInterfaces value.
+ */
+ public List networkInterfaces() {
+ return this.networkInterfaces;
+ }
+
+ /**
+ * Get the disks property: Gets or sets the disks of the template.
+ *
+ * @return the disks value.
+ */
+ public List disks() {
+ return this.disks;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (networkInterfaces() != null) {
+ networkInterfaces().forEach(e -> e.validate());
+ }
+ if (disks() != null) {
+ disks().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualNetworkInner.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualNetworkInner.java
new file mode 100644
index 0000000000000..6dbe4933b3545
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualNetworkInner.java
@@ -0,0 +1,200 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.models.ExtendedLocation;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The VirtualNetworks resource definition. */
+@Fluent
+public final class VirtualNetworkInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private VirtualNetworkProperties innerProperties = new VirtualNetworkProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The extended location.
+ */
+ @JsonProperty(value = "extendedLocation", required = true)
+ private ExtendedLocation extendedLocation;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private VirtualNetworkProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the extendedLocation property: The extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualNetworkInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualNetworkInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualNetworkProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of the virtual network.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Set the uuid property: Unique ID of the virtual network.
+ *
+ * @param uuid the uuid value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withUuid(String uuid) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualNetworkProperties();
+ }
+ this.innerProperties().withUuid(uuid);
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmmServerId();
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withVmmServerId(String vmmServerId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualNetworkProperties();
+ }
+ this.innerProperties().withVmmServerId(vmmServerId);
+ return this;
+ }
+
+ /**
+ * Get the networkName property: Name of the virtual network in vmmServer.
+ *
+ * @return the networkName value.
+ */
+ public String networkName() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkName();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model VirtualNetworkInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property extendedLocation in model VirtualNetworkInner"));
+ } else {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VirtualNetworkInner.class);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualNetworkProperties.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualNetworkProperties.java
new file mode 100644
index 0000000000000..edb26c1410650
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VirtualNetworkProperties.java
@@ -0,0 +1,128 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VirtualNetworkProperties {
+ /*
+ * Gets or sets the inventory Item ID for the resource.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Unique ID of the virtual network.
+ */
+ @JsonProperty(value = "uuid")
+ private String uuid;
+
+ /*
+ * ARM Id of the vmmServer resource in which this resource resides.
+ */
+ @JsonProperty(value = "vmmServerId")
+ private String vmmServerId;
+
+ /*
+ * Name of the virtual network in vmmServer.
+ */
+ @JsonProperty(value = "networkName", access = JsonProperty.Access.WRITE_ONLY)
+ private String networkName;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualNetworkProperties object itself.
+ */
+ public VirtualNetworkProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of the virtual network.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Set the uuid property: Unique ID of the virtual network.
+ *
+ * @param uuid the uuid value to set.
+ * @return the VirtualNetworkProperties object itself.
+ */
+ public VirtualNetworkProperties withUuid(String uuid) {
+ this.uuid = uuid;
+ return this;
+ }
+
+ /**
+ * Get the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @return the vmmServerId value.
+ */
+ public String vmmServerId() {
+ return this.vmmServerId;
+ }
+
+ /**
+ * Set the vmmServerId property: ARM Id of the vmmServer resource in which this resource resides.
+ *
+ * @param vmmServerId the vmmServerId value to set.
+ * @return the VirtualNetworkProperties object itself.
+ */
+ public VirtualNetworkProperties withVmmServerId(String vmmServerId) {
+ this.vmmServerId = vmmServerId;
+ return this;
+ }
+
+ /**
+ * Get the networkName property: Name of the virtual network in vmmServer.
+ *
+ * @return the networkName value.
+ */
+ public String networkName() {
+ return this.networkName;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VmmServerInner.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VmmServerInner.java
new file mode 100644
index 0000000000000..1a7055cbb9a41
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VmmServerInner.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.scvmm.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.scvmm.models.ExtendedLocation;
+import com.azure.resourcemanager.scvmm.models.VmmServerPropertiesCredentials;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The VmmServers resource definition. */
+@Fluent
+public final class VmmServerInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private VmmServerProperties innerProperties = new VmmServerProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The extended location.
+ */
+ @JsonProperty(value = "extendedLocation", required = true)
+ private ExtendedLocation extendedLocation;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private VmmServerProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the extendedLocation property: The extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VmmServerInner object itself.
+ */
+ public VmmServerInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VmmServerInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VmmServerInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the credentials property: Credentials to connect to VMMServer.
+ *
+ * @return the credentials value.
+ */
+ public VmmServerPropertiesCredentials credentials() {
+ return this.innerProperties() == null ? null : this.innerProperties().credentials();
+ }
+
+ /**
+ * Set the credentials property: Credentials to connect to VMMServer.
+ *
+ * @param credentials the credentials value to set.
+ * @return the VmmServerInner object itself.
+ */
+ public VmmServerInner withCredentials(VmmServerPropertiesCredentials credentials) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VmmServerProperties();
+ }
+ this.innerProperties().withCredentials(credentials);
+ return this;
+ }
+
+ /**
+ * Get the fqdn property: Fqdn is the hostname/ip of the vmmServer.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().fqdn();
+ }
+
+ /**
+ * Set the fqdn property: Fqdn is the hostname/ip of the vmmServer.
+ *
+ * @param fqdn the fqdn value to set.
+ * @return the VmmServerInner object itself.
+ */
+ public VmmServerInner withFqdn(String fqdn) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VmmServerProperties();
+ }
+ this.innerProperties().withFqdn(fqdn);
+ return this;
+ }
+
+ /**
+ * Get the port property: Port is the port on which the vmmServer is listening.
+ *
+ * @return the port value.
+ */
+ public Integer port() {
+ return this.innerProperties() == null ? null : this.innerProperties().port();
+ }
+
+ /**
+ * Set the port property: Port is the port on which the vmmServer is listening.
+ *
+ * @param port the port value to set.
+ * @return the VmmServerInner object itself.
+ */
+ public VmmServerInner withPort(Integer port) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VmmServerProperties();
+ }
+ this.innerProperties().withPort(port);
+ return this;
+ }
+
+ /**
+ * Get the connectionStatus property: Gets or sets the connection status to the vmmServer.
+ *
+ * @return the connectionStatus value.
+ */
+ public String connectionStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().connectionStatus();
+ }
+
+ /**
+ * Get the errorMessage property: Gets or sets any error message if connection to vmmServer is having any issue.
+ *
+ * @return the errorMessage value.
+ */
+ public String errorMessage() {
+ return this.innerProperties() == null ? null : this.innerProperties().errorMessage();
+ }
+
+ /**
+ * Get the uuid property: Unique ID of vmmServer.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the version property: Version is the version of the vmmSever.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.innerProperties() == null ? null : this.innerProperties().version();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property innerProperties in model VmmServerInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property extendedLocation in model VmmServerInner"));
+ } else {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VmmServerInner.class);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VmmServerProperties.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VmmServerProperties.java
new file mode 100644
index 0000000000000..704610ebb9acc
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/VmmServerProperties.java
@@ -0,0 +1,186 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.scvmm.models.VmmServerPropertiesCredentials;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VmmServerProperties {
+ /*
+ * Credentials to connect to VMMServer.
+ */
+ @JsonProperty(value = "credentials")
+ private VmmServerPropertiesCredentials credentials;
+
+ /*
+ * Fqdn is the hostname/ip of the vmmServer.
+ */
+ @JsonProperty(value = "fqdn", required = true)
+ private String fqdn;
+
+ /*
+ * Port is the port on which the vmmServer is listening.
+ */
+ @JsonProperty(value = "port")
+ private Integer port;
+
+ /*
+ * Gets or sets the connection status to the vmmServer.
+ */
+ @JsonProperty(value = "connectionStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private String connectionStatus;
+
+ /*
+ * Gets or sets any error message if connection to vmmServer is having any
+ * issue.
+ */
+ @JsonProperty(value = "errorMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorMessage;
+
+ /*
+ * Unique ID of vmmServer.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Version is the version of the vmmSever.
+ */
+ @JsonProperty(value = "version", access = JsonProperty.Access.WRITE_ONLY)
+ private String version;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the credentials property: Credentials to connect to VMMServer.
+ *
+ * @return the credentials value.
+ */
+ public VmmServerPropertiesCredentials credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set the credentials property: Credentials to connect to VMMServer.
+ *
+ * @param credentials the credentials value to set.
+ * @return the VmmServerProperties object itself.
+ */
+ public VmmServerProperties withCredentials(VmmServerPropertiesCredentials credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+ /**
+ * Get the fqdn property: Fqdn is the hostname/ip of the vmmServer.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+ /**
+ * Set the fqdn property: Fqdn is the hostname/ip of the vmmServer.
+ *
+ * @param fqdn the fqdn value to set.
+ * @return the VmmServerProperties object itself.
+ */
+ public VmmServerProperties withFqdn(String fqdn) {
+ this.fqdn = fqdn;
+ return this;
+ }
+
+ /**
+ * Get the port property: Port is the port on which the vmmServer is listening.
+ *
+ * @return the port value.
+ */
+ public Integer port() {
+ return this.port;
+ }
+
+ /**
+ * Set the port property: Port is the port on which the vmmServer is listening.
+ *
+ * @param port the port value to set.
+ * @return the VmmServerProperties object itself.
+ */
+ public VmmServerProperties withPort(Integer port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * Get the connectionStatus property: Gets or sets the connection status to the vmmServer.
+ *
+ * @return the connectionStatus value.
+ */
+ public String connectionStatus() {
+ return this.connectionStatus;
+ }
+
+ /**
+ * Get the errorMessage property: Gets or sets any error message if connection to vmmServer is having any issue.
+ *
+ * @return the errorMessage value.
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Get the uuid property: Unique ID of vmmServer.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the version property: Version is the version of the vmmSever.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (credentials() != null) {
+ credentials().validate();
+ }
+ if (fqdn() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property fqdn in model VmmServerProperties"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VmmServerProperties.class);
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/package-info.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/package-info.java
new file mode 100644
index 0000000000000..e29b1393b6ea8
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for ScvmmClient. SCVMM Client. */
+package com.azure.resourcemanager.scvmm.fluent.models;
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/package-info.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/package-info.java
new file mode 100644
index 0000000000000..e998cfd26c0a8
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for ScvmmClient. SCVMM Client. */
+package com.azure.resourcemanager.scvmm.fluent;
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetImpl.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetImpl.java
new file mode 100644
index 0000000000000..4390fab75a5de
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetImpl.java
@@ -0,0 +1,206 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.implementation;
+
+import com.azure.core.management.Region;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.scvmm.fluent.models.AvailabilitySetInner;
+import com.azure.resourcemanager.scvmm.models.AvailabilitySet;
+import com.azure.resourcemanager.scvmm.models.ExtendedLocation;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+import java.util.Collections;
+import java.util.Map;
+
+public final class AvailabilitySetImpl implements AvailabilitySet, AvailabilitySet.Definition, AvailabilitySet.Update {
+ private AvailabilitySetInner innerObject;
+
+ private final com.azure.resourcemanager.scvmm.ScvmmManager 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 ExtendedLocation extendedLocation() {
+ return this.innerModel().extendedLocation();
+ }
+
+ public String availabilitySetName() {
+ return this.innerModel().availabilitySetName();
+ }
+
+ public String vmmServerId() {
+ return this.innerModel().vmmServerId();
+ }
+
+ public String provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public AvailabilitySetInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.scvmm.ScvmmManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String availabilitySetName;
+
+ private ResourcePatch updateBody;
+
+ public AvailabilitySetImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public AvailabilitySet create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAvailabilitySets()
+ .createOrUpdate(resourceGroupName, availabilitySetName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public AvailabilitySet create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAvailabilitySets()
+ .createOrUpdate(resourceGroupName, availabilitySetName, this.innerModel(), context);
+ return this;
+ }
+
+ AvailabilitySetImpl(String name, com.azure.resourcemanager.scvmm.ScvmmManager serviceManager) {
+ this.innerObject = new AvailabilitySetInner();
+ this.serviceManager = serviceManager;
+ this.availabilitySetName = name;
+ }
+
+ public AvailabilitySetImpl update() {
+ this.updateBody = new ResourcePatch();
+ return this;
+ }
+
+ public AvailabilitySet apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAvailabilitySets()
+ .update(resourceGroupName, availabilitySetName, updateBody, Context.NONE);
+ return this;
+ }
+
+ public AvailabilitySet apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAvailabilitySets()
+ .update(resourceGroupName, availabilitySetName, updateBody, context);
+ return this;
+ }
+
+ AvailabilitySetImpl(AvailabilitySetInner innerObject, com.azure.resourcemanager.scvmm.ScvmmManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.availabilitySetName = Utils.getValueFromIdByName(innerObject.id(), "availabilitySets");
+ }
+
+ public AvailabilitySet refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAvailabilitySets()
+ .getByResourceGroupWithResponse(resourceGroupName, availabilitySetName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public AvailabilitySet refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAvailabilitySets()
+ .getByResourceGroupWithResponse(resourceGroupName, availabilitySetName, context)
+ .getValue();
+ return this;
+ }
+
+ public AvailabilitySetImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public AvailabilitySetImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public AvailabilitySetImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.innerModel().withTags(tags);
+ return this;
+ } else {
+ this.updateBody.withTags(tags);
+ return this;
+ }
+ }
+
+ public AvailabilitySetImpl withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.innerModel().withExtendedLocation(extendedLocation);
+ return this;
+ }
+
+ public AvailabilitySetImpl withAvailabilitySetName(String availabilitySetName) {
+ this.innerModel().withAvailabilitySetName(availabilitySetName);
+ return this;
+ }
+
+ public AvailabilitySetImpl withVmmServerId(String vmmServerId) {
+ this.innerModel().withVmmServerId(vmmServerId);
+ return this;
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetsClientImpl.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetsClientImpl.java
new file mode 100644
index 0000000000000..aa2b0656b2cb4
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetsClientImpl.java
@@ -0,0 +1,1611 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.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.scvmm.fluent.AvailabilitySetsClient;
+import com.azure.resourcemanager.scvmm.fluent.models.AvailabilitySetInner;
+import com.azure.resourcemanager.scvmm.models.AvailabilitySetListResult;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+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 AvailabilitySetsClient. */
+public final class AvailabilitySetsClientImpl implements AvailabilitySetsClient {
+ /** The proxy service used to perform REST calls. */
+ private final AvailabilitySetsService service;
+
+ /** The service client containing this operation class. */
+ private final ScvmmClientImpl client;
+
+ /**
+ * Initializes an instance of AvailabilitySetsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AvailabilitySetsClientImpl(ScvmmClientImpl client) {
+ this.service =
+ RestProxy.create(AvailabilitySetsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ScvmmClientAvailabilitySets to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ScvmmClientAvailabil")
+ private interface AvailabilitySetsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm"
+ + "/availabilitySets/{availabilitySetName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("availabilitySetName") String availabilitySetName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm"
+ + "/availabilitySets/{availabilitySetName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("availabilitySetName") String availabilitySetName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") AvailabilitySetInner body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm"
+ + "/availabilitySets/{availabilitySetName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("availabilitySetName") String availabilitySetName,
+ @QueryParam("api-version") String apiVersion,
+ @QueryParam("force") Boolean force,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm"
+ + "/availabilitySets/{availabilitySetName}")
+ @ExpectedResponses({200, 201, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> update(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("availabilitySetName") String availabilitySetName,
+ @BodyParam("application/json") ResourcePatch body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm"
+ + "/availabilitySets")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/availabilitySets")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroupNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listBySubscriptionNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Implements AvailabilitySet GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @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 AvailabilitySets resource definition along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String availabilitySetName) {
+ 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 (availabilitySetName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter availabilitySetName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ availabilitySetName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Implements AvailabilitySet GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @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 AvailabilitySets resource definition along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String availabilitySetName, 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 (availabilitySetName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter availabilitySetName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ availabilitySetName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Implements AvailabilitySet GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @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 AvailabilitySets resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByResourceGroupAsync(String resourceGroupName, String availabilitySetName) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, availabilitySetName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Implements AvailabilitySet GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AvailabilitySetInner getByResourceGroup(String resourceGroupName, String availabilitySetName) {
+ return getByResourceGroupAsync(resourceGroupName, availabilitySetName).block();
+ }
+
+ /**
+ * Implements AvailabilitySet GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @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 AvailabilitySets resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String availabilitySetName, Context context) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, availabilitySetName, context).block();
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner 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 (availabilitySetName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter availabilitySetName is required and cannot be null."));
+ }
+ if (body == null) {
+ return Mono.error(new IllegalArgumentException("Parameter body is required and cannot be null."));
+ } else {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ availabilitySetName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner 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 (availabilitySetName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter availabilitySetName is required and cannot be null."));
+ }
+ if (body == null) {
+ return Mono.error(new IllegalArgumentException("Parameter body is required and cannot be null."));
+ } else {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ availabilitySetName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, AvailabilitySetInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, availabilitySetName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ AvailabilitySetInner.class,
+ AvailabilitySetInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, AvailabilitySetInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, availabilitySetName, body, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), AvailabilitySetInner.class, AvailabilitySetInner.class, context);
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, AvailabilitySetInner> beginCreateOrUpdate(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body) {
+ return beginCreateOrUpdateAsync(resourceGroupName, availabilitySetName, body).getSyncPoller();
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, AvailabilitySetInner> beginCreateOrUpdate(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, availabilitySetName, body, context).getSyncPoller();
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body) {
+ return beginCreateOrUpdateAsync(resourceGroupName, availabilitySetName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, availabilitySetName, body, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AvailabilitySetInner createOrUpdate(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body) {
+ return createOrUpdateAsync(resourceGroupName, availabilitySetName, body).block();
+ }
+
+ /**
+ * Onboards the ScVmm availability set as an Azure resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body Request payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AvailabilitySetInner createOrUpdate(
+ String resourceGroupName, String availabilitySetName, AvailabilitySetInner body, Context context) {
+ return createOrUpdateAsync(resourceGroupName, availabilitySetName, body, context).block();
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force) {
+ 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 (availabilitySetName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter availabilitySetName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ availabilitySetName,
+ this.client.getApiVersion(),
+ force,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force, 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 (availabilitySetName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter availabilitySetName 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,
+ availabilitySetName,
+ this.client.getApiVersion(),
+ force,
+ accept,
+ context);
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force) {
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, availabilitySetName, force);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, availabilitySetName, force, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force) {
+ return beginDeleteAsync(resourceGroupName, availabilitySetName, force).getSyncPoller();
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force, Context context) {
+ return beginDeleteAsync(resourceGroupName, availabilitySetName, force, context).getSyncPoller();
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force) {
+ return beginDeleteAsync(resourceGroupName, availabilitySetName, force)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @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 availabilitySetName) {
+ final Boolean force = null;
+ return beginDeleteAsync(resourceGroupName, availabilitySetName, force)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force, Context context) {
+ return beginDeleteAsync(resourceGroupName, availabilitySetName, force, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force) {
+ deleteAsync(resourceGroupName, availabilitySetName, force).block();
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @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 availabilitySetName) {
+ final Boolean force = null;
+ deleteAsync(resourceGroupName, availabilitySetName, force).block();
+ }
+
+ /**
+ * Deregisters the ScVmm availability set from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 availabilitySetName, Boolean force, Context context) {
+ deleteAsync(resourceGroupName, availabilitySetName, force, context).block();
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> updateWithResponseAsync(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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 (availabilitySetName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter availabilitySetName is required and cannot be null."));
+ }
+ if (body == null) {
+ return Mono.error(new IllegalArgumentException("Parameter body is required and cannot be null."));
+ } else {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .update(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ availabilitySetName,
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> updateWithResponseAsync(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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 (availabilitySetName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter availabilitySetName is required and cannot be null."));
+ }
+ if (body == null) {
+ return Mono.error(new IllegalArgumentException("Parameter body is required and cannot be null."));
+ } else {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .update(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ availabilitySetName,
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, AvailabilitySetInner> beginUpdateAsync(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body) {
+ Mono>> mono = updateWithResponseAsync(resourceGroupName, availabilitySetName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ AvailabilitySetInner.class,
+ AvailabilitySetInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, AvailabilitySetInner> beginUpdateAsync(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ updateWithResponseAsync(resourceGroupName, availabilitySetName, body, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), AvailabilitySetInner.class, AvailabilitySetInner.class, context);
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, AvailabilitySetInner> beginUpdate(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body) {
+ return beginUpdateAsync(resourceGroupName, availabilitySetName, body).getSyncPoller();
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, AvailabilitySetInner> beginUpdate(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body, Context context) {
+ return beginUpdateAsync(resourceGroupName, availabilitySetName, body, context).getSyncPoller();
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body) {
+ return beginUpdateAsync(resourceGroupName, availabilitySetName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body, Context context) {
+ return beginUpdateAsync(resourceGroupName, availabilitySetName, body, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AvailabilitySetInner update(String resourceGroupName, String availabilitySetName, ResourcePatch body) {
+ return updateAsync(resourceGroupName, availabilitySetName, body).block();
+ }
+
+ /**
+ * Updates the AvailabilitySets resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param availabilitySetName Name of the AvailabilitySet.
+ * @param body AvailabilitySets patch payload.
+ * @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 AvailabilitySets resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AvailabilitySetInner update(
+ String resourceGroupName, String availabilitySetName, ResourcePatch body, Context context) {
+ return updateAsync(resourceGroupName, availabilitySetName, body, context).block();
+ }
+
+ /**
+ * List of AvailabilitySets in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @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 list of AvailabilitySets along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupSinglePageAsync(String resourceGroupName) {
+ 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ 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()));
+ }
+
+ /**
+ * List of AvailabilitySets in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of AvailabilitySets along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupSinglePageAsync(
+ String resourceGroupName, 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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * List of AvailabilitySets in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @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 list of AvailabilitySets as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByResourceGroupAsync(String resourceGroupName) {
+ return new PagedFlux<>(
+ () -> listByResourceGroupSinglePageAsync(resourceGroupName),
+ nextLink -> listByResourceGroupNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * List of AvailabilitySets in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of AvailabilitySets as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByResourceGroupAsync(String resourceGroupName, Context context) {
+ return new PagedFlux<>(
+ () -> listByResourceGroupSinglePageAsync(resourceGroupName, context),
+ nextLink -> listByResourceGroupNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * List of AvailabilitySets in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @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 list of AvailabilitySets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByResourceGroup(String resourceGroupName) {
+ return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName));
+ }
+
+ /**
+ * List of AvailabilitySets in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of AvailabilitySets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByResourceGroup(String resourceGroupName, Context context) {
+ return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName, context));
+ }
+
+ /**
+ * List of AvailabilitySets in a subscription.
+ *
+ * @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 list of AvailabilitySets 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."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ 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()));
+ }
+
+ /**
+ * List of AvailabilitySets in a subscription.
+ *
+ * @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 list of AvailabilitySets 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."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() 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(),
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * List of AvailabilitySets in a subscription.
+ *
+ * @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 list of AvailabilitySets as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(), nextLink -> listBySubscriptionNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * List of AvailabilitySets in a subscription.
+ *
+ * @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 list of AvailabilitySets as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(context), nextLink -> listBySubscriptionNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * List of AvailabilitySets in a subscription.
+ *
+ * @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 list of AvailabilitySets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * List of AvailabilitySets in a subscription.
+ *
+ * @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 list of AvailabilitySets 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 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 list of AvailabilitySets along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupNextSinglePageAsync(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.listByResourceGroupNext(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 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 list of AvailabilitySets along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupNextSinglePageAsync(
+ 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
+ .listByResourceGroupNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink 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 list of AvailabilitySets along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listBySubscriptionNextSinglePageAsync(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.listBySubscriptionNext(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 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 list of AvailabilitySets along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listBySubscriptionNextSinglePageAsync(
+ 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
+ .listBySubscriptionNext(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/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetsImpl.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetsImpl.java
new file mode 100644
index 0000000000000..63d4267c5eac6
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/AvailabilitySetsImpl.java
@@ -0,0 +1,183 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.scvmm.fluent.AvailabilitySetsClient;
+import com.azure.resourcemanager.scvmm.fluent.models.AvailabilitySetInner;
+import com.azure.resourcemanager.scvmm.models.AvailabilitySet;
+import com.azure.resourcemanager.scvmm.models.AvailabilitySets;
+
+public final class AvailabilitySetsImpl implements AvailabilitySets {
+ private static final ClientLogger LOGGER = new ClientLogger(AvailabilitySetsImpl.class);
+
+ private final AvailabilitySetsClient innerClient;
+
+ private final com.azure.resourcemanager.scvmm.ScvmmManager serviceManager;
+
+ public AvailabilitySetsImpl(
+ AvailabilitySetsClient innerClient, com.azure.resourcemanager.scvmm.ScvmmManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public AvailabilitySet getByResourceGroup(String resourceGroupName, String availabilitySetName) {
+ AvailabilitySetInner inner = this.serviceClient().getByResourceGroup(resourceGroupName, availabilitySetName);
+ if (inner != null) {
+ return new AvailabilitySetImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String availabilitySetName, Context context) {
+ Response inner =
+ this.serviceClient().getByResourceGroupWithResponse(resourceGroupName, availabilitySetName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AvailabilitySetImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void delete(String resourceGroupName, String availabilitySetName, Boolean force) {
+ this.serviceClient().delete(resourceGroupName, availabilitySetName, force);
+ }
+
+ public void delete(String resourceGroupName, String availabilitySetName) {
+ this.serviceClient().delete(resourceGroupName, availabilitySetName);
+ }
+
+ public void delete(String resourceGroupName, String availabilitySetName, Boolean force, Context context) {
+ this.serviceClient().delete(resourceGroupName, availabilitySetName, force, context);
+ }
+
+ public PagedIterable listByResourceGroup(String resourceGroupName) {
+ PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName);
+ return Utils.mapPage(inner, inner1 -> new AvailabilitySetImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByResourceGroup(String resourceGroupName, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByResourceGroup(resourceGroupName, context);
+ return Utils.mapPage(inner, inner1 -> new AvailabilitySetImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list() {
+ PagedIterable inner = this.serviceClient().list();
+ return Utils.mapPage(inner, inner1 -> new AvailabilitySetImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(Context context) {
+ PagedIterable inner = this.serviceClient().list(context);
+ return Utils.mapPage(inner, inner1 -> new AvailabilitySetImpl(inner1, this.manager()));
+ }
+
+ public AvailabilitySet getById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String availabilitySetName = Utils.getValueFromIdByName(id, "availabilitySets");
+ if (availabilitySetName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'availabilitySets'.", id)));
+ }
+ return this.getByResourceGroupWithResponse(resourceGroupName, availabilitySetName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String availabilitySetName = Utils.getValueFromIdByName(id, "availabilitySets");
+ if (availabilitySetName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'availabilitySets'.", id)));
+ }
+ return this.getByResourceGroupWithResponse(resourceGroupName, availabilitySetName, context);
+ }
+
+ public void deleteById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String availabilitySetName = Utils.getValueFromIdByName(id, "availabilitySets");
+ if (availabilitySetName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'availabilitySets'.", id)));
+ }
+ Boolean localForce = null;
+ this.delete(resourceGroupName, availabilitySetName, localForce, Context.NONE);
+ }
+
+ public void deleteByIdWithResponse(String id, Boolean force, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String availabilitySetName = Utils.getValueFromIdByName(id, "availabilitySets");
+ if (availabilitySetName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'availabilitySets'.", id)));
+ }
+ this.delete(resourceGroupName, availabilitySetName, force, context);
+ }
+
+ private AvailabilitySetsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.scvmm.ScvmmManager manager() {
+ return this.serviceManager;
+ }
+
+ public AvailabilitySetImpl define(String name) {
+ return new AvailabilitySetImpl(name, this.manager());
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/CloudImpl.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/CloudImpl.java
new file mode 100644
index 0000000000000..17e8e011ff66d
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/CloudImpl.java
@@ -0,0 +1,229 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.implementation;
+
+import com.azure.core.management.Region;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.scvmm.fluent.models.CloudInner;
+import com.azure.resourcemanager.scvmm.models.Cloud;
+import com.azure.resourcemanager.scvmm.models.CloudCapacity;
+import com.azure.resourcemanager.scvmm.models.ExtendedLocation;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+import com.azure.resourcemanager.scvmm.models.StorageQoSPolicy;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public final class CloudImpl implements Cloud, Cloud.Definition, Cloud.Update {
+ private CloudInner innerObject;
+
+ private final com.azure.resourcemanager.scvmm.ScvmmManager 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 ExtendedLocation extendedLocation() {
+ return this.innerModel().extendedLocation();
+ }
+
+ public String inventoryItemId() {
+ return this.innerModel().inventoryItemId();
+ }
+
+ public String uuid() {
+ return this.innerModel().uuid();
+ }
+
+ public String vmmServerId() {
+ return this.innerModel().vmmServerId();
+ }
+
+ public String cloudName() {
+ return this.innerModel().cloudName();
+ }
+
+ public CloudCapacity cloudCapacity() {
+ return this.innerModel().cloudCapacity();
+ }
+
+ public List storageQoSPolicies() {
+ List inner = this.innerModel().storageQoSPolicies();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public String provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public CloudInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.scvmm.ScvmmManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String cloudName;
+
+ private ResourcePatch updateBody;
+
+ public CloudImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public Cloud create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClouds()
+ .createOrUpdate(resourceGroupName, cloudName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Cloud create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClouds()
+ .createOrUpdate(resourceGroupName, cloudName, this.innerModel(), context);
+ return this;
+ }
+
+ CloudImpl(String name, com.azure.resourcemanager.scvmm.ScvmmManager serviceManager) {
+ this.innerObject = new CloudInner();
+ this.serviceManager = serviceManager;
+ this.cloudName = name;
+ }
+
+ public CloudImpl update() {
+ this.updateBody = new ResourcePatch();
+ return this;
+ }
+
+ public Cloud apply() {
+ this.innerObject =
+ serviceManager.serviceClient().getClouds().update(resourceGroupName, cloudName, updateBody, Context.NONE);
+ return this;
+ }
+
+ public Cloud apply(Context context) {
+ this.innerObject =
+ serviceManager.serviceClient().getClouds().update(resourceGroupName, cloudName, updateBody, context);
+ return this;
+ }
+
+ CloudImpl(CloudInner innerObject, com.azure.resourcemanager.scvmm.ScvmmManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.cloudName = Utils.getValueFromIdByName(innerObject.id(), "clouds");
+ }
+
+ public Cloud refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClouds()
+ .getByResourceGroupWithResponse(resourceGroupName, cloudName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Cloud refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClouds()
+ .getByResourceGroupWithResponse(resourceGroupName, cloudName, context)
+ .getValue();
+ return this;
+ }
+
+ public CloudImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public CloudImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public CloudImpl withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.innerModel().withExtendedLocation(extendedLocation);
+ return this;
+ }
+
+ public CloudImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.innerModel().withTags(tags);
+ return this;
+ } else {
+ this.updateBody.withTags(tags);
+ return this;
+ }
+ }
+
+ public CloudImpl withInventoryItemId(String inventoryItemId) {
+ this.innerModel().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ public CloudImpl withUuid(String uuid) {
+ this.innerModel().withUuid(uuid);
+ return this;
+ }
+
+ public CloudImpl withVmmServerId(String vmmServerId) {
+ this.innerModel().withVmmServerId(vmmServerId);
+ return this;
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/CloudsClientImpl.java b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/CloudsClientImpl.java
new file mode 100644
index 0000000000000..60776d333cfe9
--- /dev/null
+++ b/sdk/scvmm/azure-resourcemanager-scvmm/src/main/java/com/azure/resourcemanager/scvmm/implementation/CloudsClientImpl.java
@@ -0,0 +1,1573 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.scvmm.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.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.scvmm.fluent.CloudsClient;
+import com.azure.resourcemanager.scvmm.fluent.models.CloudInner;
+import com.azure.resourcemanager.scvmm.models.CloudListResult;
+import com.azure.resourcemanager.scvmm.models.ResourcePatch;
+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 CloudsClient. */
+public final class CloudsClientImpl implements CloudsClient {
+ /** The proxy service used to perform REST calls. */
+ private final CloudsService service;
+
+ /** The service client containing this operation class. */
+ private final ScvmmClientImpl client;
+
+ /**
+ * Initializes an instance of CloudsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ CloudsClientImpl(ScvmmClientImpl client) {
+ this.service = RestProxy.create(CloudsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ScvmmClientClouds to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ScvmmClientClouds")
+ private interface CloudsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds"
+ + "/{cloudName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("cloudName") String cloudName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds"
+ + "/{cloudName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("cloudName") String cloudName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") CloudInner body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds"
+ + "/{cloudName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("cloudName") String cloudName,
+ @QueryParam("api-version") String apiVersion,
+ @QueryParam("force") Boolean force,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds"
+ + "/{cloudName}")
+ @ExpectedResponses({200, 201, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> update(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("cloudName") String cloudName,
+ @BodyParam("application/json") ResourcePatch body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/clouds")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroupNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listBySubscriptionNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Implements Cloud GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @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 Clouds resource definition along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(String resourceGroupName, String cloudName) {
+ 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 (cloudName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ cloudName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Implements Cloud GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @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 Clouds resource definition along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String cloudName, 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 (cloudName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ cloudName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Implements Cloud GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @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 Clouds resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByResourceGroupAsync(String resourceGroupName, String cloudName) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, cloudName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Implements Cloud GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CloudInner getByResourceGroup(String resourceGroupName, String cloudName) {
+ return getByResourceGroupAsync(resourceGroupName, cloudName).block();
+ }
+
+ /**
+ * Implements Cloud GET method.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @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 Clouds resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String cloudName, Context context) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, cloudName, context).block();
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String cloudName, CloudInner 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 (cloudName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudName is required and cannot be null."));
+ }
+ if (body == null) {
+ return Mono.error(new IllegalArgumentException("Parameter body is required and cannot be null."));
+ } else {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ cloudName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String cloudName, CloudInner 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 (cloudName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudName is required and cannot be null."));
+ }
+ if (body == null) {
+ return Mono.error(new IllegalArgumentException("Parameter body is required and cannot be null."));
+ } else {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ cloudName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, CloudInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String cloudName, CloudInner body) {
+ Mono>> mono = createOrUpdateWithResponseAsync(resourceGroupName, cloudName, body);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), CloudInner.class, CloudInner.class, this.client.getContext());
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, CloudInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String cloudName, CloudInner body, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, cloudName, body, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), CloudInner.class, CloudInner.class, context);
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, CloudInner> beginCreateOrUpdate(
+ String resourceGroupName, String cloudName, CloudInner body) {
+ return beginCreateOrUpdateAsync(resourceGroupName, cloudName, body).getSyncPoller();
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, CloudInner> beginCreateOrUpdate(
+ String resourceGroupName, String cloudName, CloudInner body, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, cloudName, body, context).getSyncPoller();
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(String resourceGroupName, String cloudName, CloudInner body) {
+ return beginCreateOrUpdateAsync(resourceGroupName, cloudName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String cloudName, CloudInner body, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, cloudName, body, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CloudInner createOrUpdate(String resourceGroupName, String cloudName, CloudInner body) {
+ return createOrUpdateAsync(resourceGroupName, cloudName, body).block();
+ }
+
+ /**
+ * Onboards the ScVmm fabric cloud as an Azure cloud resource.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param body Request payload.
+ * @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 Clouds resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CloudInner createOrUpdate(String resourceGroupName, String cloudName, CloudInner body, Context context) {
+ return createOrUpdateAsync(resourceGroupName, cloudName, body, context).block();
+ }
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 cloudName, Boolean force) {
+ 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 (cloudName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ cloudName,
+ this.client.getApiVersion(),
+ force,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 cloudName, Boolean force, 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 (cloudName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudName 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,
+ cloudName,
+ this.client.getApiVersion(),
+ force,
+ accept,
+ context);
+ }
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 cloudName, Boolean force) {
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, cloudName, force);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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 cloudName, Boolean force, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, cloudName, force, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deregisters the ScVmm fabric cloud from Azure.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param cloudName Name of the Cloud.
+ * @param force Forces the resource to be deleted from azure. The corresponding CR would be attempted to be deleted
+ * too.
+ * @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