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 Azure Stack Hci Vm service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Azure Stack Hci Vm service API instance.
+ */
+ public AzureStackHciVmManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ String clientVersion = PROPERTIES.getOrDefault(SDK_VERSION, "UnknownVersion");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder.append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.azurestackhci.vm")
+ .append("/")
+ .append(clientVersion);
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder.append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ if (retryOptions != null) {
+ retryPolicy = new RetryPolicy(retryOptions);
+ } else {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new AddHeadersFromContextPolicy());
+ policies.add(new RequestIdPolicy());
+ policies.addAll(this.policies.stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new BearerTokenAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies.addAll(this.policies.stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline = new HttpPipelineBuilder().httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new AzureStackHciVmManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of GalleryImages. It manages GalleryImage.
+ *
+ * @return Resource collection API of GalleryImages.
+ */
+ public GalleryImages galleryImages() {
+ if (this.galleryImages == null) {
+ this.galleryImages = new GalleryImagesImpl(clientObject.getGalleryImages(), this);
+ }
+ return galleryImages;
+ }
+
+ /**
+ * Gets the resource collection API of LogicalNetworks. It manages LogicalNetwork.
+ *
+ * @return Resource collection API of LogicalNetworks.
+ */
+ public LogicalNetworks logicalNetworks() {
+ if (this.logicalNetworks == null) {
+ this.logicalNetworks = new LogicalNetworksImpl(clientObject.getLogicalNetworks(), this);
+ }
+ return logicalNetworks;
+ }
+
+ /**
+ * Gets the resource collection API of MarketplaceGalleryImages. It manages MarketplaceGalleryImage.
+ *
+ * @return Resource collection API of MarketplaceGalleryImages.
+ */
+ public MarketplaceGalleryImages marketplaceGalleryImages() {
+ if (this.marketplaceGalleryImages == null) {
+ this.marketplaceGalleryImages
+ = new MarketplaceGalleryImagesImpl(clientObject.getMarketplaceGalleryImages(), this);
+ }
+ return marketplaceGalleryImages;
+ }
+
+ /**
+ * Gets the resource collection API of NetworkInterfaces. It manages NetworkInterface.
+ *
+ * @return Resource collection API of NetworkInterfaces.
+ */
+ public NetworkInterfaces networkInterfaces() {
+ if (this.networkInterfaces == null) {
+ this.networkInterfaces = new NetworkInterfacesImpl(clientObject.getNetworkInterfaces(), this);
+ }
+ return networkInterfaces;
+ }
+
+ /**
+ * Gets the resource collection API of NetworkSecurityGroups. It manages NetworkSecurityGroup.
+ *
+ * @return Resource collection API of NetworkSecurityGroups.
+ */
+ public NetworkSecurityGroups networkSecurityGroups() {
+ if (this.networkSecurityGroups == null) {
+ this.networkSecurityGroups = new NetworkSecurityGroupsImpl(clientObject.getNetworkSecurityGroups(), this);
+ }
+ return networkSecurityGroups;
+ }
+
+ /**
+ * Gets the resource collection API of SecurityRules. It manages SecurityRule.
+ *
+ * @return Resource collection API of SecurityRules.
+ */
+ public SecurityRules securityRules() {
+ if (this.securityRules == null) {
+ this.securityRules = new SecurityRulesImpl(clientObject.getSecurityRules(), this);
+ }
+ return securityRules;
+ }
+
+ /**
+ * Gets the resource collection API of StorageContainers. It manages StorageContainer.
+ *
+ * @return Resource collection API of StorageContainers.
+ */
+ public StorageContainers storageContainers() {
+ if (this.storageContainers == null) {
+ this.storageContainers = new StorageContainersImpl(clientObject.getStorageContainers(), this);
+ }
+ return storageContainers;
+ }
+
+ /**
+ * Gets the resource collection API of VirtualHardDisks. It manages VirtualHardDisk.
+ *
+ * @return Resource collection API of VirtualHardDisks.
+ */
+ public VirtualHardDisks virtualHardDisks() {
+ if (this.virtualHardDisks == null) {
+ this.virtualHardDisks = new VirtualHardDisksImpl(clientObject.getVirtualHardDisks(), this);
+ }
+ return virtualHardDisks;
+ }
+
+ /**
+ * Gets the resource collection API of VirtualMachineInstances.
+ *
+ * @return Resource collection API of VirtualMachineInstances.
+ */
+ public VirtualMachineInstances virtualMachineInstances() {
+ if (this.virtualMachineInstances == null) {
+ this.virtualMachineInstances
+ = new VirtualMachineInstancesImpl(clientObject.getVirtualMachineInstances(), this);
+ }
+ return virtualMachineInstances;
+ }
+
+ /**
+ * Gets the resource collection API of HybridIdentityMetadatas.
+ *
+ * @return Resource collection API of HybridIdentityMetadatas.
+ */
+ public HybridIdentityMetadatas hybridIdentityMetadatas() {
+ if (this.hybridIdentityMetadatas == null) {
+ this.hybridIdentityMetadatas
+ = new HybridIdentityMetadatasImpl(clientObject.getHybridIdentityMetadatas(), this);
+ }
+ return hybridIdentityMetadatas;
+ }
+
+ /**
+ * Gets the resource collection API of AttestationStatuses.
+ *
+ * @return Resource collection API of AttestationStatuses.
+ */
+ public AttestationStatuses attestationStatuses() {
+ if (this.attestationStatuses == null) {
+ this.attestationStatuses = new AttestationStatusesImpl(clientObject.getAttestationStatuses(), this);
+ }
+ return attestationStatuses;
+ }
+
+ /**
+ * Gets the resource collection API of GuestAgents.
+ *
+ * @return Resource collection API of GuestAgents.
+ */
+ public GuestAgents guestAgents() {
+ if (this.guestAgents == null) {
+ this.guestAgents = new GuestAgentsImpl(clientObject.getGuestAgents(), this);
+ }
+ return guestAgents;
+ }
+
+ /**
+ * Gets wrapped service client AzureStackHciVmMgmtClient providing direct access to the underlying auto-generated
+ * API implementation, based on Azure REST API.
+ *
+ * @return Wrapped service client AzureStackHciVmMgmtClient.
+ */
+ public AzureStackHciVmMgmtClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/AttestationStatusesClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/AttestationStatusesClient.java
new file mode 100644
index 000000000000..dca4c8732cf5
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/AttestationStatusesClient.java
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.models.AttestationStatusInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in AttestationStatusesClient.
+ */
+public interface AttestationStatusesClient {
+ /**
+ * Implements AttestationStatus GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the attestation status of the virtual machine along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceUri, Context context);
+
+ /**
+ * Implements AttestationStatus GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the attestation status of the virtual machine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AttestationStatusInner get(String resourceUri);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/AzureStackHciVmMgmtClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/AzureStackHciVmMgmtClient.java
new file mode 100644
index 000000000000..130b991866d4
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/AzureStackHciVmMgmtClient.java
@@ -0,0 +1,132 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/**
+ * The interface for AzureStackHciVmMgmtClient class.
+ */
+public interface AzureStackHciVmMgmtClient {
+ /**
+ * Gets Service host.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Version parameter.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The ID of the target subscription. The value must be an UUID.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the GalleryImagesClient object to access its operations.
+ *
+ * @return the GalleryImagesClient object.
+ */
+ GalleryImagesClient getGalleryImages();
+
+ /**
+ * Gets the LogicalNetworksClient object to access its operations.
+ *
+ * @return the LogicalNetworksClient object.
+ */
+ LogicalNetworksClient getLogicalNetworks();
+
+ /**
+ * Gets the MarketplaceGalleryImagesClient object to access its operations.
+ *
+ * @return the MarketplaceGalleryImagesClient object.
+ */
+ MarketplaceGalleryImagesClient getMarketplaceGalleryImages();
+
+ /**
+ * Gets the NetworkInterfacesClient object to access its operations.
+ *
+ * @return the NetworkInterfacesClient object.
+ */
+ NetworkInterfacesClient getNetworkInterfaces();
+
+ /**
+ * Gets the NetworkSecurityGroupsClient object to access its operations.
+ *
+ * @return the NetworkSecurityGroupsClient object.
+ */
+ NetworkSecurityGroupsClient getNetworkSecurityGroups();
+
+ /**
+ * Gets the SecurityRulesClient object to access its operations.
+ *
+ * @return the SecurityRulesClient object.
+ */
+ SecurityRulesClient getSecurityRules();
+
+ /**
+ * Gets the StorageContainersClient object to access its operations.
+ *
+ * @return the StorageContainersClient object.
+ */
+ StorageContainersClient getStorageContainers();
+
+ /**
+ * Gets the VirtualHardDisksClient object to access its operations.
+ *
+ * @return the VirtualHardDisksClient object.
+ */
+ VirtualHardDisksClient getVirtualHardDisks();
+
+ /**
+ * Gets the VirtualMachineInstancesClient object to access its operations.
+ *
+ * @return the VirtualMachineInstancesClient object.
+ */
+ VirtualMachineInstancesClient getVirtualMachineInstances();
+
+ /**
+ * Gets the HybridIdentityMetadatasClient object to access its operations.
+ *
+ * @return the HybridIdentityMetadatasClient object.
+ */
+ HybridIdentityMetadatasClient getHybridIdentityMetadatas();
+
+ /**
+ * Gets the AttestationStatusesClient object to access its operations.
+ *
+ * @return the AttestationStatusesClient object.
+ */
+ AttestationStatusesClient getAttestationStatuses();
+
+ /**
+ * Gets the GuestAgentsClient object to access its operations.
+ *
+ * @return the GuestAgentsClient object.
+ */
+ GuestAgentsClient getGuestAgents();
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/GalleryImagesClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/GalleryImagesClient.java
new file mode 100644
index 000000000000..8ddbf6dafb15
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/GalleryImagesClient.java
@@ -0,0 +1,277 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.GalleryImageInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.GalleryImageTagsUpdate;
+
+/**
+ * An instance of this class provides access to all the operations defined in GalleryImagesClient.
+ */
+public interface GalleryImagesClient {
+ /**
+ * Gets a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 gallery image along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String galleryImageName,
+ Context context);
+
+ /**
+ * Gets a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 gallery image.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GalleryImageInner getByResourceGroup(String resourceGroupName, String galleryImageName);
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GalleryImageInner> beginCreateOrUpdate(String resourceGroupName,
+ String galleryImageName, GalleryImageInner resource);
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GalleryImageInner> beginCreateOrUpdate(String resourceGroupName,
+ String galleryImageName, GalleryImageInner resource, Context context);
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GalleryImageInner createOrUpdate(String resourceGroupName, String galleryImageName, GalleryImageInner resource);
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GalleryImageInner createOrUpdate(String resourceGroupName, String galleryImageName, GalleryImageInner resource,
+ Context context);
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GalleryImageInner> beginUpdate(String resourceGroupName,
+ String galleryImageName, GalleryImageTagsUpdate properties);
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GalleryImageInner> beginUpdate(String resourceGroupName,
+ String galleryImageName, GalleryImageTagsUpdate properties, Context context);
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GalleryImageInner update(String resourceGroupName, String galleryImageName, GalleryImageTagsUpdate properties);
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GalleryImageInner update(String resourceGroupName, String galleryImageName, GalleryImageTagsUpdate properties,
+ Context context);
+
+ /**
+ * The operation to delete a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 galleryImageName);
+
+ /**
+ * The operation to delete a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 galleryImageName, Context context);
+
+ /**
+ * The operation to delete a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 galleryImageName);
+
+ /**
+ * The operation to delete a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 galleryImageName, Context context);
+
+ /**
+ * Lists all of the gallery images in the specified resource group. Use the nextLink property in the response to get
+ * the next page of gallery images.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a GalleryImage list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all of the gallery images in the specified resource group. Use the nextLink property in the response to get
+ * the next page of gallery images.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a GalleryImage list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Lists all of the gallery images in the specified subscription. Use the nextLink property in the response to get
+ * the next page of gallery images.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a GalleryImage list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the gallery images in the specified subscription. Use the nextLink property in the response to get
+ * the next page of gallery images.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a GalleryImage list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/GuestAgentsClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/GuestAgentsClient.java
new file mode 100644
index 000000000000..673fad0318d5
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/GuestAgentsClient.java
@@ -0,0 +1,172 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.GuestAgentInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in GuestAgentsClient.
+ */
+public interface GuestAgentsClient {
+ /**
+ * Implements GuestAgent GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the GuestAgent along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceUri, Context context);
+
+ /**
+ * Implements GuestAgent GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GuestAgentInner get(String resourceUri);
+
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines the GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GuestAgentInner> beginCreate(String resourceUri, GuestAgentInner resource);
+
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines the GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GuestAgentInner> beginCreate(String resourceUri, GuestAgentInner resource,
+ Context context);
+
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GuestAgentInner create(String resourceUri, GuestAgentInner resource);
+
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GuestAgentInner create(String resourceUri, GuestAgentInner resource, Context context);
+
+ /**
+ * Implements GuestAgent DELETE method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceUri);
+
+ /**
+ * Implements GuestAgent DELETE method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceUri, Context context);
+
+ /**
+ * Implements GuestAgent DELETE method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceUri);
+
+ /**
+ * Implements GuestAgent DELETE method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceUri, Context context);
+
+ /**
+ * Returns the list of GuestAgent of the given vm.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a GuestAgent list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVirtualMachineInstance(String resourceUri);
+
+ /**
+ * Returns the list of GuestAgent of the given vm.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a GuestAgent list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVirtualMachineInstance(String resourceUri, Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/HybridIdentityMetadatasClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/HybridIdentityMetadatasClient.java
new file mode 100644
index 000000000000..f02de4524a8b
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/HybridIdentityMetadatasClient.java
@@ -0,0 +1,67 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.HybridIdentityMetadataInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in HybridIdentityMetadatasClient.
+ */
+public interface HybridIdentityMetadatasClient {
+ /**
+ * Implements HybridIdentityMetadata GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the HybridIdentityMetadata along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceUri, Context context);
+
+ /**
+ * Implements HybridIdentityMetadata GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the HybridIdentityMetadata.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ HybridIdentityMetadataInner get(String resourceUri);
+
+ /**
+ * Returns the list of HybridIdentityMetadata of the given vm.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a HybridIdentityMetadata list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVirtualMachineInstance(String resourceUri);
+
+ /**
+ * Returns the list of HybridIdentityMetadata of the given vm.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a HybridIdentityMetadata list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVirtualMachineInstance(String resourceUri, Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/LogicalNetworksClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/LogicalNetworksClient.java
new file mode 100644
index 000000000000..3673e9bd015e
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/LogicalNetworksClient.java
@@ -0,0 +1,280 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.LogicalNetworkInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.LogicalNetworksUpdateRequest;
+
+/**
+ * An instance of this class provides access to all the operations defined in LogicalNetworksClient.
+ */
+public interface LogicalNetworksClient {
+ /**
+ * The operation to get a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the logical network resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String logicalNetworkName,
+ Context context);
+
+ /**
+ * The operation to get a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LogicalNetworkInner getByResourceGroup(String resourceGroupName, String logicalNetworkName);
+
+ /**
+ * The operation to create or update a logical network. Please note some properties can be set only during logical
+ * network creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, LogicalNetworkInner> beginCreateOrUpdate(String resourceGroupName,
+ String logicalNetworkName, LogicalNetworkInner resource);
+
+ /**
+ * The operation to create or update a logical network. Please note some properties can be set only during logical
+ * network creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, LogicalNetworkInner> beginCreateOrUpdate(String resourceGroupName,
+ String logicalNetworkName, LogicalNetworkInner resource, Context context);
+
+ /**
+ * The operation to create or update a logical network. Please note some properties can be set only during logical
+ * network creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LogicalNetworkInner createOrUpdate(String resourceGroupName, String logicalNetworkName,
+ LogicalNetworkInner resource);
+
+ /**
+ * The operation to create or update a logical network. Please note some properties can be set only during logical
+ * network creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LogicalNetworkInner createOrUpdate(String resourceGroupName, String logicalNetworkName,
+ LogicalNetworkInner resource, Context context);
+
+ /**
+ * The operation to update a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, LogicalNetworkInner> beginUpdate(String resourceGroupName,
+ String logicalNetworkName, LogicalNetworksUpdateRequest properties);
+
+ /**
+ * The operation to update a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, LogicalNetworkInner> beginUpdate(String resourceGroupName,
+ String logicalNetworkName, LogicalNetworksUpdateRequest properties, Context context);
+
+ /**
+ * The operation to update a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LogicalNetworkInner update(String resourceGroupName, String logicalNetworkName,
+ LogicalNetworksUpdateRequest properties);
+
+ /**
+ * The operation to update a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the logical network resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LogicalNetworkInner update(String resourceGroupName, String logicalNetworkName,
+ LogicalNetworksUpdateRequest properties, Context context);
+
+ /**
+ * The operation to delete a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 logicalNetworkName);
+
+ /**
+ * The operation to delete a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 logicalNetworkName,
+ Context context);
+
+ /**
+ * The operation to delete a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 logicalNetworkName);
+
+ /**
+ * The operation to delete a logical network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param logicalNetworkName Name of the logical network.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 logicalNetworkName, Context context);
+
+ /**
+ * Lists all of the logical networks in the specified resource group. Use the nextLink property in the response to
+ * get the next page of logical networks.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a LogicalNetwork list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all of the logical networks in the specified resource group. Use the nextLink property in the response to
+ * get the next page of logical networks.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a LogicalNetwork list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Lists all of the logical networks in the specified subscription. Use the nextLink property in the response to get
+ * the next page of logical networks.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a LogicalNetwork list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the logical networks in the specified subscription. Use the nextLink property in the response to get
+ * the next page of logical networks.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a LogicalNetwork list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/MarketplaceGalleryImagesClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/MarketplaceGalleryImagesClient.java
new file mode 100644
index 000000000000..4c738cbfff07
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/MarketplaceGalleryImagesClient.java
@@ -0,0 +1,286 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.MarketplaceGalleryImageInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.MarketplaceGalleryImageTagsUpdate;
+
+/**
+ * An instance of this class provides access to all the operations defined in MarketplaceGalleryImagesClient.
+ */
+public interface MarketplaceGalleryImagesClient {
+ /**
+ * Gets a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 marketplace gallery image along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName,
+ String marketplaceGalleryImageName, Context context);
+
+ /**
+ * Gets a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 marketplace gallery image.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MarketplaceGalleryImageInner getByResourceGroup(String resourceGroupName, String marketplaceGalleryImageName);
+
+ /**
+ * The operation to create or update a marketplace gallery image. Please note some properties can be set only during
+ * marketplace gallery image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 marketplace gallery image resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MarketplaceGalleryImageInner> beginCreateOrUpdate(
+ String resourceGroupName, String marketplaceGalleryImageName, MarketplaceGalleryImageInner resource);
+
+ /**
+ * The operation to create or update a marketplace gallery image. Please note some properties can be set only during
+ * marketplace gallery image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 marketplace gallery image resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MarketplaceGalleryImageInner> beginCreateOrUpdate(
+ String resourceGroupName, String marketplaceGalleryImageName, MarketplaceGalleryImageInner resource,
+ Context context);
+
+ /**
+ * The operation to create or update a marketplace gallery image. Please note some properties can be set only during
+ * marketplace gallery image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the marketplace gallery image resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MarketplaceGalleryImageInner createOrUpdate(String resourceGroupName, String marketplaceGalleryImageName,
+ MarketplaceGalleryImageInner resource);
+
+ /**
+ * The operation to create or update a marketplace gallery image. Please note some properties can be set only during
+ * marketplace gallery image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the marketplace gallery image resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MarketplaceGalleryImageInner createOrUpdate(String resourceGroupName, String marketplaceGalleryImageName,
+ MarketplaceGalleryImageInner resource, Context context);
+
+ /**
+ * The operation to update a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 marketplace gallery image resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MarketplaceGalleryImageInner> beginUpdate(
+ String resourceGroupName, String marketplaceGalleryImageName, MarketplaceGalleryImageTagsUpdate properties);
+
+ /**
+ * The operation to update a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 marketplace gallery image resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MarketplaceGalleryImageInner> beginUpdate(
+ String resourceGroupName, String marketplaceGalleryImageName, MarketplaceGalleryImageTagsUpdate properties,
+ Context context);
+
+ /**
+ * The operation to update a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the marketplace gallery image resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MarketplaceGalleryImageInner update(String resourceGroupName, String marketplaceGalleryImageName,
+ MarketplaceGalleryImageTagsUpdate properties);
+
+ /**
+ * The operation to update a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the marketplace gallery image resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MarketplaceGalleryImageInner update(String resourceGroupName, String marketplaceGalleryImageName,
+ MarketplaceGalleryImageTagsUpdate properties, Context context);
+
+ /**
+ * The operation to delete a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 marketplaceGalleryImageName);
+
+ /**
+ * The operation to delete a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 marketplaceGalleryImageName,
+ Context context);
+
+ /**
+ * The operation to delete a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 marketplaceGalleryImageName);
+
+ /**
+ * The operation to delete a marketplace gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param marketplaceGalleryImageName Name of the marketplace gallery image.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 marketplaceGalleryImageName, Context context);
+
+ /**
+ * Lists all of the marketplace gallery images in the specified resource group. Use the nextLink property in the
+ * response to get the next page of marketplace gallery images.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a MarketplaceGalleryImage list operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all of the marketplace gallery images in the specified resource group. Use the nextLink property in the
+ * response to get the next page of marketplace gallery images.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a MarketplaceGalleryImage list operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Lists all of the marketplace gallery images in the specified subscription. Use the nextLink property in the
+ * response to get the next page of marketplace gallery images.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a MarketplaceGalleryImage list operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the marketplace gallery images in the specified subscription. Use the nextLink property in the
+ * response to get the next page of marketplace gallery images.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a MarketplaceGalleryImage list operation as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/NetworkInterfacesClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/NetworkInterfacesClient.java
new file mode 100644
index 000000000000..3a0217fe8b0a
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/NetworkInterfacesClient.java
@@ -0,0 +1,280 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.NetworkInterfaceInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.NetworkInterfacesUpdateRequest;
+
+/**
+ * An instance of this class provides access to all the operations defined in NetworkInterfacesClient.
+ */
+public interface NetworkInterfacesClient {
+ /**
+ * Gets a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 network interface along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName,
+ String networkInterfaceName, Context context);
+
+ /**
+ * Gets a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 network interface.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkInterfaceInner getByResourceGroup(String resourceGroupName, String networkInterfaceName);
+
+ /**
+ * The operation to create or update a network interface. Please note some properties can be set only during network
+ * interface creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 network interface resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkInterfaceInner> beginCreateOrUpdate(String resourceGroupName,
+ String networkInterfaceName, NetworkInterfaceInner resource);
+
+ /**
+ * The operation to create or update a network interface. Please note some properties can be set only during network
+ * interface creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 network interface resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkInterfaceInner> beginCreateOrUpdate(String resourceGroupName,
+ String networkInterfaceName, NetworkInterfaceInner resource, Context context);
+
+ /**
+ * The operation to create or update a network interface. Please note some properties can be set only during network
+ * interface creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network interface resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkInterfaceInner createOrUpdate(String resourceGroupName, String networkInterfaceName,
+ NetworkInterfaceInner resource);
+
+ /**
+ * The operation to create or update a network interface. Please note some properties can be set only during network
+ * interface creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network interface resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkInterfaceInner createOrUpdate(String resourceGroupName, String networkInterfaceName,
+ NetworkInterfaceInner resource, Context context);
+
+ /**
+ * The operation to update a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 network interface resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkInterfaceInner> beginUpdate(String resourceGroupName,
+ String networkInterfaceName, NetworkInterfacesUpdateRequest properties);
+
+ /**
+ * The operation to update a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 network interface resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkInterfaceInner> beginUpdate(String resourceGroupName,
+ String networkInterfaceName, NetworkInterfacesUpdateRequest properties, Context context);
+
+ /**
+ * The operation to update a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network interface resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkInterfaceInner update(String resourceGroupName, String networkInterfaceName,
+ NetworkInterfacesUpdateRequest properties);
+
+ /**
+ * The operation to update a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network interface resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkInterfaceInner update(String resourceGroupName, String networkInterfaceName,
+ NetworkInterfacesUpdateRequest properties, Context context);
+
+ /**
+ * The operation to delete a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkInterfaceName);
+
+ /**
+ * The operation to delete a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkInterfaceName,
+ Context context);
+
+ /**
+ * The operation to delete a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 networkInterfaceName);
+
+ /**
+ * The operation to delete a network interface.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkInterfaceName Name of the network interface.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 networkInterfaceName, Context context);
+
+ /**
+ * Lists all of the network interfaces in the specified resource group. Use the nextLink property in the response to
+ * get the next page of network interfaces.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a NetworkInterface list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all of the network interfaces in the specified resource group. Use the nextLink property in the response to
+ * get the next page of network interfaces.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a NetworkInterface list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Lists all of the network interfaces in the specified subscription. Use the nextLink property in the response to
+ * get the next page of network interfaces.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a NetworkInterface list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the network interfaces in the specified subscription. Use the nextLink property in the response to
+ * get the next page of network interfaces.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a NetworkInterface list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/NetworkSecurityGroupsClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/NetworkSecurityGroupsClient.java
new file mode 100644
index 000000000000..301f3b7f8d5c
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/NetworkSecurityGroupsClient.java
@@ -0,0 +1,273 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.NetworkSecurityGroupInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.NetworkSecurityGroupTagsUpdate;
+
+/**
+ * An instance of this class provides access to all the operations defined in NetworkSecurityGroupsClient.
+ */
+public interface NetworkSecurityGroupsClient {
+ /**
+ * Gets the specified network security group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified network security group along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName,
+ String networkSecurityGroupName, Context context);
+
+ /**
+ * Gets the specified network security group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified network security group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkSecurityGroupInner getByResourceGroup(String resourceGroupName, String networkSecurityGroupName);
+
+ /**
+ * Creates or updates a network security group in the specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkSecurityGroup resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkSecurityGroupInner> beginCreateOrUpdate(
+ String resourceGroupName, String networkSecurityGroupName, NetworkSecurityGroupInner resource);
+
+ /**
+ * Creates or updates a network security group in the specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkSecurityGroup resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkSecurityGroupInner> beginCreateOrUpdate(
+ String resourceGroupName, String networkSecurityGroupName, NetworkSecurityGroupInner resource, Context context);
+
+ /**
+ * Creates or updates a network security group in the specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return networkSecurityGroup resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkSecurityGroupInner createOrUpdate(String resourceGroupName, String networkSecurityGroupName,
+ NetworkSecurityGroupInner resource);
+
+ /**
+ * Creates or updates a network security group in the specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return networkSecurityGroup resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkSecurityGroupInner createOrUpdate(String resourceGroupName, String networkSecurityGroupName,
+ NetworkSecurityGroupInner resource, Context context);
+
+ /**
+ * Updates a network security group tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkSecurityGroup resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkSecurityGroupInner> beginUpdateTags(
+ String resourceGroupName, String networkSecurityGroupName, NetworkSecurityGroupTagsUpdate properties);
+
+ /**
+ * Updates a network security group tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkSecurityGroup resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkSecurityGroupInner> beginUpdateTags(
+ String resourceGroupName, String networkSecurityGroupName, NetworkSecurityGroupTagsUpdate properties,
+ Context context);
+
+ /**
+ * Updates a network security group tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return networkSecurityGroup resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkSecurityGroupInner updateTags(String resourceGroupName, String networkSecurityGroupName,
+ NetworkSecurityGroupTagsUpdate properties);
+
+ /**
+ * Updates a network security group tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return networkSecurityGroup resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkSecurityGroupInner updateTags(String resourceGroupName, String networkSecurityGroupName,
+ NetworkSecurityGroupTagsUpdate properties, Context context);
+
+ /**
+ * Deletes the specified network security group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String networkSecurityGroupName);
+
+ /**
+ * Deletes the specified network security group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String networkSecurityGroupName,
+ Context context);
+
+ /**
+ * Deletes the specified network security group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String networkSecurityGroupName);
+
+ /**
+ * Deletes the specified network security group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String networkSecurityGroupName, Context context);
+
+ /**
+ * Gets all network security groups in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all network security groups in a resource group as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Gets all network security groups in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all network security groups in a resource group as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets all network security groups in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all network security groups in a subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets all network security groups in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all network security groups in a subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/SecurityRulesClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/SecurityRulesClient.java
new file mode 100644
index 000000000000..8bf1e30bd173
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/SecurityRulesClient.java
@@ -0,0 +1,202 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.SecurityRuleInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in SecurityRulesClient.
+ */
+public interface SecurityRulesClient {
+ /**
+ * Gets the specified security rule.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified security rule along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String networkSecurityGroupName,
+ String securityRuleName, Context context);
+
+ /**
+ * Gets the specified security rule.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified security rule.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecurityRuleInner get(String resourceGroupName, String networkSecurityGroupName, String securityRuleName);
+
+ /**
+ * Creates or updates a security rule in the specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 security Rule resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SecurityRuleInner> beginCreateOrUpdate(String resourceGroupName,
+ String networkSecurityGroupName, String securityRuleName, SecurityRuleInner resource);
+
+ /**
+ * Creates or updates a security rule in the specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 security Rule resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SecurityRuleInner> beginCreateOrUpdate(String resourceGroupName,
+ String networkSecurityGroupName, String securityRuleName, SecurityRuleInner resource, Context context);
+
+ /**
+ * Creates or updates a security rule in the specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return security Rule resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecurityRuleInner createOrUpdate(String resourceGroupName, String networkSecurityGroupName, String securityRuleName,
+ SecurityRuleInner resource);
+
+ /**
+ * Creates or updates a security rule in the specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return security Rule resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecurityRuleInner createOrUpdate(String resourceGroupName, String networkSecurityGroupName, String securityRuleName,
+ SecurityRuleInner resource, Context context);
+
+ /**
+ * Deletes the specified security rule.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkSecurityGroupName,
+ String securityRuleName);
+
+ /**
+ * Deletes the specified security rule.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkSecurityGroupName,
+ String securityRuleName, Context context);
+
+ /**
+ * Deletes the specified security rule.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 networkSecurityGroupName, String securityRuleName);
+
+ /**
+ * Deletes the specified security rule.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security group.
+ * @param securityRuleName Name of the security rule.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 networkSecurityGroupName, String securityRuleName, Context context);
+
+ /**
+ * Gets all security rules in a Network Security Group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security 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 all security rules in a Network Security Group as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByNetworkSecurityGroup(String resourceGroupName,
+ String networkSecurityGroupName);
+
+ /**
+ * Gets all security rules in a Network Security Group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkSecurityGroupName Name of the network security 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 all security rules in a Network Security Group as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByNetworkSecurityGroup(String resourceGroupName,
+ String networkSecurityGroupName, Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/StorageContainersClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/StorageContainersClient.java
new file mode 100644
index 000000000000..f99ffccc2e68
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/StorageContainersClient.java
@@ -0,0 +1,280 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.StorageContainerInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.StorageContainerTagsUpdate;
+
+/**
+ * An instance of this class provides access to all the operations defined in StorageContainersClient.
+ */
+public interface StorageContainersClient {
+ /**
+ * Gets a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 storage container along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName,
+ String storageContainerName, Context context);
+
+ /**
+ * Gets a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 storage container.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageContainerInner getByResourceGroup(String resourceGroupName, String storageContainerName);
+
+ /**
+ * The operation to create or update a storage container. Please note some properties can be set only during storage
+ * container creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 storage container resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, StorageContainerInner> beginCreateOrUpdate(String resourceGroupName,
+ String storageContainerName, StorageContainerInner resource);
+
+ /**
+ * The operation to create or update a storage container. Please note some properties can be set only during storage
+ * container creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 storage container resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, StorageContainerInner> beginCreateOrUpdate(String resourceGroupName,
+ String storageContainerName, StorageContainerInner resource, Context context);
+
+ /**
+ * The operation to create or update a storage container. Please note some properties can be set only during storage
+ * container creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage container resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageContainerInner createOrUpdate(String resourceGroupName, String storageContainerName,
+ StorageContainerInner resource);
+
+ /**
+ * The operation to create or update a storage container. Please note some properties can be set only during storage
+ * container creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage container resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageContainerInner createOrUpdate(String resourceGroupName, String storageContainerName,
+ StorageContainerInner resource, Context context);
+
+ /**
+ * The operation to update a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 storage container resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, StorageContainerInner> beginUpdate(String resourceGroupName,
+ String storageContainerName, StorageContainerTagsUpdate properties);
+
+ /**
+ * The operation to update a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 storage container resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, StorageContainerInner> beginUpdate(String resourceGroupName,
+ String storageContainerName, StorageContainerTagsUpdate properties, Context context);
+
+ /**
+ * The operation to update a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage container resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageContainerInner update(String resourceGroupName, String storageContainerName,
+ StorageContainerTagsUpdate properties);
+
+ /**
+ * The operation to update a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage container resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageContainerInner update(String resourceGroupName, String storageContainerName,
+ StorageContainerTagsUpdate properties, Context context);
+
+ /**
+ * The operation to delete a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 storageContainerName);
+
+ /**
+ * The operation to delete a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 storageContainerName,
+ Context context);
+
+ /**
+ * The operation to delete a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 storageContainerName);
+
+ /**
+ * The operation to delete a storage container.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param storageContainerName Name of the storage container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 storageContainerName, Context context);
+
+ /**
+ * Lists all of the storage containers in the specified resource group. Use the nextLink property in the response to
+ * get the next page of storage containers.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a StorageContainer list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all of the storage containers in the specified resource group. Use the nextLink property in the response to
+ * get the next page of storage containers.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a StorageContainer list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Lists all of the storage containers in the specified subscription. Use the nextLink property in the response to
+ * get the next page of storage containers.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a StorageContainer list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the storage containers in the specified subscription. Use the nextLink property in the response to
+ * get the next page of storage containers.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a StorageContainer list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/VirtualHardDisksClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/VirtualHardDisksClient.java
new file mode 100644
index 000000000000..b12052011e7c
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/VirtualHardDisksClient.java
@@ -0,0 +1,344 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.VirtualHardDiskInner;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.models.VirtualHardDiskUploadResponseInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.VirtualHardDiskUploadRequest;
+import com.azure.resourcemanager.azurestackhci.vm.models.VirtualHardDisksUpdateRequest;
+
+/**
+ * An instance of this class provides access to all the operations defined in VirtualHardDisksClient.
+ */
+public interface VirtualHardDisksClient {
+ /**
+ * Gets a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a virtual hard disk along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String virtualHardDiskName,
+ Context context);
+
+ /**
+ * Gets a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a virtual hard disk.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualHardDiskInner getByResourceGroup(String resourceGroupName, String virtualHardDiskName);
+
+ /**
+ * The operation to create or update a virtual hard disk. Please note some properties can be set only during virtual
+ * hard disk creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtual hard disk resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualHardDiskInner> beginCreateOrUpdate(String resourceGroupName,
+ String virtualHardDiskName, VirtualHardDiskInner resource);
+
+ /**
+ * The operation to create or update a virtual hard disk. Please note some properties can be set only during virtual
+ * hard disk creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtual hard disk resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualHardDiskInner> beginCreateOrUpdate(String resourceGroupName,
+ String virtualHardDiskName, VirtualHardDiskInner resource, Context context);
+
+ /**
+ * The operation to create or update a virtual hard disk. Please note some properties can be set only during virtual
+ * hard disk creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the virtual hard disk resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualHardDiskInner createOrUpdate(String resourceGroupName, String virtualHardDiskName,
+ VirtualHardDiskInner resource);
+
+ /**
+ * The operation to create or update a virtual hard disk. Please note some properties can be set only during virtual
+ * hard disk creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the virtual hard disk resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualHardDiskInner createOrUpdate(String resourceGroupName, String virtualHardDiskName,
+ VirtualHardDiskInner resource, Context context);
+
+ /**
+ * The operation to update a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtual hard disk resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualHardDiskInner> beginUpdate(String resourceGroupName,
+ String virtualHardDiskName, VirtualHardDisksUpdateRequest properties);
+
+ /**
+ * The operation to update a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtual hard disk resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualHardDiskInner> beginUpdate(String resourceGroupName,
+ String virtualHardDiskName, VirtualHardDisksUpdateRequest properties, Context context);
+
+ /**
+ * The operation to update a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the virtual hard disk resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualHardDiskInner update(String resourceGroupName, String virtualHardDiskName,
+ VirtualHardDisksUpdateRequest properties);
+
+ /**
+ * The operation to update a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the virtual hard disk resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualHardDiskInner update(String resourceGroupName, String virtualHardDiskName,
+ VirtualHardDisksUpdateRequest properties, Context context);
+
+ /**
+ * The operation to delete a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtualHardDiskName);
+
+ /**
+ * The operation to delete a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtualHardDiskName,
+ Context context);
+
+ /**
+ * The operation to delete a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualHardDiskName);
+
+ /**
+ * The operation to delete a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 virtualHardDiskName, Context context);
+
+ /**
+ * Lists all of the virtual hard disks in the specified resource group. Use the nextLink property in the response to
+ * get the next page of virtual hard disks.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a VirtualHardDisk list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all of the virtual hard disks in the specified resource group. Use the nextLink property in the response to
+ * get the next page of virtual hard disks.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a VirtualHardDisk list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Lists all of the virtual hard disks in the specified subscription. Use the nextLink property in the response to
+ * get the next page of virtual hard disks.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a VirtualHardDisk list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the virtual hard disks in the specified subscription. Use the nextLink property in the response to
+ * get the next page of virtual hard disks.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a VirtualHardDisk list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * The operation to upload a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param body The content of the action request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualHardDiskUploadResponseInner>
+ beginUpload(String resourceGroupName, String virtualHardDiskName, VirtualHardDiskUploadRequest body);
+
+ /**
+ * The operation to upload a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param body The content of the action request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualHardDiskUploadResponseInner> beginUpload(
+ String resourceGroupName, String virtualHardDiskName, VirtualHardDiskUploadRequest body, Context context);
+
+ /**
+ * The operation to upload a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param body The content of the action request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualHardDiskUploadResponseInner upload(String resourceGroupName, String virtualHardDiskName,
+ VirtualHardDiskUploadRequest body);
+
+ /**
+ * The operation to upload a virtual hard disk.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param virtualHardDiskName Name of the virtual hard disk.
+ * @param body The content of the action request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualHardDiskUploadResponseInner upload(String resourceGroupName, String virtualHardDiskName,
+ VirtualHardDiskUploadRequest body, Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/VirtualMachineInstancesClient.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/VirtualMachineInstancesClient.java
new file mode 100644
index 000000000000..b0df769b500f
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/VirtualMachineInstancesClient.java
@@ -0,0 +1,476 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.azurestackhci.vm.fluent.models.VirtualMachineInstanceInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.VirtualMachineInstanceUpdateRequest;
+
+/**
+ * An instance of this class provides access to all the operations defined in VirtualMachineInstancesClient.
+ */
+public interface VirtualMachineInstancesClient {
+ /**
+ * Gets a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a virtual machine instance along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceUri, Context context);
+
+ /**
+ * Gets a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a virtual machine instance.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInstanceInner get(String resourceUri);
+
+ /**
+ * The operation to create or update a virtual machine instance. Please note some properties can be set only during
+ * virtual machine instance creation.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtual machine instance resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInstanceInner>
+ beginCreateOrUpdate(String resourceUri, VirtualMachineInstanceInner resource);
+
+ /**
+ * The operation to create or update a virtual machine instance. Please note some properties can be set only during
+ * virtual machine instance creation.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtual machine instance resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInstanceInner>
+ beginCreateOrUpdate(String resourceUri, VirtualMachineInstanceInner resource, Context context);
+
+ /**
+ * The operation to create or update a virtual machine instance. Please note some properties can be set only during
+ * virtual machine instance creation.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param resource Resource create parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the virtual machine instance resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInstanceInner createOrUpdate(String resourceUri, VirtualMachineInstanceInner resource);
+
+ /**
+ * The operation to create or update a virtual machine instance. Please note some properties can be set only during
+ * virtual machine instance creation.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param resource Resource create parameters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the virtual machine instance resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInstanceInner createOrUpdate(String resourceUri, VirtualMachineInstanceInner resource,
+ Context context);
+
+ /**
+ * The operation to update a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtual machine instance resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInstanceInner> beginUpdate(String resourceUri,
+ VirtualMachineInstanceUpdateRequest properties);
+
+ /**
+ * The operation to update a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 virtual machine instance resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInstanceInner> beginUpdate(String resourceUri,
+ VirtualMachineInstanceUpdateRequest properties, Context context);
+
+ /**
+ * The operation to update a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param properties The resource properties to be updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the virtual machine instance resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInstanceInner update(String resourceUri, VirtualMachineInstanceUpdateRequest properties);
+
+ /**
+ * The operation to update a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param properties The resource properties to be updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the virtual machine instance resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInstanceInner update(String resourceUri, VirtualMachineInstanceUpdateRequest properties,
+ Context context);
+
+ /**
+ * The operation to delete a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceUri);
+
+ /**
+ * The operation to delete a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceUri, Context context);
+
+ /**
+ * The operation to delete a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceUri);
+
+ /**
+ * The operation to delete a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceUri, Context context);
+
+ /**
+ * Lists all of the virtual machine instances within the specified parent resource.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a VirtualMachineInstance list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceUri);
+
+ /**
+ * Lists all of the virtual machine instances within the specified parent resource.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response of a VirtualMachineInstance list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceUri, Context context);
+
+ /**
+ * The operation to start a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStart(String resourceUri);
+
+ /**
+ * The operation to start a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStart(String resourceUri, Context context);
+
+ /**
+ * The operation to start a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String resourceUri);
+
+ /**
+ * The operation to start a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String resourceUri, Context context);
+
+ /**
+ * The operation to stop a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStop(String resourceUri);
+
+ /**
+ * The operation to stop a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStop(String resourceUri, Context context);
+
+ /**
+ * The operation to stop a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceUri);
+
+ /**
+ * The operation to stop a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceUri, Context context);
+
+ /**
+ * The operation to restart a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginRestart(String resourceUri);
+
+ /**
+ * The operation to restart a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginRestart(String resourceUri, Context context);
+
+ /**
+ * The operation to restart a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void restart(String resourceUri);
+
+ /**
+ * The operation to restart a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void restart(String resourceUri, Context context);
+
+ /**
+ * The operation to pause a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginPause(String resourceUri);
+
+ /**
+ * The operation to pause a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginPause(String resourceUri, Context context);
+
+ /**
+ * The operation to pause a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void pause(String resourceUri);
+
+ /**
+ * The operation to pause a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void pause(String resourceUri, Context context);
+
+ /**
+ * The operation to save a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginSave(String resourceUri);
+
+ /**
+ * The operation to save a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginSave(String resourceUri, Context context);
+
+ /**
+ * The operation to save a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void save(String resourceUri);
+
+ /**
+ * The operation to save a virtual machine instance.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void save(String resourceUri, Context context);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/AttestationStatusInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/AttestationStatusInner.java
new file mode 100644
index 000000000000..51d660e03438
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/AttestationStatusInner.java
@@ -0,0 +1,155 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.AttestationStatusProperties;
+import java.io.IOException;
+
+/**
+ * The attestation status of the virtual machine.
+ */
+@Immutable
+public final class AttestationStatusInner extends ProxyResource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private AttestationStatusProperties properties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AttestationStatusInner class.
+ */
+ private AttestationStatusInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public AttestationStatusProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AttestationStatusInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AttestationStatusInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AttestationStatusInner.
+ */
+ public static AttestationStatusInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AttestationStatusInner deserializedAttestationStatusInner = new AttestationStatusInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAttestationStatusInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAttestationStatusInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAttestationStatusInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAttestationStatusInner.properties = AttestationStatusProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedAttestationStatusInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAttestationStatusInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GalleryImageInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GalleryImageInner.java
new file mode 100644
index 000000000000..84ff92f68524
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GalleryImageInner.java
@@ -0,0 +1,224 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.GalleryImageProperties;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * The gallery images resource definition.
+ */
+@Fluent
+public final class GalleryImageInner extends Resource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private GalleryImageProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of GalleryImageInner class.
+ */
+ public GalleryImageInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public GalleryImageProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the GalleryImageInner object itself.
+ */
+ public GalleryImageInner withProperties(GalleryImageProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the GalleryImageInner object itself.
+ */
+ public GalleryImageInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public GalleryImageInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public GalleryImageInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of GalleryImageInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of GalleryImageInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the GalleryImageInner.
+ */
+ public static GalleryImageInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ GalleryImageInner deserializedGalleryImageInner = new GalleryImageInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedGalleryImageInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedGalleryImageInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedGalleryImageInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedGalleryImageInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedGalleryImageInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedGalleryImageInner.properties = GalleryImageProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedGalleryImageInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedGalleryImageInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedGalleryImageInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GalleryImageVersionProperties.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GalleryImageVersionProperties.java
new file mode 100644
index 000000000000..81044449c0a8
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GalleryImageVersionProperties.java
@@ -0,0 +1,107 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.GalleryImageVersionStorageProfile;
+import java.io.IOException;
+
+/**
+ * Describes the properties of a gallery image version.
+ */
+@Fluent
+public final class GalleryImageVersionProperties implements JsonSerializable {
+ /*
+ * This is the storage profile of a Gallery Image Version.
+ */
+ private GalleryImageVersionStorageProfile storageProfile;
+
+ /**
+ * Creates an instance of GalleryImageVersionProperties class.
+ */
+ public GalleryImageVersionProperties() {
+ }
+
+ /**
+ * Get the storageProfile property: This is the storage profile of a Gallery Image Version.
+ *
+ * @return the storageProfile value.
+ */
+ public GalleryImageVersionStorageProfile storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set the storageProfile property: This is the storage profile of a Gallery Image Version.
+ *
+ * @param storageProfile the storageProfile value to set.
+ * @return the GalleryImageVersionProperties object itself.
+ */
+ public GalleryImageVersionProperties withStorageProfile(GalleryImageVersionStorageProfile storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (storageProfile() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Missing required property storageProfile in model GalleryImageVersionProperties"));
+ } else {
+ storageProfile().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(GalleryImageVersionProperties.class);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("storageProfile", this.storageProfile);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of GalleryImageVersionProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of GalleryImageVersionProperties if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the GalleryImageVersionProperties.
+ */
+ public static GalleryImageVersionProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ GalleryImageVersionProperties deserializedGalleryImageVersionProperties
+ = new GalleryImageVersionProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("storageProfile".equals(fieldName)) {
+ deserializedGalleryImageVersionProperties.storageProfile
+ = GalleryImageVersionStorageProfile.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedGalleryImageVersionProperties;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GuestAgentInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GuestAgentInner.java
new file mode 100644
index 000000000000..3d0abfc98431
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/GuestAgentInner.java
@@ -0,0 +1,166 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.GuestAgentProperties;
+import java.io.IOException;
+
+/**
+ * Defines the GuestAgent.
+ */
+@Fluent
+public final class GuestAgentInner extends ProxyResource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private GuestAgentProperties properties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of GuestAgentInner class.
+ */
+ public GuestAgentInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public GuestAgentProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the GuestAgentInner object itself.
+ */
+ public GuestAgentInner withProperties(GuestAgentProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of GuestAgentInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of GuestAgentInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the GuestAgentInner.
+ */
+ public static GuestAgentInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ GuestAgentInner deserializedGuestAgentInner = new GuestAgentInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedGuestAgentInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedGuestAgentInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedGuestAgentInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedGuestAgentInner.properties = GuestAgentProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedGuestAgentInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedGuestAgentInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/HybridIdentityMetadataInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/HybridIdentityMetadataInner.java
new file mode 100644
index 000000000000..1a7ce787757b
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/HybridIdentityMetadataInner.java
@@ -0,0 +1,156 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.HybridIdentityMetadataProperties;
+import java.io.IOException;
+
+/**
+ * Defines the HybridIdentityMetadata.
+ */
+@Immutable
+public final class HybridIdentityMetadataInner extends ProxyResource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private HybridIdentityMetadataProperties properties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of HybridIdentityMetadataInner class.
+ */
+ private HybridIdentityMetadataInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public HybridIdentityMetadataProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of HybridIdentityMetadataInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of HybridIdentityMetadataInner if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the HybridIdentityMetadataInner.
+ */
+ public static HybridIdentityMetadataInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ HybridIdentityMetadataInner deserializedHybridIdentityMetadataInner = new HybridIdentityMetadataInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedHybridIdentityMetadataInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedHybridIdentityMetadataInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedHybridIdentityMetadataInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedHybridIdentityMetadataInner.properties
+ = HybridIdentityMetadataProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedHybridIdentityMetadataInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedHybridIdentityMetadataInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/LogicalNetworkInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/LogicalNetworkInner.java
new file mode 100644
index 000000000000..e29179f4763f
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/LogicalNetworkInner.java
@@ -0,0 +1,224 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.LogicalNetworkProperties;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * The logical network resource definition.
+ */
+@Fluent
+public final class LogicalNetworkInner extends Resource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private LogicalNetworkProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of LogicalNetworkInner class.
+ */
+ public LogicalNetworkInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public LogicalNetworkProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the LogicalNetworkInner object itself.
+ */
+ public LogicalNetworkInner withProperties(LogicalNetworkProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the LogicalNetworkInner object itself.
+ */
+ public LogicalNetworkInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public LogicalNetworkInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public LogicalNetworkInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of LogicalNetworkInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of LogicalNetworkInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the LogicalNetworkInner.
+ */
+ public static LogicalNetworkInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ LogicalNetworkInner deserializedLogicalNetworkInner = new LogicalNetworkInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedLogicalNetworkInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedLogicalNetworkInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedLogicalNetworkInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedLogicalNetworkInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedLogicalNetworkInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedLogicalNetworkInner.properties = LogicalNetworkProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedLogicalNetworkInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedLogicalNetworkInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedLogicalNetworkInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/MarketplaceGalleryImageInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/MarketplaceGalleryImageInner.java
new file mode 100644
index 000000000000..fa8e6f7a1754
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/MarketplaceGalleryImageInner.java
@@ -0,0 +1,225 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.MarketplaceGalleryImageProperties;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * The marketplace gallery image resource definition.
+ */
+@Fluent
+public final class MarketplaceGalleryImageInner extends Resource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private MarketplaceGalleryImageProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of MarketplaceGalleryImageInner class.
+ */
+ public MarketplaceGalleryImageInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public MarketplaceGalleryImageProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the MarketplaceGalleryImageInner object itself.
+ */
+ public MarketplaceGalleryImageInner withProperties(MarketplaceGalleryImageProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the MarketplaceGalleryImageInner object itself.
+ */
+ public MarketplaceGalleryImageInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public MarketplaceGalleryImageInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public MarketplaceGalleryImageInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of MarketplaceGalleryImageInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of MarketplaceGalleryImageInner if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the MarketplaceGalleryImageInner.
+ */
+ public static MarketplaceGalleryImageInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ MarketplaceGalleryImageInner deserializedMarketplaceGalleryImageInner = new MarketplaceGalleryImageInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedMarketplaceGalleryImageInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedMarketplaceGalleryImageInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedMarketplaceGalleryImageInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedMarketplaceGalleryImageInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedMarketplaceGalleryImageInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedMarketplaceGalleryImageInner.properties
+ = MarketplaceGalleryImageProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedMarketplaceGalleryImageInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedMarketplaceGalleryImageInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedMarketplaceGalleryImageInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/NetworkInterfaceInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/NetworkInterfaceInner.java
new file mode 100644
index 000000000000..c3f792adffa6
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/NetworkInterfaceInner.java
@@ -0,0 +1,224 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.NetworkInterfaceProperties;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * The network interface resource definition.
+ */
+@Fluent
+public final class NetworkInterfaceInner extends Resource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private NetworkInterfaceProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of NetworkInterfaceInner class.
+ */
+ public NetworkInterfaceInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public NetworkInterfaceProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the NetworkInterfaceInner object itself.
+ */
+ public NetworkInterfaceInner withProperties(NetworkInterfaceProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the NetworkInterfaceInner object itself.
+ */
+ public NetworkInterfaceInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public NetworkInterfaceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public NetworkInterfaceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of NetworkInterfaceInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of NetworkInterfaceInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the NetworkInterfaceInner.
+ */
+ public static NetworkInterfaceInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ NetworkInterfaceInner deserializedNetworkInterfaceInner = new NetworkInterfaceInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedNetworkInterfaceInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedNetworkInterfaceInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedNetworkInterfaceInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedNetworkInterfaceInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedNetworkInterfaceInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedNetworkInterfaceInner.properties = NetworkInterfaceProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedNetworkInterfaceInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedNetworkInterfaceInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedNetworkInterfaceInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/NetworkSecurityGroupInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/NetworkSecurityGroupInner.java
new file mode 100644
index 000000000000..350656c34730
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/NetworkSecurityGroupInner.java
@@ -0,0 +1,246 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.NetworkSecurityGroupProperties;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * NetworkSecurityGroup resource.
+ */
+@Fluent
+public final class NetworkSecurityGroupInner extends Resource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private NetworkSecurityGroupProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * If eTag is provided in the response body, it may also be provided as a header per the normal etag convention.
+ * Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity
+ * tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section
+ * 14.27) header fields.
+ */
+ private String eTag;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of NetworkSecurityGroupInner class.
+ */
+ public NetworkSecurityGroupInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public NetworkSecurityGroupProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the NetworkSecurityGroupInner object itself.
+ */
+ public NetworkSecurityGroupInner withProperties(NetworkSecurityGroupProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the NetworkSecurityGroupInner object itself.
+ */
+ public NetworkSecurityGroupInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the eTag property: If eTag is provided in the response body, it may also be provided as a header per the
+ * normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource.
+ * HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26),
+ * and If-Range (section 14.27) header fields.
+ *
+ * @return the eTag value.
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public NetworkSecurityGroupInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public NetworkSecurityGroupInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of NetworkSecurityGroupInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of NetworkSecurityGroupInner if the JsonReader was pointing to an instance of it, or null if
+ * it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the NetworkSecurityGroupInner.
+ */
+ public static NetworkSecurityGroupInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ NetworkSecurityGroupInner deserializedNetworkSecurityGroupInner = new NetworkSecurityGroupInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedNetworkSecurityGroupInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedNetworkSecurityGroupInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedNetworkSecurityGroupInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedNetworkSecurityGroupInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedNetworkSecurityGroupInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedNetworkSecurityGroupInner.properties = NetworkSecurityGroupProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedNetworkSecurityGroupInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("eTag".equals(fieldName)) {
+ deserializedNetworkSecurityGroupInner.eTag = reader.getString();
+ } else if ("systemData".equals(fieldName)) {
+ deserializedNetworkSecurityGroupInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedNetworkSecurityGroupInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/RouteProperties.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/RouteProperties.java
new file mode 100644
index 000000000000..3a798eedeb73
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/RouteProperties.java
@@ -0,0 +1,124 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+
+/**
+ * RoutePropertiesFormat - Route resource.
+ */
+@Fluent
+public final class RouteProperties implements JsonSerializable {
+ /*
+ * The destination CIDR to which the route applies.
+ */
+ private String addressPrefix;
+
+ /*
+ * The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type
+ * is VirtualAppliance.
+ */
+ private String nextHopIpAddress;
+
+ /**
+ * Creates an instance of RouteProperties class.
+ */
+ public RouteProperties() {
+ }
+
+ /**
+ * Get the addressPrefix property: The destination CIDR to which the route applies.
+ *
+ * @return the addressPrefix value.
+ */
+ public String addressPrefix() {
+ return this.addressPrefix;
+ }
+
+ /**
+ * Set the addressPrefix property: The destination CIDR to which the route applies.
+ *
+ * @param addressPrefix the addressPrefix value to set.
+ * @return the RouteProperties object itself.
+ */
+ public RouteProperties withAddressPrefix(String addressPrefix) {
+ this.addressPrefix = addressPrefix;
+ return this;
+ }
+
+ /**
+ * Get the nextHopIpAddress property: The IP address packets should be forwarded to. Next hop values are only
+ * allowed in routes where the next hop type is VirtualAppliance.
+ *
+ * @return the nextHopIpAddress value.
+ */
+ public String nextHopIpAddress() {
+ return this.nextHopIpAddress;
+ }
+
+ /**
+ * Set the nextHopIpAddress property: The IP address packets should be forwarded to. Next hop values are only
+ * allowed in routes where the next hop type is VirtualAppliance.
+ *
+ * @param nextHopIpAddress the nextHopIpAddress value to set.
+ * @return the RouteProperties object itself.
+ */
+ public RouteProperties withNextHopIpAddress(String nextHopIpAddress) {
+ this.nextHopIpAddress = nextHopIpAddress;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("addressPrefix", this.addressPrefix);
+ jsonWriter.writeStringField("nextHopIpAddress", this.nextHopIpAddress);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of RouteProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of RouteProperties if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IOException If an error occurs while reading the RouteProperties.
+ */
+ public static RouteProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ RouteProperties deserializedRouteProperties = new RouteProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("addressPrefix".equals(fieldName)) {
+ deserializedRouteProperties.addressPrefix = reader.getString();
+ } else if ("nextHopIpAddress".equals(fieldName)) {
+ deserializedRouteProperties.nextHopIpAddress = reader.getString();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedRouteProperties;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/RouteTableProperties.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/RouteTableProperties.java
new file mode 100644
index 000000000000..a498d6e3f4c3
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/RouteTableProperties.java
@@ -0,0 +1,99 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.Route;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * RouteTablePropertiesFormat - Route Table resource.
+ */
+@Fluent
+public final class RouteTableProperties implements JsonSerializable {
+ /*
+ * Collection of routes contained within a route table.
+ */
+ private List routes;
+
+ /**
+ * Creates an instance of RouteTableProperties class.
+ */
+ public RouteTableProperties() {
+ }
+
+ /**
+ * Get the routes property: Collection of routes contained within a route table.
+ *
+ * @return the routes value.
+ */
+ public List routes() {
+ return this.routes;
+ }
+
+ /**
+ * Set the routes property: Collection of routes contained within a route table.
+ *
+ * @param routes the routes value to set.
+ * @return the RouteTableProperties object itself.
+ */
+ public RouteTableProperties withRoutes(List routes) {
+ this.routes = routes;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (routes() != null) {
+ routes().forEach(e -> e.validate());
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeArrayField("routes", this.routes, (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of RouteTableProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of RouteTableProperties if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the RouteTableProperties.
+ */
+ public static RouteTableProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ RouteTableProperties deserializedRouteTableProperties = new RouteTableProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("routes".equals(fieldName)) {
+ List routes = reader.readArray(reader1 -> Route.fromJson(reader1));
+ deserializedRouteTableProperties.routes = routes;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedRouteTableProperties;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/SecurityRuleInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/SecurityRuleInner.java
new file mode 100644
index 000000000000..2971d5a6b5bf
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/SecurityRuleInner.java
@@ -0,0 +1,198 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.SecurityRuleProperties;
+import java.io.IOException;
+
+/**
+ * Security Rule resource.
+ */
+@Fluent
+public final class SecurityRuleInner extends ProxyResource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private SecurityRuleProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of SecurityRuleInner class.
+ */
+ public SecurityRuleInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public SecurityRuleProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the SecurityRuleInner object itself.
+ */
+ public SecurityRuleInner withProperties(SecurityRuleProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the SecurityRuleInner object itself.
+ */
+ public SecurityRuleInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of SecurityRuleInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of SecurityRuleInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the SecurityRuleInner.
+ */
+ public static SecurityRuleInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ SecurityRuleInner deserializedSecurityRuleInner = new SecurityRuleInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedSecurityRuleInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedSecurityRuleInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedSecurityRuleInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedSecurityRuleInner.properties = SecurityRuleProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedSecurityRuleInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedSecurityRuleInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedSecurityRuleInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/StorageContainerInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/StorageContainerInner.java
new file mode 100644
index 000000000000..24eaea942799
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/StorageContainerInner.java
@@ -0,0 +1,224 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.StorageContainerProperties;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * The storage container resource definition.
+ */
+@Fluent
+public final class StorageContainerInner extends Resource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private StorageContainerProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of StorageContainerInner class.
+ */
+ public StorageContainerInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public StorageContainerProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the StorageContainerInner object itself.
+ */
+ public StorageContainerInner withProperties(StorageContainerProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the StorageContainerInner object itself.
+ */
+ public StorageContainerInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public StorageContainerInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public StorageContainerInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of StorageContainerInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of StorageContainerInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the StorageContainerInner.
+ */
+ public static StorageContainerInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ StorageContainerInner deserializedStorageContainerInner = new StorageContainerInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedStorageContainerInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedStorageContainerInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedStorageContainerInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedStorageContainerInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedStorageContainerInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedStorageContainerInner.properties = StorageContainerProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedStorageContainerInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedStorageContainerInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedStorageContainerInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/SubnetProperties.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/SubnetProperties.java
new file mode 100644
index 000000000000..b64ecb7ae5b0
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/SubnetProperties.java
@@ -0,0 +1,321 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.IPPool;
+import com.azure.resourcemanager.azurestackhci.vm.models.IpAllocationMethodEnum;
+import com.azure.resourcemanager.azurestackhci.vm.models.NetworkSecurityGroupArmReference;
+import com.azure.resourcemanager.azurestackhci.vm.models.RouteTable;
+import com.azure.resourcemanager.azurestackhci.vm.models.SubnetIpConfigurationReference;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Properties of the subnet.
+ */
+@Fluent
+public final class SubnetProperties implements JsonSerializable {
+ /*
+ * The address prefix for the subnet: Cidr for this subnet - IPv4, IPv6.
+ */
+ private String addressPrefix;
+
+ /*
+ * List of address prefixes for the subnet.
+ */
+ private List addressPrefixes;
+
+ /*
+ * IPAllocationMethod - The IP address allocation method. Possible values include: 'Static', 'Dynamic'
+ */
+ private IpAllocationMethodEnum ipAllocationMethod;
+
+ /*
+ * IPConfigurationReferences - list of IPConfigurationReferences
+ */
+ private List ipConfigurationReferences;
+
+ /*
+ * NetworkSecurityGroup - Network Security Group attached to the logical network.
+ */
+ private NetworkSecurityGroupArmReference networkSecurityGroup;
+
+ /*
+ * Route table resource.
+ */
+ private RouteTable routeTable;
+
+ /*
+ * network associated pool of IP Addresses
+ */
+ private List ipPools;
+
+ /*
+ * Vlan to use for the subnet
+ */
+ private Integer vlan;
+
+ /**
+ * Creates an instance of SubnetProperties class.
+ */
+ public SubnetProperties() {
+ }
+
+ /**
+ * Get the addressPrefix property: The address prefix for the subnet: Cidr for this subnet - IPv4, IPv6.
+ *
+ * @return the addressPrefix value.
+ */
+ public String addressPrefix() {
+ return this.addressPrefix;
+ }
+
+ /**
+ * Set the addressPrefix property: The address prefix for the subnet: Cidr for this subnet - IPv4, IPv6.
+ *
+ * @param addressPrefix the addressPrefix value to set.
+ * @return the SubnetProperties object itself.
+ */
+ public SubnetProperties withAddressPrefix(String addressPrefix) {
+ this.addressPrefix = addressPrefix;
+ return this;
+ }
+
+ /**
+ * Get the addressPrefixes property: List of address prefixes for the subnet.
+ *
+ * @return the addressPrefixes value.
+ */
+ public List addressPrefixes() {
+ return this.addressPrefixes;
+ }
+
+ /**
+ * Set the addressPrefixes property: List of address prefixes for the subnet.
+ *
+ * @param addressPrefixes the addressPrefixes value to set.
+ * @return the SubnetProperties object itself.
+ */
+ public SubnetProperties withAddressPrefixes(List addressPrefixes) {
+ this.addressPrefixes = addressPrefixes;
+ return this;
+ }
+
+ /**
+ * Get the ipAllocationMethod property: IPAllocationMethod - The IP address allocation method. Possible values
+ * include: 'Static', 'Dynamic'.
+ *
+ * @return the ipAllocationMethod value.
+ */
+ public IpAllocationMethodEnum ipAllocationMethod() {
+ return this.ipAllocationMethod;
+ }
+
+ /**
+ * Set the ipAllocationMethod property: IPAllocationMethod - The IP address allocation method. Possible values
+ * include: 'Static', 'Dynamic'.
+ *
+ * @param ipAllocationMethod the ipAllocationMethod value to set.
+ * @return the SubnetProperties object itself.
+ */
+ public SubnetProperties withIpAllocationMethod(IpAllocationMethodEnum ipAllocationMethod) {
+ this.ipAllocationMethod = ipAllocationMethod;
+ return this;
+ }
+
+ /**
+ * Get the ipConfigurationReferences property: IPConfigurationReferences - list of IPConfigurationReferences.
+ *
+ * @return the ipConfigurationReferences value.
+ */
+ public List ipConfigurationReferences() {
+ return this.ipConfigurationReferences;
+ }
+
+ /**
+ * Set the ipConfigurationReferences property: IPConfigurationReferences - list of IPConfigurationReferences.
+ *
+ * @param ipConfigurationReferences the ipConfigurationReferences value to set.
+ * @return the SubnetProperties object itself.
+ */
+ public SubnetProperties
+ withIpConfigurationReferences(List ipConfigurationReferences) {
+ this.ipConfigurationReferences = ipConfigurationReferences;
+ return this;
+ }
+
+ /**
+ * Get the networkSecurityGroup property: NetworkSecurityGroup - Network Security Group attached to the logical
+ * network.
+ *
+ * @return the networkSecurityGroup value.
+ */
+ public NetworkSecurityGroupArmReference networkSecurityGroup() {
+ return this.networkSecurityGroup;
+ }
+
+ /**
+ * Set the networkSecurityGroup property: NetworkSecurityGroup - Network Security Group attached to the logical
+ * network.
+ *
+ * @param networkSecurityGroup the networkSecurityGroup value to set.
+ * @return the SubnetProperties object itself.
+ */
+ public SubnetProperties withNetworkSecurityGroup(NetworkSecurityGroupArmReference networkSecurityGroup) {
+ this.networkSecurityGroup = networkSecurityGroup;
+ return this;
+ }
+
+ /**
+ * Get the routeTable property: Route table resource.
+ *
+ * @return the routeTable value.
+ */
+ public RouteTable routeTable() {
+ return this.routeTable;
+ }
+
+ /**
+ * Set the routeTable property: Route table resource.
+ *
+ * @param routeTable the routeTable value to set.
+ * @return the SubnetProperties object itself.
+ */
+ public SubnetProperties withRouteTable(RouteTable routeTable) {
+ this.routeTable = routeTable;
+ return this;
+ }
+
+ /**
+ * Get the ipPools property: network associated pool of IP Addresses.
+ *
+ * @return the ipPools value.
+ */
+ public List ipPools() {
+ return this.ipPools;
+ }
+
+ /**
+ * Set the ipPools property: network associated pool of IP Addresses.
+ *
+ * @param ipPools the ipPools value to set.
+ * @return the SubnetProperties object itself.
+ */
+ public SubnetProperties withIpPools(List ipPools) {
+ this.ipPools = ipPools;
+ return this;
+ }
+
+ /**
+ * Get the vlan property: Vlan to use for the subnet.
+ *
+ * @return the vlan value.
+ */
+ public Integer vlan() {
+ return this.vlan;
+ }
+
+ /**
+ * Set the vlan property: Vlan to use for the subnet.
+ *
+ * @param vlan the vlan value to set.
+ * @return the SubnetProperties object itself.
+ */
+ public SubnetProperties withVlan(Integer vlan) {
+ this.vlan = vlan;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (ipConfigurationReferences() != null) {
+ ipConfigurationReferences().forEach(e -> e.validate());
+ }
+ if (networkSecurityGroup() != null) {
+ networkSecurityGroup().validate();
+ }
+ if (routeTable() != null) {
+ routeTable().validate();
+ }
+ if (ipPools() != null) {
+ ipPools().forEach(e -> e.validate());
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("addressPrefix", this.addressPrefix);
+ jsonWriter.writeArrayField("addressPrefixes", this.addressPrefixes,
+ (writer, element) -> writer.writeString(element));
+ jsonWriter.writeStringField("ipAllocationMethod",
+ this.ipAllocationMethod == null ? null : this.ipAllocationMethod.toString());
+ jsonWriter.writeArrayField("ipConfigurationReferences", this.ipConfigurationReferences,
+ (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeJsonField("networkSecurityGroup", this.networkSecurityGroup);
+ jsonWriter.writeJsonField("routeTable", this.routeTable);
+ jsonWriter.writeArrayField("ipPools", this.ipPools, (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeNumberField("vlan", this.vlan);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of SubnetProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of SubnetProperties if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IOException If an error occurs while reading the SubnetProperties.
+ */
+ public static SubnetProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ SubnetProperties deserializedSubnetProperties = new SubnetProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("addressPrefix".equals(fieldName)) {
+ deserializedSubnetProperties.addressPrefix = reader.getString();
+ } else if ("addressPrefixes".equals(fieldName)) {
+ List addressPrefixes = reader.readArray(reader1 -> reader1.getString());
+ deserializedSubnetProperties.addressPrefixes = addressPrefixes;
+ } else if ("ipAllocationMethod".equals(fieldName)) {
+ deserializedSubnetProperties.ipAllocationMethod
+ = IpAllocationMethodEnum.fromString(reader.getString());
+ } else if ("ipConfigurationReferences".equals(fieldName)) {
+ List ipConfigurationReferences
+ = reader.readArray(reader1 -> SubnetIpConfigurationReference.fromJson(reader1));
+ deserializedSubnetProperties.ipConfigurationReferences = ipConfigurationReferences;
+ } else if ("networkSecurityGroup".equals(fieldName)) {
+ deserializedSubnetProperties.networkSecurityGroup
+ = NetworkSecurityGroupArmReference.fromJson(reader);
+ } else if ("routeTable".equals(fieldName)) {
+ deserializedSubnetProperties.routeTable = RouteTable.fromJson(reader);
+ } else if ("ipPools".equals(fieldName)) {
+ List ipPools = reader.readArray(reader1 -> IPPool.fromJson(reader1));
+ deserializedSubnetProperties.ipPools = ipPools;
+ } else if ("vlan".equals(fieldName)) {
+ deserializedSubnetProperties.vlan = reader.getNullable(JsonReader::getInt);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedSubnetProperties;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualHardDiskInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualHardDiskInner.java
new file mode 100644
index 000000000000..a4ef1986655a
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualHardDiskInner.java
@@ -0,0 +1,224 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.VirtualHardDiskProperties;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * The virtual hard disk resource definition.
+ */
+@Fluent
+public final class VirtualHardDiskInner extends Resource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private VirtualHardDiskProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of VirtualHardDiskInner class.
+ */
+ public VirtualHardDiskInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public VirtualHardDiskProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the VirtualHardDiskInner object itself.
+ */
+ public VirtualHardDiskInner withProperties(VirtualHardDiskProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VirtualHardDiskInner object itself.
+ */
+ public VirtualHardDiskInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public VirtualHardDiskInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public VirtualHardDiskInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of VirtualHardDiskInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of VirtualHardDiskInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the VirtualHardDiskInner.
+ */
+ public static VirtualHardDiskInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ VirtualHardDiskInner deserializedVirtualHardDiskInner = new VirtualHardDiskInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedVirtualHardDiskInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedVirtualHardDiskInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedVirtualHardDiskInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedVirtualHardDiskInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedVirtualHardDiskInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedVirtualHardDiskInner.properties = VirtualHardDiskProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedVirtualHardDiskInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedVirtualHardDiskInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedVirtualHardDiskInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualHardDiskUploadResponseInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualHardDiskUploadResponseInner.java
new file mode 100644
index 000000000000..fe090c8c6a90
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualHardDiskUploadResponseInner.java
@@ -0,0 +1,105 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.VirtualHardDiskUploadStatus;
+import java.io.IOException;
+
+/**
+ * Response for uploading virtual hard disk.
+ */
+@Immutable
+public final class VirtualHardDiskUploadResponseInner implements JsonSerializable {
+ /*
+ * The ARM ID for a Virtual Hard Disk.
+ */
+ private String virtualHardDiskId;
+
+ /*
+ * The upload status of the virtual hard disk
+ */
+ private VirtualHardDiskUploadStatus uploadStatus;
+
+ /**
+ * Creates an instance of VirtualHardDiskUploadResponseInner class.
+ */
+ private VirtualHardDiskUploadResponseInner() {
+ }
+
+ /**
+ * Get the virtualHardDiskId property: The ARM ID for a Virtual Hard Disk.
+ *
+ * @return the virtualHardDiskId value.
+ */
+ public String virtualHardDiskId() {
+ return this.virtualHardDiskId;
+ }
+
+ /**
+ * Get the uploadStatus property: The upload status of the virtual hard disk.
+ *
+ * @return the uploadStatus value.
+ */
+ public VirtualHardDiskUploadStatus uploadStatus() {
+ return this.uploadStatus;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (uploadStatus() != null) {
+ uploadStatus().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("virtualHardDiskId", this.virtualHardDiskId);
+ jsonWriter.writeJsonField("uploadStatus", this.uploadStatus);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of VirtualHardDiskUploadResponseInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of VirtualHardDiskUploadResponseInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the VirtualHardDiskUploadResponseInner.
+ */
+ public static VirtualHardDiskUploadResponseInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ VirtualHardDiskUploadResponseInner deserializedVirtualHardDiskUploadResponseInner
+ = new VirtualHardDiskUploadResponseInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("virtualHardDiskId".equals(fieldName)) {
+ deserializedVirtualHardDiskUploadResponseInner.virtualHardDiskId = reader.getString();
+ } else if ("uploadStatus".equals(fieldName)) {
+ deserializedVirtualHardDiskUploadResponseInner.uploadStatus
+ = VirtualHardDiskUploadStatus.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedVirtualHardDiskUploadResponseInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualMachineInstanceInner.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualMachineInstanceInner.java
new file mode 100644
index 000000000000..413dcfa477ae
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/VirtualMachineInstanceInner.java
@@ -0,0 +1,231 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.ManagedServiceIdentity;
+import com.azure.resourcemanager.azurestackhci.vm.models.VirtualMachineInstanceProperties;
+import java.io.IOException;
+
+/**
+ * The virtual machine instance resource definition.
+ */
+@Fluent
+public final class VirtualMachineInstanceInner extends ProxyResource {
+ /*
+ * The resource-specific properties for this resource.
+ */
+ private VirtualMachineInstanceProperties properties;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The managed service identities assigned to this resource.
+ */
+ private ManagedServiceIdentity identity;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of VirtualMachineInstanceInner class.
+ */
+ public VirtualMachineInstanceInner() {
+ }
+
+ /**
+ * Get the properties property: The resource-specific properties for this resource.
+ *
+ * @return the properties value.
+ */
+ public VirtualMachineInstanceProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The resource-specific properties for this resource.
+ *
+ * @param properties the properties value to set.
+ * @return the VirtualMachineInstanceInner object itself.
+ */
+ public VirtualMachineInstanceInner withProperties(VirtualMachineInstanceProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VirtualMachineInstanceInner object itself.
+ */
+ public VirtualMachineInstanceInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the identity property: The managed service identities assigned to this resource.
+ *
+ * @return the identity value.
+ */
+ public ManagedServiceIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: The managed service identities assigned to this resource.
+ *
+ * @param identity the identity value to set.
+ * @return the VirtualMachineInstanceInner object itself.
+ */
+ public VirtualMachineInstanceInner withIdentity(ManagedServiceIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ jsonWriter.writeJsonField("extendedLocation", this.extendedLocation);
+ jsonWriter.writeJsonField("identity", this.identity);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of VirtualMachineInstanceInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of VirtualMachineInstanceInner if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the VirtualMachineInstanceInner.
+ */
+ public static VirtualMachineInstanceInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ VirtualMachineInstanceInner deserializedVirtualMachineInstanceInner = new VirtualMachineInstanceInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedVirtualMachineInstanceInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedVirtualMachineInstanceInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedVirtualMachineInstanceInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedVirtualMachineInstanceInner.properties
+ = VirtualMachineInstanceProperties.fromJson(reader);
+ } else if ("extendedLocation".equals(fieldName)) {
+ deserializedVirtualMachineInstanceInner.extendedLocation = ExtendedLocation.fromJson(reader);
+ } else if ("identity".equals(fieldName)) {
+ deserializedVirtualMachineInstanceInner.identity = ManagedServiceIdentity.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedVirtualMachineInstanceInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedVirtualMachineInstanceInner;
+ });
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/package-info.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/package-info.java
new file mode 100644
index 000000000000..2dab4fdd7431
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/models/package-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+/**
+ * Package containing the inner data models for AzureStackHciVm.
+ * Azure Stack HCI management service.
+ */
+package com.azure.resourcemanager.azurestackhci.vm.fluent.models;
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/package-info.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/package-info.java
new file mode 100644
index 000000000000..17764c70433f
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/fluent/package-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+/**
+ * Package containing the service clients for AzureStackHciVm.
+ * Azure Stack HCI management service.
+ */
+package com.azure.resourcemanager.azurestackhci.vm.fluent;
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusImpl.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusImpl.java
new file mode 100644
index 000000000000..7d8505df3536
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusImpl.java
@@ -0,0 +1,50 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.models.AttestationStatusInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.AttestationStatus;
+import com.azure.resourcemanager.azurestackhci.vm.models.AttestationStatusProperties;
+
+public final class AttestationStatusImpl implements AttestationStatus {
+ private AttestationStatusInner innerObject;
+
+ private final com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager serviceManager;
+
+ AttestationStatusImpl(AttestationStatusInner innerObject,
+ com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public AttestationStatusProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public AttestationStatusInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusesClientImpl.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusesClientImpl.java
new file mode 100644
index 000000000000..ddf652842c96
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusesClientImpl.java
@@ -0,0 +1,160 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.AttestationStatusesClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.models.AttestationStatusInner;
+import reactor.core.publisher.Mono;
+
+/**
+ * An instance of this class provides access to all the operations defined in AttestationStatusesClient.
+ */
+public final class AttestationStatusesClientImpl implements AttestationStatusesClient {
+ /**
+ * The proxy service used to perform REST calls.
+ */
+ private final AttestationStatusesService service;
+
+ /**
+ * The service client containing this operation class.
+ */
+ private final AzureStackHciVmMgmtClientImpl client;
+
+ /**
+ * Initializes an instance of AttestationStatusesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AttestationStatusesClientImpl(AzureStackHciVmMgmtClientImpl client) {
+ this.service = RestProxy.create(AttestationStatusesService.class, client.getHttpPipeline(),
+ client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AzureStackHciVmMgmtClientAttestationStatuses to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{endpoint}")
+ @ServiceInterface(name = "AzureStackHciVmMgmtClientAttestationStatuses")
+ public interface AttestationStatusesService {
+ @Headers({ "Content-Type: application/json" })
+ @Get("/{resourceUri}/providers/Microsoft.AzureStackHCI/virtualMachineInstances/default/attestationStatus/default")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam(value = "resourceUri", encoded = true) String resourceUri, @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("/{resourceUri}/providers/Microsoft.AzureStackHCI/virtualMachineInstances/default/attestationStatus/default")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response getSync(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam(value = "resourceUri", encoded = true) String resourceUri, @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Implements AttestationStatus GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the attestation status of the virtual machine along with {@link Response} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(String resourceUri) {
+ if (this.client.getEndpoint() == null) {
+ return Mono.error(
+ new IllegalArgumentException("Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceUri == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resourceUri is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.get(this.client.getEndpoint(), this.client.getApiVersion(), resourceUri,
+ accept, context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Implements AttestationStatus GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the attestation status of the virtual machine on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String resourceUri) {
+ return getWithResponseAsync(resourceUri).flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Implements AttestationStatus GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the attestation status of the virtual machine along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(String resourceUri, Context context) {
+ if (this.client.getEndpoint() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceUri == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter resourceUri is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return service.getSync(this.client.getEndpoint(), this.client.getApiVersion(), resourceUri, accept, context);
+ }
+
+ /**
+ * Implements AttestationStatus GET method.
+ *
+ * @param resourceUri The fully qualified Azure Resource manager identifier of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the attestation status of the virtual machine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AttestationStatusInner get(String resourceUri) {
+ return getWithResponse(resourceUri, Context.NONE).getValue();
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AttestationStatusesClientImpl.class);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusesImpl.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusesImpl.java
new file mode 100644
index 000000000000..6b71cf06211f
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AttestationStatusesImpl.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.AttestationStatusesClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.models.AttestationStatusInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.AttestationStatus;
+import com.azure.resourcemanager.azurestackhci.vm.models.AttestationStatuses;
+
+public final class AttestationStatusesImpl implements AttestationStatuses {
+ private static final ClientLogger LOGGER = new ClientLogger(AttestationStatusesImpl.class);
+
+ private final AttestationStatusesClient innerClient;
+
+ private final com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager serviceManager;
+
+ public AttestationStatusesImpl(AttestationStatusesClient innerClient,
+ com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public Response getWithResponse(String resourceUri, Context context) {
+ Response inner = this.serviceClient().getWithResponse(resourceUri, context);
+ if (inner != null) {
+ return new SimpleResponse<>(inner.getRequest(), inner.getStatusCode(), inner.getHeaders(),
+ new AttestationStatusImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public AttestationStatus get(String resourceUri) {
+ AttestationStatusInner inner = this.serviceClient().get(resourceUri);
+ if (inner != null) {
+ return new AttestationStatusImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ private AttestationStatusesClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AzureStackHciVmMgmtClientBuilder.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AzureStackHciVmMgmtClientBuilder.java
new file mode 100644
index 000000000000..2538b635f512
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AzureStackHciVmMgmtClientBuilder.java
@@ -0,0 +1,138 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.implementation;
+
+import com.azure.core.annotation.ServiceClientBuilder;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.serializer.SerializerFactory;
+import com.azure.core.util.serializer.SerializerAdapter;
+import java.time.Duration;
+
+/**
+ * A builder for creating a new instance of the AzureStackHciVmMgmtClientImpl type.
+ */
+@ServiceClientBuilder(serviceClients = { AzureStackHciVmMgmtClientImpl.class })
+public final class AzureStackHciVmMgmtClientBuilder {
+ /*
+ * Service host
+ */
+ private String endpoint;
+
+ /**
+ * Sets Service host.
+ *
+ * @param endpoint the endpoint value.
+ * @return the AzureStackHciVmMgmtClientBuilder.
+ */
+ public AzureStackHciVmMgmtClientBuilder endpoint(String endpoint) {
+ this.endpoint = endpoint;
+ return this;
+ }
+
+ /*
+ * The ID of the target subscription. The value must be an UUID.
+ */
+ private String subscriptionId;
+
+ /**
+ * Sets The ID of the target subscription. The value must be an UUID.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the AzureStackHciVmMgmtClientBuilder.
+ */
+ public AzureStackHciVmMgmtClientBuilder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /*
+ * The environment to connect to
+ */
+ private AzureEnvironment environment;
+
+ /**
+ * Sets The environment to connect to.
+ *
+ * @param environment the environment value.
+ * @return the AzureStackHciVmMgmtClientBuilder.
+ */
+ public AzureStackHciVmMgmtClientBuilder environment(AzureEnvironment environment) {
+ this.environment = environment;
+ return this;
+ }
+
+ /*
+ * The HTTP pipeline to send requests through
+ */
+ private HttpPipeline pipeline;
+
+ /**
+ * Sets The HTTP pipeline to send requests through.
+ *
+ * @param pipeline the pipeline value.
+ * @return the AzureStackHciVmMgmtClientBuilder.
+ */
+ public AzureStackHciVmMgmtClientBuilder pipeline(HttpPipeline pipeline) {
+ this.pipeline = pipeline;
+ return this;
+ }
+
+ /*
+ * The default poll interval for long-running operation
+ */
+ private Duration defaultPollInterval;
+
+ /**
+ * Sets The default poll interval for long-running operation.
+ *
+ * @param defaultPollInterval the defaultPollInterval value.
+ * @return the AzureStackHciVmMgmtClientBuilder.
+ */
+ public AzureStackHciVmMgmtClientBuilder defaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = defaultPollInterval;
+ return this;
+ }
+
+ /*
+ * The serializer to serialize an object into a string
+ */
+ private SerializerAdapter serializerAdapter;
+
+ /**
+ * Sets The serializer to serialize an object into a string.
+ *
+ * @param serializerAdapter the serializerAdapter value.
+ * @return the AzureStackHciVmMgmtClientBuilder.
+ */
+ public AzureStackHciVmMgmtClientBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of AzureStackHciVmMgmtClientImpl with the provided parameters.
+ *
+ * @return an instance of AzureStackHciVmMgmtClientImpl.
+ */
+ public AzureStackHciVmMgmtClientImpl buildClient() {
+ String localEndpoint = (endpoint != null) ? endpoint : "https://management.azure.com";
+ AzureEnvironment localEnvironment = (environment != null) ? environment : AzureEnvironment.AZURE;
+ HttpPipeline localPipeline = (pipeline != null)
+ ? pipeline
+ : new HttpPipelineBuilder().policies(new UserAgentPolicy(), new RetryPolicy()).build();
+ Duration localDefaultPollInterval
+ = (defaultPollInterval != null) ? defaultPollInterval : Duration.ofSeconds(30);
+ SerializerAdapter localSerializerAdapter = (serializerAdapter != null)
+ ? serializerAdapter
+ : SerializerFactory.createDefaultManagementSerializerAdapter();
+ AzureStackHciVmMgmtClientImpl client = new AzureStackHciVmMgmtClientImpl(localPipeline, localSerializerAdapter,
+ localDefaultPollInterval, localEnvironment, localEndpoint, this.subscriptionId);
+ return client;
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AzureStackHciVmMgmtClientImpl.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AzureStackHciVmMgmtClientImpl.java
new file mode 100644
index 000000000000..4b338bbf5c5a
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/AzureStackHciVmMgmtClientImpl.java
@@ -0,0 +1,484 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.implementation;
+
+import com.azure.core.annotation.ServiceClient;
+import com.azure.core.http.HttpHeaderName;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.management.polling.PollerFactory;
+import com.azure.core.management.polling.SyncPollerFactory;
+import com.azure.core.util.BinaryData;
+import com.azure.core.util.Context;
+import com.azure.core.util.CoreUtils;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.AsyncPollResponse;
+import com.azure.core.util.polling.LongRunningOperationStatus;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.core.util.serializer.SerializerAdapter;
+import com.azure.core.util.serializer.SerializerEncoding;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.AttestationStatusesClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.AzureStackHciVmMgmtClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.GalleryImagesClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.GuestAgentsClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.HybridIdentityMetadatasClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.LogicalNetworksClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.MarketplaceGalleryImagesClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.NetworkInterfacesClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.NetworkSecurityGroupsClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.SecurityRulesClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.StorageContainersClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.VirtualHardDisksClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.VirtualMachineInstancesClient;
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/**
+ * Initializes a new instance of the AzureStackHciVmMgmtClientImpl type.
+ */
+@ServiceClient(builder = AzureStackHciVmMgmtClientBuilder.class)
+public final class AzureStackHciVmMgmtClientImpl implements AzureStackHciVmMgmtClient {
+ /**
+ * Service host.
+ */
+ private final String endpoint;
+
+ /**
+ * Gets Service host.
+ *
+ * @return the endpoint value.
+ */
+ public String getEndpoint() {
+ return this.endpoint;
+ }
+
+ /**
+ * Version parameter.
+ */
+ private final String apiVersion;
+
+ /**
+ * Gets Version parameter.
+ *
+ * @return the apiVersion value.
+ */
+ public String getApiVersion() {
+ return this.apiVersion;
+ }
+
+ /**
+ * The ID of the target subscription. The value must be an UUID.
+ */
+ private final String subscriptionId;
+
+ /**
+ * Gets The ID of the target subscription. The value must be an UUID.
+ *
+ * @return the subscriptionId value.
+ */
+ public String getSubscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * The HTTP pipeline to send requests through.
+ */
+ private final HttpPipeline httpPipeline;
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ public HttpPipeline getHttpPipeline() {
+ return this.httpPipeline;
+ }
+
+ /**
+ * The serializer to serialize an object into a string.
+ */
+ private final SerializerAdapter serializerAdapter;
+
+ /**
+ * Gets The serializer to serialize an object into a string.
+ *
+ * @return the serializerAdapter value.
+ */
+ SerializerAdapter getSerializerAdapter() {
+ return this.serializerAdapter;
+ }
+
+ /**
+ * The default poll interval for long-running operation.
+ */
+ private final Duration defaultPollInterval;
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ public Duration getDefaultPollInterval() {
+ return this.defaultPollInterval;
+ }
+
+ /**
+ * The GalleryImagesClient object to access its operations.
+ */
+ private final GalleryImagesClient galleryImages;
+
+ /**
+ * Gets the GalleryImagesClient object to access its operations.
+ *
+ * @return the GalleryImagesClient object.
+ */
+ public GalleryImagesClient getGalleryImages() {
+ return this.galleryImages;
+ }
+
+ /**
+ * The LogicalNetworksClient object to access its operations.
+ */
+ private final LogicalNetworksClient logicalNetworks;
+
+ /**
+ * Gets the LogicalNetworksClient object to access its operations.
+ *
+ * @return the LogicalNetworksClient object.
+ */
+ public LogicalNetworksClient getLogicalNetworks() {
+ return this.logicalNetworks;
+ }
+
+ /**
+ * The MarketplaceGalleryImagesClient object to access its operations.
+ */
+ private final MarketplaceGalleryImagesClient marketplaceGalleryImages;
+
+ /**
+ * Gets the MarketplaceGalleryImagesClient object to access its operations.
+ *
+ * @return the MarketplaceGalleryImagesClient object.
+ */
+ public MarketplaceGalleryImagesClient getMarketplaceGalleryImages() {
+ return this.marketplaceGalleryImages;
+ }
+
+ /**
+ * The NetworkInterfacesClient object to access its operations.
+ */
+ private final NetworkInterfacesClient networkInterfaces;
+
+ /**
+ * Gets the NetworkInterfacesClient object to access its operations.
+ *
+ * @return the NetworkInterfacesClient object.
+ */
+ public NetworkInterfacesClient getNetworkInterfaces() {
+ return this.networkInterfaces;
+ }
+
+ /**
+ * The NetworkSecurityGroupsClient object to access its operations.
+ */
+ private final NetworkSecurityGroupsClient networkSecurityGroups;
+
+ /**
+ * Gets the NetworkSecurityGroupsClient object to access its operations.
+ *
+ * @return the NetworkSecurityGroupsClient object.
+ */
+ public NetworkSecurityGroupsClient getNetworkSecurityGroups() {
+ return this.networkSecurityGroups;
+ }
+
+ /**
+ * The SecurityRulesClient object to access its operations.
+ */
+ private final SecurityRulesClient securityRules;
+
+ /**
+ * Gets the SecurityRulesClient object to access its operations.
+ *
+ * @return the SecurityRulesClient object.
+ */
+ public SecurityRulesClient getSecurityRules() {
+ return this.securityRules;
+ }
+
+ /**
+ * The StorageContainersClient object to access its operations.
+ */
+ private final StorageContainersClient storageContainers;
+
+ /**
+ * Gets the StorageContainersClient object to access its operations.
+ *
+ * @return the StorageContainersClient object.
+ */
+ public StorageContainersClient getStorageContainers() {
+ return this.storageContainers;
+ }
+
+ /**
+ * The VirtualHardDisksClient object to access its operations.
+ */
+ private final VirtualHardDisksClient virtualHardDisks;
+
+ /**
+ * Gets the VirtualHardDisksClient object to access its operations.
+ *
+ * @return the VirtualHardDisksClient object.
+ */
+ public VirtualHardDisksClient getVirtualHardDisks() {
+ return this.virtualHardDisks;
+ }
+
+ /**
+ * The VirtualMachineInstancesClient object to access its operations.
+ */
+ private final VirtualMachineInstancesClient virtualMachineInstances;
+
+ /**
+ * Gets the VirtualMachineInstancesClient object to access its operations.
+ *
+ * @return the VirtualMachineInstancesClient object.
+ */
+ public VirtualMachineInstancesClient getVirtualMachineInstances() {
+ return this.virtualMachineInstances;
+ }
+
+ /**
+ * The HybridIdentityMetadatasClient object to access its operations.
+ */
+ private final HybridIdentityMetadatasClient hybridIdentityMetadatas;
+
+ /**
+ * Gets the HybridIdentityMetadatasClient object to access its operations.
+ *
+ * @return the HybridIdentityMetadatasClient object.
+ */
+ public HybridIdentityMetadatasClient getHybridIdentityMetadatas() {
+ return this.hybridIdentityMetadatas;
+ }
+
+ /**
+ * The AttestationStatusesClient object to access its operations.
+ */
+ private final AttestationStatusesClient attestationStatuses;
+
+ /**
+ * Gets the AttestationStatusesClient object to access its operations.
+ *
+ * @return the AttestationStatusesClient object.
+ */
+ public AttestationStatusesClient getAttestationStatuses() {
+ return this.attestationStatuses;
+ }
+
+ /**
+ * The GuestAgentsClient object to access its operations.
+ */
+ private final GuestAgentsClient guestAgents;
+
+ /**
+ * Gets the GuestAgentsClient object to access its operations.
+ *
+ * @return the GuestAgentsClient object.
+ */
+ public GuestAgentsClient getGuestAgents() {
+ return this.guestAgents;
+ }
+
+ /**
+ * Initializes an instance of AzureStackHciVmMgmtClient client.
+ *
+ * @param httpPipeline The HTTP pipeline to send requests through.
+ * @param serializerAdapter The serializer to serialize an object into a string.
+ * @param defaultPollInterval The default poll interval for long-running operation.
+ * @param environment The Azure environment.
+ * @param endpoint Service host.
+ * @param subscriptionId The ID of the target subscription. The value must be an UUID.
+ */
+ AzureStackHciVmMgmtClientImpl(HttpPipeline httpPipeline, SerializerAdapter serializerAdapter,
+ Duration defaultPollInterval, AzureEnvironment environment, String endpoint, String subscriptionId) {
+ this.httpPipeline = httpPipeline;
+ this.serializerAdapter = serializerAdapter;
+ this.defaultPollInterval = defaultPollInterval;
+ this.endpoint = endpoint;
+ this.subscriptionId = subscriptionId;
+ this.apiVersion = "2025-06-01-preview";
+ this.galleryImages = new GalleryImagesClientImpl(this);
+ this.logicalNetworks = new LogicalNetworksClientImpl(this);
+ this.marketplaceGalleryImages = new MarketplaceGalleryImagesClientImpl(this);
+ this.networkInterfaces = new NetworkInterfacesClientImpl(this);
+ this.networkSecurityGroups = new NetworkSecurityGroupsClientImpl(this);
+ this.securityRules = new SecurityRulesClientImpl(this);
+ this.storageContainers = new StorageContainersClientImpl(this);
+ this.virtualHardDisks = new VirtualHardDisksClientImpl(this);
+ this.virtualMachineInstances = new VirtualMachineInstancesClientImpl(this);
+ this.hybridIdentityMetadatas = new HybridIdentityMetadatasClientImpl(this);
+ this.attestationStatuses = new AttestationStatusesClientImpl(this);
+ this.guestAgents = new GuestAgentsClientImpl(this);
+ }
+
+ /**
+ * Gets default client context.
+ *
+ * @return the default client context.
+ */
+ public Context getContext() {
+ return Context.NONE;
+ }
+
+ /**
+ * Merges default client context with provided context.
+ *
+ * @param context the context to be merged with default client context.
+ * @return the merged context.
+ */
+ public Context mergeContext(Context context) {
+ return CoreUtils.mergeContexts(this.getContext(), context);
+ }
+
+ /**
+ * Gets long running operation result.
+ *
+ * @param activationResponse the response of activation operation.
+ * @param httpPipeline the http pipeline.
+ * @param pollResultType type of poll result.
+ * @param finalResultType type of final result.
+ * @param context the context shared by all requests.
+ * @param type of poll result.
+ * @param type of final result.
+ * @return poller flux for poll result and final result.
+ */
+ public PollerFlux, U> getLroResult(Mono>> activationResponse,
+ HttpPipeline httpPipeline, Type pollResultType, Type finalResultType, Context context) {
+ return PollerFactory.create(serializerAdapter, httpPipeline, pollResultType, finalResultType,
+ defaultPollInterval, activationResponse, context);
+ }
+
+ /**
+ * Gets long running operation result.
+ *
+ * @param activationResponse the response of activation operation.
+ * @param pollResultType type of poll result.
+ * @param finalResultType type of final result.
+ * @param context the context shared by all requests.
+ * @param type of poll result.
+ * @param type of final result.
+ * @return SyncPoller for poll result and final result.
+ */
+ public SyncPoller, U> getLroResult(Response activationResponse,
+ Type pollResultType, Type finalResultType, Context context) {
+ return SyncPollerFactory.create(serializerAdapter, httpPipeline, pollResultType, finalResultType,
+ defaultPollInterval, () -> activationResponse, context);
+ }
+
+ /**
+ * Gets the final result, or an error, based on last async poll response.
+ *
+ * @param response the last async poll response.
+ * @param type of poll result.
+ * @param type of final result.
+ * @return the final result, or an error.
+ */
+ public Mono getLroFinalResultOrError(AsyncPollResponse, U> response) {
+ if (response.getStatus() != LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) {
+ String errorMessage;
+ ManagementError managementError = null;
+ HttpResponse errorResponse = null;
+ PollResult.Error lroError = response.getValue().getError();
+ if (lroError != null) {
+ errorResponse = new HttpResponseImpl(lroError.getResponseStatusCode(), lroError.getResponseHeaders(),
+ lroError.getResponseBody());
+
+ errorMessage = response.getValue().getError().getMessage();
+ String errorBody = response.getValue().getError().getResponseBody();
+ if (errorBody != null) {
+ // try to deserialize error body to ManagementError
+ try {
+ managementError = this.getSerializerAdapter()
+ .deserialize(errorBody, ManagementError.class, SerializerEncoding.JSON);
+ if (managementError.getCode() == null || managementError.getMessage() == null) {
+ managementError = null;
+ }
+ } catch (IOException | RuntimeException ioe) {
+ LOGGER.logThrowableAsWarning(ioe);
+ }
+ }
+ } else {
+ // fallback to default error message
+ errorMessage = "Long running operation failed.";
+ }
+ if (managementError == null) {
+ // fallback to default ManagementError
+ managementError = new ManagementError(response.getStatus().toString(), errorMessage);
+ }
+ return Mono.error(new ManagementException(errorMessage, errorResponse, managementError));
+ } else {
+ return response.getFinalResult();
+ }
+ }
+
+ private static final class HttpResponseImpl extends HttpResponse {
+ private final int statusCode;
+
+ private final byte[] responseBody;
+
+ private final HttpHeaders httpHeaders;
+
+ HttpResponseImpl(int statusCode, HttpHeaders httpHeaders, String responseBody) {
+ super(null);
+ this.statusCode = statusCode;
+ this.httpHeaders = httpHeaders;
+ this.responseBody = responseBody == null ? null : responseBody.getBytes(StandardCharsets.UTF_8);
+ }
+
+ public int getStatusCode() {
+ return statusCode;
+ }
+
+ public String getHeaderValue(String s) {
+ return httpHeaders.getValue(HttpHeaderName.fromString(s));
+ }
+
+ public HttpHeaders getHeaders() {
+ return httpHeaders;
+ }
+
+ public Flux getBody() {
+ return Flux.just(ByteBuffer.wrap(responseBody));
+ }
+
+ public Mono getBodyAsByteArray() {
+ return Mono.just(responseBody);
+ }
+
+ public Mono getBodyAsString() {
+ return Mono.just(new String(responseBody, StandardCharsets.UTF_8));
+ }
+
+ public Mono getBodyAsString(Charset charset) {
+ return Mono.just(new String(responseBody, charset));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AzureStackHciVmMgmtClientImpl.class);
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/GalleryImageImpl.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/GalleryImageImpl.java
new file mode 100644
index 000000000000..ad50e5842fb7
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/GalleryImageImpl.java
@@ -0,0 +1,187 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.implementation;
+
+import com.azure.core.management.Region;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.models.GalleryImageInner;
+import com.azure.resourcemanager.azurestackhci.vm.models.ExtendedLocation;
+import com.azure.resourcemanager.azurestackhci.vm.models.GalleryImage;
+import com.azure.resourcemanager.azurestackhci.vm.models.GalleryImageProperties;
+import com.azure.resourcemanager.azurestackhci.vm.models.GalleryImageTagsUpdate;
+import java.util.Collections;
+import java.util.Map;
+
+public final class GalleryImageImpl implements GalleryImage, GalleryImage.Definition, GalleryImage.Update {
+ private GalleryImageInner innerObject;
+
+ private final com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager 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 GalleryImageProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public ExtendedLocation extendedLocation() {
+ return this.innerModel().extendedLocation();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public String resourceGroupName() {
+ return resourceGroupName;
+ }
+
+ public GalleryImageInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String galleryImageName;
+
+ private GalleryImageTagsUpdate updateProperties;
+
+ public GalleryImageImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public GalleryImage create() {
+ this.innerObject = serviceManager.serviceClient()
+ .getGalleryImages()
+ .createOrUpdate(resourceGroupName, galleryImageName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public GalleryImage create(Context context) {
+ this.innerObject = serviceManager.serviceClient()
+ .getGalleryImages()
+ .createOrUpdate(resourceGroupName, galleryImageName, this.innerModel(), context);
+ return this;
+ }
+
+ GalleryImageImpl(String name, com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager serviceManager) {
+ this.innerObject = new GalleryImageInner();
+ this.serviceManager = serviceManager;
+ this.galleryImageName = name;
+ }
+
+ public GalleryImageImpl update() {
+ this.updateProperties = new GalleryImageTagsUpdate();
+ return this;
+ }
+
+ public GalleryImage apply() {
+ this.innerObject = serviceManager.serviceClient()
+ .getGalleryImages()
+ .update(resourceGroupName, galleryImageName, updateProperties, Context.NONE);
+ return this;
+ }
+
+ public GalleryImage apply(Context context) {
+ this.innerObject = serviceManager.serviceClient()
+ .getGalleryImages()
+ .update(resourceGroupName, galleryImageName, updateProperties, context);
+ return this;
+ }
+
+ GalleryImageImpl(GalleryImageInner innerObject,
+ com.azure.resourcemanager.azurestackhci.vm.AzureStackHciVmManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = ResourceManagerUtils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.galleryImageName = ResourceManagerUtils.getValueFromIdByName(innerObject.id(), "galleryImages");
+ }
+
+ public GalleryImage refresh() {
+ this.innerObject = serviceManager.serviceClient()
+ .getGalleryImages()
+ .getByResourceGroupWithResponse(resourceGroupName, galleryImageName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public GalleryImage refresh(Context context) {
+ this.innerObject = serviceManager.serviceClient()
+ .getGalleryImages()
+ .getByResourceGroupWithResponse(resourceGroupName, galleryImageName, context)
+ .getValue();
+ return this;
+ }
+
+ public GalleryImageImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public GalleryImageImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public GalleryImageImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.innerModel().withTags(tags);
+ return this;
+ } else {
+ this.updateProperties.withTags(tags);
+ return this;
+ }
+ }
+
+ public GalleryImageImpl withProperties(GalleryImageProperties properties) {
+ this.innerModel().withProperties(properties);
+ return this;
+ }
+
+ public GalleryImageImpl withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.innerModel().withExtendedLocation(extendedLocation);
+ return this;
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel() == null || this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/GalleryImagesClientImpl.java b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/GalleryImagesClientImpl.java
new file mode 100644
index 000000000000..55f22cbfcc2c
--- /dev/null
+++ b/sdk/azurestackhci/azure-resourcemanager-azurestackhci-vm/src/main/java/com/azure/resourcemanager/azurestackhci/vm/implementation/GalleryImagesClientImpl.java
@@ -0,0 +1,1473 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.resourcemanager.azurestackhci.vm.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.BinaryData;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.GalleryImagesClient;
+import com.azure.resourcemanager.azurestackhci.vm.fluent.models.GalleryImageInner;
+import com.azure.resourcemanager.azurestackhci.vm.implementation.models.GalleryImageListResult;
+import com.azure.resourcemanager.azurestackhci.vm.models.GalleryImageTagsUpdate;
+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 GalleryImagesClient.
+ */
+public final class GalleryImagesClientImpl implements GalleryImagesClient {
+ /**
+ * The proxy service used to perform REST calls.
+ */
+ private final GalleryImagesService service;
+
+ /**
+ * The service client containing this operation class.
+ */
+ private final AzureStackHciVmMgmtClientImpl client;
+
+ /**
+ * Initializes an instance of GalleryImagesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ GalleryImagesClientImpl(AzureStackHciVmMgmtClientImpl client) {
+ this.service
+ = RestProxy.create(GalleryImagesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AzureStackHciVmMgmtClientGalleryImages to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{endpoint}")
+ @ServiceInterface(name = "AzureStackHciVmMgmtClientGalleryImages")
+ public interface GalleryImagesService {
+ @Headers({ "Content-Type: application/json" })
+ @Get("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages/{galleryImageName}")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByResourceGroup(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("galleryImageName") String galleryImageName, @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages/{galleryImageName}")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response getByResourceGroupSync(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("galleryImageName") String galleryImageName, @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Put("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages/{galleryImageName}")
+ @ExpectedResponses({ 200, 201 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("galleryImageName") String galleryImageName, @HeaderParam("Content-Type") String contentType,
+ @HeaderParam("Accept") String accept, @BodyParam("application/json") GalleryImageInner resource,
+ Context context);
+
+ @Put("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages/{galleryImageName}")
+ @ExpectedResponses({ 200, 201 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response createOrUpdateSync(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("galleryImageName") String galleryImageName, @HeaderParam("Content-Type") String contentType,
+ @HeaderParam("Accept") String accept, @BodyParam("application/json") GalleryImageInner resource,
+ Context context);
+
+ @Patch("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages/{galleryImageName}")
+ @ExpectedResponses({ 200, 202 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> update(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("galleryImageName") String galleryImageName, @HeaderParam("Content-Type") String contentType,
+ @HeaderParam("Accept") String accept, @BodyParam("application/json") GalleryImageTagsUpdate properties,
+ Context context);
+
+ @Patch("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages/{galleryImageName}")
+ @ExpectedResponses({ 200, 202 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response updateSync(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("galleryImageName") String galleryImageName, @HeaderParam("Content-Type") String contentType,
+ @HeaderParam("Accept") String accept, @BodyParam("application/json") GalleryImageTagsUpdate properties,
+ Context context);
+
+ @Headers({ "Accept: application/json;q=0.9", "Content-Type: application/json" })
+ @Delete("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages/{galleryImageName}")
+ @ExpectedResponses({ 202, 204 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("galleryImageName") String galleryImageName, Context context);
+
+ @Headers({ "Accept: application/json;q=0.9", "Content-Type: application/json" })
+ @Delete("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages/{galleryImageName}")
+ @ExpectedResponses({ 202, 204 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response deleteSync(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("galleryImageName") String galleryImageName, Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroup(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName, @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/galleryImages")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response listByResourceGroupSync(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName, @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/galleryImages")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept, Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/galleryImages")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response listSync(@HostParam("endpoint") String endpoint,
+ @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId,
+ @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("endpoint") String endpoint,
+ @HeaderParam("Accept") String accept, Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("{nextLink}")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response listByResourceGroupNextSync(
+ @PathParam(value = "nextLink", encoded = true) String nextLink, @HostParam("endpoint") String endpoint,
+ @HeaderParam("Accept") String accept, Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("{nextLink}")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listAllNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink, @HostParam("endpoint") String endpoint,
+ @HeaderParam("Accept") String accept, Context context);
+
+ @Headers({ "Content-Type: application/json" })
+ @Get("{nextLink}")
+ @ExpectedResponses({ 200 })
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Response listAllNextSync(@PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("endpoint") String endpoint, @HeaderParam("Accept") String accept, Context context);
+ }
+
+ /**
+ * Gets a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @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 gallery image along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(String resourceGroupName,
+ String galleryImageName) {
+ 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 (galleryImageName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter galleryImageName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.getByResourceGroup(this.client.getEndpoint(), this.client.getApiVersion(),
+ this.client.getSubscriptionId(), resourceGroupName, galleryImageName, accept, context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @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 gallery image on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByResourceGroupAsync(String resourceGroupName, String galleryImageName) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, galleryImageName)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Gets a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @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 gallery image along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByResourceGroupWithResponse(String resourceGroupName, String galleryImageName,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (galleryImageName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter galleryImageName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return service.getByResourceGroupSync(this.client.getEndpoint(), this.client.getApiVersion(),
+ this.client.getSubscriptionId(), resourceGroupName, galleryImageName, accept, context);
+ }
+
+ /**
+ * Gets a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @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 gallery image.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public GalleryImageInner getByResourceGroup(String resourceGroupName, String galleryImageName) {
+ return getByResourceGroupWithResponse(resourceGroupName, galleryImageName, Context.NONE).getValue();
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition along with {@link Response} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(String resourceGroupName,
+ String galleryImageName, GalleryImageInner resource) {
+ 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 (galleryImageName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter galleryImageName is required and cannot be null."));
+ }
+ if (resource == null) {
+ return Mono.error(new IllegalArgumentException("Parameter resource is required and cannot be null."));
+ } else {
+ resource.validate();
+ }
+ final String contentType = "application/json";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.createOrUpdate(this.client.getEndpoint(), this.client.getApiVersion(),
+ this.client.getSubscriptionId(), resourceGroupName, galleryImageName, contentType, accept, resource,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Response createOrUpdateWithResponse(String resourceGroupName, String galleryImageName,
+ GalleryImageInner resource) {
+ if (this.client.getEndpoint() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (galleryImageName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter galleryImageName is required and cannot be null."));
+ }
+ if (resource == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter resource is required and cannot be null."));
+ } else {
+ resource.validate();
+ }
+ final String contentType = "application/json";
+ final String accept = "application/json";
+ return service.createOrUpdateSync(this.client.getEndpoint(), this.client.getApiVersion(),
+ this.client.getSubscriptionId(), resourceGroupName, galleryImageName, contentType, accept, resource,
+ Context.NONE);
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Response createOrUpdateWithResponse(String resourceGroupName, String galleryImageName,
+ GalleryImageInner resource, Context context) {
+ if (this.client.getEndpoint() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (galleryImageName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter galleryImageName is required and cannot be null."));
+ }
+ if (resource == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter resource is required and cannot be null."));
+ } else {
+ resource.validate();
+ }
+ final String contentType = "application/json";
+ final String accept = "application/json";
+ return service.createOrUpdateSync(this.client.getEndpoint(), this.client.getApiVersion(),
+ this.client.getSubscriptionId(), resourceGroupName, galleryImageName, contentType, accept, resource,
+ context);
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, GalleryImageInner>
+ beginCreateOrUpdateAsync(String resourceGroupName, String galleryImageName, GalleryImageInner resource) {
+ Mono>> mono
+ = createOrUpdateWithResponseAsync(resourceGroupName, galleryImageName, resource);
+ return this.client.getLroResult(mono, this.client.getHttpPipeline(),
+ GalleryImageInner.class, GalleryImageInner.class, this.client.getContext());
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, GalleryImageInner> beginCreateOrUpdate(String resourceGroupName,
+ String galleryImageName, GalleryImageInner resource) {
+ Response response = createOrUpdateWithResponse(resourceGroupName, galleryImageName, resource);
+ return this.client.getLroResult(response, GalleryImageInner.class,
+ GalleryImageInner.class, Context.NONE);
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, GalleryImageInner> beginCreateOrUpdate(String resourceGroupName,
+ String galleryImageName, GalleryImageInner resource, Context context) {
+ Response response
+ = createOrUpdateWithResponse(resourceGroupName, galleryImageName, resource, context);
+ return this.client.getLroResult(response, GalleryImageInner.class,
+ GalleryImageInner.class, context);
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(String resourceGroupName, String galleryImageName,
+ GalleryImageInner resource) {
+ return beginCreateOrUpdateAsync(resourceGroupName, galleryImageName, resource).last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public GalleryImageInner createOrUpdate(String resourceGroupName, String galleryImageName,
+ GalleryImageInner resource) {
+ return beginCreateOrUpdate(resourceGroupName, galleryImageName, resource).getFinalResult();
+ }
+
+ /**
+ * The operation to create or update a gallery image. Please note some properties can be set only during gallery
+ * image creation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param resource Resource create parameters.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public GalleryImageInner createOrUpdate(String resourceGroupName, String galleryImageName,
+ GalleryImageInner resource, Context context) {
+ return beginCreateOrUpdate(resourceGroupName, galleryImageName, resource, context).getFinalResult();
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition along with {@link Response} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> updateWithResponseAsync(String resourceGroupName, String galleryImageName,
+ GalleryImageTagsUpdate properties) {
+ 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 (galleryImageName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter galleryImageName is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String contentType = "application/json";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.update(this.client.getEndpoint(), this.client.getApiVersion(),
+ this.client.getSubscriptionId(), resourceGroupName, galleryImageName, contentType, accept, properties,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Response updateWithResponse(String resourceGroupName, String galleryImageName,
+ GalleryImageTagsUpdate properties) {
+ if (this.client.getEndpoint() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (galleryImageName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter galleryImageName is required and cannot be null."));
+ }
+ if (properties == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String contentType = "application/json";
+ final String accept = "application/json";
+ return service.updateSync(this.client.getEndpoint(), this.client.getApiVersion(),
+ this.client.getSubscriptionId(), resourceGroupName, galleryImageName, contentType, accept, properties,
+ Context.NONE);
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Response updateWithResponse(String resourceGroupName, String galleryImageName,
+ GalleryImageTagsUpdate properties, Context context) {
+ if (this.client.getEndpoint() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (galleryImageName == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter galleryImageName is required and cannot be null."));
+ }
+ if (properties == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String contentType = "application/json";
+ final String accept = "application/json";
+ return service.updateSync(this.client.getEndpoint(), this.client.getApiVersion(),
+ this.client.getSubscriptionId(), resourceGroupName, galleryImageName, contentType, accept, properties,
+ context);
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, GalleryImageInner> beginUpdateAsync(String resourceGroupName,
+ String galleryImageName, GalleryImageTagsUpdate properties) {
+ Mono>> mono
+ = updateWithResponseAsync(resourceGroupName, galleryImageName, properties);
+ return this.client.getLroResult(mono, this.client.getHttpPipeline(),
+ GalleryImageInner.class, GalleryImageInner.class, this.client.getContext());
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, GalleryImageInner> beginUpdate(String resourceGroupName,
+ String galleryImageName, GalleryImageTagsUpdate properties) {
+ Response response = updateWithResponse(resourceGroupName, galleryImageName, properties);
+ return this.client.getLroResult(response, GalleryImageInner.class,
+ GalleryImageInner.class, Context.NONE);
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, GalleryImageInner> beginUpdate(String resourceGroupName,
+ String galleryImageName, GalleryImageTagsUpdate properties, Context context) {
+ Response response = updateWithResponse(resourceGroupName, galleryImageName, properties, context);
+ return this.client.getLroResult(response, GalleryImageInner.class,
+ GalleryImageInner.class, context);
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(String resourceGroupName, String galleryImageName,
+ GalleryImageTagsUpdate properties) {
+ return beginUpdateAsync(resourceGroupName, galleryImageName, properties).last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public GalleryImageInner update(String resourceGroupName, String galleryImageName,
+ GalleryImageTagsUpdate properties) {
+ return beginUpdate(resourceGroupName, galleryImageName, properties).getFinalResult();
+ }
+
+ /**
+ * The operation to update a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @param properties The resource properties to be updated.
+ * @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 gallery images resource definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public GalleryImageInner update(String resourceGroupName, String galleryImageName,
+ GalleryImageTagsUpdate properties, Context context) {
+ return beginUpdate(resourceGroupName, galleryImageName, properties, context).getFinalResult();
+ }
+
+ /**
+ * The operation to delete a gallery image.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param galleryImageName Name of the gallery image.
+ * @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