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 ConnectedVMware service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ConnectedVMware service API instance.
+ */
+ public ConnectedVMwareManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder
+ .append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.connectedvmware")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ if (retryOptions != null) {
+ retryPolicy = new RetryPolicy(retryOptions);
+ } else {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new AddHeadersFromContextPolicy());
+ policies.add(new RequestIdPolicy());
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new ConnectedVMwareManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of Operations.
+ *
+ * @return Resource collection API of Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /**
+ * Gets the resource collection API of ResourcePools.
+ *
+ * @return Resource collection API of ResourcePools.
+ */
+ public ResourcePools resourcePools() {
+ if (this.resourcePools == null) {
+ this.resourcePools = new ResourcePoolsImpl(clientObject.getResourcePools(), this);
+ }
+ return resourcePools;
+ }
+
+ /**
+ * Gets the resource collection API of Clusters.
+ *
+ * @return Resource collection API of Clusters.
+ */
+ public Clusters clusters() {
+ if (this.clusters == null) {
+ this.clusters = new ClustersImpl(clientObject.getClusters(), this);
+ }
+ return clusters;
+ }
+
+ /**
+ * Gets the resource collection API of Hosts.
+ *
+ * @return Resource collection API of Hosts.
+ */
+ public Hosts hosts() {
+ if (this.hosts == null) {
+ this.hosts = new HostsImpl(clientObject.getHosts(), this);
+ }
+ return hosts;
+ }
+
+ /**
+ * Gets the resource collection API of Datastores.
+ *
+ * @return Resource collection API of Datastores.
+ */
+ public Datastores datastores() {
+ if (this.datastores == null) {
+ this.datastores = new DatastoresImpl(clientObject.getDatastores(), this);
+ }
+ return datastores;
+ }
+
+ /**
+ * Gets the resource collection API of VCenters.
+ *
+ * @return Resource collection API of VCenters.
+ */
+ public VCenters vCenters() {
+ if (this.vCenters == null) {
+ this.vCenters = new VCentersImpl(clientObject.getVCenters(), this);
+ }
+ return vCenters;
+ }
+
+ /**
+ * Gets the resource collection API of VirtualMachines.
+ *
+ * @return Resource collection API of VirtualMachines.
+ */
+ public VirtualMachines virtualMachines() {
+ if (this.virtualMachines == null) {
+ this.virtualMachines = new VirtualMachinesImpl(clientObject.getVirtualMachines(), this);
+ }
+ return virtualMachines;
+ }
+
+ /**
+ * Gets the resource collection API of VirtualMachineTemplates.
+ *
+ * @return Resource collection API of VirtualMachineTemplates.
+ */
+ public VirtualMachineTemplates virtualMachineTemplates() {
+ if (this.virtualMachineTemplates == null) {
+ this.virtualMachineTemplates =
+ new VirtualMachineTemplatesImpl(clientObject.getVirtualMachineTemplates(), this);
+ }
+ return virtualMachineTemplates;
+ }
+
+ /**
+ * Gets the resource collection API of VirtualNetworks.
+ *
+ * @return Resource collection API of VirtualNetworks.
+ */
+ public VirtualNetworks virtualNetworks() {
+ if (this.virtualNetworks == null) {
+ this.virtualNetworks = new VirtualNetworksImpl(clientObject.getVirtualNetworks(), this);
+ }
+ return virtualNetworks;
+ }
+
+ /**
+ * Gets the resource collection API of InventoryItems.
+ *
+ * @return Resource collection API of InventoryItems.
+ */
+ public InventoryItems inventoryItems() {
+ if (this.inventoryItems == null) {
+ this.inventoryItems = new InventoryItemsImpl(clientObject.getInventoryItems(), this);
+ }
+ return inventoryItems;
+ }
+
+ /**
+ * 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 MachineExtensions.
+ *
+ * @return Resource collection API of MachineExtensions.
+ */
+ public MachineExtensions machineExtensions() {
+ if (this.machineExtensions == null) {
+ this.machineExtensions = new MachineExtensionsImpl(clientObject.getMachineExtensions(), this);
+ }
+ return machineExtensions;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * @return Wrapped service client ConnectedVMwareClient providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public ConnectedVMwareClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ClustersClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ClustersClient.java
new file mode 100644
index 000000000000..54c835b33962
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ClustersClient.java
@@ -0,0 +1,264 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.ClusterInner;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in ClustersClient. */
+public interface ClustersClient {
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ClusterInner> beginCreate(
+ String resourceGroupName, String clusterName, ClusterInner body);
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ClusterInner> beginCreate(
+ String resourceGroupName, String clusterName, ClusterInner body, Context context);
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ClusterInner create(String resourceGroupName, String clusterName, ClusterInner body);
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ClusterInner create(String resourceGroupName, String clusterName);
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ClusterInner create(String resourceGroupName, String clusterName, ClusterInner body, Context context);
+
+ /**
+ * Implements cluster GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ClusterInner getByResourceGroup(String resourceGroupName, String clusterName);
+
+ /**
+ * Implements cluster GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String clusterName, Context context);
+
+ /**
+ * API to update certain properties of the cluster resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ClusterInner update(String resourceGroupName, String clusterName);
+
+ /**
+ * API to update certain properties of the cluster resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String clusterName, ResourcePatch body, Context context);
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 clusterName, Boolean force);
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 clusterName, Boolean force, Context context);
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 clusterName, Boolean force);
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String clusterName);
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 clusterName, Boolean force, Context context);
+
+ /**
+ * List of clusters in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of clusters in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * List of clusters in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of clusters in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ConnectedVMwareClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ConnectedVMwareClient.java
new file mode 100644
index 000000000000..5f85407c48fa
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ConnectedVMwareClient.java
@@ -0,0 +1,137 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for ConnectedVMwareClient class. */
+public interface ConnectedVMwareClient {
+ /**
+ * Gets The Subscription ID.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the ResourcePoolsClient object to access its operations.
+ *
+ * @return the ResourcePoolsClient object.
+ */
+ ResourcePoolsClient getResourcePools();
+
+ /**
+ * Gets the ClustersClient object to access its operations.
+ *
+ * @return the ClustersClient object.
+ */
+ ClustersClient getClusters();
+
+ /**
+ * Gets the HostsClient object to access its operations.
+ *
+ * @return the HostsClient object.
+ */
+ HostsClient getHosts();
+
+ /**
+ * Gets the DatastoresClient object to access its operations.
+ *
+ * @return the DatastoresClient object.
+ */
+ DatastoresClient getDatastores();
+
+ /**
+ * Gets the VCentersClient object to access its operations.
+ *
+ * @return the VCentersClient object.
+ */
+ VCentersClient getVCenters();
+
+ /**
+ * Gets the VirtualMachinesClient object to access its operations.
+ *
+ * @return the VirtualMachinesClient object.
+ */
+ VirtualMachinesClient getVirtualMachines();
+
+ /**
+ * Gets the VirtualMachineTemplatesClient object to access its operations.
+ *
+ * @return the VirtualMachineTemplatesClient object.
+ */
+ VirtualMachineTemplatesClient getVirtualMachineTemplates();
+
+ /**
+ * Gets the VirtualNetworksClient object to access its operations.
+ *
+ * @return the VirtualNetworksClient object.
+ */
+ VirtualNetworksClient getVirtualNetworks();
+
+ /**
+ * Gets the InventoryItemsClient object to access its operations.
+ *
+ * @return the InventoryItemsClient object.
+ */
+ InventoryItemsClient getInventoryItems();
+
+ /**
+ * Gets the HybridIdentityMetadatasClient object to access its operations.
+ *
+ * @return the HybridIdentityMetadatasClient object.
+ */
+ HybridIdentityMetadatasClient getHybridIdentityMetadatas();
+
+ /**
+ * Gets the MachineExtensionsClient object to access its operations.
+ *
+ * @return the MachineExtensionsClient object.
+ */
+ MachineExtensionsClient getMachineExtensions();
+
+ /**
+ * Gets the GuestAgentsClient object to access its operations.
+ *
+ * @return the GuestAgentsClient object.
+ */
+ GuestAgentsClient getGuestAgents();
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/DatastoresClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/DatastoresClient.java
new file mode 100644
index 000000000000..13feebd20da7
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/DatastoresClient.java
@@ -0,0 +1,264 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.DatastoreInner;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in DatastoresClient. */
+public interface DatastoresClient {
+ /**
+ * Create Or Update datastore.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the datastore.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DatastoreInner> beginCreate(
+ String resourceGroupName, String datastoreName, DatastoreInner body);
+
+ /**
+ * Create Or Update datastore.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the datastore.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DatastoreInner> beginCreate(
+ String resourceGroupName, String datastoreName, DatastoreInner body, Context context);
+
+ /**
+ * Create Or Update datastore.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the datastore.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DatastoreInner create(String resourceGroupName, String datastoreName, DatastoreInner body);
+
+ /**
+ * Create Or Update datastore.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the datastore.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DatastoreInner create(String resourceGroupName, String datastoreName);
+
+ /**
+ * Create Or Update datastore.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the datastore.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DatastoreInner create(String resourceGroupName, String datastoreName, DatastoreInner body, Context context);
+
+ /**
+ * Implements datastore GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the datastore.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DatastoreInner getByResourceGroup(String resourceGroupName, String datastoreName);
+
+ /**
+ * Implements datastore GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the datastore along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String datastoreName, Context context);
+
+ /**
+ * API to update certain properties of the datastore resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the datastore.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DatastoreInner update(String resourceGroupName, String datastoreName);
+
+ /**
+ * API to update certain properties of the datastore resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the datastore along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String datastoreName, ResourcePatch body, Context context);
+
+ /**
+ * Implements datastore DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 datastoreName, Boolean force);
+
+ /**
+ * Implements datastore DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 datastoreName, Boolean force, Context context);
+
+ /**
+ * Implements datastore DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 datastoreName, Boolean force);
+
+ /**
+ * Implements datastore DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 datastoreName);
+
+ /**
+ * Implements datastore DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param datastoreName Name of the datastore.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 datastoreName, Boolean force, Context context);
+
+ /**
+ * List of datastores in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Datastores as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of datastores in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Datastores as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * List of datastores in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Datastores as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of datastores in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Datastores as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/GuestAgentsClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/GuestAgentsClient.java
new file mode 100644
index 000000000000..5a59a834bc65
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/GuestAgentsClient.java
@@ -0,0 +1,210 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.GuestAgentInner;
+
+/** An instance of this class provides access to all the operations defined in GuestAgentsClient. */
+public interface GuestAgentsClient {
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the guestAgents.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines the GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GuestAgentInner> beginCreate(
+ String resourceGroupName, String virtualMachineName, String name, GuestAgentInner body);
+
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the guestAgents.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines the GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GuestAgentInner> beginCreate(
+ String resourceGroupName, String virtualMachineName, String name, GuestAgentInner body, Context context);
+
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the guestAgents.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GuestAgentInner create(String resourceGroupName, String virtualMachineName, String name, GuestAgentInner body);
+
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the guestAgents.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 resourceGroupName, String virtualMachineName, String name);
+
+ /**
+ * Create Or Update GuestAgent.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the guestAgents.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the GuestAgent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GuestAgentInner create(
+ String resourceGroupName, String virtualMachineName, String name, GuestAgentInner body, Context context);
+
+ /**
+ * Implements GuestAgent GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the GuestAgent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 resourceGroupName, String virtualMachineName, String name);
+
+ /**
+ * Implements GuestAgent GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the GuestAgent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 resourceGroupName, String virtualMachineName, String name, Context context);
+
+ /**
+ * Implements GuestAgent DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the GuestAgent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String virtualMachineName, String name);
+
+ /**
+ * Implements GuestAgent DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the GuestAgent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String virtualMachineName, String name, Context context);
+
+ /**
+ * Implements GuestAgent DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the GuestAgent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineName, String name);
+
+ /**
+ * Implements GuestAgent DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param name Name of the GuestAgent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineName, String name, Context context);
+
+ /**
+ * Returns the list of GuestAgent of the given vm.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of GuestAgent as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVm(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Returns the list of GuestAgent of the given vm.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of GuestAgent as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVm(String resourceGroupName, String virtualMachineName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/HostsClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/HostsClient.java
new file mode 100644
index 000000000000..7cb61265d45e
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/HostsClient.java
@@ -0,0 +1,263 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.HostModelInner;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in HostsClient. */
+public interface HostsClient {
+ /**
+ * Create Or Update host.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the host.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, HostModelInner> beginCreate(
+ String resourceGroupName, String hostname, HostModelInner body);
+
+ /**
+ * Create Or Update host.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the host.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, HostModelInner> beginCreate(
+ String resourceGroupName, String hostname, HostModelInner body, Context context);
+
+ /**
+ * Create Or Update host.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the host.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ HostModelInner create(String resourceGroupName, String hostname, HostModelInner body);
+
+ /**
+ * Create Or Update host.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the host.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ HostModelInner create(String resourceGroupName, String hostname);
+
+ /**
+ * Create Or Update host.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the host.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ HostModelInner create(String resourceGroupName, String hostname, HostModelInner body, Context context);
+
+ /**
+ * Implements host GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the host.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ HostModelInner getByResourceGroup(String resourceGroupName, String hostname);
+
+ /**
+ * Implements host GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the host along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String hostname, Context context);
+
+ /**
+ * API to update certain properties of the host resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the host.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ HostModelInner update(String resourceGroupName, String hostname);
+
+ /**
+ * API to update certain properties of the host resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the host along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String hostname, ResourcePatch body, Context context);
+
+ /**
+ * Implements host DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 hostname, Boolean force);
+
+ /**
+ * Implements host DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 hostname, Boolean force, Context context);
+
+ /**
+ * Implements host DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 hostname, Boolean force);
+
+ /**
+ * Implements host DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 hostname);
+
+ /**
+ * Implements host DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param hostname Name of the host.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 hostname, Boolean force, Context context);
+
+ /**
+ * List of hosts in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Hosts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of hosts in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Hosts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * List of hosts in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Hosts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of hosts in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Hosts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/HybridIdentityMetadatasClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/HybridIdentityMetadatasClient.java
new file mode 100644
index 000000000000..e45b16a29dec
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/HybridIdentityMetadatasClient.java
@@ -0,0 +1,137 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.HybridIdentityMetadataInner;
+
+/** An instance of this class provides access to all the operations defined in HybridIdentityMetadatasClient. */
+public interface HybridIdentityMetadatasClient {
+ /**
+ * Create Or Update HybridIdentityMetadata.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param metadataName Name of the hybridIdentityMetadata.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 create(String resourceGroupName, String virtualMachineName, String metadataName);
+
+ /**
+ * Create Or Update HybridIdentityMetadata.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param metadataName Name of the hybridIdentityMetadata.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the HybridIdentityMetadata along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName,
+ String virtualMachineName,
+ String metadataName,
+ HybridIdentityMetadataInner body,
+ Context context);
+
+ /**
+ * Implements HybridIdentityMetadata GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param metadataName Name of the HybridIdentityMetadata.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 resourceGroupName, String virtualMachineName, String metadataName);
+
+ /**
+ * Implements HybridIdentityMetadata GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param metadataName Name of the HybridIdentityMetadata.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 resourceGroupName, String virtualMachineName, String metadataName, Context context);
+
+ /**
+ * Implements HybridIdentityMetadata DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param metadataName Name of the HybridIdentityMetadata.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineName, String metadataName);
+
+ /**
+ * Implements HybridIdentityMetadata DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param metadataName Name of the HybridIdentityMetadata.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String virtualMachineName, String metadataName, Context context);
+
+ /**
+ * Returns the list of HybridIdentityMetadata of the given vm.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of HybridIdentityMetadata as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVm(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Returns the list of HybridIdentityMetadata of the given vm.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the vm.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of HybridIdentityMetadata as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVm(
+ String resourceGroupName, String virtualMachineName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/InventoryItemsClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/InventoryItemsClient.java
new file mode 100644
index 000000000000..472e28873c47
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/InventoryItemsClient.java
@@ -0,0 +1,136 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.InventoryItemInner;
+
+/** An instance of this class provides access to all the operations defined in InventoryItemsClient. */
+public interface InventoryItemsClient {
+ /**
+ * Create Or Update InventoryItem.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the inventory item.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ InventoryItemInner create(String resourceGroupName, String vcenterName, String inventoryItemName);
+
+ /**
+ * Create Or Update InventoryItem.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the inventory item along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName,
+ String vcenterName,
+ String inventoryItemName,
+ InventoryItemInner body,
+ Context context);
+
+ /**
+ * Implements InventoryItem GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the inventory item.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ InventoryItemInner get(String resourceGroupName, String vcenterName, String inventoryItemName);
+
+ /**
+ * Implements InventoryItem GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the inventory item along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String vcenterName, String inventoryItemName, Context context);
+
+ /**
+ * Implements inventoryItem DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String vcenterName, String inventoryItemName);
+
+ /**
+ * Implements inventoryItem DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param inventoryItemName Name of the inventoryItem.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String vcenterName, String inventoryItemName, Context context);
+
+ /**
+ * Returns the list of inventoryItems of the given vCenter.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of InventoryItems as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVCenter(String resourceGroupName, String vcenterName);
+
+ /**
+ * Returns the list of inventoryItems of the given vCenter.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of InventoryItems as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVCenter(String resourceGroupName, String vcenterName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/MachineExtensionsClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/MachineExtensionsClient.java
new file mode 100644
index 000000000000..c691bacf7cc1
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/MachineExtensionsClient.java
@@ -0,0 +1,281 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.MachineExtensionInner;
+import com.azure.resourcemanager.connectedvmware.models.MachineExtensionUpdate;
+
+/** An instance of this class provides access to all the operations defined in MachineExtensionsClient. */
+public interface MachineExtensionsClient {
+ /**
+ * The operation to create or update the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be created or updated.
+ * @param extensionName The name of the machine extension.
+ * @param extensionParameters Parameters supplied to the Create Machine Extension operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MachineExtensionInner> beginCreateOrUpdate(
+ String resourceGroupName, String name, String extensionName, MachineExtensionInner extensionParameters);
+
+ /**
+ * The operation to create or update the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be created or updated.
+ * @param extensionName The name of the machine extension.
+ * @param extensionParameters Parameters supplied to the Create Machine Extension operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MachineExtensionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String name,
+ String extensionName,
+ MachineExtensionInner extensionParameters,
+ Context context);
+
+ /**
+ * The operation to create or update the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be created or updated.
+ * @param extensionName The name of the machine extension.
+ * @param extensionParameters Parameters supplied to the Create Machine Extension operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MachineExtensionInner createOrUpdate(
+ String resourceGroupName, String name, String extensionName, MachineExtensionInner extensionParameters);
+
+ /**
+ * The operation to create or update the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be created or updated.
+ * @param extensionName The name of the machine extension.
+ * @param extensionParameters Parameters supplied to the Create Machine Extension operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MachineExtensionInner createOrUpdate(
+ String resourceGroupName,
+ String name,
+ String extensionName,
+ MachineExtensionInner extensionParameters,
+ Context context);
+
+ /**
+ * The operation to update the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be created or updated.
+ * @param extensionName The name of the machine extension.
+ * @param extensionParameters Parameters supplied to the Create Machine Extension operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MachineExtensionInner> beginUpdate(
+ String resourceGroupName, String name, String extensionName, MachineExtensionUpdate extensionParameters);
+
+ /**
+ * The operation to update the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be created or updated.
+ * @param extensionName The name of the machine extension.
+ * @param extensionParameters Parameters supplied to the Create Machine Extension operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MachineExtensionInner> beginUpdate(
+ String resourceGroupName,
+ String name,
+ String extensionName,
+ MachineExtensionUpdate extensionParameters,
+ Context context);
+
+ /**
+ * The operation to update the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be created or updated.
+ * @param extensionName The name of the machine extension.
+ * @param extensionParameters Parameters supplied to the Create Machine Extension operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MachineExtensionInner update(
+ String resourceGroupName, String name, String extensionName, MachineExtensionUpdate extensionParameters);
+
+ /**
+ * The operation to update the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be created or updated.
+ * @param extensionName The name of the machine extension.
+ * @param extensionParameters Parameters supplied to the Create Machine Extension operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MachineExtensionInner update(
+ String resourceGroupName,
+ String name,
+ String extensionName,
+ MachineExtensionUpdate extensionParameters,
+ Context context);
+
+ /**
+ * The operation to delete the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be deleted.
+ * @param extensionName The name of the machine extension.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 name, String extensionName);
+
+ /**
+ * The operation to delete the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be deleted.
+ * @param extensionName The name of the machine extension.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 name, String extensionName, Context context);
+
+ /**
+ * The operation to delete the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be deleted.
+ * @param extensionName The name of the machine extension.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 name, String extensionName);
+
+ /**
+ * The operation to delete the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine where the extension should be deleted.
+ * @param extensionName The name of the machine extension.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 name, String extensionName, Context context);
+
+ /**
+ * The operation to get the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine containing the extension.
+ * @param extensionName The name of the machine extension.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return describes a Machine Extension.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MachineExtensionInner get(String resourceGroupName, String name, String extensionName);
+
+ /**
+ * The operation to get the extension.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine containing the extension.
+ * @param extensionName The name of the machine extension.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return describes a Machine Extension along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String name, String extensionName, Context context);
+
+ /**
+ * The operation to get all extensions of a non-Azure machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine containing the extension.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return describes the Machine Extensions List Result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String name);
+
+ /**
+ * The operation to get all extensions of a non-Azure machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param name The name of the machine containing the extension.
+ * @param expand The expand expression to apply on the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return describes the Machine Extensions List Result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String name, String expand, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/OperationsClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/OperationsClient.java
new file mode 100644
index 000000000000..d9ef668266b0
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.connectedvmware.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Returns list of all operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return lists the operations available as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Returns list of all operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return lists the operations available as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ResourcePoolsClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ResourcePoolsClient.java
new file mode 100644
index 000000000000..76b2a598008d
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/ResourcePoolsClient.java
@@ -0,0 +1,265 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.ResourcePoolInner;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in ResourcePoolsClient. */
+public interface ResourcePoolsClient {
+ /**
+ * Create Or Update resourcePool.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the resourcePool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ResourcePoolInner> beginCreate(
+ String resourceGroupName, String resourcePoolName, ResourcePoolInner body);
+
+ /**
+ * Create Or Update resourcePool.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the resourcePool.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ResourcePoolInner> beginCreate(
+ String resourceGroupName, String resourcePoolName, ResourcePoolInner body, Context context);
+
+ /**
+ * Create Or Update resourcePool.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the resourcePool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourcePoolInner create(String resourceGroupName, String resourcePoolName, ResourcePoolInner body);
+
+ /**
+ * Create Or Update resourcePool.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the resourcePool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourcePoolInner create(String resourceGroupName, String resourcePoolName);
+
+ /**
+ * Create Or Update resourcePool.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the resourcePool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourcePoolInner create(
+ String resourceGroupName, String resourcePoolName, ResourcePoolInner body, Context context);
+
+ /**
+ * Implements resourcePool GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the resourcePool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourcePoolInner getByResourceGroup(String resourceGroupName, String resourcePoolName);
+
+ /**
+ * Implements resourcePool GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the resourcePool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String resourcePoolName, Context context);
+
+ /**
+ * API to update certain properties of the resourcePool resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the resourcePool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourcePoolInner update(String resourceGroupName, String resourcePoolName);
+
+ /**
+ * API to update certain properties of the resourcePool resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the resourcePool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String resourcePoolName, ResourcePatch body, Context context);
+
+ /**
+ * Implements resourcePool DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 resourcePoolName, Boolean force);
+
+ /**
+ * Implements resourcePool DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 resourcePoolName, Boolean force, Context context);
+
+ /**
+ * Implements resourcePool DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 resourcePoolName, Boolean force);
+
+ /**
+ * Implements resourcePool DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 resourcePoolName);
+
+ /**
+ * Implements resourcePool DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param resourcePoolName Name of the resourcePool.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 resourcePoolName, Boolean force, Context context);
+
+ /**
+ * List of resourcePools in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of ResourcePools as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of resourcePools in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of ResourcePools as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * List of resourcePools in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of ResourcePools as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of resourcePools in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of ResourcePools as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VCentersClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VCentersClient.java
new file mode 100644
index 000000000000..224232ea48c6
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VCentersClient.java
@@ -0,0 +1,264 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.VCenterInner;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in VCentersClient. */
+public interface VCentersClient {
+ /**
+ * Create Or Update vCenter.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines the vCenter.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VCenterInner> beginCreate(
+ String resourceGroupName, String vcenterName, VCenterInner body);
+
+ /**
+ * Create Or Update vCenter.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines the vCenter.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VCenterInner> beginCreate(
+ String resourceGroupName, String vcenterName, VCenterInner body, Context context);
+
+ /**
+ * Create Or Update vCenter.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the vCenter.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VCenterInner create(String resourceGroupName, String vcenterName, VCenterInner body);
+
+ /**
+ * Create Or Update vCenter.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 vCenter.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VCenterInner create(String resourceGroupName, String vcenterName);
+
+ /**
+ * Create Or Update vCenter.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the vCenter.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VCenterInner create(String resourceGroupName, String vcenterName, VCenterInner body, Context context);
+
+ /**
+ * Implements vCenter GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 vCenter.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VCenterInner getByResourceGroup(String resourceGroupName, String vcenterName);
+
+ /**
+ * Implements vCenter GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 vCenter along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String vcenterName, Context context);
+
+ /**
+ * API to update certain properties of the vCenter resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 vCenter.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VCenterInner update(String resourceGroupName, String vcenterName);
+
+ /**
+ * API to update certain properties of the vCenter resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the vCenter along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String vcenterName, ResourcePatch body, Context context);
+
+ /**
+ * Implements vCenter DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 vcenterName, Boolean force);
+
+ /**
+ * Implements vCenter DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown 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 vcenterName, Boolean force, Context context);
+
+ /**
+ * Implements vCenter DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vcenterName, Boolean force);
+
+ /**
+ * Implements vCenter DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vcenterName);
+
+ /**
+ * Implements vCenter DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param vcenterName Name of the vCenter.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vcenterName, Boolean force, Context context);
+
+ /**
+ * List of vCenters in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VCenters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of vCenters in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VCenters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * List of vCenters in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VCenters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of vCenters in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VCenters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualMachineTemplatesClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualMachineTemplatesClient.java
new file mode 100644
index 000000000000..b1aa4cfe16d7
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualMachineTemplatesClient.java
@@ -0,0 +1,267 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.VirtualMachineTemplateInner;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in VirtualMachineTemplatesClient. */
+public interface VirtualMachineTemplatesClient {
+ /**
+ * Create Or Update virtual machine template.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the virtualMachineTemplate.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineTemplateInner> beginCreate(
+ String resourceGroupName, String virtualMachineTemplateName, VirtualMachineTemplateInner body);
+
+ /**
+ * Create Or Update virtual machine template.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the virtualMachineTemplate.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineTemplateInner> beginCreate(
+ String resourceGroupName, String virtualMachineTemplateName, VirtualMachineTemplateInner body, Context context);
+
+ /**
+ * Create Or Update virtual machine template.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachineTemplate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner create(
+ String resourceGroupName, String virtualMachineTemplateName, VirtualMachineTemplateInner body);
+
+ /**
+ * Create Or Update virtual machine template.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachineTemplate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner create(String resourceGroupName, String virtualMachineTemplateName);
+
+ /**
+ * Create Or Update virtual machine template.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachineTemplate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner create(
+ String resourceGroupName, String virtualMachineTemplateName, VirtualMachineTemplateInner body, Context context);
+
+ /**
+ * Implements virtual machine template GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachineTemplate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner getByResourceGroup(String resourceGroupName, String virtualMachineTemplateName);
+
+ /**
+ * Implements virtual machine template GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachineTemplate along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String virtualMachineTemplateName, Context context);
+
+ /**
+ * API to update certain properties of the virtual machine template resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachineTemplate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineTemplateInner update(String resourceGroupName, String virtualMachineTemplateName);
+
+ /**
+ * API to update certain properties of the virtual machine template resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachineTemplate along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String virtualMachineTemplateName, ResourcePatch body, Context context);
+
+ /**
+ * Implements virtual machine template DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String virtualMachineTemplateName, Boolean force);
+
+ /**
+ * Implements virtual machine template DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String virtualMachineTemplateName, Boolean force, Context context);
+
+ /**
+ * Implements virtual machine template DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineTemplateName, Boolean force);
+
+ /**
+ * Implements virtual machine template DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineTemplateName);
+
+ /**
+ * Implements virtual machine template DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineTemplateName Name of the virtual machine template resource.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineTemplateName, Boolean force, Context context);
+
+ /**
+ * List of virtualMachineTemplates in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachineTemplates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of virtualMachineTemplates in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachineTemplates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * List of virtualMachineTemplates in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachineTemplates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of virtualMachineTemplates in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachineTemplates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualMachinesClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualMachinesClient.java
new file mode 100644
index 000000000000..4bf94d6ff8eb
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualMachinesClient.java
@@ -0,0 +1,486 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.VirtualMachineInner;
+import com.azure.resourcemanager.connectedvmware.models.StopVirtualMachineOptions;
+import com.azure.resourcemanager.connectedvmware.models.VirtualMachineUpdate;
+
+/** An instance of this class provides access to all the operations defined in VirtualMachinesClient. */
+public interface VirtualMachinesClient {
+ /**
+ * Create Or Update virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInner> beginCreate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineInner body);
+
+ /**
+ * Create Or Update virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInner> beginCreate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineInner body, Context context);
+
+ /**
+ * Create Or Update virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner create(String resourceGroupName, String virtualMachineName, VirtualMachineInner body);
+
+ /**
+ * Create Or Update virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner create(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Create Or Update virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner create(
+ String resourceGroupName, String virtualMachineName, VirtualMachineInner body, Context context);
+
+ /**
+ * Implements virtual machine GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner getByResourceGroup(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Implements virtual machine GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachine along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * API to update certain properties of the virtual machine resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Resource properties to update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInner> beginUpdate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineUpdate body);
+
+ /**
+ * API to update certain properties of the virtual machine resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualMachineInner> beginUpdate(
+ String resourceGroupName, String virtualMachineName, VirtualMachineUpdate body, Context context);
+
+ /**
+ * API to update certain properties of the virtual machine resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Resource properties to update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner update(String resourceGroupName, String virtualMachineName, VirtualMachineUpdate body);
+
+ /**
+ * API to update certain properties of the virtual machine resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner update(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * API to update certain properties of the virtual machine resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualMachine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualMachineInner update(
+ String resourceGroupName, String virtualMachineName, VirtualMachineUpdate body, Context context);
+
+ /**
+ * Implements virtual machine DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String virtualMachineName, Boolean force);
+
+ /**
+ * Implements virtual machine DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String virtualMachineName, Boolean force, Context context);
+
+ /**
+ * Implements virtual machine DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineName, Boolean force);
+
+ /**
+ * Implements virtual machine DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Implements virtual machine DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualMachineName, Boolean force, Context context);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Virtualmachine stop action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStop(
+ String resourceGroupName, String virtualMachineName, StopVirtualMachineOptions body);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Virtualmachine stop action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStop(
+ String resourceGroupName, String virtualMachineName, StopVirtualMachineOptions body, Context context);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Virtualmachine stop action payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceGroupName, String virtualMachineName, StopVirtualMachineOptions body);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Stop virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param body Virtualmachine stop action payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String resourceGroupName, String virtualMachineName, StopVirtualMachineOptions body, Context context);
+
+ /**
+ * Start virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStart(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Start virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginStart(String resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * Start virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String resourceGroupName, String virtualMachineName);
+
+ /**
+ * Start virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * Restart virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine 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 resourceGroupName, String virtualMachineName);
+
+ /**
+ * Restart virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine 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 resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * Restart virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine 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 resourceGroupName, String virtualMachineName);
+
+ /**
+ * Restart virtual machine.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualMachineName Name of the virtual machine 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 resourceGroupName, String virtualMachineName, Context context);
+
+ /**
+ * List of virtualMachines in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachines as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of virtualMachines in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachines as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * List of virtualMachines in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachines as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of virtualMachines in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualMachines as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualNetworksClient.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualNetworksClient.java
new file mode 100644
index 000000000000..3c3dc4c29521
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/VirtualNetworksClient.java
@@ -0,0 +1,265 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.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.connectedvmware.fluent.models.VirtualNetworkInner;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+
+/** An instance of this class provides access to all the operations defined in VirtualNetworksClient. */
+public interface VirtualNetworksClient {
+ /**
+ * Create Or Update virtual network.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the virtualNetwork.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualNetworkInner> beginCreate(
+ String resourceGroupName, String virtualNetworkName, VirtualNetworkInner body);
+
+ /**
+ * Create Or Update virtual network.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the virtualNetwork.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, VirtualNetworkInner> beginCreate(
+ String resourceGroupName, String virtualNetworkName, VirtualNetworkInner body, Context context);
+
+ /**
+ * Create Or Update virtual network.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualNetwork.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner create(String resourceGroupName, String virtualNetworkName, VirtualNetworkInner body);
+
+ /**
+ * Create Or Update virtual network.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualNetwork.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner create(String resourceGroupName, String virtualNetworkName);
+
+ /**
+ * Create Or Update virtual network.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualNetwork.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner create(
+ String resourceGroupName, String virtualNetworkName, VirtualNetworkInner body, Context context);
+
+ /**
+ * Implements virtual network GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualNetwork.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner getByResourceGroup(String resourceGroupName, String virtualNetworkName);
+
+ /**
+ * Implements virtual network GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualNetwork along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String virtualNetworkName, Context context);
+
+ /**
+ * API to update certain properties of the virtual network resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualNetwork.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VirtualNetworkInner update(String resourceGroupName, String virtualNetworkName);
+
+ /**
+ * API to update certain properties of the virtual network resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the virtualNetwork along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String virtualNetworkName, ResourcePatch body, Context context);
+
+ /**
+ * Implements virtual network DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String virtualNetworkName, Boolean force);
+
+ /**
+ * Implements virtual network DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String virtualNetworkName, Boolean force, Context context);
+
+ /**
+ * Implements virtual network DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualNetworkName, Boolean force);
+
+ /**
+ * Implements virtual network DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualNetworkName);
+
+ /**
+ * Implements virtual network DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param virtualNetworkName Name of the virtual network resource.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String virtualNetworkName, Boolean force, Context context);
+
+ /**
+ * List of virtualNetworks in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualNetworks as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List of virtualNetworks in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualNetworks as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * List of virtualNetworks in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualNetworks as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List of virtualNetworks in a resource group.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of VirtualNetworks as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ClusterInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ClusterInner.java
new file mode 100644
index 000000000000..b944222cb685
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ClusterInner.java
@@ -0,0 +1,274 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the cluster. */
+@Fluent
+public final class ClusterInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ClusterProperties innerProperties = new ClusterProperties();
+
+ /*
+ * Gets or sets the extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private ClusterProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the extendedLocation property: Gets or sets the extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: Gets or sets the extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the ClusterInner object itself.
+ */
+ public ClusterInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the ClusterInner object itself.
+ */
+ public ClusterInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ClusterInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ClusterInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this cluster resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vCenterId();
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this cluster resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the ClusterInner object itself.
+ */
+ public ClusterInner withVCenterId(String vCenterId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ClusterProperties();
+ }
+ this.innerProperties().withVCenterId(vCenterId);
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the cluster.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.innerProperties() == null ? null : this.innerProperties().moRefId();
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the cluster.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the ClusterInner object itself.
+ */
+ public ClusterInner withMoRefId(String moRefId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ClusterProperties();
+ }
+ this.innerProperties().withMoRefId(moRefId);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the cluster.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the cluster.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the ClusterInner object itself.
+ */
+ public ClusterInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ClusterProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the cluster.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.innerProperties() == null ? null : this.innerProperties().moName();
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the datastoreIds property: Gets or sets the datastore ARM ids.
+ *
+ * @return the datastoreIds value.
+ */
+ public List datastoreIds() {
+ return this.innerProperties() == null ? null : this.innerProperties().datastoreIds();
+ }
+
+ /**
+ * Get the networkIds property: Gets or sets the network ARM ids.
+ *
+ * @return the networkIds value.
+ */
+ public List networkIds() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkIds();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property innerProperties in model ClusterInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ClusterInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ClusterProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ClusterProperties.java
new file mode 100644
index 000000000000..f2ac28258763
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ClusterProperties.java
@@ -0,0 +1,210 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class ClusterProperties {
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Gets or sets the ARM Id of the vCenter resource in which this cluster
+ * resides.
+ */
+ @JsonProperty(value = "vCenterId")
+ private String vCenterId;
+
+ /*
+ * Gets or sets the vCenter MoRef (Managed Object Reference) ID for the
+ * cluster.
+ */
+ @JsonProperty(value = "moRefId")
+ private String moRefId;
+
+ /*
+ * Gets or sets the inventory Item ID for the cluster.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Gets or sets the vCenter Managed Object name for the cluster.
+ */
+ @JsonProperty(value = "moName", access = JsonProperty.Access.WRITE_ONLY)
+ private String moName;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * Gets or sets the datastore ARM ids.
+ */
+ @JsonProperty(value = "datastoreIds", access = JsonProperty.Access.WRITE_ONLY)
+ private List datastoreIds;
+
+ /*
+ * Gets or sets the network ARM ids.
+ */
+ @JsonProperty(value = "networkIds", access = JsonProperty.Access.WRITE_ONLY)
+ private List networkIds;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this cluster resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.vCenterId;
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this cluster resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the ClusterProperties object itself.
+ */
+ public ClusterProperties withVCenterId(String vCenterId) {
+ this.vCenterId = vCenterId;
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the cluster.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.moRefId;
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the cluster.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the ClusterProperties object itself.
+ */
+ public ClusterProperties withMoRefId(String moRefId) {
+ this.moRefId = moRefId;
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the cluster.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the cluster.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the ClusterProperties object itself.
+ */
+ public ClusterProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the cluster.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.moName;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the datastoreIds property: Gets or sets the datastore ARM ids.
+ *
+ * @return the datastoreIds value.
+ */
+ public List datastoreIds() {
+ return this.datastoreIds;
+ }
+
+ /**
+ * Get the networkIds property: Gets or sets the network ARM ids.
+ *
+ * @return the networkIds value.
+ */
+ public List networkIds() {
+ return this.networkIds;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/DatastoreInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/DatastoreInner.java
new file mode 100644
index 000000000000..fc0d5139724c
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/DatastoreInner.java
@@ -0,0 +1,257 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.ProvisioningState;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the datastore. */
+@Fluent
+public final class DatastoreInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private DatastoreProperties innerProperties = new DatastoreProperties();
+
+ /*
+ * Gets or sets the extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private DatastoreProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the extendedLocation property: Gets or sets the extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: Gets or sets the extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the DatastoreInner object itself.
+ */
+ public DatastoreInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the DatastoreInner object itself.
+ */
+ public DatastoreInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DatastoreInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DatastoreInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this datastore resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vCenterId();
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this datastore resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the DatastoreInner object itself.
+ */
+ public DatastoreInner withVCenterId(String vCenterId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DatastoreProperties();
+ }
+ this.innerProperties().withVCenterId(vCenterId);
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the datastore.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.innerProperties() == null ? null : this.innerProperties().moRefId();
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the datastore.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the DatastoreInner object itself.
+ */
+ public DatastoreInner withMoRefId(String moRefId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DatastoreProperties();
+ }
+ this.innerProperties().withMoRefId(moRefId);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the datastore.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the datastore.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the DatastoreInner object itself.
+ */
+ public DatastoreInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DatastoreProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the datastore.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.innerProperties() == null ? null : this.innerProperties().moName();
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property innerProperties in model DatastoreInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(DatastoreInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/DatastoreProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/DatastoreProperties.java
new file mode 100644
index 000000000000..5c901bda14e6
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/DatastoreProperties.java
@@ -0,0 +1,181 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.ProvisioningState;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class DatastoreProperties {
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Gets or sets the ARM Id of the vCenter resource in which this datastore
+ * resides.
+ */
+ @JsonProperty(value = "vCenterId")
+ private String vCenterId;
+
+ /*
+ * Gets or sets the vCenter MoRef (Managed Object Reference) ID for the
+ * datastore.
+ */
+ @JsonProperty(value = "moRefId")
+ private String moRefId;
+
+ /*
+ * Gets or sets the inventory Item ID for the datastore.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Gets or sets the vCenter Managed Object name for the datastore.
+ */
+ @JsonProperty(value = "moName", access = JsonProperty.Access.WRITE_ONLY)
+ private String moName;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * Provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this datastore resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.vCenterId;
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this datastore resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the DatastoreProperties object itself.
+ */
+ public DatastoreProperties withVCenterId(String vCenterId) {
+ this.vCenterId = vCenterId;
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the datastore.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.moRefId;
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the datastore.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the DatastoreProperties object itself.
+ */
+ public DatastoreProperties withMoRefId(String moRefId) {
+ this.moRefId = moRefId;
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the datastore.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the datastore.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the DatastoreProperties object itself.
+ */
+ public DatastoreProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the datastore.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.moName;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/GuestAgentInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/GuestAgentInner.java
new file mode 100644
index 000000000000..3d9b35d9e49a
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/GuestAgentInner.java
@@ -0,0 +1,181 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.GuestCredential;
+import com.azure.resourcemanager.connectedvmware.models.HttpProxyConfiguration;
+import com.azure.resourcemanager.connectedvmware.models.ProvisioningAction;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the GuestAgent. */
+@Fluent
+public final class GuestAgentInner extends ProxyResource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private GuestAgentProperties innerProperties = new GuestAgentProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private GuestAgentProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the credentials property: Username / Password Credentials to provision guest agent.
+ *
+ * @return the credentials value.
+ */
+ public GuestCredential credentials() {
+ return this.innerProperties() == null ? null : this.innerProperties().credentials();
+ }
+
+ /**
+ * Set the credentials property: Username / Password Credentials to provision guest agent.
+ *
+ * @param credentials the credentials value to set.
+ * @return the GuestAgentInner object itself.
+ */
+ public GuestAgentInner withCredentials(GuestCredential credentials) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new GuestAgentProperties();
+ }
+ this.innerProperties().withCredentials(credentials);
+ return this;
+ }
+
+ /**
+ * Get the httpProxyConfig property: HTTP Proxy configuration for the VM.
+ *
+ * @return the httpProxyConfig value.
+ */
+ public HttpProxyConfiguration httpProxyConfig() {
+ return this.innerProperties() == null ? null : this.innerProperties().httpProxyConfig();
+ }
+
+ /**
+ * Set the httpProxyConfig property: HTTP Proxy configuration for the VM.
+ *
+ * @param httpProxyConfig the httpProxyConfig value to set.
+ * @return the GuestAgentInner object itself.
+ */
+ public GuestAgentInner withHttpProxyConfig(HttpProxyConfiguration httpProxyConfig) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new GuestAgentProperties();
+ }
+ this.innerProperties().withHttpProxyConfig(httpProxyConfig);
+ return this;
+ }
+
+ /**
+ * Get the provisioningAction property: Gets or sets the guest agent provisioning action.
+ *
+ * @return the provisioningAction value.
+ */
+ public ProvisioningAction provisioningAction() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningAction();
+ }
+
+ /**
+ * Set the provisioningAction property: Gets or sets the guest agent provisioning action.
+ *
+ * @param provisioningAction the provisioningAction value to set.
+ * @return the GuestAgentInner object itself.
+ */
+ public GuestAgentInner withProvisioningAction(ProvisioningAction provisioningAction) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new GuestAgentProperties();
+ }
+ this.innerProperties().withProvisioningAction(provisioningAction);
+ return this;
+ }
+
+ /**
+ * Get the status property: Gets or sets the guest agent status.
+ *
+ * @return the status value.
+ */
+ public String status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property innerProperties in model GuestAgentInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(GuestAgentInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/GuestAgentProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/GuestAgentProperties.java
new file mode 100644
index 000000000000..2198f627b8e1
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/GuestAgentProperties.java
@@ -0,0 +1,187 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.GuestCredential;
+import com.azure.resourcemanager.connectedvmware.models.HttpProxyConfiguration;
+import com.azure.resourcemanager.connectedvmware.models.ProvisioningAction;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class GuestAgentProperties {
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Username / Password Credentials to provision guest agent.
+ */
+ @JsonProperty(value = "credentials")
+ private GuestCredential credentials;
+
+ /*
+ * HTTP Proxy configuration for the VM.
+ */
+ @JsonProperty(value = "httpProxyConfig")
+ private HttpProxyConfiguration httpProxyConfig;
+
+ /*
+ * Gets or sets the guest agent provisioning action.
+ */
+ @JsonProperty(value = "provisioningAction")
+ private ProvisioningAction provisioningAction;
+
+ /*
+ * Gets or sets the guest agent status.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private String status;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the credentials property: Username / Password Credentials to provision guest agent.
+ *
+ * @return the credentials value.
+ */
+ public GuestCredential credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set the credentials property: Username / Password Credentials to provision guest agent.
+ *
+ * @param credentials the credentials value to set.
+ * @return the GuestAgentProperties object itself.
+ */
+ public GuestAgentProperties withCredentials(GuestCredential credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+ /**
+ * Get the httpProxyConfig property: HTTP Proxy configuration for the VM.
+ *
+ * @return the httpProxyConfig value.
+ */
+ public HttpProxyConfiguration httpProxyConfig() {
+ return this.httpProxyConfig;
+ }
+
+ /**
+ * Set the httpProxyConfig property: HTTP Proxy configuration for the VM.
+ *
+ * @param httpProxyConfig the httpProxyConfig value to set.
+ * @return the GuestAgentProperties object itself.
+ */
+ public GuestAgentProperties withHttpProxyConfig(HttpProxyConfiguration httpProxyConfig) {
+ this.httpProxyConfig = httpProxyConfig;
+ return this;
+ }
+
+ /**
+ * Get the provisioningAction property: Gets or sets the guest agent provisioning action.
+ *
+ * @return the provisioningAction value.
+ */
+ public ProvisioningAction provisioningAction() {
+ return this.provisioningAction;
+ }
+
+ /**
+ * Set the provisioningAction property: Gets or sets the guest agent provisioning action.
+ *
+ * @param provisioningAction the provisioningAction value to set.
+ * @return the GuestAgentProperties object itself.
+ */
+ public GuestAgentProperties withProvisioningAction(ProvisioningAction provisioningAction) {
+ this.provisioningAction = provisioningAction;
+ return this;
+ }
+
+ /**
+ * Get the status property: Gets or sets the guest agent status.
+ *
+ * @return the status value.
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (credentials() != null) {
+ credentials().validate();
+ }
+ if (httpProxyConfig() != null) {
+ httpProxyConfig().validate();
+ }
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HostModelInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HostModelInner.java
new file mode 100644
index 000000000000..f9f915fa4898
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HostModelInner.java
@@ -0,0 +1,256 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the host. */
+@Fluent
+public final class HostModelInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private HostProperties innerProperties = new HostProperties();
+
+ /*
+ * Gets or sets the extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private HostProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the extendedLocation property: Gets or sets the extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: Gets or sets the extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the HostModelInner object itself.
+ */
+ public HostModelInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the HostModelInner object itself.
+ */
+ public HostModelInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public HostModelInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public HostModelInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this host resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vCenterId();
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this host resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the HostModelInner object itself.
+ */
+ public HostModelInner withVCenterId(String vCenterId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new HostProperties();
+ }
+ this.innerProperties().withVCenterId(vCenterId);
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the host.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.innerProperties() == null ? null : this.innerProperties().moRefId();
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the host.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the HostModelInner object itself.
+ */
+ public HostModelInner withMoRefId(String moRefId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new HostProperties();
+ }
+ this.innerProperties().withMoRefId(moRefId);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the host.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the host.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the HostModelInner object itself.
+ */
+ public HostModelInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new HostProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the host.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.innerProperties() == null ? null : this.innerProperties().moName();
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property innerProperties in model HostModelInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(HostModelInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HostProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HostProperties.java
new file mode 100644
index 000000000000..c509df53f099
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HostProperties.java
@@ -0,0 +1,180 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class HostProperties {
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Gets or sets the ARM Id of the vCenter resource in which this host
+ * resides.
+ */
+ @JsonProperty(value = "vCenterId")
+ private String vCenterId;
+
+ /*
+ * Gets or sets the vCenter MoRef (Managed Object Reference) ID for the
+ * host.
+ */
+ @JsonProperty(value = "moRefId")
+ private String moRefId;
+
+ /*
+ * Gets or sets the inventory Item ID for the host.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Gets or sets the vCenter Managed Object name for the host.
+ */
+ @JsonProperty(value = "moName", access = JsonProperty.Access.WRITE_ONLY)
+ private String moName;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this host resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.vCenterId;
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this host resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the HostProperties object itself.
+ */
+ public HostProperties withVCenterId(String vCenterId) {
+ this.vCenterId = vCenterId;
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the host.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.moRefId;
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the host.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the HostProperties object itself.
+ */
+ public HostProperties withMoRefId(String moRefId) {
+ this.moRefId = moRefId;
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the host.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the host.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the HostProperties object itself.
+ */
+ public HostProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the host.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.moName;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HybridIdentityMetadataInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HybridIdentityMetadataInner.java
new file mode 100644
index 000000000000..61ad1b6f5ad6
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HybridIdentityMetadataInner.java
@@ -0,0 +1,128 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.Identity;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the HybridIdentityMetadata. */
+@Fluent
+public final class HybridIdentityMetadataInner extends ProxyResource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private HybridIdentityMetadataProperties innerProperties = new HybridIdentityMetadataProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private HybridIdentityMetadataProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the vmId property: Gets or sets the Vm Id.
+ *
+ * @return the vmId value.
+ */
+ public String vmId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmId();
+ }
+
+ /**
+ * Set the vmId property: Gets or sets the Vm Id.
+ *
+ * @param vmId the vmId value to set.
+ * @return the HybridIdentityMetadataInner object itself.
+ */
+ public HybridIdentityMetadataInner withVmId(String vmId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new HybridIdentityMetadataProperties();
+ }
+ this.innerProperties().withVmId(vmId);
+ return this;
+ }
+
+ /**
+ * Get the publicKey property: Gets or sets the Public Key.
+ *
+ * @return the publicKey value.
+ */
+ public String publicKey() {
+ return this.innerProperties() == null ? null : this.innerProperties().publicKey();
+ }
+
+ /**
+ * Set the publicKey property: Gets or sets the Public Key.
+ *
+ * @param publicKey the publicKey value to set.
+ * @return the HybridIdentityMetadataInner object itself.
+ */
+ public HybridIdentityMetadataInner withPublicKey(String publicKey) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new HybridIdentityMetadataProperties();
+ }
+ this.innerProperties().withPublicKey(publicKey);
+ return this;
+ }
+
+ /**
+ * Get the identity property: The identity of the resource.
+ *
+ * @return the identity value.
+ */
+ public Identity identity() {
+ return this.innerProperties() == null ? null : this.innerProperties().identity();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model HybridIdentityMetadataInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(HybridIdentityMetadataInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HybridIdentityMetadataProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HybridIdentityMetadataProperties.java
new file mode 100644
index 000000000000..cc1501d8c867
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/HybridIdentityMetadataProperties.java
@@ -0,0 +1,106 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.Identity;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the resource properties. */
+@Fluent
+public final class HybridIdentityMetadataProperties {
+ /*
+ * Gets or sets the Vm Id.
+ */
+ @JsonProperty(value = "vmId")
+ private String vmId;
+
+ /*
+ * Gets or sets the Public Key.
+ */
+ @JsonProperty(value = "publicKey")
+ private String publicKey;
+
+ /*
+ * The identity of the resource.
+ */
+ @JsonProperty(value = "identity", access = JsonProperty.Access.WRITE_ONLY)
+ private Identity identity;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the vmId property: Gets or sets the Vm Id.
+ *
+ * @return the vmId value.
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Set the vmId property: Gets or sets the Vm Id.
+ *
+ * @param vmId the vmId value to set.
+ * @return the HybridIdentityMetadataProperties object itself.
+ */
+ public HybridIdentityMetadataProperties withVmId(String vmId) {
+ this.vmId = vmId;
+ return this;
+ }
+
+ /**
+ * Get the publicKey property: Gets or sets the Public Key.
+ *
+ * @return the publicKey value.
+ */
+ public String publicKey() {
+ return this.publicKey;
+ }
+
+ /**
+ * Set the publicKey property: Gets or sets the Public Key.
+ *
+ * @param publicKey the publicKey value to set.
+ * @return the HybridIdentityMetadataProperties object itself.
+ */
+ public HybridIdentityMetadataProperties withPublicKey(String publicKey) {
+ this.publicKey = publicKey;
+ return this;
+ }
+
+ /**
+ * Get the identity property: The identity of the resource.
+ *
+ * @return the identity value.
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (identity() != null) {
+ identity().validate();
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/InventoryItemInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/InventoryItemInner.java
new file mode 100644
index 000000000000..1165191abc97
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/InventoryItemInner.java
@@ -0,0 +1,174 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the inventory item. */
+@Fluent
+public final class InventoryItemInner extends ProxyResource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private InventoryItemProperties innerProperties = new InventoryItemProperties();
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private InventoryItemProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the InventoryItemInner object itself.
+ */
+ public InventoryItemInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the managedResourceId property: Gets or sets the tracked resource id corresponding to the inventory resource.
+ *
+ * @return the managedResourceId value.
+ */
+ public String managedResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().managedResourceId();
+ }
+
+ /**
+ * Set the managedResourceId property: Gets or sets the tracked resource id corresponding to the inventory resource.
+ *
+ * @param managedResourceId the managedResourceId value to set.
+ * @return the InventoryItemInner object itself.
+ */
+ public InventoryItemInner withManagedResourceId(String managedResourceId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new InventoryItemProperties();
+ }
+ this.innerProperties().withManagedResourceId(managedResourceId);
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the MoRef (Managed Object Reference) ID for the inventory item.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.innerProperties() == null ? null : this.innerProperties().moRefId();
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the MoRef (Managed Object Reference) ID for the inventory item.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the InventoryItemInner object itself.
+ */
+ public InventoryItemInner withMoRefId(String moRefId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new InventoryItemProperties();
+ }
+ this.innerProperties().withMoRefId(moRefId);
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the inventory item.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.innerProperties() == null ? null : this.innerProperties().moName();
+ }
+
+ /**
+ * Set the moName property: Gets or sets the vCenter Managed Object name for the inventory item.
+ *
+ * @param moName the moName value to set.
+ * @return the InventoryItemInner object itself.
+ */
+ public InventoryItemInner withMoName(String moName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new InventoryItemProperties();
+ }
+ this.innerProperties().withMoName(moName);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model InventoryItemInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(InventoryItemInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/InventoryItemProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/InventoryItemProperties.java
new file mode 100644
index 000000000000..090513caa471
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/InventoryItemProperties.java
@@ -0,0 +1,140 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.ClusterInventoryItem;
+import com.azure.resourcemanager.connectedvmware.models.DatastoreInventoryItem;
+import com.azure.resourcemanager.connectedvmware.models.HostInventoryItem;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePoolInventoryItem;
+import com.azure.resourcemanager.connectedvmware.models.VirtualMachineInventoryItem;
+import com.azure.resourcemanager.connectedvmware.models.VirtualMachineTemplateInventoryItem;
+import com.azure.resourcemanager.connectedvmware.models.VirtualNetworkInventoryItem;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** Defines the resource properties. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "inventoryType",
+ defaultImpl = InventoryItemProperties.class)
+@JsonTypeName("InventoryItemProperties")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "ResourcePool", value = ResourcePoolInventoryItem.class),
+ @JsonSubTypes.Type(name = "VirtualMachine", value = VirtualMachineInventoryItem.class),
+ @JsonSubTypes.Type(name = "VirtualMachineTemplate", value = VirtualMachineTemplateInventoryItem.class),
+ @JsonSubTypes.Type(name = "VirtualNetwork", value = VirtualNetworkInventoryItem.class),
+ @JsonSubTypes.Type(name = "Cluster", value = ClusterInventoryItem.class),
+ @JsonSubTypes.Type(name = "Datastore", value = DatastoreInventoryItem.class),
+ @JsonSubTypes.Type(name = "Host", value = HostInventoryItem.class)
+})
+@Fluent
+public class InventoryItemProperties {
+ /*
+ * Gets or sets the tracked resource id corresponding to the inventory
+ * resource.
+ */
+ @JsonProperty(value = "managedResourceId")
+ private String managedResourceId;
+
+ /*
+ * Gets or sets the MoRef (Managed Object Reference) ID for the inventory
+ * item.
+ */
+ @JsonProperty(value = "moRefId")
+ private String moRefId;
+
+ /*
+ * Gets or sets the vCenter Managed Object name for the inventory item.
+ */
+ @JsonProperty(value = "moName")
+ private String moName;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the managedResourceId property: Gets or sets the tracked resource id corresponding to the inventory resource.
+ *
+ * @return the managedResourceId value.
+ */
+ public String managedResourceId() {
+ return this.managedResourceId;
+ }
+
+ /**
+ * Set the managedResourceId property: Gets or sets the tracked resource id corresponding to the inventory resource.
+ *
+ * @param managedResourceId the managedResourceId value to set.
+ * @return the InventoryItemProperties object itself.
+ */
+ public InventoryItemProperties withManagedResourceId(String managedResourceId) {
+ this.managedResourceId = managedResourceId;
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the MoRef (Managed Object Reference) ID for the inventory item.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.moRefId;
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the MoRef (Managed Object Reference) ID for the inventory item.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the InventoryItemProperties object itself.
+ */
+ public InventoryItemProperties withMoRefId(String moRefId) {
+ this.moRefId = moRefId;
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the inventory item.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.moName;
+ }
+
+ /**
+ * Set the moName property: Gets or sets the vCenter Managed Object name for the inventory item.
+ *
+ * @param moName the moName value to set.
+ * @return the InventoryItemProperties object itself.
+ */
+ public InventoryItemProperties withMoName(String moName) {
+ this.moName = moName;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionInner.java
new file mode 100644
index 000000000000..88144ff49a5c
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionInner.java
@@ -0,0 +1,272 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.connectedvmware.models.MachineExtensionPropertiesInstanceView;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Describes a Machine Extension. */
+@Fluent
+public final class MachineExtensionInner extends Resource {
+ /*
+ * Describes Machine Extension Properties.
+ */
+ @JsonProperty(value = "properties")
+ private MachineExtensionProperties innerProperties;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Describes Machine Extension Properties.
+ *
+ * @return the innerProperties value.
+ */
+ private MachineExtensionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public MachineExtensionInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public MachineExtensionInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the forceUpdateTag property: How the extension handler should be forced to update even if the extension
+ * configuration has not changed.
+ *
+ * @return the forceUpdateTag value.
+ */
+ public String forceUpdateTag() {
+ return this.innerProperties() == null ? null : this.innerProperties().forceUpdateTag();
+ }
+
+ /**
+ * Set the forceUpdateTag property: How the extension handler should be forced to update even if the extension
+ * configuration has not changed.
+ *
+ * @param forceUpdateTag the forceUpdateTag value to set.
+ * @return the MachineExtensionInner object itself.
+ */
+ public MachineExtensionInner withForceUpdateTag(String forceUpdateTag) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MachineExtensionProperties();
+ }
+ this.innerProperties().withForceUpdateTag(forceUpdateTag);
+ return this;
+ }
+
+ /**
+ * Get the publisher property: The name of the extension handler publisher.
+ *
+ * @return the publisher value.
+ */
+ public String publisher() {
+ return this.innerProperties() == null ? null : this.innerProperties().publisher();
+ }
+
+ /**
+ * Set the publisher property: The name of the extension handler publisher.
+ *
+ * @param publisher the publisher value to set.
+ * @return the MachineExtensionInner object itself.
+ */
+ public MachineExtensionInner withPublisher(String publisher) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MachineExtensionProperties();
+ }
+ this.innerProperties().withPublisher(publisher);
+ return this;
+ }
+
+ /**
+ * Get the type property: Specifies the type of the extension; an example is "CustomScriptExtension".
+ *
+ * @return the type value.
+ */
+ public String typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Set the type property: Specifies the type of the extension; an example is "CustomScriptExtension".
+ *
+ * @param type the type value to set.
+ * @return the MachineExtensionInner object itself.
+ */
+ public MachineExtensionInner withTypePropertiesType(String type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MachineExtensionProperties();
+ }
+ this.innerProperties().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the typeHandlerVersion property: Specifies the version of the script handler.
+ *
+ * @return the typeHandlerVersion value.
+ */
+ public String typeHandlerVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().typeHandlerVersion();
+ }
+
+ /**
+ * Set the typeHandlerVersion property: Specifies the version of the script handler.
+ *
+ * @param typeHandlerVersion the typeHandlerVersion value to set.
+ * @return the MachineExtensionInner object itself.
+ */
+ public MachineExtensionInner withTypeHandlerVersion(String typeHandlerVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MachineExtensionProperties();
+ }
+ this.innerProperties().withTypeHandlerVersion(typeHandlerVersion);
+ return this;
+ }
+
+ /**
+ * Get the autoUpgradeMinorVersion property: Indicates whether the extension should use a newer minor version if one
+ * is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless
+ * redeployed, even with this property set to true.
+ *
+ * @return the autoUpgradeMinorVersion value.
+ */
+ public Boolean autoUpgradeMinorVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().autoUpgradeMinorVersion();
+ }
+
+ /**
+ * Set the autoUpgradeMinorVersion property: Indicates whether the extension should use a newer minor version if one
+ * is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless
+ * redeployed, even with this property set to true.
+ *
+ * @param autoUpgradeMinorVersion the autoUpgradeMinorVersion value to set.
+ * @return the MachineExtensionInner object itself.
+ */
+ public MachineExtensionInner withAutoUpgradeMinorVersion(Boolean autoUpgradeMinorVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MachineExtensionProperties();
+ }
+ this.innerProperties().withAutoUpgradeMinorVersion(autoUpgradeMinorVersion);
+ return this;
+ }
+
+ /**
+ * Get the settings property: Json formatted public settings for the extension.
+ *
+ * @return the settings value.
+ */
+ public Object settings() {
+ return this.innerProperties() == null ? null : this.innerProperties().settings();
+ }
+
+ /**
+ * Set the settings property: Json formatted public settings for the extension.
+ *
+ * @param settings the settings value to set.
+ * @return the MachineExtensionInner object itself.
+ */
+ public MachineExtensionInner withSettings(Object settings) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MachineExtensionProperties();
+ }
+ this.innerProperties().withSettings(settings);
+ return this;
+ }
+
+ /**
+ * Get the protectedSettings property: The extension can contain either protectedSettings or
+ * protectedSettingsFromKeyVault or no protected settings at all.
+ *
+ * @return the protectedSettings value.
+ */
+ public Object protectedSettings() {
+ return this.innerProperties() == null ? null : this.innerProperties().protectedSettings();
+ }
+
+ /**
+ * Set the protectedSettings property: The extension can contain either protectedSettings or
+ * protectedSettingsFromKeyVault or no protected settings at all.
+ *
+ * @param protectedSettings the protectedSettings value to set.
+ * @return the MachineExtensionInner object itself.
+ */
+ public MachineExtensionInner withProtectedSettings(Object protectedSettings) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MachineExtensionProperties();
+ }
+ this.innerProperties().withProtectedSettings(protectedSettings);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state, which only appears in the response.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the instanceView property: The machine extension instance view.
+ *
+ * @return the instanceView value.
+ */
+ public MachineExtensionPropertiesInstanceView instanceView() {
+ return this.innerProperties() == null ? null : this.innerProperties().instanceView();
+ }
+
+ /**
+ * Set the instanceView property: The machine extension instance view.
+ *
+ * @param instanceView the instanceView value to set.
+ * @return the MachineExtensionInner object itself.
+ */
+ public MachineExtensionInner withInstanceView(MachineExtensionPropertiesInstanceView instanceView) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new MachineExtensionProperties();
+ }
+ this.innerProperties().withInstanceView(instanceView);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionProperties.java
new file mode 100644
index 000000000000..3f56b99eb5c8
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionProperties.java
@@ -0,0 +1,261 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.MachineExtensionPropertiesInstanceView;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes the properties of a Machine Extension. */
+@Fluent
+public final class MachineExtensionProperties {
+ /*
+ * How the extension handler should be forced to update even if the
+ * extension configuration has not changed.
+ */
+ @JsonProperty(value = "forceUpdateTag")
+ private String forceUpdateTag;
+
+ /*
+ * The name of the extension handler publisher.
+ */
+ @JsonProperty(value = "publisher")
+ private String publisher;
+
+ /*
+ * Specifies the type of the extension; an example is
+ * "CustomScriptExtension".
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /*
+ * Specifies the version of the script handler.
+ */
+ @JsonProperty(value = "typeHandlerVersion")
+ private String typeHandlerVersion;
+
+ /*
+ * Indicates whether the extension should use a newer minor version if one
+ * is available at deployment time. Once deployed, however, the extension
+ * will not upgrade minor versions unless redeployed, even with this
+ * property set to true.
+ */
+ @JsonProperty(value = "autoUpgradeMinorVersion")
+ private Boolean autoUpgradeMinorVersion;
+
+ /*
+ * Json formatted public settings for the extension.
+ */
+ @JsonProperty(value = "settings")
+ private Object settings;
+
+ /*
+ * The extension can contain either protectedSettings or
+ * protectedSettingsFromKeyVault or no protected settings at all.
+ */
+ @JsonProperty(value = "protectedSettings")
+ private Object protectedSettings;
+
+ /*
+ * The provisioning state, which only appears in the response.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * The machine extension instance view.
+ */
+ @JsonProperty(value = "instanceView")
+ private MachineExtensionPropertiesInstanceView instanceView;
+
+ /**
+ * Get the forceUpdateTag property: How the extension handler should be forced to update even if the extension
+ * configuration has not changed.
+ *
+ * @return the forceUpdateTag value.
+ */
+ public String forceUpdateTag() {
+ return this.forceUpdateTag;
+ }
+
+ /**
+ * Set the forceUpdateTag property: How the extension handler should be forced to update even if the extension
+ * configuration has not changed.
+ *
+ * @param forceUpdateTag the forceUpdateTag value to set.
+ * @return the MachineExtensionProperties object itself.
+ */
+ public MachineExtensionProperties withForceUpdateTag(String forceUpdateTag) {
+ this.forceUpdateTag = forceUpdateTag;
+ return this;
+ }
+
+ /**
+ * Get the publisher property: The name of the extension handler publisher.
+ *
+ * @return the publisher value.
+ */
+ public String publisher() {
+ return this.publisher;
+ }
+
+ /**
+ * Set the publisher property: The name of the extension handler publisher.
+ *
+ * @param publisher the publisher value to set.
+ * @return the MachineExtensionProperties object itself.
+ */
+ public MachineExtensionProperties withPublisher(String publisher) {
+ this.publisher = publisher;
+ return this;
+ }
+
+ /**
+ * Get the type property: Specifies the type of the extension; an example is "CustomScriptExtension".
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: Specifies the type of the extension; an example is "CustomScriptExtension".
+ *
+ * @param type the type value to set.
+ * @return the MachineExtensionProperties object itself.
+ */
+ public MachineExtensionProperties withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the typeHandlerVersion property: Specifies the version of the script handler.
+ *
+ * @return the typeHandlerVersion value.
+ */
+ public String typeHandlerVersion() {
+ return this.typeHandlerVersion;
+ }
+
+ /**
+ * Set the typeHandlerVersion property: Specifies the version of the script handler.
+ *
+ * @param typeHandlerVersion the typeHandlerVersion value to set.
+ * @return the MachineExtensionProperties object itself.
+ */
+ public MachineExtensionProperties withTypeHandlerVersion(String typeHandlerVersion) {
+ this.typeHandlerVersion = typeHandlerVersion;
+ return this;
+ }
+
+ /**
+ * Get the autoUpgradeMinorVersion property: Indicates whether the extension should use a newer minor version if one
+ * is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless
+ * redeployed, even with this property set to true.
+ *
+ * @return the autoUpgradeMinorVersion value.
+ */
+ public Boolean autoUpgradeMinorVersion() {
+ return this.autoUpgradeMinorVersion;
+ }
+
+ /**
+ * Set the autoUpgradeMinorVersion property: Indicates whether the extension should use a newer minor version if one
+ * is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless
+ * redeployed, even with this property set to true.
+ *
+ * @param autoUpgradeMinorVersion the autoUpgradeMinorVersion value to set.
+ * @return the MachineExtensionProperties object itself.
+ */
+ public MachineExtensionProperties withAutoUpgradeMinorVersion(Boolean autoUpgradeMinorVersion) {
+ this.autoUpgradeMinorVersion = autoUpgradeMinorVersion;
+ return this;
+ }
+
+ /**
+ * Get the settings property: Json formatted public settings for the extension.
+ *
+ * @return the settings value.
+ */
+ public Object settings() {
+ return this.settings;
+ }
+
+ /**
+ * Set the settings property: Json formatted public settings for the extension.
+ *
+ * @param settings the settings value to set.
+ * @return the MachineExtensionProperties object itself.
+ */
+ public MachineExtensionProperties withSettings(Object settings) {
+ this.settings = settings;
+ return this;
+ }
+
+ /**
+ * Get the protectedSettings property: The extension can contain either protectedSettings or
+ * protectedSettingsFromKeyVault or no protected settings at all.
+ *
+ * @return the protectedSettings value.
+ */
+ public Object protectedSettings() {
+ return this.protectedSettings;
+ }
+
+ /**
+ * Set the protectedSettings property: The extension can contain either protectedSettings or
+ * protectedSettingsFromKeyVault or no protected settings at all.
+ *
+ * @param protectedSettings the protectedSettings value to set.
+ * @return the MachineExtensionProperties object itself.
+ */
+ public MachineExtensionProperties withProtectedSettings(Object protectedSettings) {
+ this.protectedSettings = protectedSettings;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state, which only appears in the response.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the instanceView property: The machine extension instance view.
+ *
+ * @return the instanceView value.
+ */
+ public MachineExtensionPropertiesInstanceView instanceView() {
+ return this.instanceView;
+ }
+
+ /**
+ * Set the instanceView property: The machine extension instance view.
+ *
+ * @param instanceView the instanceView value to set.
+ * @return the MachineExtensionProperties object itself.
+ */
+ public MachineExtensionProperties withInstanceView(MachineExtensionPropertiesInstanceView instanceView) {
+ this.instanceView = instanceView;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (instanceView() != null) {
+ instanceView().validate();
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionUpdateProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionUpdateProperties.java
new file mode 100644
index 000000000000..9064931616d0
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/MachineExtensionUpdateProperties.java
@@ -0,0 +1,216 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes the properties of a Machine Extension. */
+@Fluent
+public final class MachineExtensionUpdateProperties {
+ /*
+ * How the extension handler should be forced to update even if the
+ * extension configuration has not changed.
+ */
+ @JsonProperty(value = "forceUpdateTag")
+ private String forceUpdateTag;
+
+ /*
+ * The name of the extension handler publisher.
+ */
+ @JsonProperty(value = "publisher")
+ private String publisher;
+
+ /*
+ * Specifies the type of the extension; an example is
+ * "CustomScriptExtension".
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /*
+ * Specifies the version of the script handler.
+ */
+ @JsonProperty(value = "typeHandlerVersion")
+ private String typeHandlerVersion;
+
+ /*
+ * Indicates whether the extension should use a newer minor version if one
+ * is available at deployment time. Once deployed, however, the extension
+ * will not upgrade minor versions unless redeployed, even with this
+ * property set to true.
+ */
+ @JsonProperty(value = "autoUpgradeMinorVersion")
+ private Boolean autoUpgradeMinorVersion;
+
+ /*
+ * Json formatted public settings for the extension.
+ */
+ @JsonProperty(value = "settings")
+ private Object settings;
+
+ /*
+ * The extension can contain either protectedSettings or
+ * protectedSettingsFromKeyVault or no protected settings at all.
+ */
+ @JsonProperty(value = "protectedSettings")
+ private Object protectedSettings;
+
+ /**
+ * Get the forceUpdateTag property: How the extension handler should be forced to update even if the extension
+ * configuration has not changed.
+ *
+ * @return the forceUpdateTag value.
+ */
+ public String forceUpdateTag() {
+ return this.forceUpdateTag;
+ }
+
+ /**
+ * Set the forceUpdateTag property: How the extension handler should be forced to update even if the extension
+ * configuration has not changed.
+ *
+ * @param forceUpdateTag the forceUpdateTag value to set.
+ * @return the MachineExtensionUpdateProperties object itself.
+ */
+ public MachineExtensionUpdateProperties withForceUpdateTag(String forceUpdateTag) {
+ this.forceUpdateTag = forceUpdateTag;
+ return this;
+ }
+
+ /**
+ * Get the publisher property: The name of the extension handler publisher.
+ *
+ * @return the publisher value.
+ */
+ public String publisher() {
+ return this.publisher;
+ }
+
+ /**
+ * Set the publisher property: The name of the extension handler publisher.
+ *
+ * @param publisher the publisher value to set.
+ * @return the MachineExtensionUpdateProperties object itself.
+ */
+ public MachineExtensionUpdateProperties withPublisher(String publisher) {
+ this.publisher = publisher;
+ return this;
+ }
+
+ /**
+ * Get the type property: Specifies the type of the extension; an example is "CustomScriptExtension".
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: Specifies the type of the extension; an example is "CustomScriptExtension".
+ *
+ * @param type the type value to set.
+ * @return the MachineExtensionUpdateProperties object itself.
+ */
+ public MachineExtensionUpdateProperties withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the typeHandlerVersion property: Specifies the version of the script handler.
+ *
+ * @return the typeHandlerVersion value.
+ */
+ public String typeHandlerVersion() {
+ return this.typeHandlerVersion;
+ }
+
+ /**
+ * Set the typeHandlerVersion property: Specifies the version of the script handler.
+ *
+ * @param typeHandlerVersion the typeHandlerVersion value to set.
+ * @return the MachineExtensionUpdateProperties object itself.
+ */
+ public MachineExtensionUpdateProperties withTypeHandlerVersion(String typeHandlerVersion) {
+ this.typeHandlerVersion = typeHandlerVersion;
+ return this;
+ }
+
+ /**
+ * Get the autoUpgradeMinorVersion property: Indicates whether the extension should use a newer minor version if one
+ * is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless
+ * redeployed, even with this property set to true.
+ *
+ * @return the autoUpgradeMinorVersion value.
+ */
+ public Boolean autoUpgradeMinorVersion() {
+ return this.autoUpgradeMinorVersion;
+ }
+
+ /**
+ * Set the autoUpgradeMinorVersion property: Indicates whether the extension should use a newer minor version if one
+ * is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless
+ * redeployed, even with this property set to true.
+ *
+ * @param autoUpgradeMinorVersion the autoUpgradeMinorVersion value to set.
+ * @return the MachineExtensionUpdateProperties object itself.
+ */
+ public MachineExtensionUpdateProperties withAutoUpgradeMinorVersion(Boolean autoUpgradeMinorVersion) {
+ this.autoUpgradeMinorVersion = autoUpgradeMinorVersion;
+ return this;
+ }
+
+ /**
+ * Get the settings property: Json formatted public settings for the extension.
+ *
+ * @return the settings value.
+ */
+ public Object settings() {
+ return this.settings;
+ }
+
+ /**
+ * Set the settings property: Json formatted public settings for the extension.
+ *
+ * @param settings the settings value to set.
+ * @return the MachineExtensionUpdateProperties object itself.
+ */
+ public MachineExtensionUpdateProperties withSettings(Object settings) {
+ this.settings = settings;
+ return this;
+ }
+
+ /**
+ * Get the protectedSettings property: The extension can contain either protectedSettings or
+ * protectedSettingsFromKeyVault or no protected settings at all.
+ *
+ * @return the protectedSettings value.
+ */
+ public Object protectedSettings() {
+ return this.protectedSettings;
+ }
+
+ /**
+ * Set the protectedSettings property: The extension can contain either protectedSettings or
+ * protectedSettingsFromKeyVault or no protected settings at all.
+ *
+ * @param protectedSettings the protectedSettings value to set.
+ * @return the MachineExtensionUpdateProperties object itself.
+ */
+ public MachineExtensionUpdateProperties withProtectedSettings(Object protectedSettings) {
+ this.protectedSettings = protectedSettings;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/OperationInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/OperationInner.java
new file mode 100644
index 000000000000..ee3f0e2122d2
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/OperationInner.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Operation provided by provider. */
+@Fluent
+public final class OperationInner {
+ /*
+ * Name of the operation
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Indicates whether the operation is data action or not.
+ */
+ @JsonProperty(value = "isDataAction")
+ private Boolean isDataAction;
+
+ /*
+ * Properties of the operation
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /**
+ * Get the name property: Name of the operation.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Name of the operation.
+ *
+ * @param name the name value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the isDataAction property: Indicates whether the operation is data action or not.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Set the isDataAction property: Indicates whether the operation is data action or not.
+ *
+ * @param isDataAction the isDataAction value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withIsDataAction(Boolean isDataAction) {
+ this.isDataAction = isDataAction;
+ return this;
+ }
+
+ /**
+ * Get the display property: Properties of the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Properties of the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ResourcePoolInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ResourcePoolInner.java
new file mode 100644
index 000000000000..51ed1ffeba27
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ResourcePoolInner.java
@@ -0,0 +1,317 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the resourcePool. */
+@Fluent
+public final class ResourcePoolInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ResourcePoolProperties innerProperties = new ResourcePoolProperties();
+
+ /*
+ * Gets or sets the extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private ResourcePoolProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the extendedLocation property: Gets or sets the extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: Gets or sets the extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the ResourcePoolInner object itself.
+ */
+ public ResourcePoolInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the ResourcePoolInner object itself.
+ */
+ public ResourcePoolInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ResourcePoolInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ResourcePoolInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vCenterId();
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the ResourcePoolInner object itself.
+ */
+ public ResourcePoolInner withVCenterId(String vCenterId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ResourcePoolProperties();
+ }
+ this.innerProperties().withVCenterId(vCenterId);
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the resource pool.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.innerProperties() == null ? null : this.innerProperties().moRefId();
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the resource pool.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the ResourcePoolInner object itself.
+ */
+ public ResourcePoolInner withMoRefId(String moRefId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ResourcePoolProperties();
+ }
+ this.innerProperties().withMoRefId(moRefId);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource pool.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource pool.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the ResourcePoolInner object itself.
+ */
+ public ResourcePoolInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ResourcePoolProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the resource pool.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.innerProperties() == null ? null : this.innerProperties().moName();
+ }
+
+ /**
+ * Get the cpuSharesLevel property: Gets or sets CPUSharesLevel which specifies the CPU allocation level for this
+ * pool. This property is used in relative allocation between resource consumers.
+ *
+ * @return the cpuSharesLevel value.
+ */
+ public String cpuSharesLevel() {
+ return this.innerProperties() == null ? null : this.innerProperties().cpuSharesLevel();
+ }
+
+ /**
+ * Get the cpuReservationMHz property: Gets or sets CPUReservationMHz which specifies the CPU size in MHz that is
+ * guaranteed to be available.
+ *
+ * @return the cpuReservationMHz value.
+ */
+ public Long cpuReservationMHz() {
+ return this.innerProperties() == null ? null : this.innerProperties().cpuReservationMHz();
+ }
+
+ /**
+ * Get the cpuLimitMHz property: Gets or sets CPULimitMHz which specifies a CPU usage limit in MHz. Utilization will
+ * not exceed this limit even if there are available resources.
+ *
+ * @return the cpuLimitMHz value.
+ */
+ public Long cpuLimitMHz() {
+ return this.innerProperties() == null ? null : this.innerProperties().cpuLimitMHz();
+ }
+
+ /**
+ * Get the memSharesLevel property: Gets or sets CPUSharesLevel which specifies the memory allocation level for this
+ * pool. This property is used in relative allocation between resource consumers.
+ *
+ * @return the memSharesLevel value.
+ */
+ public String memSharesLevel() {
+ return this.innerProperties() == null ? null : this.innerProperties().memSharesLevel();
+ }
+
+ /**
+ * Get the memReservationMB property: Gets or sets MemReservationMB which specifies the guaranteed available memory
+ * in megabytes.
+ *
+ * @return the memReservationMB value.
+ */
+ public Long memReservationMB() {
+ return this.innerProperties() == null ? null : this.innerProperties().memReservationMB();
+ }
+
+ /**
+ * Get the memLimitMB property: Gets or sets MemLimitMB specifies a memory usage limit in megabytes. Utilization
+ * will not exceed the specified limit even if there are available resources.
+ *
+ * @return the memLimitMB value.
+ */
+ public Long memLimitMB() {
+ return this.innerProperties() == null ? null : this.innerProperties().memLimitMB();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model ResourcePoolInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ResourcePoolInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ResourcePoolProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ResourcePoolProperties.java
new file mode 100644
index 000000000000..368c0013951e
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/ResourcePoolProperties.java
@@ -0,0 +1,288 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class ResourcePoolProperties {
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Gets or sets the ARM Id of the vCenter resource in which this resource
+ * pool resides.
+ */
+ @JsonProperty(value = "vCenterId")
+ private String vCenterId;
+
+ /*
+ * Gets or sets the vCenter MoRef (Managed Object Reference) ID for the
+ * resource pool.
+ */
+ @JsonProperty(value = "moRefId")
+ private String moRefId;
+
+ /*
+ * Gets or sets the inventory Item ID for the resource pool.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Gets or sets the vCenter Managed Object name for the resource pool.
+ */
+ @JsonProperty(value = "moName", access = JsonProperty.Access.WRITE_ONLY)
+ private String moName;
+
+ /*
+ * Gets or sets CPUSharesLevel which specifies the CPU allocation level for
+ * this pool.
+ * This property is used in relative allocation between resource consumers.
+ */
+ @JsonProperty(value = "cpuSharesLevel", access = JsonProperty.Access.WRITE_ONLY)
+ private String cpuSharesLevel;
+
+ /*
+ * Gets or sets CPUReservationMHz which specifies the CPU size in MHz that
+ * is guaranteed
+ * to be available.
+ */
+ @JsonProperty(value = "cpuReservationMHz", access = JsonProperty.Access.WRITE_ONLY)
+ private Long cpuReservationMHz;
+
+ /*
+ * Gets or sets CPULimitMHz which specifies a CPU usage limit in MHz.
+ * Utilization will not exceed this limit even if there are available
+ * resources.
+ */
+ @JsonProperty(value = "cpuLimitMHz", access = JsonProperty.Access.WRITE_ONLY)
+ private Long cpuLimitMHz;
+
+ /*
+ * Gets or sets CPUSharesLevel which specifies the memory allocation level
+ * for this pool.
+ * This property is used in relative allocation between resource consumers.
+ */
+ @JsonProperty(value = "memSharesLevel", access = JsonProperty.Access.WRITE_ONLY)
+ private String memSharesLevel;
+
+ /*
+ * Gets or sets MemReservationMB which specifies the guaranteed available
+ * memory in
+ * megabytes.
+ */
+ @JsonProperty(value = "memReservationMB", access = JsonProperty.Access.WRITE_ONLY)
+ private Long memReservationMB;
+
+ /*
+ * Gets or sets MemLimitMB specifies a memory usage limit in megabytes.
+ * Utilization will not exceed the specified limit even if there are
+ * available resources.
+ */
+ @JsonProperty(value = "memLimitMB", access = JsonProperty.Access.WRITE_ONLY)
+ private Long memLimitMB;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.vCenterId;
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the ResourcePoolProperties object itself.
+ */
+ public ResourcePoolProperties withVCenterId(String vCenterId) {
+ this.vCenterId = vCenterId;
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the resource pool.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.moRefId;
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the resource pool.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the ResourcePoolProperties object itself.
+ */
+ public ResourcePoolProperties withMoRefId(String moRefId) {
+ this.moRefId = moRefId;
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the resource pool.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the resource pool.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the ResourcePoolProperties object itself.
+ */
+ public ResourcePoolProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the resource pool.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.moName;
+ }
+
+ /**
+ * Get the cpuSharesLevel property: Gets or sets CPUSharesLevel which specifies the CPU allocation level for this
+ * pool. This property is used in relative allocation between resource consumers.
+ *
+ * @return the cpuSharesLevel value.
+ */
+ public String cpuSharesLevel() {
+ return this.cpuSharesLevel;
+ }
+
+ /**
+ * Get the cpuReservationMHz property: Gets or sets CPUReservationMHz which specifies the CPU size in MHz that is
+ * guaranteed to be available.
+ *
+ * @return the cpuReservationMHz value.
+ */
+ public Long cpuReservationMHz() {
+ return this.cpuReservationMHz;
+ }
+
+ /**
+ * Get the cpuLimitMHz property: Gets or sets CPULimitMHz which specifies a CPU usage limit in MHz. Utilization will
+ * not exceed this limit even if there are available resources.
+ *
+ * @return the cpuLimitMHz value.
+ */
+ public Long cpuLimitMHz() {
+ return this.cpuLimitMHz;
+ }
+
+ /**
+ * Get the memSharesLevel property: Gets or sets CPUSharesLevel which specifies the memory allocation level for this
+ * pool. This property is used in relative allocation between resource consumers.
+ *
+ * @return the memSharesLevel value.
+ */
+ public String memSharesLevel() {
+ return this.memSharesLevel;
+ }
+
+ /**
+ * Get the memReservationMB property: Gets or sets MemReservationMB which specifies the guaranteed available memory
+ * in megabytes.
+ *
+ * @return the memReservationMB value.
+ */
+ public Long memReservationMB() {
+ return this.memReservationMB;
+ }
+
+ /**
+ * Get the memLimitMB property: Gets or sets MemLimitMB specifies a memory usage limit in megabytes. Utilization
+ * will not exceed the specified limit even if there are available resources.
+ *
+ * @return the memLimitMB value.
+ */
+ public Long memLimitMB() {
+ return this.memLimitMB;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VCenterInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VCenterInner.java
new file mode 100644
index 000000000000..e519b94fcc45
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VCenterInner.java
@@ -0,0 +1,275 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.azure.resourcemanager.connectedvmware.models.VICredential;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Defines the vCenter. */
+@Fluent
+public final class VCenterInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private VCenterProperties innerProperties = new VCenterProperties();
+
+ /*
+ * Gets or sets the extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private VCenterProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the extendedLocation property: Gets or sets the extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: Gets or sets the extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VCenterInner object itself.
+ */
+ public VCenterInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the VCenterInner object itself.
+ */
+ public VCenterInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VCenterInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VCenterInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the fqdn property: Gets or sets the FQDN/IPAddress of the vCenter.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.innerProperties() == null ? null : this.innerProperties().fqdn();
+ }
+
+ /**
+ * Set the fqdn property: Gets or sets the FQDN/IPAddress of the vCenter.
+ *
+ * @param fqdn the fqdn value to set.
+ * @return the VCenterInner object itself.
+ */
+ public VCenterInner withFqdn(String fqdn) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VCenterProperties();
+ }
+ this.innerProperties().withFqdn(fqdn);
+ return this;
+ }
+
+ /**
+ * Get the port property: Gets or sets the port of the vCenter.
+ *
+ * @return the port value.
+ */
+ public Integer port() {
+ return this.innerProperties() == null ? null : this.innerProperties().port();
+ }
+
+ /**
+ * Set the port property: Gets or sets the port of the vCenter.
+ *
+ * @param port the port value to set.
+ * @return the VCenterInner object itself.
+ */
+ public VCenterInner withPort(Integer port) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VCenterProperties();
+ }
+ this.innerProperties().withPort(port);
+ return this;
+ }
+
+ /**
+ * Get the version property: Gets or sets the version of the vCenter.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.innerProperties() == null ? null : this.innerProperties().version();
+ }
+
+ /**
+ * Get the instanceUuid property: Gets or sets the instance UUID of the vCenter.
+ *
+ * @return the instanceUuid value.
+ */
+ public String instanceUuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().instanceUuid();
+ }
+
+ /**
+ * Get the connectionStatus property: Gets or sets the connection status to the vCenter.
+ *
+ * @return the connectionStatus value.
+ */
+ public String connectionStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().connectionStatus();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the credentials property: Username / Password Credentials to connect to vcenter.
+ *
+ * @return the credentials value.
+ */
+ public VICredential credentials() {
+ return this.innerProperties() == null ? null : this.innerProperties().credentials();
+ }
+
+ /**
+ * Set the credentials property: Username / Password Credentials to connect to vcenter.
+ *
+ * @param credentials the credentials value to set.
+ * @return the VCenterInner object itself.
+ */
+ public VCenterInner withCredentials(VICredential credentials) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VCenterProperties();
+ }
+ this.innerProperties().withCredentials(credentials);
+ return this;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property innerProperties in model VCenterInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VCenterInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VCenterProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VCenterProperties.java
new file mode 100644
index 000000000000..0415fd32a32e
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VCenterProperties.java
@@ -0,0 +1,220 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.azure.resourcemanager.connectedvmware.models.VICredential;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VCenterProperties {
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Gets or sets the FQDN/IPAddress of the vCenter.
+ */
+ @JsonProperty(value = "fqdn", required = true)
+ private String fqdn;
+
+ /*
+ * Gets or sets the port of the vCenter.
+ */
+ @JsonProperty(value = "port")
+ private Integer port;
+
+ /*
+ * Gets or sets the version of the vCenter.
+ */
+ @JsonProperty(value = "version", access = JsonProperty.Access.WRITE_ONLY)
+ private String version;
+
+ /*
+ * Gets or sets the instance UUID of the vCenter.
+ */
+ @JsonProperty(value = "instanceUuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String instanceUuid;
+
+ /*
+ * Gets or sets the connection status to the vCenter.
+ */
+ @JsonProperty(value = "connectionStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private String connectionStatus;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * Username / Password Credentials to connect to vcenter.
+ */
+ @JsonProperty(value = "credentials")
+ private VICredential credentials;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the fqdn property: Gets or sets the FQDN/IPAddress of the vCenter.
+ *
+ * @return the fqdn value.
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+ /**
+ * Set the fqdn property: Gets or sets the FQDN/IPAddress of the vCenter.
+ *
+ * @param fqdn the fqdn value to set.
+ * @return the VCenterProperties object itself.
+ */
+ public VCenterProperties withFqdn(String fqdn) {
+ this.fqdn = fqdn;
+ return this;
+ }
+
+ /**
+ * Get the port property: Gets or sets the port of the vCenter.
+ *
+ * @return the port value.
+ */
+ public Integer port() {
+ return this.port;
+ }
+
+ /**
+ * Set the port property: Gets or sets the port of the vCenter.
+ *
+ * @param port the port value to set.
+ * @return the VCenterProperties object itself.
+ */
+ public VCenterProperties withPort(Integer port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * Get the version property: Gets or sets the version of the vCenter.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Get the instanceUuid property: Gets or sets the instance UUID of the vCenter.
+ *
+ * @return the instanceUuid value.
+ */
+ public String instanceUuid() {
+ return this.instanceUuid;
+ }
+
+ /**
+ * Get the connectionStatus property: Gets or sets the connection status to the vCenter.
+ *
+ * @return the connectionStatus value.
+ */
+ public String connectionStatus() {
+ return this.connectionStatus;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the credentials property: Username / Password Credentials to connect to vcenter.
+ *
+ * @return the credentials value.
+ */
+ public VICredential credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set the credentials property: Username / Password Credentials to connect to vcenter.
+ *
+ * @param credentials the credentials value to set.
+ * @return the VCenterProperties object itself.
+ */
+ public VCenterProperties withCredentials(VICredential credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (fqdn() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property fqdn in model VCenterProperties"));
+ }
+ if (credentials() != null) {
+ credentials().validate();
+ }
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VCenterProperties.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineInner.java
new file mode 100644
index 000000000000..5a7ec67f70f5
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineInner.java
@@ -0,0 +1,562 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.FirmwareType;
+import com.azure.resourcemanager.connectedvmware.models.GuestAgentProfile;
+import com.azure.resourcemanager.connectedvmware.models.HardwareProfile;
+import com.azure.resourcemanager.connectedvmware.models.Identity;
+import com.azure.resourcemanager.connectedvmware.models.NetworkProfile;
+import com.azure.resourcemanager.connectedvmware.models.OsProfile;
+import com.azure.resourcemanager.connectedvmware.models.PlacementProfile;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.azure.resourcemanager.connectedvmware.models.StorageProfile;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the virtualMachine. */
+@Fluent
+public final class VirtualMachineInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private VirtualMachineProperties innerProperties = new VirtualMachineProperties();
+
+ /*
+ * Gets or sets the extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /*
+ * The identity of the resource.
+ */
+ @JsonProperty(value = "identity")
+ private Identity identity;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private VirtualMachineProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the extendedLocation property: Gets or sets the extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: Gets or sets the extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the identity property: The identity of the resource.
+ *
+ * @return the identity value.
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: The identity of the resource.
+ *
+ * @param identity the identity value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualMachineInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualMachineInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the resourcePoolId property: Gets or sets the ARM Id of the resourcePool resource on which this virtual
+ * machine will deploy.
+ *
+ * @return the resourcePoolId value.
+ */
+ public String resourcePoolId() {
+ return this.innerProperties() == null ? null : this.innerProperties().resourcePoolId();
+ }
+
+ /**
+ * Set the resourcePoolId property: Gets or sets the ARM Id of the resourcePool resource on which this virtual
+ * machine will deploy.
+ *
+ * @param resourcePoolId the resourcePoolId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withResourcePoolId(String resourcePoolId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withResourcePoolId(resourcePoolId);
+ return this;
+ }
+
+ /**
+ * Get the templateId property: Gets or sets the ARM Id of the template resource to deploy the virtual machine.
+ *
+ * @return the templateId value.
+ */
+ public String templateId() {
+ return this.innerProperties() == null ? null : this.innerProperties().templateId();
+ }
+
+ /**
+ * Set the templateId property: Gets or sets the ARM Id of the template resource to deploy the virtual machine.
+ *
+ * @param templateId the templateId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withTemplateId(String templateId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withTemplateId(templateId);
+ return this;
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vCenterId();
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withVCenterId(String vCenterId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withVCenterId(vCenterId);
+ return this;
+ }
+
+ /**
+ * Get the placementProfile property: Placement properties.
+ *
+ * @return the placementProfile value.
+ */
+ public PlacementProfile placementProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().placementProfile();
+ }
+
+ /**
+ * Set the placementProfile property: Placement properties.
+ *
+ * @param placementProfile the placementProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withPlacementProfile(PlacementProfile placementProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withPlacementProfile(placementProfile);
+ return this;
+ }
+
+ /**
+ * Get the osProfile property: OS properties.
+ *
+ * @return the osProfile value.
+ */
+ public OsProfile osProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().osProfile();
+ }
+
+ /**
+ * Set the osProfile property: OS properties.
+ *
+ * @param osProfile the osProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withOsProfile(OsProfile osProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withOsProfile(osProfile);
+ return this;
+ }
+
+ /**
+ * Get the hardwareProfile property: Hardware properties.
+ *
+ * @return the hardwareProfile value.
+ */
+ public HardwareProfile hardwareProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().hardwareProfile();
+ }
+
+ /**
+ * Set the hardwareProfile property: Hardware properties.
+ *
+ * @param hardwareProfile the hardwareProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withHardwareProfile(HardwareProfile hardwareProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withHardwareProfile(hardwareProfile);
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: Network properties.
+ *
+ * @return the networkProfile value.
+ */
+ public NetworkProfile networkProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkProfile();
+ }
+
+ /**
+ * Set the networkProfile property: Network properties.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withNetworkProfile(NetworkProfile networkProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withNetworkProfile(networkProfile);
+ return this;
+ }
+
+ /**
+ * Get the storageProfile property: Storage properties.
+ *
+ * @return the storageProfile value.
+ */
+ public StorageProfile storageProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().storageProfile();
+ }
+
+ /**
+ * Set the storageProfile property: Storage properties.
+ *
+ * @param storageProfile the storageProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withStorageProfile(StorageProfile storageProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withStorageProfile(storageProfile);
+ return this;
+ }
+
+ /**
+ * Get the guestAgentProfile property: Guest agent status properties.
+ *
+ * @return the guestAgentProfile value.
+ */
+ public GuestAgentProfile guestAgentProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().guestAgentProfile();
+ }
+
+ /**
+ * Set the guestAgentProfile property: Guest agent status properties.
+ *
+ * @param guestAgentProfile the guestAgentProfile value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withGuestAgentProfile(GuestAgentProfile guestAgentProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withGuestAgentProfile(guestAgentProfile);
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.innerProperties() == null ? null : this.innerProperties().moRefId();
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withMoRefId(String moRefId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withMoRefId(moRefId);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the virtual machine.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the virtual machine.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the virtual machine.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.innerProperties() == null ? null : this.innerProperties().moName();
+ }
+
+ /**
+ * Get the folderPath property: Gets or sets the folder path of the vm.
+ *
+ * @return the folderPath value.
+ */
+ public String folderPath() {
+ return this.innerProperties() == null ? null : this.innerProperties().folderPath();
+ }
+
+ /**
+ * Get the instanceUuid property: Gets or sets the instance uuid of the vm.
+ *
+ * @return the instanceUuid value.
+ */
+ public String instanceUuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().instanceUuid();
+ }
+
+ /**
+ * Get the smbiosUuid property: Gets or sets the SMBIOS UUID of the vm.
+ *
+ * @return the smbiosUuid value.
+ */
+ public String smbiosUuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().smbiosUuid();
+ }
+
+ /**
+ * Set the smbiosUuid property: Gets or sets the SMBIOS UUID of the vm.
+ *
+ * @param smbiosUuid the smbiosUuid value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withSmbiosUuid(String smbiosUuid) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withSmbiosUuid(smbiosUuid);
+ return this;
+ }
+
+ /**
+ * Get the firmwareType property: Firmware type.
+ *
+ * @return the firmwareType value.
+ */
+ public FirmwareType firmwareType() {
+ return this.innerProperties() == null ? null : this.innerProperties().firmwareType();
+ }
+
+ /**
+ * Set the firmwareType property: Firmware type.
+ *
+ * @param firmwareType the firmwareType value to set.
+ * @return the VirtualMachineInner object itself.
+ */
+ public VirtualMachineInner withFirmwareType(FirmwareType firmwareType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineProperties();
+ }
+ this.innerProperties().withFirmwareType(firmwareType);
+ return this;
+ }
+
+ /**
+ * Get the powerState property: Gets the power state of the virtual machine.
+ *
+ * @return the powerState value.
+ */
+ public String powerState() {
+ return this.innerProperties() == null ? null : this.innerProperties().powerState();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the vmId property: Gets or sets a unique identifier for the vm resource.
+ *
+ * @return the vmId value.
+ */
+ public String vmId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vmId();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model VirtualMachineInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VirtualMachineInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineProperties.java
new file mode 100644
index 000000000000..8d254fe8b019
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineProperties.java
@@ -0,0 +1,530 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.FirmwareType;
+import com.azure.resourcemanager.connectedvmware.models.GuestAgentProfile;
+import com.azure.resourcemanager.connectedvmware.models.HardwareProfile;
+import com.azure.resourcemanager.connectedvmware.models.NetworkProfile;
+import com.azure.resourcemanager.connectedvmware.models.OsProfile;
+import com.azure.resourcemanager.connectedvmware.models.PlacementProfile;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.azure.resourcemanager.connectedvmware.models.StorageProfile;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VirtualMachineProperties {
+ /*
+ * Gets or sets the ARM Id of the resourcePool resource on which this
+ * virtual machine will
+ * deploy.
+ */
+ @JsonProperty(value = "resourcePoolId")
+ private String resourcePoolId;
+
+ /*
+ * Gets or sets the ARM Id of the template resource to deploy the virtual
+ * machine.
+ */
+ @JsonProperty(value = "templateId")
+ private String templateId;
+
+ /*
+ * Gets or sets the ARM Id of the vCenter resource in which this resource
+ * pool resides.
+ */
+ @JsonProperty(value = "vCenterId")
+ private String vCenterId;
+
+ /*
+ * Placement properties.
+ */
+ @JsonProperty(value = "placementProfile")
+ private PlacementProfile placementProfile;
+
+ /*
+ * OS properties.
+ */
+ @JsonProperty(value = "osProfile")
+ private OsProfile osProfile;
+
+ /*
+ * Hardware properties.
+ */
+ @JsonProperty(value = "hardwareProfile")
+ private HardwareProfile hardwareProfile;
+
+ /*
+ * Network properties.
+ */
+ @JsonProperty(value = "networkProfile")
+ private NetworkProfile networkProfile;
+
+ /*
+ * Storage properties.
+ */
+ @JsonProperty(value = "storageProfile")
+ private StorageProfile storageProfile;
+
+ /*
+ * Guest agent status properties.
+ */
+ @JsonProperty(value = "guestAgentProfile")
+ private GuestAgentProfile guestAgentProfile;
+
+ /*
+ * Gets or sets the vCenter MoRef (Managed Object Reference) ID for the
+ * virtual machine.
+ */
+ @JsonProperty(value = "moRefId")
+ private String moRefId;
+
+ /*
+ * Gets or sets the inventory Item ID for the virtual machine.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Gets or sets the vCenter Managed Object name for the virtual machine.
+ */
+ @JsonProperty(value = "moName", access = JsonProperty.Access.WRITE_ONLY)
+ private String moName;
+
+ /*
+ * Gets or sets the folder path of the vm.
+ */
+ @JsonProperty(value = "folderPath", access = JsonProperty.Access.WRITE_ONLY)
+ private String folderPath;
+
+ /*
+ * Gets or sets the instance uuid of the vm.
+ */
+ @JsonProperty(value = "instanceUuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String instanceUuid;
+
+ /*
+ * Gets or sets the SMBIOS UUID of the vm.
+ */
+ @JsonProperty(value = "smbiosUuid")
+ private String smbiosUuid;
+
+ /*
+ * Firmware type
+ */
+ @JsonProperty(value = "firmwareType")
+ private FirmwareType firmwareType;
+
+ /*
+ * Gets the power state of the virtual machine.
+ */
+ @JsonProperty(value = "powerState", access = JsonProperty.Access.WRITE_ONLY)
+ private String powerState;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * Gets or sets a unique identifier for the vm resource.
+ */
+ @JsonProperty(value = "vmId", access = JsonProperty.Access.WRITE_ONLY)
+ private String vmId;
+
+ /**
+ * Get the resourcePoolId property: Gets or sets the ARM Id of the resourcePool resource on which this virtual
+ * machine will deploy.
+ *
+ * @return the resourcePoolId value.
+ */
+ public String resourcePoolId() {
+ return this.resourcePoolId;
+ }
+
+ /**
+ * Set the resourcePoolId property: Gets or sets the ARM Id of the resourcePool resource on which this virtual
+ * machine will deploy.
+ *
+ * @param resourcePoolId the resourcePoolId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withResourcePoolId(String resourcePoolId) {
+ this.resourcePoolId = resourcePoolId;
+ return this;
+ }
+
+ /**
+ * Get the templateId property: Gets or sets the ARM Id of the template resource to deploy the virtual machine.
+ *
+ * @return the templateId value.
+ */
+ public String templateId() {
+ return this.templateId;
+ }
+
+ /**
+ * Set the templateId property: Gets or sets the ARM Id of the template resource to deploy the virtual machine.
+ *
+ * @param templateId the templateId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withTemplateId(String templateId) {
+ this.templateId = templateId;
+ return this;
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.vCenterId;
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withVCenterId(String vCenterId) {
+ this.vCenterId = vCenterId;
+ return this;
+ }
+
+ /**
+ * Get the placementProfile property: Placement properties.
+ *
+ * @return the placementProfile value.
+ */
+ public PlacementProfile placementProfile() {
+ return this.placementProfile;
+ }
+
+ /**
+ * Set the placementProfile property: Placement properties.
+ *
+ * @param placementProfile the placementProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withPlacementProfile(PlacementProfile placementProfile) {
+ this.placementProfile = placementProfile;
+ return this;
+ }
+
+ /**
+ * Get the osProfile property: OS properties.
+ *
+ * @return the osProfile value.
+ */
+ public OsProfile osProfile() {
+ return this.osProfile;
+ }
+
+ /**
+ * Set the osProfile property: OS properties.
+ *
+ * @param osProfile the osProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withOsProfile(OsProfile osProfile) {
+ this.osProfile = osProfile;
+ return this;
+ }
+
+ /**
+ * Get the hardwareProfile property: Hardware properties.
+ *
+ * @return the hardwareProfile value.
+ */
+ public HardwareProfile hardwareProfile() {
+ return this.hardwareProfile;
+ }
+
+ /**
+ * Set the hardwareProfile property: Hardware properties.
+ *
+ * @param hardwareProfile the hardwareProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withHardwareProfile(HardwareProfile hardwareProfile) {
+ this.hardwareProfile = hardwareProfile;
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: Network properties.
+ *
+ * @return the networkProfile value.
+ */
+ public NetworkProfile networkProfile() {
+ return this.networkProfile;
+ }
+
+ /**
+ * Set the networkProfile property: Network properties.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withNetworkProfile(NetworkProfile networkProfile) {
+ this.networkProfile = networkProfile;
+ return this;
+ }
+
+ /**
+ * Get the storageProfile property: Storage properties.
+ *
+ * @return the storageProfile value.
+ */
+ public StorageProfile storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set the storageProfile property: Storage properties.
+ *
+ * @param storageProfile the storageProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withStorageProfile(StorageProfile storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+ /**
+ * Get the guestAgentProfile property: Guest agent status properties.
+ *
+ * @return the guestAgentProfile value.
+ */
+ public GuestAgentProfile guestAgentProfile() {
+ return this.guestAgentProfile;
+ }
+
+ /**
+ * Set the guestAgentProfile property: Guest agent status properties.
+ *
+ * @param guestAgentProfile the guestAgentProfile value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withGuestAgentProfile(GuestAgentProfile guestAgentProfile) {
+ this.guestAgentProfile = guestAgentProfile;
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.moRefId;
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withMoRefId(String moRefId) {
+ this.moRefId = moRefId;
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the virtual machine.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the virtual machine.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the virtual machine.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.moName;
+ }
+
+ /**
+ * Get the folderPath property: Gets or sets the folder path of the vm.
+ *
+ * @return the folderPath value.
+ */
+ public String folderPath() {
+ return this.folderPath;
+ }
+
+ /**
+ * Get the instanceUuid property: Gets or sets the instance uuid of the vm.
+ *
+ * @return the instanceUuid value.
+ */
+ public String instanceUuid() {
+ return this.instanceUuid;
+ }
+
+ /**
+ * Get the smbiosUuid property: Gets or sets the SMBIOS UUID of the vm.
+ *
+ * @return the smbiosUuid value.
+ */
+ public String smbiosUuid() {
+ return this.smbiosUuid;
+ }
+
+ /**
+ * Set the smbiosUuid property: Gets or sets the SMBIOS UUID of the vm.
+ *
+ * @param smbiosUuid the smbiosUuid value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withSmbiosUuid(String smbiosUuid) {
+ this.smbiosUuid = smbiosUuid;
+ return this;
+ }
+
+ /**
+ * Get the firmwareType property: Firmware type.
+ *
+ * @return the firmwareType value.
+ */
+ public FirmwareType firmwareType() {
+ return this.firmwareType;
+ }
+
+ /**
+ * Set the firmwareType property: Firmware type.
+ *
+ * @param firmwareType the firmwareType value to set.
+ * @return the VirtualMachineProperties object itself.
+ */
+ public VirtualMachineProperties withFirmwareType(FirmwareType firmwareType) {
+ this.firmwareType = firmwareType;
+ return this;
+ }
+
+ /**
+ * Get the powerState property: Gets the power state of the virtual machine.
+ *
+ * @return the powerState value.
+ */
+ public String powerState() {
+ return this.powerState;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the vmId property: Gets or sets a unique identifier for the vm resource.
+ *
+ * @return the vmId value.
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (placementProfile() != null) {
+ placementProfile().validate();
+ }
+ if (osProfile() != null) {
+ osProfile().validate();
+ }
+ if (hardwareProfile() != null) {
+ hardwareProfile().validate();
+ }
+ if (networkProfile() != null) {
+ networkProfile().validate();
+ }
+ if (storageProfile() != null) {
+ storageProfile().validate();
+ }
+ if (guestAgentProfile() != null) {
+ guestAgentProfile().validate();
+ }
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineTemplateInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineTemplateInner.java
new file mode 100644
index 000000000000..f334d04387f9
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineTemplateInner.java
@@ -0,0 +1,364 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.FirmwareType;
+import com.azure.resourcemanager.connectedvmware.models.NetworkInterface;
+import com.azure.resourcemanager.connectedvmware.models.OsType;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.azure.resourcemanager.connectedvmware.models.VirtualDisk;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the virtualMachineTemplate. */
+@Fluent
+public final class VirtualMachineTemplateInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private VirtualMachineTemplateProperties innerProperties = new VirtualMachineTemplateProperties();
+
+ /*
+ * Gets or sets the extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private VirtualMachineTemplateProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the extendedLocation property: Gets or sets the extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: Gets or sets the extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualMachineTemplateInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualMachineTemplateInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this template resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vCenterId();
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this template resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withVCenterId(String vCenterId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineTemplateProperties();
+ }
+ this.innerProperties().withVCenterId(vCenterId);
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine
+ * template.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.innerProperties() == null ? null : this.innerProperties().moRefId();
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine
+ * template.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withMoRefId(String moRefId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineTemplateProperties();
+ }
+ this.innerProperties().withMoRefId(moRefId);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the virtual machine template.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the virtual machine template.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualMachineTemplateInner object itself.
+ */
+ public VirtualMachineTemplateInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualMachineTemplateProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the virtual machine template.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.innerProperties() == null ? null : this.innerProperties().moName();
+ }
+
+ /**
+ * Get the memorySizeMB property: Gets or sets memory size in MBs for the template.
+ *
+ * @return the memorySizeMB value.
+ */
+ public Integer memorySizeMB() {
+ return this.innerProperties() == null ? null : this.innerProperties().memorySizeMB();
+ }
+
+ /**
+ * Get the numCPUs property: Gets or sets the number of vCPUs for the template.
+ *
+ * @return the numCPUs value.
+ */
+ public Integer numCPUs() {
+ return this.innerProperties() == null ? null : this.innerProperties().numCPUs();
+ }
+
+ /**
+ * Get the numCoresPerSocket property: Gets or sets the number of cores per socket for the template. Defaults to 1
+ * if unspecified.
+ *
+ * @return the numCoresPerSocket value.
+ */
+ public Integer numCoresPerSocket() {
+ return this.innerProperties() == null ? null : this.innerProperties().numCoresPerSocket();
+ }
+
+ /**
+ * Get the osType property: Gets or sets the type of the os.
+ *
+ * @return the osType value.
+ */
+ public OsType osType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osType();
+ }
+
+ /**
+ * Get the osName property: Gets or sets os name.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.innerProperties() == null ? null : this.innerProperties().osName();
+ }
+
+ /**
+ * Get the folderPath property: Gets or sets the folder path of the template.
+ *
+ * @return the folderPath value.
+ */
+ public String folderPath() {
+ return this.innerProperties() == null ? null : this.innerProperties().folderPath();
+ }
+
+ /**
+ * Get the networkInterfaces property: Gets or sets the network interfaces of the template.
+ *
+ * @return the networkInterfaces value.
+ */
+ public List networkInterfaces() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkInterfaces();
+ }
+
+ /**
+ * Get the disks property: Gets or sets the disks the template.
+ *
+ * @return the disks value.
+ */
+ public List disks() {
+ return this.innerProperties() == null ? null : this.innerProperties().disks();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the toolsVersionStatus property: Gets or sets the current version status of VMware Tools installed in the
+ * guest operating system.
+ *
+ * @return the toolsVersionStatus value.
+ */
+ public String toolsVersionStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().toolsVersionStatus();
+ }
+
+ /**
+ * Get the toolsVersion property: Gets or sets the current version of VMware Tools.
+ *
+ * @return the toolsVersion value.
+ */
+ public String toolsVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().toolsVersion();
+ }
+
+ /**
+ * Get the firmwareType property: Firmware type.
+ *
+ * @return the firmwareType value.
+ */
+ public FirmwareType firmwareType() {
+ return this.innerProperties() == null ? null : this.innerProperties().firmwareType();
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model VirtualMachineTemplateInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VirtualMachineTemplateInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineTemplateProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineTemplateProperties.java
new file mode 100644
index 000000000000..68a6b8bac827
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineTemplateProperties.java
@@ -0,0 +1,363 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.FirmwareType;
+import com.azure.resourcemanager.connectedvmware.models.NetworkInterface;
+import com.azure.resourcemanager.connectedvmware.models.OsType;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.azure.resourcemanager.connectedvmware.models.VirtualDisk;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VirtualMachineTemplateProperties {
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Gets or sets the ARM Id of the vCenter resource in which this template
+ * resides.
+ */
+ @JsonProperty(value = "vCenterId")
+ private String vCenterId;
+
+ /*
+ * Gets or sets the vCenter MoRef (Managed Object Reference) ID for the
+ * virtual machine
+ * template.
+ */
+ @JsonProperty(value = "moRefId")
+ private String moRefId;
+
+ /*
+ * Gets or sets the inventory Item ID for the virtual machine template.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Gets or sets the vCenter Managed Object name for the virtual machine
+ * template.
+ */
+ @JsonProperty(value = "moName", access = JsonProperty.Access.WRITE_ONLY)
+ private String moName;
+
+ /*
+ * Gets or sets memory size in MBs for the template.
+ */
+ @JsonProperty(value = "memorySizeMB", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer memorySizeMB;
+
+ /*
+ * Gets or sets the number of vCPUs for the template.
+ */
+ @JsonProperty(value = "numCPUs", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer numCPUs;
+
+ /*
+ * Gets or sets the number of cores per socket for the template.
+ * Defaults to 1 if unspecified.
+ */
+ @JsonProperty(value = "numCoresPerSocket", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer numCoresPerSocket;
+
+ /*
+ * Gets or sets the type of the os.
+ */
+ @JsonProperty(value = "osType", access = JsonProperty.Access.WRITE_ONLY)
+ private OsType osType;
+
+ /*
+ * Gets or sets os name.
+ */
+ @JsonProperty(value = "osName", access = JsonProperty.Access.WRITE_ONLY)
+ private String osName;
+
+ /*
+ * Gets or sets the folder path of the template.
+ */
+ @JsonProperty(value = "folderPath", access = JsonProperty.Access.WRITE_ONLY)
+ private String folderPath;
+
+ /*
+ * Gets or sets the network interfaces of the template.
+ */
+ @JsonProperty(value = "networkInterfaces", access = JsonProperty.Access.WRITE_ONLY)
+ private List networkInterfaces;
+
+ /*
+ * Gets or sets the disks the template.
+ */
+ @JsonProperty(value = "disks", access = JsonProperty.Access.WRITE_ONLY)
+ private List disks;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * Gets or sets the current version status of VMware Tools installed in the
+ * guest operating system.
+ */
+ @JsonProperty(value = "toolsVersionStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private String toolsVersionStatus;
+
+ /*
+ * Gets or sets the current version of VMware Tools.
+ */
+ @JsonProperty(value = "toolsVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String toolsVersion;
+
+ /*
+ * Firmware type
+ */
+ @JsonProperty(value = "firmwareType", access = JsonProperty.Access.WRITE_ONLY)
+ private FirmwareType firmwareType;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this template resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.vCenterId;
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this template resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the VirtualMachineTemplateProperties object itself.
+ */
+ public VirtualMachineTemplateProperties withVCenterId(String vCenterId) {
+ this.vCenterId = vCenterId;
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine
+ * template.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.moRefId;
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine
+ * template.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the VirtualMachineTemplateProperties object itself.
+ */
+ public VirtualMachineTemplateProperties withMoRefId(String moRefId) {
+ this.moRefId = moRefId;
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the virtual machine template.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the virtual machine template.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualMachineTemplateProperties object itself.
+ */
+ public VirtualMachineTemplateProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the virtual machine template.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.moName;
+ }
+
+ /**
+ * Get the memorySizeMB property: Gets or sets memory size in MBs for the template.
+ *
+ * @return the memorySizeMB value.
+ */
+ public Integer memorySizeMB() {
+ return this.memorySizeMB;
+ }
+
+ /**
+ * Get the numCPUs property: Gets or sets the number of vCPUs for the template.
+ *
+ * @return the numCPUs value.
+ */
+ public Integer numCPUs() {
+ return this.numCPUs;
+ }
+
+ /**
+ * Get the numCoresPerSocket property: Gets or sets the number of cores per socket for the template. Defaults to 1
+ * if unspecified.
+ *
+ * @return the numCoresPerSocket value.
+ */
+ public Integer numCoresPerSocket() {
+ return this.numCoresPerSocket;
+ }
+
+ /**
+ * Get the osType property: Gets or sets the type of the os.
+ *
+ * @return the osType value.
+ */
+ public OsType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Get the osName property: Gets or sets os name.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.osName;
+ }
+
+ /**
+ * Get the folderPath property: Gets or sets the folder path of the template.
+ *
+ * @return the folderPath value.
+ */
+ public String folderPath() {
+ return this.folderPath;
+ }
+
+ /**
+ * Get the networkInterfaces property: Gets or sets the network interfaces of the template.
+ *
+ * @return the networkInterfaces value.
+ */
+ public List networkInterfaces() {
+ return this.networkInterfaces;
+ }
+
+ /**
+ * Get the disks property: Gets or sets the disks the template.
+ *
+ * @return the disks value.
+ */
+ public List disks() {
+ return this.disks;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the toolsVersionStatus property: Gets or sets the current version status of VMware Tools installed in the
+ * guest operating system.
+ *
+ * @return the toolsVersionStatus value.
+ */
+ public String toolsVersionStatus() {
+ return this.toolsVersionStatus;
+ }
+
+ /**
+ * Get the toolsVersion property: Gets or sets the current version of VMware Tools.
+ *
+ * @return the toolsVersion value.
+ */
+ public String toolsVersion() {
+ return this.toolsVersion;
+ }
+
+ /**
+ * Get the firmwareType property: Firmware type.
+ *
+ * @return the firmwareType value.
+ */
+ public FirmwareType firmwareType() {
+ return this.firmwareType;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (networkInterfaces() != null) {
+ networkInterfaces().forEach(e -> e.validate());
+ }
+ if (disks() != null) {
+ disks().forEach(e -> e.validate());
+ }
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineUpdateProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineUpdateProperties.java
new file mode 100644
index 000000000000..0d214baabf33
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualMachineUpdateProperties.java
@@ -0,0 +1,110 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.HardwareProfile;
+import com.azure.resourcemanager.connectedvmware.models.NetworkProfileUpdate;
+import com.azure.resourcemanager.connectedvmware.models.StorageProfileUpdate;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VirtualMachineUpdateProperties {
+ /*
+ * Defines the resource properties.
+ */
+ @JsonProperty(value = "hardwareProfile")
+ private HardwareProfile hardwareProfile;
+
+ /*
+ * Defines the resource update properties.
+ */
+ @JsonProperty(value = "storageProfile")
+ private StorageProfileUpdate storageProfile;
+
+ /*
+ * Defines the update resource properties.
+ */
+ @JsonProperty(value = "networkProfile")
+ private NetworkProfileUpdate networkProfile;
+
+ /**
+ * Get the hardwareProfile property: Defines the resource properties.
+ *
+ * @return the hardwareProfile value.
+ */
+ public HardwareProfile hardwareProfile() {
+ return this.hardwareProfile;
+ }
+
+ /**
+ * Set the hardwareProfile property: Defines the resource properties.
+ *
+ * @param hardwareProfile the hardwareProfile value to set.
+ * @return the VirtualMachineUpdateProperties object itself.
+ */
+ public VirtualMachineUpdateProperties withHardwareProfile(HardwareProfile hardwareProfile) {
+ this.hardwareProfile = hardwareProfile;
+ return this;
+ }
+
+ /**
+ * Get the storageProfile property: Defines the resource update properties.
+ *
+ * @return the storageProfile value.
+ */
+ public StorageProfileUpdate storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set the storageProfile property: Defines the resource update properties.
+ *
+ * @param storageProfile the storageProfile value to set.
+ * @return the VirtualMachineUpdateProperties object itself.
+ */
+ public VirtualMachineUpdateProperties withStorageProfile(StorageProfileUpdate storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+ /**
+ * Get the networkProfile property: Defines the update resource properties.
+ *
+ * @return the networkProfile value.
+ */
+ public NetworkProfileUpdate networkProfile() {
+ return this.networkProfile;
+ }
+
+ /**
+ * Set the networkProfile property: Defines the update resource properties.
+ *
+ * @param networkProfile the networkProfile value to set.
+ * @return the VirtualMachineUpdateProperties object itself.
+ */
+ public VirtualMachineUpdateProperties withNetworkProfile(NetworkProfileUpdate networkProfile) {
+ this.networkProfile = networkProfile;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (hardwareProfile() != null) {
+ hardwareProfile().validate();
+ }
+ if (storageProfile() != null) {
+ storageProfile().validate();
+ }
+ if (networkProfile() != null) {
+ networkProfile().validate();
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualNetworkInner.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualNetworkInner.java
new file mode 100644
index 000000000000..7f44d0dfb55f
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualNetworkInner.java
@@ -0,0 +1,257 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Define the virtualNetwork. */
+@Fluent
+public final class VirtualNetworkInner extends Resource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private VirtualNetworkProperties innerProperties = new VirtualNetworkProperties();
+
+ /*
+ * Gets or sets the extended location.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * The system data.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Metadata used by portal/tooling/etc to render different UX experiences
+ * for resources of the same type; e.g. ApiApps are a kind of
+ * Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private VirtualNetworkProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the extendedLocation property: Gets or sets the extended location.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: Gets or sets the extended location.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: Metadata used by portal/tooling/etc to render different UX experiences for resources of
+ * the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must
+ * validate and persist this value.
+ *
+ * @param kind the kind value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualNetworkInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VirtualNetworkInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.innerProperties() == null ? null : this.innerProperties().uuid();
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this template resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.innerProperties() == null ? null : this.innerProperties().vCenterId();
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this template resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withVCenterId(String vCenterId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualNetworkProperties();
+ }
+ this.innerProperties().withVCenterId(vCenterId);
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual network.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.innerProperties() == null ? null : this.innerProperties().moRefId();
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual network.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withMoRefId(String moRefId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualNetworkProperties();
+ }
+ this.innerProperties().withMoRefId(moRefId);
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the virtual network.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.innerProperties() == null ? null : this.innerProperties().inventoryItemId();
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the virtual network.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualNetworkInner object itself.
+ */
+ public VirtualNetworkInner withInventoryItemId(String inventoryItemId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new VirtualNetworkProperties();
+ }
+ this.innerProperties().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the virtual network.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.innerProperties() == null ? null : this.innerProperties().moName();
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.innerProperties() == null ? null : this.innerProperties().customResourceName();
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.innerProperties() == null ? null : this.innerProperties().statuses();
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model VirtualNetworkInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(VirtualNetworkInner.class);
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualNetworkProperties.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualNetworkProperties.java
new file mode 100644
index 000000000000..63a1f05470a7
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/VirtualNetworkProperties.java
@@ -0,0 +1,180 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Defines the resource properties. */
+@Fluent
+public final class VirtualNetworkProperties {
+ /*
+ * Gets or sets a unique identifier for this resource.
+ */
+ @JsonProperty(value = "uuid", access = JsonProperty.Access.WRITE_ONLY)
+ private String uuid;
+
+ /*
+ * Gets or sets the ARM Id of the vCenter resource in which this template
+ * resides.
+ */
+ @JsonProperty(value = "vCenterId")
+ private String vCenterId;
+
+ /*
+ * Gets or sets the vCenter MoRef (Managed Object Reference) ID for the
+ * virtual network.
+ */
+ @JsonProperty(value = "moRefId")
+ private String moRefId;
+
+ /*
+ * Gets or sets the inventory Item ID for the virtual network.
+ */
+ @JsonProperty(value = "inventoryItemId")
+ private String inventoryItemId;
+
+ /*
+ * Gets or sets the vCenter Managed Object name for the virtual network.
+ */
+ @JsonProperty(value = "moName", access = JsonProperty.Access.WRITE_ONLY)
+ private String moName;
+
+ /*
+ * Gets the name of the corresponding resource in Kubernetes.
+ */
+ @JsonProperty(value = "customResourceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String customResourceName;
+
+ /*
+ * The resource status information.
+ */
+ @JsonProperty(value = "statuses", access = JsonProperty.Access.WRITE_ONLY)
+ private List statuses;
+
+ /*
+ * Gets or sets the provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the uuid property: Gets or sets a unique identifier for this resource.
+ *
+ * @return the uuid value.
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Get the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this template resides.
+ *
+ * @return the vCenterId value.
+ */
+ public String vCenterId() {
+ return this.vCenterId;
+ }
+
+ /**
+ * Set the vCenterId property: Gets or sets the ARM Id of the vCenter resource in which this template resides.
+ *
+ * @param vCenterId the vCenterId value to set.
+ * @return the VirtualNetworkProperties object itself.
+ */
+ public VirtualNetworkProperties withVCenterId(String vCenterId) {
+ this.vCenterId = vCenterId;
+ return this;
+ }
+
+ /**
+ * Get the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual network.
+ *
+ * @return the moRefId value.
+ */
+ public String moRefId() {
+ return this.moRefId;
+ }
+
+ /**
+ * Set the moRefId property: Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual network.
+ *
+ * @param moRefId the moRefId value to set.
+ * @return the VirtualNetworkProperties object itself.
+ */
+ public VirtualNetworkProperties withMoRefId(String moRefId) {
+ this.moRefId = moRefId;
+ return this;
+ }
+
+ /**
+ * Get the inventoryItemId property: Gets or sets the inventory Item ID for the virtual network.
+ *
+ * @return the inventoryItemId value.
+ */
+ public String inventoryItemId() {
+ return this.inventoryItemId;
+ }
+
+ /**
+ * Set the inventoryItemId property: Gets or sets the inventory Item ID for the virtual network.
+ *
+ * @param inventoryItemId the inventoryItemId value to set.
+ * @return the VirtualNetworkProperties object itself.
+ */
+ public VirtualNetworkProperties withInventoryItemId(String inventoryItemId) {
+ this.inventoryItemId = inventoryItemId;
+ return this;
+ }
+
+ /**
+ * Get the moName property: Gets or sets the vCenter Managed Object name for the virtual network.
+ *
+ * @return the moName value.
+ */
+ public String moName() {
+ return this.moName;
+ }
+
+ /**
+ * Get the customResourceName property: Gets the name of the corresponding resource in Kubernetes.
+ *
+ * @return the customResourceName value.
+ */
+ public String customResourceName() {
+ return this.customResourceName;
+ }
+
+ /**
+ * Get the statuses property: The resource status information.
+ *
+ * @return the statuses value.
+ */
+ public List statuses() {
+ return this.statuses;
+ }
+
+ /**
+ * Get the provisioningState property: Gets or sets the provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (statuses() != null) {
+ statuses().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/package-info.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/package-info.java
new file mode 100644
index 000000000000..b3b2de9f1489
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for ConnectedVMwareClient. Connected VMware Client. */
+package com.azure.resourcemanager.connectedvmware.fluent.models;
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/package-info.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/package-info.java
new file mode 100644
index 000000000000..012d2bb964e6
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for ConnectedVMwareClient. Connected VMware Client. */
+package com.azure.resourcemanager.connectedvmware.fluent;
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/implementation/ClusterImpl.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/implementation/ClusterImpl.java
new file mode 100644
index 000000000000..a52eda53de78
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/implementation/ClusterImpl.java
@@ -0,0 +1,268 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.implementation;
+
+import com.azure.core.management.Region;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.connectedvmware.fluent.models.ClusterInner;
+import com.azure.resourcemanager.connectedvmware.models.Cluster;
+import com.azure.resourcemanager.connectedvmware.models.ExtendedLocation;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+import com.azure.resourcemanager.connectedvmware.models.ResourceStatus;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public final class ClusterImpl implements Cluster, Cluster.Definition, Cluster.Update {
+ private ClusterInner innerObject;
+
+ private final com.azure.resourcemanager.connectedvmware.ConnectedVMwareManager 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 ExtendedLocation extendedLocation() {
+ return this.innerModel().extendedLocation();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String kind() {
+ return this.innerModel().kind();
+ }
+
+ public String uuid() {
+ return this.innerModel().uuid();
+ }
+
+ public String vCenterId() {
+ return this.innerModel().vCenterId();
+ }
+
+ public String moRefId() {
+ return this.innerModel().moRefId();
+ }
+
+ public String inventoryItemId() {
+ return this.innerModel().inventoryItemId();
+ }
+
+ public String moName() {
+ return this.innerModel().moName();
+ }
+
+ public List statuses() {
+ List inner = this.innerModel().statuses();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public String customResourceName() {
+ return this.innerModel().customResourceName();
+ }
+
+ public List datastoreIds() {
+ List inner = this.innerModel().datastoreIds();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public List networkIds() {
+ List inner = this.innerModel().networkIds();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public String provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public ClusterInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.connectedvmware.ConnectedVMwareManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String clusterName;
+
+ private ResourcePatch updateBody;
+
+ public ClusterImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public Cluster create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClusters()
+ .create(resourceGroupName, clusterName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Cluster create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClusters()
+ .create(resourceGroupName, clusterName, this.innerModel(), context);
+ return this;
+ }
+
+ ClusterImpl(String name, com.azure.resourcemanager.connectedvmware.ConnectedVMwareManager serviceManager) {
+ this.innerObject = new ClusterInner();
+ this.serviceManager = serviceManager;
+ this.clusterName = name;
+ }
+
+ public ClusterImpl update() {
+ this.updateBody = new ResourcePatch();
+ return this;
+ }
+
+ public Cluster apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClusters()
+ .updateWithResponse(resourceGroupName, clusterName, updateBody, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Cluster apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClusters()
+ .updateWithResponse(resourceGroupName, clusterName, updateBody, context)
+ .getValue();
+ return this;
+ }
+
+ ClusterImpl(
+ ClusterInner innerObject, com.azure.resourcemanager.connectedvmware.ConnectedVMwareManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.clusterName = Utils.getValueFromIdByName(innerObject.id(), "clusters");
+ }
+
+ public Cluster refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClusters()
+ .getByResourceGroupWithResponse(resourceGroupName, clusterName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Cluster refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getClusters()
+ .getByResourceGroupWithResponse(resourceGroupName, clusterName, context)
+ .getValue();
+ return this;
+ }
+
+ public ClusterImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public ClusterImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public ClusterImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.innerModel().withTags(tags);
+ return this;
+ } else {
+ this.updateBody.withTags(tags);
+ return this;
+ }
+ }
+
+ public ClusterImpl withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.innerModel().withExtendedLocation(extendedLocation);
+ return this;
+ }
+
+ public ClusterImpl withKind(String kind) {
+ this.innerModel().withKind(kind);
+ return this;
+ }
+
+ public ClusterImpl withVCenterId(String vCenterId) {
+ this.innerModel().withVCenterId(vCenterId);
+ return this;
+ }
+
+ public ClusterImpl withMoRefId(String moRefId) {
+ this.innerModel().withMoRefId(moRefId);
+ return this;
+ }
+
+ public ClusterImpl withInventoryItemId(String inventoryItemId) {
+ this.innerModel().withInventoryItemId(inventoryItemId);
+ return this;
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/implementation/ClustersClientImpl.java b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/implementation/ClustersClientImpl.java
new file mode 100644
index 000000000000..1ea5ea50df7e
--- /dev/null
+++ b/sdk/connectedvmware/azure-resourcemanager-connectedvmware/src/main/java/com/azure/resourcemanager/connectedvmware/implementation/ClustersClientImpl.java
@@ -0,0 +1,1521 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.connectedvmware.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.connectedvmware.fluent.ClustersClient;
+import com.azure.resourcemanager.connectedvmware.fluent.models.ClusterInner;
+import com.azure.resourcemanager.connectedvmware.models.ClustersList;
+import com.azure.resourcemanager.connectedvmware.models.ResourcePatch;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in ClustersClient. */
+public final class ClustersClientImpl implements ClustersClient {
+ /** The proxy service used to perform REST calls. */
+ private final ClustersService service;
+
+ /** The service client containing this operation class. */
+ private final ConnectedVMwareClientImpl client;
+
+ /**
+ * Initializes an instance of ClustersClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ ClustersClientImpl(ConnectedVMwareClientImpl client) {
+ this.service = RestProxy.create(ClustersService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ConnectedVMwareClientClusters to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ConnectedVMwareClien")
+ private interface ClustersService {
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers"
+ + "/Microsoft.ConnectedVMwarevSphere/clusters/{clusterName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> create(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("clusterName") String clusterName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") ClusterInner body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers"
+ + "/Microsoft.ConnectedVMwarevSphere/clusters/{clusterName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("clusterName") String clusterName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers"
+ + "/Microsoft.ConnectedVMwarevSphere/clusters/{clusterName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> update(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("clusterName") String clusterName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") ResourcePatch body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers"
+ + "/Microsoft.ConnectedVMwarevSphere/clusters/{clusterName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("clusterName") String clusterName,
+ @QueryParam("api-version") String apiVersion,
+ @QueryParam("force") Boolean force,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.ConnectedVMwarevSphere/clusters")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers"
+ + "/Microsoft.ConnectedVMwarevSphere/clusters")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroupNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName, String clusterName, ClusterInner body) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (clusterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter clusterName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .create(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ clusterName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName, String clusterName, ClusterInner body, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (clusterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter clusterName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .create(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ clusterName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, ClusterInner> beginCreateAsync(
+ String resourceGroupName, String clusterName, ClusterInner body) {
+ Mono>> mono = createWithResponseAsync(resourceGroupName, clusterName, body);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), ClusterInner.class, ClusterInner.class, this.client.getContext());
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, ClusterInner> beginCreateAsync(
+ String resourceGroupName, String clusterName, ClusterInner body, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono = createWithResponseAsync(resourceGroupName, clusterName, body, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), ClusterInner.class, ClusterInner.class, context);
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, ClusterInner> beginCreate(
+ String resourceGroupName, String clusterName, ClusterInner body) {
+ return beginCreateAsync(resourceGroupName, clusterName, body).getSyncPoller();
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, ClusterInner> beginCreate(
+ String resourceGroupName, String clusterName, ClusterInner body, Context context) {
+ return beginCreateAsync(resourceGroupName, clusterName, body, context).getSyncPoller();
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(String resourceGroupName, String clusterName, ClusterInner body) {
+ return beginCreateAsync(resourceGroupName, clusterName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(String resourceGroupName, String clusterName) {
+ final ClusterInner body = null;
+ return beginCreateAsync(resourceGroupName, clusterName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName, String clusterName, ClusterInner body, Context context) {
+ return beginCreateAsync(resourceGroupName, clusterName, body, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ClusterInner create(String resourceGroupName, String clusterName, ClusterInner body) {
+ return createAsync(resourceGroupName, clusterName, body).block();
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ClusterInner create(String resourceGroupName, String clusterName) {
+ final ClusterInner body = null;
+ return createAsync(resourceGroupName, clusterName, body).block();
+ }
+
+ /**
+ * Create Or Update cluster.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Request payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ClusterInner create(String resourceGroupName, String clusterName, ClusterInner body, Context context) {
+ return createAsync(resourceGroupName, clusterName, body, context).block();
+ }
+
+ /**
+ * Implements cluster GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String clusterName) {
+ 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 (clusterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter clusterName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ clusterName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Implements cluster GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String clusterName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (clusterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter clusterName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ clusterName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Implements cluster GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByResourceGroupAsync(String resourceGroupName, String clusterName) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, clusterName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Implements cluster GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ClusterInner getByResourceGroup(String resourceGroupName, String clusterName) {
+ return getByResourceGroupAsync(resourceGroupName, clusterName).block();
+ }
+
+ /**
+ * Implements cluster GET method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String clusterName, Context context) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, clusterName, context).block();
+ }
+
+ /**
+ * API to update certain properties of the cluster resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Resource properties to update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName, String clusterName, ResourcePatch body) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (clusterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter clusterName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ clusterName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * API to update certain properties of the cluster resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName, String clusterName, ResourcePatch body, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (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 (clusterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter clusterName is required and cannot be null."));
+ }
+ if (body != null) {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ clusterName,
+ this.client.getApiVersion(),
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * API to update certain properties of the cluster resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Resource properties to update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(String resourceGroupName, String clusterName, ResourcePatch body) {
+ return updateWithResponseAsync(resourceGroupName, clusterName, body)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * API to update certain properties of the cluster resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(String resourceGroupName, String clusterName) {
+ final ResourcePatch body = null;
+ return updateWithResponseAsync(resourceGroupName, clusterName, body)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * API to update certain properties of the cluster resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ClusterInner update(String resourceGroupName, String clusterName) {
+ final ResourcePatch body = null;
+ return updateAsync(resourceGroupName, clusterName, body).block();
+ }
+
+ /**
+ * API to update certain properties of the cluster resource.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param body Resource properties to update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return define the cluster along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response updateWithResponse(
+ String resourceGroupName, String clusterName, ResourcePatch body, Context context) {
+ return updateWithResponseAsync(resourceGroupName, clusterName, body, context).block();
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String clusterName, Boolean force) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (clusterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter clusterName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ clusterName,
+ this.client.getApiVersion(),
+ force,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String clusterName, Boolean force, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (clusterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter clusterName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ clusterName,
+ this.client.getApiVersion(),
+ force,
+ accept,
+ context);
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String clusterName, Boolean force) {
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, clusterName, force);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String clusterName, Boolean force, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, clusterName, force, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(String resourceGroupName, String clusterName, Boolean force) {
+ return beginDeleteAsync(resourceGroupName, clusterName, force).getSyncPoller();
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String clusterName, Boolean force, Context context) {
+ return beginDeleteAsync(resourceGroupName, clusterName, force, context).getSyncPoller();
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String clusterName, Boolean force) {
+ return beginDeleteAsync(resourceGroupName, clusterName, force)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String clusterName) {
+ final Boolean force = null;
+ return beginDeleteAsync(resourceGroupName, clusterName, force)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String clusterName, Boolean force, Context context) {
+ return beginDeleteAsync(resourceGroupName, clusterName, force, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String clusterName, Boolean force) {
+ deleteAsync(resourceGroupName, clusterName, force).block();
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String clusterName) {
+ final Boolean force = null;
+ deleteAsync(resourceGroupName, clusterName, force).block();
+ }
+
+ /**
+ * Implements cluster DELETE method.
+ *
+ * @param resourceGroupName The Resource Group Name.
+ * @param clusterName Name of the cluster.
+ * @param force Whether force delete was specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String clusterName, Boolean force, Context context) {
+ deleteAsync(resourceGroupName, clusterName, force, context).block();
+ }
+
+ /**
+ * List of clusters in a subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync() {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * List of clusters in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * List of clusters in a subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(() -> listSinglePageAsync(), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * List of clusters in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(context), nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * List of clusters in a subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * List of clusters in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Clusters as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable