diff --git a/sdk/avs/azure-resourcemanager-avs/CHANGELOG.md b/sdk/avs/azure-resourcemanager-avs/CHANGELOG.md
index 772330bd6b85..f53468ae18fa 100644
--- a/sdk/avs/azure-resourcemanager-avs/CHANGELOG.md
+++ b/sdk/avs/azure-resourcemanager-avs/CHANGELOG.md
@@ -1,7 +1,8 @@
# Release History
-## 1.0.0-beta.2 (Unreleased)
+## 1.0.0-beta.1 (2021-07-05)
+- Azure Resource Manager Avs client library for Java. This package contains Microsoft Azure SDK for Avs Management SDK. Azure VMware Solution API. Package tag package-2021-06-01. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
## 1.0.0-beta.1 (2021-04-13)
diff --git a/sdk/avs/azure-resourcemanager-avs/README.md b/sdk/avs/azure-resourcemanager-avs/README.md
index 0c7963e07a00..680bae456f7f 100644
--- a/sdk/avs/azure-resourcemanager-avs/README.md
+++ b/sdk/avs/azure-resourcemanager-avs/README.md
@@ -2,7 +2,7 @@
Azure Resource Manager Avs client library for Java.
-This package contains Microsoft Azure SDK for Avs Management SDK. Azure VMware Solution API. Package tag package-2020-03-20. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
+This package contains Microsoft Azure SDK for Avs Management SDK. Azure VMware Solution API. Package tag package-2021-06-01. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
## We'd love to hear your feedback
@@ -32,7 +32,7 @@ Various documentation is available to help you get started
com.azure.resourcemanager
azure-resourcemanager-avs
- 1.0.0-beta.1
+ 1.0.0-beta.2
```
[//]: # ({x-version-update-end})
@@ -74,13 +74,15 @@ See [API design][design] for general introduction on design and key concepts on
## Examples
+
+
## Troubleshooting
## Next steps
## Contributing
-For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/main/CONTRIBUTING.md).
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/master/CONTRIBUTING.md).
1. Fork it
1. Create your feature branch (`git checkout -b my-new-feature`)
@@ -93,7 +95,7 @@ For details on contributing to this repository, see the [contributing guide](htt
[docs]: https://azure.github.io/azure-sdk-for-java/
[jdk]: https://docs.microsoft.com/java/azure/jdk/
[azure_subscription]: https://azure.microsoft.com/free/
-[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity
-[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-http-netty
-[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/AUTH.md
-[design]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/DESIGN.md
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/avs/azure-resourcemanager-avs/pom.xml b/sdk/avs/azure-resourcemanager-avs/pom.xml
index 762cdfb2637a..c48aad7174b4 100644
--- a/sdk/avs/azure-resourcemanager-avs/pom.xml
+++ b/sdk/avs/azure-resourcemanager-avs/pom.xml
@@ -1,67 +1,86 @@
- 4.0.0
-
- com.azure
- azure-client-sdk-parent
- 1.7.0
- ../../parents/azure-client-sdk-parent
-
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
- com.azure.resourcemanager
- azure-resourcemanager-avs
- 1.0.0-beta.2
- jar
+ com.azure.resourcemanager
+ azure-resourcemanager-avs
+ 1.0.0-beta.2
+ jar
- Microsoft Azure SDK for Avs Management
- This package contains Microsoft Azure SDK for Avs Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Azure VMware Solution API. Package tag package-2020-03-20.
- https://github.com/Azure/azure-sdk-for-java
+ Microsoft Azure SDK for Avs Management
+ This package contains Microsoft Azure SDK for Avs Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Azure VMware Solution API. Package tag package-2021-06-01.
+ https://github.com/Azure/azure-sdk-for-java
-
-
- The MIT License (MIT)
- http://opensource.org/licenses/MIT
- repo
-
-
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
-
- https://github.com/Azure/azure-sdk-for-java
- scm:git:git@github.com:Azure/azure-sdk-for-java.git
- scm:git:git@github.com:Azure/azure-sdk-for-java.git
- HEAD
-
-
-
- microsoft
- Microsoft
-
-
-
- UTF-8
-
-
-
-
- com.azure
- azure-core
- 1.18.0
-
-
- com.azure
- azure-core-management
- 1.3.1
-
-
-
-
-
- org.jacoco
- jacoco-maven-plugin
- 0.8.5
-
- true
-
-
-
-
+
+ https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+
+ microsoft
+ Microsoft
+
+
+
+ UTF-8
+
+
+
+
+ com.azure
+ azure-core
+ 1.18.0
+
+
+ com.azure
+ azure-core-management
+ 1.3.1
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+ org.revapi
+ revapi-maven-plugin
+ 0.11.2
+
+
+
+ -
+
java.method.addedToInterface
+
+ -
+ true
+
.*
+ com\.azure\.resourcemanager(\.[^.]+)+\.fluent(\.[^.]+)*
+
+
+
+
+
+
+
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/AvsManager.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/AvsManager.java
index a6720c45e730..d120122eda13 100644
--- a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/AvsManager.java
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/AvsManager.java
@@ -9,7 +9,6 @@
import com.azure.core.http.HttpPipeline;
import com.azure.core.http.HttpPipelineBuilder;
import com.azure.core.http.policy.AddDatePolicy;
-import com.azure.core.http.policy.BearerTokenAuthenticationPolicy;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.http.policy.HttpLoggingPolicy;
import com.azure.core.http.policy.HttpPipelinePolicy;
@@ -17,23 +16,40 @@
import com.azure.core.http.policy.RequestIdPolicy;
import com.azure.core.http.policy.RetryPolicy;
import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.http.policy.ArmChallengeAuthenticationPolicy;
import com.azure.core.management.profile.AzureProfile;
import com.azure.core.util.Configuration;
import com.azure.core.util.logging.ClientLogger;
import com.azure.resourcemanager.avs.fluent.AvsClient;
+import com.azure.resourcemanager.avs.implementation.AddonsImpl;
import com.azure.resourcemanager.avs.implementation.AuthorizationsImpl;
import com.azure.resourcemanager.avs.implementation.AvsClientBuilder;
+import com.azure.resourcemanager.avs.implementation.CloudLinksImpl;
import com.azure.resourcemanager.avs.implementation.ClustersImpl;
+import com.azure.resourcemanager.avs.implementation.DatastoresImpl;
+import com.azure.resourcemanager.avs.implementation.GlobalReachConnectionsImpl;
import com.azure.resourcemanager.avs.implementation.HcxEnterpriseSitesImpl;
import com.azure.resourcemanager.avs.implementation.LocationsImpl;
import com.azure.resourcemanager.avs.implementation.OperationsImpl;
import com.azure.resourcemanager.avs.implementation.PrivateCloudsImpl;
+import com.azure.resourcemanager.avs.implementation.ScriptCmdletsImpl;
+import com.azure.resourcemanager.avs.implementation.ScriptExecutionsImpl;
+import com.azure.resourcemanager.avs.implementation.ScriptPackagesImpl;
+import com.azure.resourcemanager.avs.implementation.WorkloadNetworksImpl;
+import com.azure.resourcemanager.avs.models.Addons;
import com.azure.resourcemanager.avs.models.Authorizations;
+import com.azure.resourcemanager.avs.models.CloudLinks;
import com.azure.resourcemanager.avs.models.Clusters;
+import com.azure.resourcemanager.avs.models.Datastores;
+import com.azure.resourcemanager.avs.models.GlobalReachConnections;
import com.azure.resourcemanager.avs.models.HcxEnterpriseSites;
import com.azure.resourcemanager.avs.models.Locations;
import com.azure.resourcemanager.avs.models.Operations;
import com.azure.resourcemanager.avs.models.PrivateClouds;
+import com.azure.resourcemanager.avs.models.ScriptCmdlets;
+import com.azure.resourcemanager.avs.models.ScriptExecutions;
+import com.azure.resourcemanager.avs.models.ScriptPackages;
+import com.azure.resourcemanager.avs.models.WorkloadNetworks;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
@@ -50,10 +66,26 @@ public final class AvsManager {
private Clusters clusters;
+ private Datastores datastores;
+
private HcxEnterpriseSites hcxEnterpriseSites;
private Authorizations authorizations;
+ private GlobalReachConnections globalReachConnections;
+
+ private WorkloadNetworks workloadNetworks;
+
+ private CloudLinks cloudLinks;
+
+ private Addons addons;
+
+ private ScriptPackages scriptPackages;
+
+ private ScriptCmdlets scriptCmdlets;
+
+ private ScriptExecutions scriptExecutions;
+
private final AvsClient clientObject;
private AvsManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
@@ -97,6 +129,7 @@ public static final class Configurable {
private HttpClient httpClient;
private HttpLogOptions httpLogOptions;
private final List policies = new ArrayList<>();
+ private final List scopes = new ArrayList<>();
private RetryPolicy retryPolicy;
private Duration defaultPollInterval;
@@ -136,6 +169,17 @@ public Configurable withPolicy(HttpPipelinePolicy policy) {
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.
*
@@ -192,6 +236,9 @@ public AvsManager authenticate(TokenCredential credential, AzureProfile profile)
userAgentBuilder.append(" (auto-generated)");
}
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
if (retryPolicy == null) {
retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
}
@@ -201,10 +248,7 @@ public AvsManager authenticate(TokenCredential credential, AzureProfile profile)
HttpPolicyProviders.addBeforeRetryPolicies(policies);
policies.add(retryPolicy);
policies.add(new AddDatePolicy());
- policies
- .add(
- new BearerTokenAuthenticationPolicy(
- credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
policies.addAll(this.policies);
HttpPolicyProviders.addAfterRetryPolicies(policies);
policies.add(new HttpLoggingPolicy(httpLogOptions));
@@ -249,6 +293,14 @@ public Clusters clusters() {
return clusters;
}
+ /** @return Resource collection API of Datastores. */
+ public Datastores datastores() {
+ if (this.datastores == null) {
+ this.datastores = new DatastoresImpl(clientObject.getDatastores(), this);
+ }
+ return datastores;
+ }
+
/** @return Resource collection API of HcxEnterpriseSites. */
public HcxEnterpriseSites hcxEnterpriseSites() {
if (this.hcxEnterpriseSites == null) {
@@ -265,6 +317,63 @@ public Authorizations authorizations() {
return authorizations;
}
+ /** @return Resource collection API of GlobalReachConnections. */
+ public GlobalReachConnections globalReachConnections() {
+ if (this.globalReachConnections == null) {
+ this.globalReachConnections =
+ new GlobalReachConnectionsImpl(clientObject.getGlobalReachConnections(), this);
+ }
+ return globalReachConnections;
+ }
+
+ /** @return Resource collection API of WorkloadNetworks. */
+ public WorkloadNetworks workloadNetworks() {
+ if (this.workloadNetworks == null) {
+ this.workloadNetworks = new WorkloadNetworksImpl(clientObject.getWorkloadNetworks(), this);
+ }
+ return workloadNetworks;
+ }
+
+ /** @return Resource collection API of CloudLinks. */
+ public CloudLinks cloudLinks() {
+ if (this.cloudLinks == null) {
+ this.cloudLinks = new CloudLinksImpl(clientObject.getCloudLinks(), this);
+ }
+ return cloudLinks;
+ }
+
+ /** @return Resource collection API of Addons. */
+ public Addons addons() {
+ if (this.addons == null) {
+ this.addons = new AddonsImpl(clientObject.getAddons(), this);
+ }
+ return addons;
+ }
+
+ /** @return Resource collection API of ScriptPackages. */
+ public ScriptPackages scriptPackages() {
+ if (this.scriptPackages == null) {
+ this.scriptPackages = new ScriptPackagesImpl(clientObject.getScriptPackages(), this);
+ }
+ return scriptPackages;
+ }
+
+ /** @return Resource collection API of ScriptCmdlets. */
+ public ScriptCmdlets scriptCmdlets() {
+ if (this.scriptCmdlets == null) {
+ this.scriptCmdlets = new ScriptCmdletsImpl(clientObject.getScriptCmdlets(), this);
+ }
+ return scriptCmdlets;
+ }
+
+ /** @return Resource collection API of ScriptExecutions. */
+ public ScriptExecutions scriptExecutions() {
+ if (this.scriptExecutions == null) {
+ this.scriptExecutions = new ScriptExecutionsImpl(clientObject.getScriptExecutions(), this);
+ }
+ return scriptExecutions;
+ }
+
/**
* @return Wrapped service client AvsClient providing direct access to the underlying auto-generated API
* implementation, based on Azure REST API.
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/AddonsClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/AddonsClient.java
new file mode 100644
index 000000000000..f428bb60738e
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/AddonsClient.java
@@ -0,0 +1,196 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.avs.fluent.models.AddonInner;
+
+/** An instance of this class provides access to all the operations defined in AddonsClient. */
+public interface AddonsClient {
+ /**
+ * List addons in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List addons in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get an addon by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AddonInner get(String resourceGroupName, String privateCloudName, String addonName);
+
+ /**
+ * Get an addon by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String addonName, Context context);
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, AddonInner> beginCreateOrUpdate(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon);
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, AddonInner> beginCreateOrUpdate(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon, Context context);
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AddonInner createOrUpdate(String resourceGroupName, String privateCloudName, String addonName, AddonInner addon);
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AddonInner createOrUpdate(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon, Context context);
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String privateCloudName, String addonName);
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String addonName, Context context);
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String privateCloudName, String addonName);
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String privateCloudName, String addonName, Context context);
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/AvsClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/AvsClient.java
index d2f526f7be75..88379d31edc5 100644
--- a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/AvsClient.java
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/AvsClient.java
@@ -72,6 +72,13 @@ public interface AvsClient {
*/
ClustersClient getClusters();
+ /**
+ * Gets the DatastoresClient object to access its operations.
+ *
+ * @return the DatastoresClient object.
+ */
+ DatastoresClient getDatastores();
+
/**
* Gets the HcxEnterpriseSitesClient object to access its operations.
*
@@ -85,4 +92,53 @@ public interface AvsClient {
* @return the AuthorizationsClient object.
*/
AuthorizationsClient getAuthorizations();
+
+ /**
+ * Gets the GlobalReachConnectionsClient object to access its operations.
+ *
+ * @return the GlobalReachConnectionsClient object.
+ */
+ GlobalReachConnectionsClient getGlobalReachConnections();
+
+ /**
+ * Gets the WorkloadNetworksClient object to access its operations.
+ *
+ * @return the WorkloadNetworksClient object.
+ */
+ WorkloadNetworksClient getWorkloadNetworks();
+
+ /**
+ * Gets the CloudLinksClient object to access its operations.
+ *
+ * @return the CloudLinksClient object.
+ */
+ CloudLinksClient getCloudLinks();
+
+ /**
+ * Gets the AddonsClient object to access its operations.
+ *
+ * @return the AddonsClient object.
+ */
+ AddonsClient getAddons();
+
+ /**
+ * Gets the ScriptPackagesClient object to access its operations.
+ *
+ * @return the ScriptPackagesClient object.
+ */
+ ScriptPackagesClient getScriptPackages();
+
+ /**
+ * Gets the ScriptCmdletsClient object to access its operations.
+ *
+ * @return the ScriptCmdletsClient object.
+ */
+ ScriptCmdletsClient getScriptCmdlets();
+
+ /**
+ * Gets the ScriptExecutionsClient object to access its operations.
+ *
+ * @return the ScriptExecutionsClient object.
+ */
+ ScriptExecutionsClient getScriptExecutions();
}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/CloudLinksClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/CloudLinksClient.java
new file mode 100644
index 000000000000..facc519f6a28
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/CloudLinksClient.java
@@ -0,0 +1,206 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.avs.fluent.models.CloudLinkInner;
+
+/** An instance of this class provides access to all the operations defined in CloudLinksClient. */
+public interface CloudLinksClient {
+ /**
+ * List cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get an cloud link by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link 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 an cloud link by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CloudLinkInner get(String resourceGroupName, String privateCloudName, String cloudLinkName);
+
+ /**
+ * Get an cloud link by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link 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 an cloud link by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, Context context);
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, CloudLinkInner> beginCreateOrUpdate(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, CloudLinkInner cloudLink);
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, CloudLinkInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String cloudLinkName,
+ CloudLinkInner cloudLink,
+ Context context);
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CloudLinkInner createOrUpdate(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, CloudLinkInner cloudLink);
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CloudLinkInner createOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String cloudLinkName,
+ CloudLinkInner cloudLink,
+ Context context);
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String cloudLinkName);
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, Context context);
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link 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 privateCloudName, String cloudLinkName);
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String privateCloudName, String cloudLinkName, Context context);
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/DatastoresClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/DatastoresClient.java
new file mode 100644
index 000000000000..8ec6b6554c76
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/DatastoresClient.java
@@ -0,0 +1,230 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.avs.fluent.models.DatastoreInner;
+
+/** An instance of this class provides access to all the operations defined in DatastoresClient. */
+public interface DatastoresClient {
+ /**
+ * List datastores in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of datastores.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * List datastores in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of datastores.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String privateCloudName, String clusterName, Context context);
+
+ /**
+ * Get a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud 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 a datastore in a private cloud cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DatastoreInner get(String resourceGroupName, String privateCloudName, String clusterName, String datastoreName);
+
+ /**
+ * Get a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a datastore in a private cloud cluster.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String clusterName, String datastoreName, Context context);
+
+ /**
+ * Create or update a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud cluster.
+ * @param datastore A datastore in a private cloud 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 a datastore resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DatastoreInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String clusterName,
+ String datastoreName,
+ DatastoreInner datastore);
+
+ /**
+ * Create or update a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud cluster.
+ * @param datastore A datastore in a private cloud cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a datastore resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DatastoreInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String clusterName,
+ String datastoreName,
+ DatastoreInner datastore,
+ Context context);
+
+ /**
+ * Create or update a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud cluster.
+ * @param datastore A datastore in a private cloud 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 a datastore resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DatastoreInner createOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String clusterName,
+ String datastoreName,
+ DatastoreInner datastore);
+
+ /**
+ * Create or update a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud cluster.
+ * @param datastore A datastore in a private cloud cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a datastore resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DatastoreInner createOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String clusterName,
+ String datastoreName,
+ DatastoreInner datastore,
+ Context context);
+
+ /**
+ * Delete a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String clusterName, String datastoreName);
+
+ /**
+ * Delete a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String clusterName, String datastoreName, Context context);
+
+ /**
+ * Delete a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud 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 privateCloudName, String clusterName, String datastoreName);
+
+ /**
+ * Delete a datastore in a private cloud cluster.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud.
+ * @param datastoreName Name of the datastore in the private cloud cluster.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(
+ String resourceGroupName, String privateCloudName, String clusterName, String datastoreName, Context context);
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/GlobalReachConnectionsClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/GlobalReachConnectionsClient.java
new file mode 100644
index 000000000000..8d356f7f0219
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/GlobalReachConnectionsClient.java
@@ -0,0 +1,212 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.avs.fluent.models.GlobalReachConnectionInner;
+
+/** An instance of this class provides access to all the operations defined in GlobalReachConnectionsClient. */
+public interface GlobalReachConnectionsClient {
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of global reach connections.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of global reach connections.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a global reach connection by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a global reach connection by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GlobalReachConnectionInner get(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Get a global reach connection by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a global reach connection by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String globalReachConnectionName, Context context);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @param globalReachConnection A global reach connection in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a global reach connection resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, GlobalReachConnectionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String globalReachConnectionName,
+ GlobalReachConnectionInner globalReachConnection);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @param globalReachConnection A global reach connection in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a global reach connection resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, GlobalReachConnectionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String globalReachConnectionName,
+ GlobalReachConnectionInner globalReachConnection,
+ Context context);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @param globalReachConnection A global reach connection in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a global reach connection resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GlobalReachConnectionInner createOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String globalReachConnectionName,
+ GlobalReachConnectionInner globalReachConnection);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @param globalReachConnection A global reach connection in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a global reach connection resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GlobalReachConnectionInner createOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String globalReachConnectionName,
+ GlobalReachConnectionInner globalReachConnection,
+ Context context);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String globalReachConnectionName, Context context);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String privateCloudName, String globalReachConnectionName, Context context);
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/PrivateCloudsClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/PrivateCloudsClient.java
index b6b663941fde..fda61e8fb858 100644
--- a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/PrivateCloudsClient.java
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/PrivateCloudsClient.java
@@ -266,6 +266,112 @@ PrivateCloudInner update(
@ServiceMethod(returns = ReturnType.SINGLE)
void delete(String resourceGroupName, String privateCloudName, Context context);
+ /**
+ * Rotate the vCenter password.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRotateVcenterPassword(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Rotate the vCenter password.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRotateVcenterPassword(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Rotate the vCenter password.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void rotateVcenterPassword(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Rotate the vCenter password.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void rotateVcenterPassword(String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Rotate the NSX-T Manager password.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRotateNsxtPassword(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Rotate the NSX-T Manager password.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRotateNsxtPassword(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Rotate the NSX-T Manager password.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void rotateNsxtPassword(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Rotate the NSX-T Manager password.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void rotateNsxtPassword(String resourceGroupName, String privateCloudName, Context context);
+
/**
* List the admin credentials for the private cloud.
*
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptCmdletsClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptCmdletsClient.java
new file mode 100644
index 000000000000..7ebee0d5b628
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptCmdletsClient.java
@@ -0,0 +1,84 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.avs.fluent.models.ScriptCmdletInner;
+
+/** An instance of this class provides access to all the operations defined in ScriptCmdletsClient. */
+public interface ScriptCmdletsClient {
+ /**
+ * Return script cmdlet resources available for a private cloud to create a script execution resource on their
+ * Private Cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptPackageName Name of the script package in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return pageable list of scripts/cmdlets.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName, String scriptPackageName);
+
+ /**
+ * Return script cmdlet resources available for a private cloud to create a script execution resource on their
+ * Private Cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptPackageName Name of the script package in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return pageable list of scripts/cmdlets.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String privateCloudName, String scriptPackageName, Context context);
+
+ /**
+ * Return information about a script cmdlet resource in a specific package on a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptPackageName Name of the script package in the private cloud.
+ * @param scriptCmdletName Name of the script cmdlet resource in the script package in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cmdlet available for script execution.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScriptCmdletInner get(
+ String resourceGroupName, String privateCloudName, String scriptPackageName, String scriptCmdletName);
+
+ /**
+ * Return information about a script cmdlet resource in a specific package on a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptPackageName Name of the script package in the private cloud.
+ * @param scriptCmdletName Name of the script cmdlet resource in the script package in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cmdlet available for script execution.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String privateCloudName,
+ String scriptPackageName,
+ String scriptCmdletName,
+ Context context);
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptExecutionsClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptExecutionsClient.java
new file mode 100644
index 000000000000..16ec4c77ba72
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptExecutionsClient.java
@@ -0,0 +1,251 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.avs.fluent.models.ScriptExecutionInner;
+import com.azure.resourcemanager.avs.models.ScriptOutputStreamType;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in ScriptExecutionsClient. */
+public interface ScriptExecutionsClient {
+ /**
+ * Get an script execution resource by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an script execution resource by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Get an script execution resource by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an script execution resource by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get an script execution resource by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution 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 an script execution resource by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScriptExecutionInner get(String resourceGroupName, String privateCloudName, String scriptExecutionName);
+
+ /**
+ * Get an script execution resource by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution 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 an script execution resource by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String scriptExecutionName, Context context);
+
+ /**
+ * Create or update a script execution resource in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution resource.
+ * @param scriptExecution A script running in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an instance of a script executed by a user - custom or AVS.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ScriptExecutionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String scriptExecutionName,
+ ScriptExecutionInner scriptExecution);
+
+ /**
+ * Create or update a script execution resource in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution resource.
+ * @param scriptExecution A script running in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an instance of a script executed by a user - custom or AVS.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ScriptExecutionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String scriptExecutionName,
+ ScriptExecutionInner scriptExecution,
+ Context context);
+
+ /**
+ * Create or update a script execution resource in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution resource.
+ * @param scriptExecution A script running in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an instance of a script executed by a user - custom or AVS.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScriptExecutionInner createOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String scriptExecutionName,
+ ScriptExecutionInner scriptExecution);
+
+ /**
+ * Create or update a script execution resource in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution resource.
+ * @param scriptExecution A script running in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an instance of a script executed by a user - custom or AVS.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScriptExecutionInner createOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String scriptExecutionName,
+ ScriptExecutionInner scriptExecution,
+ Context context);
+
+ /**
+ * Cancel a ScriptExecution in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String scriptExecutionName);
+
+ /**
+ * Cancel a ScriptExecution in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String scriptExecutionName, Context context);
+
+ /**
+ * Cancel a ScriptExecution in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution 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 privateCloudName, String scriptExecutionName);
+
+ /**
+ * Cancel a ScriptExecution in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String privateCloudName, String scriptExecutionName, Context context);
+
+ /**
+ * Return the logs for a script execution resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution 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 an instance of a script executed by a user - custom or AVS.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScriptExecutionInner getExecutionLogs(
+ String resourceGroupName, String privateCloudName, String scriptExecutionName);
+
+ /**
+ * Return the logs for a script execution resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptExecutionName Name of the user-invoked script execution resource.
+ * @param scriptOutputStreamType Name of the desired output stream to return. If not provided, will return all. An
+ * empty array will return nothing.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an instance of a script executed by a user - custom or AVS.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getExecutionLogsWithResponse(
+ String resourceGroupName,
+ String privateCloudName,
+ String scriptExecutionName,
+ List scriptOutputStreamType,
+ Context context);
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptPackagesClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptPackagesClient.java
new file mode 100644
index 000000000000..3634ad3b3ffd
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/ScriptPackagesClient.java
@@ -0,0 +1,72 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.avs.fluent.models.ScriptPackageInner;
+
+/** An instance of this class provides access to all the operations defined in ScriptPackagesClient. */
+public interface ScriptPackagesClient {
+ /**
+ * Return script packages available for a private cloud to run on their Private Cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of the available script packages.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Return script packages available for a private cloud to run on their Private Cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of the available script packages.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Return script package available to run on an Private Cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptPackageName Name of the script package in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return script Package resources available for execution.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScriptPackageInner get(String resourceGroupName, String privateCloudName, String scriptPackageName);
+
+ /**
+ * Return script package available to run on an Private Cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param scriptPackageName Name of the script package in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return script Package resources available for execution.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String scriptPackageName, Context context);
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/WorkloadNetworksClient.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/WorkloadNetworksClient.java
new file mode 100644
index 000000000000..e3a7e6f7f863
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/WorkloadNetworksClient.java
@@ -0,0 +1,1991 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.avs.fluent.models.WorkloadNetworkDhcpInner;
+import com.azure.resourcemanager.avs.fluent.models.WorkloadNetworkDnsServiceInner;
+import com.azure.resourcemanager.avs.fluent.models.WorkloadNetworkDnsZoneInner;
+import com.azure.resourcemanager.avs.fluent.models.WorkloadNetworkGatewayInner;
+import com.azure.resourcemanager.avs.fluent.models.WorkloadNetworkPortMirroringInner;
+import com.azure.resourcemanager.avs.fluent.models.WorkloadNetworkPublicIpInner;
+import com.azure.resourcemanager.avs.fluent.models.WorkloadNetworkSegmentInner;
+import com.azure.resourcemanager.avs.fluent.models.WorkloadNetworkVMGroupInner;
+import com.azure.resourcemanager.avs.fluent.models.WorkloadNetworkVirtualMachineInner;
+
+/** An instance of this class provides access to all the operations defined in WorkloadNetworksClient. */
+public interface WorkloadNetworksClient {
+ /**
+ * List of segments in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Segments.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listSegments(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List of segments in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Segments.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listSegments(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display 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 a segment by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkSegmentInner getSegment(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Get a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display 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 a segment by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getSegmentWithResponse(
+ String resourceGroupName, String privateCloudName, String segmentId, Context context);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name.
+ * @param workloadNetworkSegment NSX Segment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Segment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkSegmentInner> beginCreateSegments(
+ String resourceGroupName,
+ String privateCloudName,
+ String segmentId,
+ WorkloadNetworkSegmentInner workloadNetworkSegment);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name.
+ * @param workloadNetworkSegment NSX Segment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Segment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkSegmentInner> beginCreateSegments(
+ String resourceGroupName,
+ String privateCloudName,
+ String segmentId,
+ WorkloadNetworkSegmentInner workloadNetworkSegment,
+ Context context);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name.
+ * @param workloadNetworkSegment NSX Segment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Segment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkSegmentInner createSegments(
+ String resourceGroupName,
+ String privateCloudName,
+ String segmentId,
+ WorkloadNetworkSegmentInner workloadNetworkSegment);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name.
+ * @param workloadNetworkSegment NSX Segment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Segment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkSegmentInner createSegments(
+ String resourceGroupName,
+ String privateCloudName,
+ String segmentId,
+ WorkloadNetworkSegmentInner workloadNetworkSegment,
+ Context context);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name.
+ * @param workloadNetworkSegment NSX Segment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Segment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkSegmentInner> beginUpdateSegments(
+ String resourceGroupName,
+ String privateCloudName,
+ String segmentId,
+ WorkloadNetworkSegmentInner workloadNetworkSegment);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name.
+ * @param workloadNetworkSegment NSX Segment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Segment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkSegmentInner> beginUpdateSegments(
+ String resourceGroupName,
+ String privateCloudName,
+ String segmentId,
+ WorkloadNetworkSegmentInner workloadNetworkSegment,
+ Context context);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name.
+ * @param workloadNetworkSegment NSX Segment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Segment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkSegmentInner updateSegments(
+ String resourceGroupName,
+ String privateCloudName,
+ String segmentId,
+ WorkloadNetworkSegmentInner workloadNetworkSegment);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name.
+ * @param workloadNetworkSegment NSX Segment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Segment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkSegmentInner updateSegments(
+ String resourceGroupName,
+ String privateCloudName,
+ String segmentId,
+ WorkloadNetworkSegmentInner workloadNetworkSegment,
+ Context context);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display 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 the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteSegment(
+ String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display 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 the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteSegment(
+ String resourceGroupName, String privateCloudName, String segmentId, Context context);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteSegment(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteSegment(String resourceGroupName, String privateCloudName, String segmentId, Context context);
+
+ /**
+ * List dhcp in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX dhcp entities.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listDhcp(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List dhcp in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX dhcp entities.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listDhcp(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return dhcp by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDhcpInner getDhcp(String resourceGroupName, String dhcpId, String privateCloudName);
+
+ /**
+ * Get dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return dhcp by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getDhcpWithResponse(
+ String resourceGroupName, String dhcpId, String privateCloudName, Context context);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param workloadNetworkDhcp NSX DHCP.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DHCP.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDhcpInner> beginCreateDhcp(
+ String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcpInner workloadNetworkDhcp);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param workloadNetworkDhcp NSX DHCP.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DHCP.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDhcpInner> beginCreateDhcp(
+ String resourceGroupName,
+ String privateCloudName,
+ String dhcpId,
+ WorkloadNetworkDhcpInner workloadNetworkDhcp,
+ Context context);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param workloadNetworkDhcp NSX DHCP.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DHCP.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDhcpInner createDhcp(
+ String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcpInner workloadNetworkDhcp);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param workloadNetworkDhcp NSX DHCP.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DHCP.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDhcpInner createDhcp(
+ String resourceGroupName,
+ String privateCloudName,
+ String dhcpId,
+ WorkloadNetworkDhcpInner workloadNetworkDhcp,
+ Context context);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param workloadNetworkDhcp NSX DHCP.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DHCP.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDhcpInner> beginUpdateDhcp(
+ String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcpInner workloadNetworkDhcp);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param workloadNetworkDhcp NSX DHCP.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DHCP.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDhcpInner> beginUpdateDhcp(
+ String resourceGroupName,
+ String privateCloudName,
+ String dhcpId,
+ WorkloadNetworkDhcpInner workloadNetworkDhcp,
+ Context context);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param workloadNetworkDhcp NSX DHCP.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DHCP.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDhcpInner updateDhcp(
+ String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcpInner workloadNetworkDhcp);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name.
+ * @param workloadNetworkDhcp NSX DHCP.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DHCP.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDhcpInner updateDhcp(
+ String resourceGroupName,
+ String privateCloudName,
+ String dhcpId,
+ WorkloadNetworkDhcpInner workloadNetworkDhcp,
+ Context context);
+
+ /**
+ * Delete dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display 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 the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteDhcp(
+ String resourceGroupName, String privateCloudName, String dhcpId);
+
+ /**
+ * Delete dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display 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 the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteDhcp(
+ String resourceGroupName, String privateCloudName, String dhcpId, Context context);
+
+ /**
+ * Delete dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteDhcp(String resourceGroupName, String privateCloudName, String dhcpId);
+
+ /**
+ * Delete dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteDhcp(String resourceGroupName, String privateCloudName, String dhcpId, Context context);
+
+ /**
+ * List of gateways in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Gateways.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listGateways(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List of gateways in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Gateways.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listGateways(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a gateway by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param gatewayId NSX Gateway identifier. Generally the same as the Gateway's display 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 a gateway by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkGatewayInner getGateway(String resourceGroupName, String privateCloudName, String gatewayId);
+
+ /**
+ * Get a gateway by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param gatewayId NSX Gateway identifier. Generally the same as the Gateway's display 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 a gateway by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getGatewayWithResponse(
+ String resourceGroupName, String privateCloudName, String gatewayId, Context context);
+
+ /**
+ * List of port mirroring profiles in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listPortMirroring(
+ String resourceGroupName, String privateCloudName);
+
+ /**
+ * List of port mirroring profiles in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listPortMirroring(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display 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 a port mirroring profile by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkPortMirroringInner getPortMirroring(
+ String resourceGroupName, String privateCloudName, String portMirroringId);
+
+ /**
+ * Get a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display 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 a port mirroring profile by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getPortMirroringWithResponse(
+ String resourceGroupName, String privateCloudName, String portMirroringId, Context context);
+
+ /**
+ * Create a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param workloadNetworkPortMirroring NSX port mirroring.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkPortMirroringInner>
+ beginCreatePortMirroring(
+ String resourceGroupName,
+ String privateCloudName,
+ String portMirroringId,
+ WorkloadNetworkPortMirroringInner workloadNetworkPortMirroring);
+
+ /**
+ * Create a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param workloadNetworkPortMirroring NSX port mirroring.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkPortMirroringInner>
+ beginCreatePortMirroring(
+ String resourceGroupName,
+ String privateCloudName,
+ String portMirroringId,
+ WorkloadNetworkPortMirroringInner workloadNetworkPortMirroring,
+ Context context);
+
+ /**
+ * Create a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param workloadNetworkPortMirroring NSX port mirroring.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkPortMirroringInner createPortMirroring(
+ String resourceGroupName,
+ String privateCloudName,
+ String portMirroringId,
+ WorkloadNetworkPortMirroringInner workloadNetworkPortMirroring);
+
+ /**
+ * Create a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param workloadNetworkPortMirroring NSX port mirroring.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkPortMirroringInner createPortMirroring(
+ String resourceGroupName,
+ String privateCloudName,
+ String portMirroringId,
+ WorkloadNetworkPortMirroringInner workloadNetworkPortMirroring,
+ Context context);
+
+ /**
+ * Create or update a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param workloadNetworkPortMirroring NSX port mirroring.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkPortMirroringInner>
+ beginUpdatePortMirroring(
+ String resourceGroupName,
+ String privateCloudName,
+ String portMirroringId,
+ WorkloadNetworkPortMirroringInner workloadNetworkPortMirroring);
+
+ /**
+ * Create or update a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param workloadNetworkPortMirroring NSX port mirroring.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkPortMirroringInner>
+ beginUpdatePortMirroring(
+ String resourceGroupName,
+ String privateCloudName,
+ String portMirroringId,
+ WorkloadNetworkPortMirroringInner workloadNetworkPortMirroring,
+ Context context);
+
+ /**
+ * Create or update a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param workloadNetworkPortMirroring NSX port mirroring.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkPortMirroringInner updatePortMirroring(
+ String resourceGroupName,
+ String privateCloudName,
+ String portMirroringId,
+ WorkloadNetworkPortMirroringInner workloadNetworkPortMirroring);
+
+ /**
+ * Create or update a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param workloadNetworkPortMirroring NSX port mirroring.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Port Mirroring.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkPortMirroringInner updatePortMirroring(
+ String resourceGroupName,
+ String privateCloudName,
+ String portMirroringId,
+ WorkloadNetworkPortMirroringInner workloadNetworkPortMirroring,
+ Context context);
+
+ /**
+ * Delete a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeletePortMirroring(
+ String resourceGroupName, String portMirroringId, String privateCloudName);
+
+ /**
+ * Delete a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeletePortMirroring(
+ String resourceGroupName, String portMirroringId, String privateCloudName, Context context);
+
+ /**
+ * Delete a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deletePortMirroring(String resourceGroupName, String portMirroringId, String privateCloudName);
+
+ /**
+ * Delete a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deletePortMirroring(
+ String resourceGroupName, String portMirroringId, String privateCloudName, Context context);
+
+ /**
+ * List of vm groups in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX VM Groups.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listVMGroups(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List of vm groups in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX VM Groups.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listVMGroups(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display 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 a vm group by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkVMGroupInner getVMGroup(String resourceGroupName, String privateCloudName, String vmGroupId);
+
+ /**
+ * Get a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display 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 a vm group by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getVMGroupWithResponse(
+ String resourceGroupName, String privateCloudName, String vmGroupId, Context context);
+
+ /**
+ * Create a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param workloadNetworkVMGroup NSX VM Group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX VM Group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkVMGroupInner> beginCreateVMGroup(
+ String resourceGroupName,
+ String privateCloudName,
+ String vmGroupId,
+ WorkloadNetworkVMGroupInner workloadNetworkVMGroup);
+
+ /**
+ * Create a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param workloadNetworkVMGroup NSX VM Group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX VM Group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkVMGroupInner> beginCreateVMGroup(
+ String resourceGroupName,
+ String privateCloudName,
+ String vmGroupId,
+ WorkloadNetworkVMGroupInner workloadNetworkVMGroup,
+ Context context);
+
+ /**
+ * Create a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param workloadNetworkVMGroup NSX VM Group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX VM Group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkVMGroupInner createVMGroup(
+ String resourceGroupName,
+ String privateCloudName,
+ String vmGroupId,
+ WorkloadNetworkVMGroupInner workloadNetworkVMGroup);
+
+ /**
+ * Create a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param workloadNetworkVMGroup NSX VM Group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX VM Group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkVMGroupInner createVMGroup(
+ String resourceGroupName,
+ String privateCloudName,
+ String vmGroupId,
+ WorkloadNetworkVMGroupInner workloadNetworkVMGroup,
+ Context context);
+
+ /**
+ * Create or update a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param workloadNetworkVMGroup NSX VM Group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX VM Group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkVMGroupInner> beginUpdateVMGroup(
+ String resourceGroupName,
+ String privateCloudName,
+ String vmGroupId,
+ WorkloadNetworkVMGroupInner workloadNetworkVMGroup);
+
+ /**
+ * Create or update a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param workloadNetworkVMGroup NSX VM Group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX VM Group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkVMGroupInner> beginUpdateVMGroup(
+ String resourceGroupName,
+ String privateCloudName,
+ String vmGroupId,
+ WorkloadNetworkVMGroupInner workloadNetworkVMGroup,
+ Context context);
+
+ /**
+ * Create or update a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param workloadNetworkVMGroup NSX VM Group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX VM Group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkVMGroupInner updateVMGroup(
+ String resourceGroupName,
+ String privateCloudName,
+ String vmGroupId,
+ WorkloadNetworkVMGroupInner workloadNetworkVMGroup);
+
+ /**
+ * Create or update a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param workloadNetworkVMGroup NSX VM Group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX VM Group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkVMGroupInner updateVMGroup(
+ String resourceGroupName,
+ String privateCloudName,
+ String vmGroupId,
+ WorkloadNetworkVMGroupInner workloadNetworkVMGroup,
+ Context context);
+
+ /**
+ * Delete a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteVMGroup(
+ String resourceGroupName, String vmGroupId, String privateCloudName);
+
+ /**
+ * Delete a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteVMGroup(
+ String resourceGroupName, String vmGroupId, String privateCloudName, Context context);
+
+ /**
+ * Delete a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteVMGroup(String resourceGroupName, String vmGroupId, String privateCloudName);
+
+ /**
+ * Delete a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteVMGroup(String resourceGroupName, String vmGroupId, String privateCloudName, Context context);
+
+ /**
+ * List of virtual machines in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listVirtualMachines(
+ String resourceGroupName, String privateCloudName);
+
+ /**
+ * List of virtual machines in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listVirtualMachines(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a virtual machine by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param virtualMachineId Virtual Machine identifier.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a virtual machine by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkVirtualMachineInner getVirtualMachine(
+ String resourceGroupName, String privateCloudName, String virtualMachineId);
+
+ /**
+ * Get a virtual machine by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param virtualMachineId Virtual Machine identifier.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a virtual machine by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getVirtualMachineWithResponse(
+ String resourceGroupName, String privateCloudName, String virtualMachineId, Context context);
+
+ /**
+ * List of DNS services in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX DNS Services.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listDnsServices(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List of DNS services in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX DNS Services.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listDnsServices(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display 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 a DNS service by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsServiceInner getDnsService(
+ String resourceGroupName, String privateCloudName, String dnsServiceId);
+
+ /**
+ * Get a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display 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 a DNS service by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getDnsServiceWithResponse(
+ String resourceGroupName, String privateCloudName, String dnsServiceId, Context context);
+
+ /**
+ * Create a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param workloadNetworkDnsService NSX DNS Service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDnsServiceInner> beginCreateDnsService(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsServiceId,
+ WorkloadNetworkDnsServiceInner workloadNetworkDnsService);
+
+ /**
+ * Create a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param workloadNetworkDnsService NSX DNS Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDnsServiceInner> beginCreateDnsService(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsServiceId,
+ WorkloadNetworkDnsServiceInner workloadNetworkDnsService,
+ Context context);
+
+ /**
+ * Create a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param workloadNetworkDnsService NSX DNS Service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsServiceInner createDnsService(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsServiceId,
+ WorkloadNetworkDnsServiceInner workloadNetworkDnsService);
+
+ /**
+ * Create a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param workloadNetworkDnsService NSX DNS Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsServiceInner createDnsService(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsServiceId,
+ WorkloadNetworkDnsServiceInner workloadNetworkDnsService,
+ Context context);
+
+ /**
+ * Create or update a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param workloadNetworkDnsService NSX DNS Service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDnsServiceInner> beginUpdateDnsService(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsServiceId,
+ WorkloadNetworkDnsServiceInner workloadNetworkDnsService);
+
+ /**
+ * Create or update a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param workloadNetworkDnsService NSX DNS Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDnsServiceInner> beginUpdateDnsService(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsServiceId,
+ WorkloadNetworkDnsServiceInner workloadNetworkDnsService,
+ Context context);
+
+ /**
+ * Create or update a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param workloadNetworkDnsService NSX DNS Service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsServiceInner updateDnsService(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsServiceId,
+ WorkloadNetworkDnsServiceInner workloadNetworkDnsService);
+
+ /**
+ * Create or update a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param workloadNetworkDnsService NSX DNS Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsServiceInner updateDnsService(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsServiceId,
+ WorkloadNetworkDnsServiceInner workloadNetworkDnsService,
+ Context context);
+
+ /**
+ * Delete a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteDnsService(
+ String resourceGroupName, String dnsServiceId, String privateCloudName);
+
+ /**
+ * Delete a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteDnsService(
+ String resourceGroupName, String dnsServiceId, String privateCloudName, Context context);
+
+ /**
+ * Delete a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteDnsService(String resourceGroupName, String dnsServiceId, String privateCloudName);
+
+ /**
+ * Delete a DNS service by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dnsServiceId NSX DNS Service identifier. Generally the same as the DNS Service's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteDnsService(String resourceGroupName, String dnsServiceId, String privateCloudName, Context context);
+
+ /**
+ * List of DNS zones in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX DNS Zones.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listDnsZones(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List of DNS zones in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX DNS Zones.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listDnsZones(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display 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 a DNS zone by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsZoneInner getDnsZone(String resourceGroupName, String privateCloudName, String dnsZoneId);
+
+ /**
+ * Get a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display 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 a DNS zone by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getDnsZoneWithResponse(
+ String resourceGroupName, String privateCloudName, String dnsZoneId, Context context);
+
+ /**
+ * Create a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param workloadNetworkDnsZone NSX DNS Zone.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Zone.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDnsZoneInner> beginCreateDnsZone(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsZoneId,
+ WorkloadNetworkDnsZoneInner workloadNetworkDnsZone);
+
+ /**
+ * Create a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param workloadNetworkDnsZone NSX DNS Zone.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Zone.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDnsZoneInner> beginCreateDnsZone(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsZoneId,
+ WorkloadNetworkDnsZoneInner workloadNetworkDnsZone,
+ Context context);
+
+ /**
+ * Create a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param workloadNetworkDnsZone NSX DNS Zone.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Zone.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsZoneInner createDnsZone(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsZoneId,
+ WorkloadNetworkDnsZoneInner workloadNetworkDnsZone);
+
+ /**
+ * Create a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param workloadNetworkDnsZone NSX DNS Zone.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Zone.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsZoneInner createDnsZone(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsZoneId,
+ WorkloadNetworkDnsZoneInner workloadNetworkDnsZone,
+ Context context);
+
+ /**
+ * Create or update a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param workloadNetworkDnsZone NSX DNS Zone.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Zone.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDnsZoneInner> beginUpdateDnsZone(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsZoneId,
+ WorkloadNetworkDnsZoneInner workloadNetworkDnsZone);
+
+ /**
+ * Create or update a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param workloadNetworkDnsZone NSX DNS Zone.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Zone.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkDnsZoneInner> beginUpdateDnsZone(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsZoneId,
+ WorkloadNetworkDnsZoneInner workloadNetworkDnsZone,
+ Context context);
+
+ /**
+ * Create or update a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param workloadNetworkDnsZone NSX DNS Zone.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Zone.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsZoneInner updateDnsZone(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsZoneId,
+ WorkloadNetworkDnsZoneInner workloadNetworkDnsZone);
+
+ /**
+ * Create or update a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param workloadNetworkDnsZone NSX DNS Zone.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX DNS Zone.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkDnsZoneInner updateDnsZone(
+ String resourceGroupName,
+ String privateCloudName,
+ String dnsZoneId,
+ WorkloadNetworkDnsZoneInner workloadNetworkDnsZone,
+ Context context);
+
+ /**
+ * Delete a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteDnsZone(
+ String resourceGroupName, String dnsZoneId, String privateCloudName);
+
+ /**
+ * Delete a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteDnsZone(
+ String resourceGroupName, String dnsZoneId, String privateCloudName, Context context);
+
+ /**
+ * Delete a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteDnsZone(String resourceGroupName, String dnsZoneId, String privateCloudName);
+
+ /**
+ * Delete a DNS zone by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dnsZoneId NSX DNS Zone identifier. Generally the same as the DNS Zone's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deleteDnsZone(String resourceGroupName, String dnsZoneId, String privateCloudName, Context context);
+
+ /**
+ * List of Public IP Blocks in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Public IP Blocks.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listPublicIPs(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List of Public IP Blocks in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of NSX Public IP Blocks.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listPublicIPs(
+ String resourceGroupName, String privateCloudName, Context context);
+
+ /**
+ * Get a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display 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 a Public IP Block by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkPublicIpInner getPublicIp(String resourceGroupName, String privateCloudName, String publicIpId);
+
+ /**
+ * Get a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display 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 a Public IP Block by id in a private cloud workload network.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getPublicIpWithResponse(
+ String resourceGroupName, String privateCloudName, String publicIpId, Context context);
+
+ /**
+ * Create a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display name.
+ * @param workloadNetworkPublicIp NSX Public IP Block.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Public IP Block.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkPublicIpInner> beginCreatePublicIp(
+ String resourceGroupName,
+ String privateCloudName,
+ String publicIpId,
+ WorkloadNetworkPublicIpInner workloadNetworkPublicIp);
+
+ /**
+ * Create a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display name.
+ * @param workloadNetworkPublicIp NSX Public IP Block.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Public IP Block.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, WorkloadNetworkPublicIpInner> beginCreatePublicIp(
+ String resourceGroupName,
+ String privateCloudName,
+ String publicIpId,
+ WorkloadNetworkPublicIpInner workloadNetworkPublicIp,
+ Context context);
+
+ /**
+ * Create a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display name.
+ * @param workloadNetworkPublicIp NSX Public IP Block.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Public IP Block.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkPublicIpInner createPublicIp(
+ String resourceGroupName,
+ String privateCloudName,
+ String publicIpId,
+ WorkloadNetworkPublicIpInner workloadNetworkPublicIp);
+
+ /**
+ * Create a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display name.
+ * @param workloadNetworkPublicIp NSX Public IP Block.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return nSX Public IP Block.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkloadNetworkPublicIpInner createPublicIp(
+ String resourceGroupName,
+ String privateCloudName,
+ String publicIpId,
+ WorkloadNetworkPublicIpInner workloadNetworkPublicIp,
+ Context context);
+
+ /**
+ * Delete a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeletePublicIp(
+ String resourceGroupName, String publicIpId, String privateCloudName);
+
+ /**
+ * Delete a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeletePublicIp(
+ String resourceGroupName, String publicIpId, String privateCloudName, Context context);
+
+ /**
+ * Delete a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deletePublicIp(String resourceGroupName, String publicIpId, String privateCloudName);
+
+ /**
+ * Delete a Public IP Block by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param publicIpId NSX Public IP Block identifier. Generally the same as the Public IP Block's display name.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void deletePublicIp(String resourceGroupName, String publicIpId, String privateCloudName, Context context);
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/AddonInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/AddonInner.java
new file mode 100644
index 000000000000..a52acdcab5d1
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/AddonInner.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.AddonProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** An addon resource. */
+@Fluent
+public final class AddonInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AddonInner.class);
+
+ /*
+ * The properties of an addon resource
+ */
+ @JsonProperty(value = "properties")
+ private AddonProperties properties;
+
+ /**
+ * Get the properties property: The properties of an addon resource.
+ *
+ * @return the properties value.
+ */
+ public AddonProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties of an addon resource.
+ *
+ * @param properties the properties value to set.
+ * @return the AddonInner object itself.
+ */
+ public AddonInner withProperties(AddonProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/CloudLinkInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/CloudLinkInner.java
new file mode 100644
index 000000000000..838f75001d9d
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/CloudLinkInner.java
@@ -0,0 +1,69 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.CloudLinkStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A cloud link resource. */
+@JsonFlatten
+@Fluent
+public class CloudLinkInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CloudLinkInner.class);
+
+ /*
+ * The state of the cloud link.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private CloudLinkStatus status;
+
+ /*
+ * Identifier of the other private cloud participating in the link.
+ */
+ @JsonProperty(value = "properties.linkedCloud")
+ private String linkedCloud;
+
+ /**
+ * Get the status property: The state of the cloud link.
+ *
+ * @return the status value.
+ */
+ public CloudLinkStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the linkedCloud property: Identifier of the other private cloud participating in the link.
+ *
+ * @return the linkedCloud value.
+ */
+ public String linkedCloud() {
+ return this.linkedCloud;
+ }
+
+ /**
+ * Set the linkedCloud property: Identifier of the other private cloud participating in the link.
+ *
+ * @param linkedCloud the linkedCloud value to set.
+ * @return the CloudLinkInner object itself.
+ */
+ public CloudLinkInner withLinkedCloud(String linkedCloud) {
+ this.linkedCloud = linkedCloud;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/DatastoreInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/DatastoreInner.java
new file mode 100644
index 000000000000..7bb6368492e1
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/DatastoreInner.java
@@ -0,0 +1,103 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.DatastoreProvisioningState;
+import com.azure.resourcemanager.avs.models.DiskPoolVolume;
+import com.azure.resourcemanager.avs.models.NetAppVolume;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A datastore resource. */
+@JsonFlatten
+@Fluent
+public class DatastoreInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DatastoreInner.class);
+
+ /*
+ * The state of the datastore provisioning
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private DatastoreProvisioningState provisioningState;
+
+ /*
+ * An Azure NetApp Files volume
+ */
+ @JsonProperty(value = "properties.netAppVolume")
+ private NetAppVolume netAppVolume;
+
+ /*
+ * An iSCSI volume
+ */
+ @JsonProperty(value = "properties.diskPoolVolume")
+ private DiskPoolVolume diskPoolVolume;
+
+ /**
+ * Get the provisioningState property: The state of the datastore provisioning.
+ *
+ * @return the provisioningState value.
+ */
+ public DatastoreProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the netAppVolume property: An Azure NetApp Files volume.
+ *
+ * @return the netAppVolume value.
+ */
+ public NetAppVolume netAppVolume() {
+ return this.netAppVolume;
+ }
+
+ /**
+ * Set the netAppVolume property: An Azure NetApp Files volume.
+ *
+ * @param netAppVolume the netAppVolume value to set.
+ * @return the DatastoreInner object itself.
+ */
+ public DatastoreInner withNetAppVolume(NetAppVolume netAppVolume) {
+ this.netAppVolume = netAppVolume;
+ return this;
+ }
+
+ /**
+ * Get the diskPoolVolume property: An iSCSI volume.
+ *
+ * @return the diskPoolVolume value.
+ */
+ public DiskPoolVolume diskPoolVolume() {
+ return this.diskPoolVolume;
+ }
+
+ /**
+ * Set the diskPoolVolume property: An iSCSI volume.
+ *
+ * @param diskPoolVolume the diskPoolVolume value to set.
+ * @return the DatastoreInner object itself.
+ */
+ public DatastoreInner withDiskPoolVolume(DiskPoolVolume diskPoolVolume) {
+ this.diskPoolVolume = diskPoolVolume;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (netAppVolume() != null) {
+ netAppVolume().validate();
+ }
+ if (diskPoolVolume() != null) {
+ diskPoolVolume().validate();
+ }
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/GlobalReachConnectionInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/GlobalReachConnectionInner.java
new file mode 100644
index 000000000000..899656b7c46c
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/GlobalReachConnectionInner.java
@@ -0,0 +1,134 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.GlobalReachConnectionProvisioningState;
+import com.azure.resourcemanager.avs.models.GlobalReachConnectionStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A global reach connection resource. */
+@JsonFlatten
+@Fluent
+public class GlobalReachConnectionInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(GlobalReachConnectionInner.class);
+
+ /*
+ * The state of the ExpressRoute Circuit Authorization provisioning
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private GlobalReachConnectionProvisioningState provisioningState;
+
+ /*
+ * The network used for global reach carved out from the original network
+ * block provided for the private cloud
+ */
+ @JsonProperty(value = "properties.addressPrefix", access = JsonProperty.Access.WRITE_ONLY)
+ private String addressPrefix;
+
+ /*
+ * Authorization key from the peer express route used for the global reach
+ * connection
+ */
+ @JsonProperty(value = "properties.authorizationKey")
+ private String authorizationKey;
+
+ /*
+ * The connection status of the global reach connection
+ */
+ @JsonProperty(value = "properties.circuitConnectionStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private GlobalReachConnectionStatus circuitConnectionStatus;
+
+ /*
+ * Identifier of the ExpressRoute Circuit to peer with in the global reach
+ * connection
+ */
+ @JsonProperty(value = "properties.peerExpressRouteCircuit")
+ private String peerExpressRouteCircuit;
+
+ /**
+ * Get the provisioningState property: The state of the ExpressRoute Circuit Authorization provisioning.
+ *
+ * @return the provisioningState value.
+ */
+ public GlobalReachConnectionProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the addressPrefix property: The network used for global reach carved out from the original network block
+ * provided for the private cloud.
+ *
+ * @return the addressPrefix value.
+ */
+ public String addressPrefix() {
+ return this.addressPrefix;
+ }
+
+ /**
+ * Get the authorizationKey property: Authorization key from the peer express route used for the global reach
+ * connection.
+ *
+ * @return the authorizationKey value.
+ */
+ public String authorizationKey() {
+ return this.authorizationKey;
+ }
+
+ /**
+ * Set the authorizationKey property: Authorization key from the peer express route used for the global reach
+ * connection.
+ *
+ * @param authorizationKey the authorizationKey value to set.
+ * @return the GlobalReachConnectionInner object itself.
+ */
+ public GlobalReachConnectionInner withAuthorizationKey(String authorizationKey) {
+ this.authorizationKey = authorizationKey;
+ return this;
+ }
+
+ /**
+ * Get the circuitConnectionStatus property: The connection status of the global reach connection.
+ *
+ * @return the circuitConnectionStatus value.
+ */
+ public GlobalReachConnectionStatus circuitConnectionStatus() {
+ return this.circuitConnectionStatus;
+ }
+
+ /**
+ * Get the peerExpressRouteCircuit property: Identifier of the ExpressRoute Circuit to peer with in the global reach
+ * connection.
+ *
+ * @return the peerExpressRouteCircuit value.
+ */
+ public String peerExpressRouteCircuit() {
+ return this.peerExpressRouteCircuit;
+ }
+
+ /**
+ * Set the peerExpressRouteCircuit property: Identifier of the ExpressRoute Circuit to peer with in the global reach
+ * connection.
+ *
+ * @param peerExpressRouteCircuit the peerExpressRouteCircuit value to set.
+ * @return the GlobalReachConnectionInner object itself.
+ */
+ public GlobalReachConnectionInner withPeerExpressRouteCircuit(String peerExpressRouteCircuit) {
+ this.peerExpressRouteCircuit = peerExpressRouteCircuit;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/PrivateCloudInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/PrivateCloudInner.java
index 2a86b952bb4f..aaf41537437f 100644
--- a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/PrivateCloudInner.java
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/PrivateCloudInner.java
@@ -74,7 +74,7 @@ public class PrivateCloudInner extends Resource {
* (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and
* 22
*/
- @JsonProperty(value = "properties.networkBlock", required = true)
+ @JsonProperty(value = "properties.networkBlock")
private String networkBlock;
/*
@@ -121,6 +121,12 @@ public class PrivateCloudInner extends Resource {
@JsonProperty(value = "properties.nsxtCertificateThumbprint", access = JsonProperty.Access.WRITE_ONLY)
private String nsxtCertificateThumbprint;
+ /*
+ * Array of cloud link IDs from other clouds that connect to this one
+ */
+ @JsonProperty(value = "properties.externalCloudLinks", access = JsonProperty.Access.WRITE_ONLY)
+ private List externalCloudLinks;
+
/**
* Get the sku property: The private cloud SKU.
*
@@ -348,6 +354,15 @@ public String nsxtCertificateThumbprint() {
return this.nsxtCertificateThumbprint;
}
+ /**
+ * Get the externalCloudLinks property: Array of cloud link IDs from other clouds that connect to this one.
+ *
+ * @return the externalCloudLinks value.
+ */
+ public List externalCloudLinks() {
+ return this.externalCloudLinks;
+ }
+
/** {@inheritDoc} */
@Override
public PrivateCloudInner withLocation(String location) {
@@ -387,10 +402,5 @@ public void validate() {
if (endpoints() != null) {
endpoints().validate();
}
- if (networkBlock() == null) {
- throw logger
- .logExceptionAsError(
- new IllegalArgumentException("Missing required property networkBlock in model PrivateCloudInner"));
- }
}
}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptCmdletInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptCmdletInner.java
new file mode 100644
index 000000000000..94d0a74d30b9
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptCmdletInner.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.ScriptParameter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A cmdlet available for script execution. */
+@JsonFlatten
+@Immutable
+public class ScriptCmdletInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ScriptCmdletInner.class);
+
+ /*
+ * Description of the scripts functionality
+ */
+ @JsonProperty(value = "properties.description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /*
+ * Recommended time limit for execution
+ */
+ @JsonProperty(value = "properties.timeout", access = JsonProperty.Access.WRITE_ONLY)
+ private String timeout;
+
+ /*
+ * Parameters the script will accept
+ */
+ @JsonProperty(value = "properties.parameters", access = JsonProperty.Access.WRITE_ONLY)
+ private List parameters;
+
+ /**
+ * Get the description property: Description of the scripts functionality.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Get the timeout property: Recommended time limit for execution.
+ *
+ * @return the timeout value.
+ */
+ public String timeout() {
+ return this.timeout;
+ }
+
+ /**
+ * Get the parameters property: Parameters the script will accept.
+ *
+ * @return the parameters value.
+ */
+ public List parameters() {
+ return this.parameters;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (parameters() != null) {
+ parameters().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptExecutionInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptExecutionInner.java
new file mode 100644
index 000000000000..29aab961d714
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptExecutionInner.java
@@ -0,0 +1,359 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.ScriptExecutionParameter;
+import com.azure.resourcemanager.avs.models.ScriptExecutionProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** An instance of a script executed by a user - custom or AVS. */
+@JsonFlatten
+@Fluent
+public class ScriptExecutionInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ScriptExecutionInner.class);
+
+ /*
+ * A reference to the script cmdlet resource if user is running a AVS
+ * script
+ */
+ @JsonProperty(value = "properties.scriptCmdletId")
+ private String scriptCmdletId;
+
+ /*
+ * Parameters the script will accept
+ */
+ @JsonProperty(value = "properties.parameters")
+ private List parameters;
+
+ /*
+ * Parameters that will be hidden/not visible to ARM, such as passwords and
+ * credentials
+ */
+ @JsonProperty(value = "properties.hiddenParameters")
+ private List hiddenParameters;
+
+ /*
+ * Error message if the script was able to run, but if the script itself
+ * had errors or powershell threw an exception
+ */
+ @JsonProperty(value = "properties.failureReason")
+ private String failureReason;
+
+ /*
+ * Time limit for execution
+ */
+ @JsonProperty(value = "properties.timeout")
+ private String timeout;
+
+ /*
+ * Time to live for the resource. If not provided, will be available for 60
+ * days
+ */
+ @JsonProperty(value = "properties.retention")
+ private String retention;
+
+ /*
+ * Time the script execution was submitted
+ */
+ @JsonProperty(value = "properties.submittedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime submittedAt;
+
+ /*
+ * Time the script execution was started
+ */
+ @JsonProperty(value = "properties.startedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime startedAt;
+
+ /*
+ * Time the script execution was finished
+ */
+ @JsonProperty(value = "properties.finishedAt", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime finishedAt;
+
+ /*
+ * The state of the script execution resource
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ScriptExecutionProvisioningState provisioningState;
+
+ /*
+ * Standard output stream from the powershell execution
+ */
+ @JsonProperty(value = "properties.output")
+ private List output;
+
+ /*
+ * User-defined dictionary.
+ */
+ @JsonProperty(value = "properties.namedOutputs")
+ private Map namedOutputs;
+
+ /*
+ * Standard information out stream from the powershell execution
+ */
+ @JsonProperty(value = "properties.information", access = JsonProperty.Access.WRITE_ONLY)
+ private List information;
+
+ /*
+ * Standard warning out stream from the powershell execution
+ */
+ @JsonProperty(value = "properties.warnings", access = JsonProperty.Access.WRITE_ONLY)
+ private List warnings;
+
+ /*
+ * Standard error output stream from the powershell execution
+ */
+ @JsonProperty(value = "properties.errors", access = JsonProperty.Access.WRITE_ONLY)
+ private List errors;
+
+ /**
+ * Get the scriptCmdletId property: A reference to the script cmdlet resource if user is running a AVS script.
+ *
+ * @return the scriptCmdletId value.
+ */
+ public String scriptCmdletId() {
+ return this.scriptCmdletId;
+ }
+
+ /**
+ * Set the scriptCmdletId property: A reference to the script cmdlet resource if user is running a AVS script.
+ *
+ * @param scriptCmdletId the scriptCmdletId value to set.
+ * @return the ScriptExecutionInner object itself.
+ */
+ public ScriptExecutionInner withScriptCmdletId(String scriptCmdletId) {
+ this.scriptCmdletId = scriptCmdletId;
+ return this;
+ }
+
+ /**
+ * Get the parameters property: Parameters the script will accept.
+ *
+ * @return the parameters value.
+ */
+ public List parameters() {
+ return this.parameters;
+ }
+
+ /**
+ * Set the parameters property: Parameters the script will accept.
+ *
+ * @param parameters the parameters value to set.
+ * @return the ScriptExecutionInner object itself.
+ */
+ public ScriptExecutionInner withParameters(List parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+ /**
+ * Get the hiddenParameters property: Parameters that will be hidden/not visible to ARM, such as passwords and
+ * credentials.
+ *
+ * @return the hiddenParameters value.
+ */
+ public List hiddenParameters() {
+ return this.hiddenParameters;
+ }
+
+ /**
+ * Set the hiddenParameters property: Parameters that will be hidden/not visible to ARM, such as passwords and
+ * credentials.
+ *
+ * @param hiddenParameters the hiddenParameters value to set.
+ * @return the ScriptExecutionInner object itself.
+ */
+ public ScriptExecutionInner withHiddenParameters(List hiddenParameters) {
+ this.hiddenParameters = hiddenParameters;
+ return this;
+ }
+
+ /**
+ * Get the failureReason property: Error message if the script was able to run, but if the script itself had errors
+ * or powershell threw an exception.
+ *
+ * @return the failureReason value.
+ */
+ public String failureReason() {
+ return this.failureReason;
+ }
+
+ /**
+ * Set the failureReason property: Error message if the script was able to run, but if the script itself had errors
+ * or powershell threw an exception.
+ *
+ * @param failureReason the failureReason value to set.
+ * @return the ScriptExecutionInner object itself.
+ */
+ public ScriptExecutionInner withFailureReason(String failureReason) {
+ this.failureReason = failureReason;
+ return this;
+ }
+
+ /**
+ * Get the timeout property: Time limit for execution.
+ *
+ * @return the timeout value.
+ */
+ public String timeout() {
+ return this.timeout;
+ }
+
+ /**
+ * Set the timeout property: Time limit for execution.
+ *
+ * @param timeout the timeout value to set.
+ * @return the ScriptExecutionInner object itself.
+ */
+ public ScriptExecutionInner withTimeout(String timeout) {
+ this.timeout = timeout;
+ return this;
+ }
+
+ /**
+ * Get the retention property: Time to live for the resource. If not provided, will be available for 60 days.
+ *
+ * @return the retention value.
+ */
+ public String retention() {
+ return this.retention;
+ }
+
+ /**
+ * Set the retention property: Time to live for the resource. If not provided, will be available for 60 days.
+ *
+ * @param retention the retention value to set.
+ * @return the ScriptExecutionInner object itself.
+ */
+ public ScriptExecutionInner withRetention(String retention) {
+ this.retention = retention;
+ return this;
+ }
+
+ /**
+ * Get the submittedAt property: Time the script execution was submitted.
+ *
+ * @return the submittedAt value.
+ */
+ public OffsetDateTime submittedAt() {
+ return this.submittedAt;
+ }
+
+ /**
+ * Get the startedAt property: Time the script execution was started.
+ *
+ * @return the startedAt value.
+ */
+ public OffsetDateTime startedAt() {
+ return this.startedAt;
+ }
+
+ /**
+ * Get the finishedAt property: Time the script execution was finished.
+ *
+ * @return the finishedAt value.
+ */
+ public OffsetDateTime finishedAt() {
+ return this.finishedAt;
+ }
+
+ /**
+ * Get the provisioningState property: The state of the script execution resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ScriptExecutionProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the output property: Standard output stream from the powershell execution.
+ *
+ * @return the output value.
+ */
+ public List output() {
+ return this.output;
+ }
+
+ /**
+ * Set the output property: Standard output stream from the powershell execution.
+ *
+ * @param output the output value to set.
+ * @return the ScriptExecutionInner object itself.
+ */
+ public ScriptExecutionInner withOutput(List output) {
+ this.output = output;
+ return this;
+ }
+
+ /**
+ * Get the namedOutputs property: User-defined dictionary.
+ *
+ * @return the namedOutputs value.
+ */
+ public Map namedOutputs() {
+ return this.namedOutputs;
+ }
+
+ /**
+ * Set the namedOutputs property: User-defined dictionary.
+ *
+ * @param namedOutputs the namedOutputs value to set.
+ * @return the ScriptExecutionInner object itself.
+ */
+ public ScriptExecutionInner withNamedOutputs(Map namedOutputs) {
+ this.namedOutputs = namedOutputs;
+ return this;
+ }
+
+ /**
+ * Get the information property: Standard information out stream from the powershell execution.
+ *
+ * @return the information value.
+ */
+ public List information() {
+ return this.information;
+ }
+
+ /**
+ * Get the warnings property: Standard warning out stream from the powershell execution.
+ *
+ * @return the warnings value.
+ */
+ public List warnings() {
+ return this.warnings;
+ }
+
+ /**
+ * Get the errors property: Standard error output stream from the powershell execution.
+ *
+ * @return the errors value.
+ */
+ public List errors() {
+ return this.errors;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (parameters() != null) {
+ parameters().forEach(e -> e.validate());
+ }
+ if (hiddenParameters() != null) {
+ hiddenParameters().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptPackageInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptPackageInner.java
new file mode 100644
index 000000000000..372da6dd2dec
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/ScriptPackageInner.java
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Script Package resources available for execution. */
+@JsonFlatten
+@Immutable
+public class ScriptPackageInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ScriptPackageInner.class);
+
+ /*
+ * User friendly description of the package
+ */
+ @JsonProperty(value = "properties.description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /*
+ * Module version
+ */
+ @JsonProperty(value = "properties.version", access = JsonProperty.Access.WRITE_ONLY)
+ private String version;
+
+ /**
+ * Get the description property: User friendly description of the package.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Get the version property: Module version.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDhcpInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDhcpInner.java
new file mode 100644
index 000000000000..60e0c24d723c
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDhcpInner.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkDhcpEntity;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** NSX DHCP. */
+@Fluent
+public final class WorkloadNetworkDhcpInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkDhcpInner.class);
+
+ /*
+ * DHCP properties.
+ */
+ @JsonProperty(value = "properties")
+ private WorkloadNetworkDhcpEntity properties;
+
+ /**
+ * Get the properties property: DHCP properties.
+ *
+ * @return the properties value.
+ */
+ public WorkloadNetworkDhcpEntity properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: DHCP properties.
+ *
+ * @param properties the properties value to set.
+ * @return the WorkloadNetworkDhcpInner object itself.
+ */
+ public WorkloadNetworkDhcpInner withProperties(WorkloadNetworkDhcpEntity properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDnsServiceInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDnsServiceInner.java
new file mode 100644
index 000000000000..237872d1bd2f
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDnsServiceInner.java
@@ -0,0 +1,217 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.DnsServiceLogLevelEnum;
+import com.azure.resourcemanager.avs.models.DnsServiceStatusEnum;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkDnsServiceProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** NSX DNS Service. */
+@JsonFlatten
+@Fluent
+public class WorkloadNetworkDnsServiceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkDnsServiceInner.class);
+
+ /*
+ * Display name of the DNS Service.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /*
+ * DNS service IP of the DNS Service.
+ */
+ @JsonProperty(value = "properties.dnsServiceIp")
+ private String dnsServiceIp;
+
+ /*
+ * Default DNS zone of the DNS Service.
+ */
+ @JsonProperty(value = "properties.defaultDnsZone")
+ private String defaultDnsZone;
+
+ /*
+ * FQDN zones of the DNS Service.
+ */
+ @JsonProperty(value = "properties.fqdnZones")
+ private List fqdnZones;
+
+ /*
+ * DNS Service log level.
+ */
+ @JsonProperty(value = "properties.logLevel")
+ private DnsServiceLogLevelEnum logLevel;
+
+ /*
+ * DNS Service status.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private DnsServiceStatusEnum status;
+
+ /*
+ * The provisioning state
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private WorkloadNetworkDnsServiceProvisioningState provisioningState;
+
+ /*
+ * NSX revision number.
+ */
+ @JsonProperty(value = "properties.revision")
+ private Long revision;
+
+ /**
+ * Get the displayName property: Display name of the DNS Service.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: Display name of the DNS Service.
+ *
+ * @param displayName the displayName value to set.
+ * @return the WorkloadNetworkDnsServiceInner object itself.
+ */
+ public WorkloadNetworkDnsServiceInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the dnsServiceIp property: DNS service IP of the DNS Service.
+ *
+ * @return the dnsServiceIp value.
+ */
+ public String dnsServiceIp() {
+ return this.dnsServiceIp;
+ }
+
+ /**
+ * Set the dnsServiceIp property: DNS service IP of the DNS Service.
+ *
+ * @param dnsServiceIp the dnsServiceIp value to set.
+ * @return the WorkloadNetworkDnsServiceInner object itself.
+ */
+ public WorkloadNetworkDnsServiceInner withDnsServiceIp(String dnsServiceIp) {
+ this.dnsServiceIp = dnsServiceIp;
+ return this;
+ }
+
+ /**
+ * Get the defaultDnsZone property: Default DNS zone of the DNS Service.
+ *
+ * @return the defaultDnsZone value.
+ */
+ public String defaultDnsZone() {
+ return this.defaultDnsZone;
+ }
+
+ /**
+ * Set the defaultDnsZone property: Default DNS zone of the DNS Service.
+ *
+ * @param defaultDnsZone the defaultDnsZone value to set.
+ * @return the WorkloadNetworkDnsServiceInner object itself.
+ */
+ public WorkloadNetworkDnsServiceInner withDefaultDnsZone(String defaultDnsZone) {
+ this.defaultDnsZone = defaultDnsZone;
+ return this;
+ }
+
+ /**
+ * Get the fqdnZones property: FQDN zones of the DNS Service.
+ *
+ * @return the fqdnZones value.
+ */
+ public List fqdnZones() {
+ return this.fqdnZones;
+ }
+
+ /**
+ * Set the fqdnZones property: FQDN zones of the DNS Service.
+ *
+ * @param fqdnZones the fqdnZones value to set.
+ * @return the WorkloadNetworkDnsServiceInner object itself.
+ */
+ public WorkloadNetworkDnsServiceInner withFqdnZones(List fqdnZones) {
+ this.fqdnZones = fqdnZones;
+ return this;
+ }
+
+ /**
+ * Get the logLevel property: DNS Service log level.
+ *
+ * @return the logLevel value.
+ */
+ public DnsServiceLogLevelEnum logLevel() {
+ return this.logLevel;
+ }
+
+ /**
+ * Set the logLevel property: DNS Service log level.
+ *
+ * @param logLevel the logLevel value to set.
+ * @return the WorkloadNetworkDnsServiceInner object itself.
+ */
+ public WorkloadNetworkDnsServiceInner withLogLevel(DnsServiceLogLevelEnum logLevel) {
+ this.logLevel = logLevel;
+ return this;
+ }
+
+ /**
+ * Get the status property: DNS Service status.
+ *
+ * @return the status value.
+ */
+ public DnsServiceStatusEnum status() {
+ return this.status;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public WorkloadNetworkDnsServiceProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the revision property: NSX revision number.
+ *
+ * @return the revision value.
+ */
+ public Long revision() {
+ return this.revision;
+ }
+
+ /**
+ * Set the revision property: NSX revision number.
+ *
+ * @param revision the revision value to set.
+ * @return the WorkloadNetworkDnsServiceInner object itself.
+ */
+ public WorkloadNetworkDnsServiceInner withRevision(Long revision) {
+ this.revision = revision;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDnsZoneInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDnsZoneInner.java
new file mode 100644
index 000000000000..ab9f9c002bda
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkDnsZoneInner.java
@@ -0,0 +1,200 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkDnsZoneProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** NSX DNS Zone. */
+@JsonFlatten
+@Fluent
+public class WorkloadNetworkDnsZoneInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkDnsZoneInner.class);
+
+ /*
+ * Display name of the DNS Zone.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /*
+ * Domain names of the DNS Zone.
+ */
+ @JsonProperty(value = "properties.domain")
+ private List domain;
+
+ /*
+ * DNS Server IP array of the DNS Zone.
+ */
+ @JsonProperty(value = "properties.dnsServerIps")
+ private List dnsServerIps;
+
+ /*
+ * Source IP of the DNS Zone.
+ */
+ @JsonProperty(value = "properties.sourceIp")
+ private String sourceIp;
+
+ /*
+ * Number of DNS Services using the DNS zone.
+ */
+ @JsonProperty(value = "properties.dnsServices")
+ private Long dnsServices;
+
+ /*
+ * The provisioning state
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private WorkloadNetworkDnsZoneProvisioningState provisioningState;
+
+ /*
+ * NSX revision number.
+ */
+ @JsonProperty(value = "properties.revision")
+ private Long revision;
+
+ /**
+ * Get the displayName property: Display name of the DNS Zone.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: Display name of the DNS Zone.
+ *
+ * @param displayName the displayName value to set.
+ * @return the WorkloadNetworkDnsZoneInner object itself.
+ */
+ public WorkloadNetworkDnsZoneInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the domain property: Domain names of the DNS Zone.
+ *
+ * @return the domain value.
+ */
+ public List domain() {
+ return this.domain;
+ }
+
+ /**
+ * Set the domain property: Domain names of the DNS Zone.
+ *
+ * @param domain the domain value to set.
+ * @return the WorkloadNetworkDnsZoneInner object itself.
+ */
+ public WorkloadNetworkDnsZoneInner withDomain(List domain) {
+ this.domain = domain;
+ return this;
+ }
+
+ /**
+ * Get the dnsServerIps property: DNS Server IP array of the DNS Zone.
+ *
+ * @return the dnsServerIps value.
+ */
+ public List dnsServerIps() {
+ return this.dnsServerIps;
+ }
+
+ /**
+ * Set the dnsServerIps property: DNS Server IP array of the DNS Zone.
+ *
+ * @param dnsServerIps the dnsServerIps value to set.
+ * @return the WorkloadNetworkDnsZoneInner object itself.
+ */
+ public WorkloadNetworkDnsZoneInner withDnsServerIps(List dnsServerIps) {
+ this.dnsServerIps = dnsServerIps;
+ return this;
+ }
+
+ /**
+ * Get the sourceIp property: Source IP of the DNS Zone.
+ *
+ * @return the sourceIp value.
+ */
+ public String sourceIp() {
+ return this.sourceIp;
+ }
+
+ /**
+ * Set the sourceIp property: Source IP of the DNS Zone.
+ *
+ * @param sourceIp the sourceIp value to set.
+ * @return the WorkloadNetworkDnsZoneInner object itself.
+ */
+ public WorkloadNetworkDnsZoneInner withSourceIp(String sourceIp) {
+ this.sourceIp = sourceIp;
+ return this;
+ }
+
+ /**
+ * Get the dnsServices property: Number of DNS Services using the DNS zone.
+ *
+ * @return the dnsServices value.
+ */
+ public Long dnsServices() {
+ return this.dnsServices;
+ }
+
+ /**
+ * Set the dnsServices property: Number of DNS Services using the DNS zone.
+ *
+ * @param dnsServices the dnsServices value to set.
+ * @return the WorkloadNetworkDnsZoneInner object itself.
+ */
+ public WorkloadNetworkDnsZoneInner withDnsServices(Long dnsServices) {
+ this.dnsServices = dnsServices;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public WorkloadNetworkDnsZoneProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the revision property: NSX revision number.
+ *
+ * @return the revision value.
+ */
+ public Long revision() {
+ return this.revision;
+ }
+
+ /**
+ * Set the revision property: NSX revision number.
+ *
+ * @param revision the revision value to set.
+ * @return the WorkloadNetworkDnsZoneInner object itself.
+ */
+ public WorkloadNetworkDnsZoneInner withRevision(Long revision) {
+ this.revision = revision;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkGatewayInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkGatewayInner.java
new file mode 100644
index 000000000000..941d791f1645
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkGatewayInner.java
@@ -0,0 +1,68 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** NSX Gateway. */
+@JsonFlatten
+@Fluent
+public class WorkloadNetworkGatewayInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkGatewayInner.class);
+
+ /*
+ * Display name of the DHCP entity.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /*
+ * NSX Gateway Path.
+ */
+ @JsonProperty(value = "properties.path", access = JsonProperty.Access.WRITE_ONLY)
+ private String path;
+
+ /**
+ * Get the displayName property: Display name of the DHCP entity.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: Display name of the DHCP entity.
+ *
+ * @param displayName the displayName value to set.
+ * @return the WorkloadNetworkGatewayInner object itself.
+ */
+ public WorkloadNetworkGatewayInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the path property: NSX Gateway Path.
+ *
+ * @return the path value.
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkPortMirroringInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkPortMirroringInner.java
new file mode 100644
index 000000000000..a28735c0b825
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkPortMirroringInner.java
@@ -0,0 +1,190 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.PortMirroringDirectionEnum;
+import com.azure.resourcemanager.avs.models.PortMirroringStatusEnum;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkPortMirroringProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** NSX Port Mirroring. */
+@JsonFlatten
+@Fluent
+public class WorkloadNetworkPortMirroringInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkPortMirroringInner.class);
+
+ /*
+ * Display name of the port mirroring profile.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /*
+ * Direction of port mirroring profile.
+ */
+ @JsonProperty(value = "properties.direction")
+ private PortMirroringDirectionEnum direction;
+
+ /*
+ * Source VM Group.
+ */
+ @JsonProperty(value = "properties.source")
+ private String source;
+
+ /*
+ * Destination VM Group.
+ */
+ @JsonProperty(value = "properties.destination")
+ private String destination;
+
+ /*
+ * Port Mirroring Status.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private PortMirroringStatusEnum status;
+
+ /*
+ * The provisioning state
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private WorkloadNetworkPortMirroringProvisioningState provisioningState;
+
+ /*
+ * NSX revision number.
+ */
+ @JsonProperty(value = "properties.revision")
+ private Long revision;
+
+ /**
+ * Get the displayName property: Display name of the port mirroring profile.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: Display name of the port mirroring profile.
+ *
+ * @param displayName the displayName value to set.
+ * @return the WorkloadNetworkPortMirroringInner object itself.
+ */
+ public WorkloadNetworkPortMirroringInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the direction property: Direction of port mirroring profile.
+ *
+ * @return the direction value.
+ */
+ public PortMirroringDirectionEnum direction() {
+ return this.direction;
+ }
+
+ /**
+ * Set the direction property: Direction of port mirroring profile.
+ *
+ * @param direction the direction value to set.
+ * @return the WorkloadNetworkPortMirroringInner object itself.
+ */
+ public WorkloadNetworkPortMirroringInner withDirection(PortMirroringDirectionEnum direction) {
+ this.direction = direction;
+ return this;
+ }
+
+ /**
+ * Get the source property: Source VM Group.
+ *
+ * @return the source value.
+ */
+ public String source() {
+ return this.source;
+ }
+
+ /**
+ * Set the source property: Source VM Group.
+ *
+ * @param source the source value to set.
+ * @return the WorkloadNetworkPortMirroringInner object itself.
+ */
+ public WorkloadNetworkPortMirroringInner withSource(String source) {
+ this.source = source;
+ return this;
+ }
+
+ /**
+ * Get the destination property: Destination VM Group.
+ *
+ * @return the destination value.
+ */
+ public String destination() {
+ return this.destination;
+ }
+
+ /**
+ * Set the destination property: Destination VM Group.
+ *
+ * @param destination the destination value to set.
+ * @return the WorkloadNetworkPortMirroringInner object itself.
+ */
+ public WorkloadNetworkPortMirroringInner withDestination(String destination) {
+ this.destination = destination;
+ return this;
+ }
+
+ /**
+ * Get the status property: Port Mirroring Status.
+ *
+ * @return the status value.
+ */
+ public PortMirroringStatusEnum status() {
+ return this.status;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public WorkloadNetworkPortMirroringProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the revision property: NSX revision number.
+ *
+ * @return the revision value.
+ */
+ public Long revision() {
+ return this.revision;
+ }
+
+ /**
+ * Set the revision property: NSX revision number.
+ *
+ * @param revision the revision value to set.
+ * @return the WorkloadNetworkPortMirroringInner object itself.
+ */
+ public WorkloadNetworkPortMirroringInner withRevision(Long revision) {
+ this.revision = revision;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkPublicIpInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkPublicIpInner.java
new file mode 100644
index 000000000000..cd916299cb8f
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkPublicIpInner.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.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkPublicIpProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** NSX Public IP Block. */
+@JsonFlatten
+@Fluent
+public class WorkloadNetworkPublicIpInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkPublicIpInner.class);
+
+ /*
+ * Display name of the Public IP Block.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /*
+ * Number of Public IPs requested.
+ */
+ @JsonProperty(value = "properties.numberOfPublicIPs")
+ private Long numberOfPublicIPs;
+
+ /*
+ * CIDR Block of the Public IP Block.
+ */
+ @JsonProperty(value = "properties.publicIPBlock", access = JsonProperty.Access.WRITE_ONLY)
+ private String publicIpBlock;
+
+ /*
+ * The provisioning state
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private WorkloadNetworkPublicIpProvisioningState provisioningState;
+
+ /**
+ * Get the displayName property: Display name of the Public IP Block.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: Display name of the Public IP Block.
+ *
+ * @param displayName the displayName value to set.
+ * @return the WorkloadNetworkPublicIpInner object itself.
+ */
+ public WorkloadNetworkPublicIpInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the numberOfPublicIPs property: Number of Public IPs requested.
+ *
+ * @return the numberOfPublicIPs value.
+ */
+ public Long numberOfPublicIPs() {
+ return this.numberOfPublicIPs;
+ }
+
+ /**
+ * Set the numberOfPublicIPs property: Number of Public IPs requested.
+ *
+ * @param numberOfPublicIPs the numberOfPublicIPs value to set.
+ * @return the WorkloadNetworkPublicIpInner object itself.
+ */
+ public WorkloadNetworkPublicIpInner withNumberOfPublicIPs(Long numberOfPublicIPs) {
+ this.numberOfPublicIPs = numberOfPublicIPs;
+ return this;
+ }
+
+ /**
+ * Get the publicIpBlock property: CIDR Block of the Public IP Block.
+ *
+ * @return the publicIpBlock value.
+ */
+ public String publicIpBlock() {
+ return this.publicIpBlock;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public WorkloadNetworkPublicIpProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkSegmentInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkSegmentInner.java
new file mode 100644
index 000000000000..7c2bf99df503
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkSegmentInner.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.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.SegmentStatusEnum;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkSegmentPortVif;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkSegmentProvisioningState;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkSegmentSubnet;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** NSX Segment. */
+@JsonFlatten
+@Fluent
+public class WorkloadNetworkSegmentInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkSegmentInner.class);
+
+ /*
+ * Display name of the segment.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /*
+ * Gateway which to connect segment to.
+ */
+ @JsonProperty(value = "properties.connectedGateway")
+ private String connectedGateway;
+
+ /*
+ * Subnet which to connect segment to.
+ */
+ @JsonProperty(value = "properties.subnet")
+ private WorkloadNetworkSegmentSubnet subnet;
+
+ /*
+ * Port Vif which segment is associated with.
+ */
+ @JsonProperty(value = "properties.portVif", access = JsonProperty.Access.WRITE_ONLY)
+ private List portVif;
+
+ /*
+ * Segment status.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private SegmentStatusEnum status;
+
+ /*
+ * The provisioning state
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private WorkloadNetworkSegmentProvisioningState provisioningState;
+
+ /*
+ * NSX revision number.
+ */
+ @JsonProperty(value = "properties.revision")
+ private Long revision;
+
+ /**
+ * Get the displayName property: Display name of the segment.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: Display name of the segment.
+ *
+ * @param displayName the displayName value to set.
+ * @return the WorkloadNetworkSegmentInner object itself.
+ */
+ public WorkloadNetworkSegmentInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the connectedGateway property: Gateway which to connect segment to.
+ *
+ * @return the connectedGateway value.
+ */
+ public String connectedGateway() {
+ return this.connectedGateway;
+ }
+
+ /**
+ * Set the connectedGateway property: Gateway which to connect segment to.
+ *
+ * @param connectedGateway the connectedGateway value to set.
+ * @return the WorkloadNetworkSegmentInner object itself.
+ */
+ public WorkloadNetworkSegmentInner withConnectedGateway(String connectedGateway) {
+ this.connectedGateway = connectedGateway;
+ return this;
+ }
+
+ /**
+ * Get the subnet property: Subnet which to connect segment to.
+ *
+ * @return the subnet value.
+ */
+ public WorkloadNetworkSegmentSubnet subnet() {
+ return this.subnet;
+ }
+
+ /**
+ * Set the subnet property: Subnet which to connect segment to.
+ *
+ * @param subnet the subnet value to set.
+ * @return the WorkloadNetworkSegmentInner object itself.
+ */
+ public WorkloadNetworkSegmentInner withSubnet(WorkloadNetworkSegmentSubnet subnet) {
+ this.subnet = subnet;
+ return this;
+ }
+
+ /**
+ * Get the portVif property: Port Vif which segment is associated with.
+ *
+ * @return the portVif value.
+ */
+ public List portVif() {
+ return this.portVif;
+ }
+
+ /**
+ * Get the status property: Segment status.
+ *
+ * @return the status value.
+ */
+ public SegmentStatusEnum status() {
+ return this.status;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public WorkloadNetworkSegmentProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the revision property: NSX revision number.
+ *
+ * @return the revision value.
+ */
+ public Long revision() {
+ return this.revision;
+ }
+
+ /**
+ * Set the revision property: NSX revision number.
+ *
+ * @param revision the revision value to set.
+ * @return the WorkloadNetworkSegmentInner object itself.
+ */
+ public WorkloadNetworkSegmentInner withRevision(Long revision) {
+ this.revision = revision;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (subnet() != null) {
+ subnet().validate();
+ }
+ if (portVif() != null) {
+ portVif().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkVMGroupInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkVMGroupInner.java
new file mode 100644
index 000000000000..510d3a0e19f2
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkVMGroupInner.java
@@ -0,0 +1,138 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.VMGroupStatusEnum;
+import com.azure.resourcemanager.avs.models.WorkloadNetworkVMGroupProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** NSX VM Group. */
+@JsonFlatten
+@Fluent
+public class WorkloadNetworkVMGroupInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkVMGroupInner.class);
+
+ /*
+ * Display name of the VM group.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /*
+ * Virtual machine members of this group.
+ */
+ @JsonProperty(value = "properties.members")
+ private List members;
+
+ /*
+ * VM Group status.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private VMGroupStatusEnum status;
+
+ /*
+ * The provisioning state
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private WorkloadNetworkVMGroupProvisioningState provisioningState;
+
+ /*
+ * NSX revision number.
+ */
+ @JsonProperty(value = "properties.revision")
+ private Long revision;
+
+ /**
+ * Get the displayName property: Display name of the VM group.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: Display name of the VM group.
+ *
+ * @param displayName the displayName value to set.
+ * @return the WorkloadNetworkVMGroupInner object itself.
+ */
+ public WorkloadNetworkVMGroupInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the members property: Virtual machine members of this group.
+ *
+ * @return the members value.
+ */
+ public List members() {
+ return this.members;
+ }
+
+ /**
+ * Set the members property: Virtual machine members of this group.
+ *
+ * @param members the members value to set.
+ * @return the WorkloadNetworkVMGroupInner object itself.
+ */
+ public WorkloadNetworkVMGroupInner withMembers(List members) {
+ this.members = members;
+ return this;
+ }
+
+ /**
+ * Get the status property: VM Group status.
+ *
+ * @return the status value.
+ */
+ public VMGroupStatusEnum status() {
+ return this.status;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public WorkloadNetworkVMGroupProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the revision property: NSX revision number.
+ *
+ * @return the revision value.
+ */
+ public Long revision() {
+ return this.revision;
+ }
+
+ /**
+ * Set the revision property: NSX revision number.
+ *
+ * @param revision the revision value to set.
+ * @return the WorkloadNetworkVMGroupInner object itself.
+ */
+ public WorkloadNetworkVMGroupInner withRevision(Long revision) {
+ this.revision = revision;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkVirtualMachineInner.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkVirtualMachineInner.java
new file mode 100644
index 000000000000..680961140548
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/fluent/models/WorkloadNetworkVirtualMachineInner.java
@@ -0,0 +1,69 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.models.VMTypeEnum;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** NSX Virtual Machine. */
+@JsonFlatten
+@Fluent
+public class WorkloadNetworkVirtualMachineInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadNetworkVirtualMachineInner.class);
+
+ /*
+ * Display name of the VM.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /*
+ * Virtual machine type.
+ */
+ @JsonProperty(value = "properties.vmType", access = JsonProperty.Access.WRITE_ONLY)
+ private VMTypeEnum vmType;
+
+ /**
+ * Get the displayName property: Display name of the VM.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: Display name of the VM.
+ *
+ * @param displayName the displayName value to set.
+ * @return the WorkloadNetworkVirtualMachineInner object itself.
+ */
+ public WorkloadNetworkVirtualMachineInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the vmType property: Virtual machine type.
+ *
+ * @return the vmType value.
+ */
+ public VMTypeEnum vmType() {
+ return this.vmType;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonImpl.java
new file mode 100644
index 000000000000..fa3fbc5a6658
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonImpl.java
@@ -0,0 +1,131 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.avs.fluent.models.AddonInner;
+import com.azure.resourcemanager.avs.models.Addon;
+import com.azure.resourcemanager.avs.models.AddonProperties;
+
+public final class AddonImpl implements Addon, Addon.Definition, Addon.Update {
+ private AddonInner innerObject;
+
+ private final com.azure.resourcemanager.avs.AvsManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public AddonProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public AddonInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.avs.AvsManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String privateCloudName;
+
+ private String addonName;
+
+ public AddonImpl withExistingPrivateCloud(String resourceGroupName, String privateCloudName) {
+ this.resourceGroupName = resourceGroupName;
+ this.privateCloudName = privateCloudName;
+ return this;
+ }
+
+ public Addon create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAddons()
+ .createOrUpdate(resourceGroupName, privateCloudName, addonName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Addon create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAddons()
+ .createOrUpdate(resourceGroupName, privateCloudName, addonName, this.innerModel(), context);
+ return this;
+ }
+
+ AddonImpl(String name, com.azure.resourcemanager.avs.AvsManager serviceManager) {
+ this.innerObject = new AddonInner();
+ this.serviceManager = serviceManager;
+ this.addonName = name;
+ }
+
+ public AddonImpl update() {
+ return this;
+ }
+
+ public Addon apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAddons()
+ .createOrUpdate(resourceGroupName, privateCloudName, addonName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Addon apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAddons()
+ .createOrUpdate(resourceGroupName, privateCloudName, addonName, this.innerModel(), context);
+ return this;
+ }
+
+ AddonImpl(AddonInner innerObject, com.azure.resourcemanager.avs.AvsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.privateCloudName = Utils.getValueFromIdByName(innerObject.id(), "privateClouds");
+ this.addonName = Utils.getValueFromIdByName(innerObject.id(), "addons");
+ }
+
+ public Addon refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAddons()
+ .getWithResponse(resourceGroupName, privateCloudName, addonName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Addon refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAddons()
+ .getWithResponse(resourceGroupName, privateCloudName, addonName, context)
+ .getValue();
+ return this;
+ }
+
+ public AddonImpl withProperties(AddonProperties properties) {
+ this.innerModel().withProperties(properties);
+ return this;
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonsClientImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonsClientImpl.java
new file mode 100644
index 000000000000..847990c45d0f
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonsClientImpl.java
@@ -0,0 +1,1093 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.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.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.avs.fluent.AddonsClient;
+import com.azure.resourcemanager.avs.fluent.models.AddonInner;
+import com.azure.resourcemanager.avs.models.AddonList;
+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 AddonsClient. */
+public final class AddonsClientImpl implements AddonsClient {
+ private final ClientLogger logger = new ClientLogger(AddonsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final AddonsService service;
+
+ /** The service client containing this operation class. */
+ private final AvsClientImpl client;
+
+ /**
+ * Initializes an instance of AddonsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AddonsClientImpl(AvsClientImpl client) {
+ this.service = RestProxy.create(AddonsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AvsClientAddons to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AvsClientAddons")
+ private interface AddonsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/addons")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("privateCloudName") String privateCloudName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/addons/{addonName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("privateCloudName") String privateCloudName,
+ @PathParam("addonName") String addonName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/addons/{addonName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("privateCloudName") String privateCloudName,
+ @PathParam("addonName") String addonName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") AddonInner addon,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/addons/{addonName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("privateCloudName") String privateCloudName,
+ @PathParam("addonName") String addonName,
+ @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);
+ }
+
+ /**
+ * List addons in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(String resourceGroupName, String privateCloudName) {
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ 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 addons in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String privateCloudName, 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * List addons in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String resourceGroupName, String privateCloudName) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, privateCloudName),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * List addons in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String resourceGroupName, String privateCloudName, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, privateCloudName, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * List addons in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String resourceGroupName, String privateCloudName) {
+ return new PagedIterable<>(listAsync(resourceGroupName, privateCloudName));
+ }
+
+ /**
+ * List addons in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String resourceGroupName, String privateCloudName, Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, privateCloudName, context));
+ }
+
+ /**
+ * Get an addon by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String addonName) {
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (addonName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter addonName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ addonName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get an addon by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String addonName, 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (addonName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter addonName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ addonName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Get an addon by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String resourceGroupName, String privateCloudName, String addonName) {
+ return getWithResponseAsync(resourceGroupName, privateCloudName, addonName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get an addon by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AddonInner get(String resourceGroupName, String privateCloudName, String addonName) {
+ return getAsync(resourceGroupName, privateCloudName, addonName).block();
+ }
+
+ /**
+ * Get an addon by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String addonName, Context context) {
+ return getWithResponseAsync(resourceGroupName, privateCloudName, addonName, context).block();
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon) {
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (addonName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter addonName is required and cannot be null."));
+ }
+ if (addon == null) {
+ return Mono.error(new IllegalArgumentException("Parameter addon is required and cannot be null."));
+ } else {
+ addon.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ addonName,
+ this.client.getApiVersion(),
+ addon,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon, 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (addonName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter addonName is required and cannot be null."));
+ }
+ if (addon == null) {
+ return Mono.error(new IllegalArgumentException("Parameter addon is required and cannot be null."));
+ } else {
+ addon.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ addonName,
+ this.client.getApiVersion(),
+ addon,
+ accept,
+ context);
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, AddonInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, privateCloudName, addonName, addon);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), AddonInner.class, AddonInner.class, Context.NONE);
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, AddonInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, privateCloudName, addonName, addon, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), AddonInner.class, AddonInner.class, context);
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, AddonInner> beginCreateOrUpdate(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon) {
+ return beginCreateOrUpdateAsync(resourceGroupName, privateCloudName, addonName, addon).getSyncPoller();
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, AddonInner> beginCreateOrUpdate(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, privateCloudName, addonName, addon, context).getSyncPoller();
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon) {
+ return beginCreateOrUpdateAsync(resourceGroupName, privateCloudName, addonName, addon)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, privateCloudName, addonName, addon, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AddonInner createOrUpdate(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon) {
+ return createOrUpdateAsync(resourceGroupName, privateCloudName, addonName, addon).block();
+ }
+
+ /**
+ * Create or update a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param addon A addon in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an addon resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AddonInner createOrUpdate(
+ String resourceGroupName, String privateCloudName, String addonName, AddonInner addon, Context context) {
+ return createOrUpdateAsync(resourceGroupName, privateCloudName, addonName, addon, context).block();
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String addonName) {
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (addonName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter addonName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ addonName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String addonName, 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (addonName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter addonName 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,
+ privateCloudName,
+ addonName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String privateCloudName, String addonName) {
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, privateCloudName, addonName);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, Context.NONE);
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String privateCloudName, String addonName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, privateCloudName, addonName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String addonName) {
+ return beginDeleteAsync(resourceGroupName, privateCloudName, addonName).getSyncPoller();
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String addonName, Context context) {
+ return beginDeleteAsync(resourceGroupName, privateCloudName, addonName, context).getSyncPoller();
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String privateCloudName, String addonName) {
+ return beginDeleteAsync(resourceGroupName, privateCloudName, addonName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String privateCloudName, String addonName, Context context) {
+ return beginDeleteAsync(resourceGroupName, privateCloudName, addonName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String privateCloudName, String addonName) {
+ deleteAsync(resourceGroupName, privateCloudName, addonName).block();
+ }
+
+ /**
+ * Delete a addon in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param addonName Name of the addon for the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String privateCloudName, String addonName, Context context) {
+ deleteAsync(resourceGroupName, privateCloudName, addonName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of addons.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonsImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonsImpl.java
new file mode 100644
index 000000000000..abdae483097d
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AddonsImpl.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.avs.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.fluent.AddonsClient;
+import com.azure.resourcemanager.avs.fluent.models.AddonInner;
+import com.azure.resourcemanager.avs.models.Addon;
+import com.azure.resourcemanager.avs.models.Addons;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class AddonsImpl implements Addons {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AddonsImpl.class);
+
+ private final AddonsClient innerClient;
+
+ private final com.azure.resourcemanager.avs.AvsManager serviceManager;
+
+ public AddonsImpl(AddonsClient innerClient, com.azure.resourcemanager.avs.AvsManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String resourceGroupName, String privateCloudName) {
+ PagedIterable inner = this.serviceClient().list(resourceGroupName, privateCloudName);
+ return Utils.mapPage(inner, inner1 -> new AddonImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(String resourceGroupName, String privateCloudName, Context context) {
+ PagedIterable inner = this.serviceClient().list(resourceGroupName, privateCloudName, context);
+ return Utils.mapPage(inner, inner1 -> new AddonImpl(inner1, this.manager()));
+ }
+
+ public Addon get(String resourceGroupName, String privateCloudName, String addonName) {
+ AddonInner inner = this.serviceClient().get(resourceGroupName, privateCloudName, addonName);
+ if (inner != null) {
+ return new AddonImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String addonName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(resourceGroupName, privateCloudName, addonName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AddonImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void delete(String resourceGroupName, String privateCloudName, String addonName) {
+ this.serviceClient().delete(resourceGroupName, privateCloudName, addonName);
+ }
+
+ public void delete(String resourceGroupName, String privateCloudName, String addonName, Context context) {
+ this.serviceClient().delete(resourceGroupName, privateCloudName, addonName, context);
+ }
+
+ public Addon getById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String privateCloudName = Utils.getValueFromIdByName(id, "privateClouds");
+ if (privateCloudName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'privateClouds'.", id)));
+ }
+ String addonName = Utils.getValueFromIdByName(id, "addons");
+ if (addonName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'addons'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, privateCloudName, addonName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String privateCloudName = Utils.getValueFromIdByName(id, "privateClouds");
+ if (privateCloudName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'privateClouds'.", id)));
+ }
+ String addonName = Utils.getValueFromIdByName(id, "addons");
+ if (addonName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'addons'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, privateCloudName, addonName, context);
+ }
+
+ public void deleteById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String privateCloudName = Utils.getValueFromIdByName(id, "privateClouds");
+ if (privateCloudName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'privateClouds'.", id)));
+ }
+ String addonName = Utils.getValueFromIdByName(id, "addons");
+ if (addonName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'addons'.", id)));
+ }
+ this.delete(resourceGroupName, privateCloudName, addonName, Context.NONE);
+ }
+
+ public void deleteByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String privateCloudName = Utils.getValueFromIdByName(id, "privateClouds");
+ if (privateCloudName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'privateClouds'.", id)));
+ }
+ String addonName = Utils.getValueFromIdByName(id, "addons");
+ if (addonName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'addons'.", id)));
+ }
+ this.delete(resourceGroupName, privateCloudName, addonName, context);
+ }
+
+ private AddonsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.avs.AvsManager manager() {
+ return this.serviceManager;
+ }
+
+ public AddonImpl define(String name) {
+ return new AddonImpl(name, this.manager());
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AvsClientImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AvsClientImpl.java
index e1885413f3e0..58bba57d842a 100644
--- a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AvsClientImpl.java
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/AvsClientImpl.java
@@ -21,13 +21,21 @@
import com.azure.core.util.polling.PollerFlux;
import com.azure.core.util.serializer.SerializerAdapter;
import com.azure.core.util.serializer.SerializerEncoding;
+import com.azure.resourcemanager.avs.fluent.AddonsClient;
import com.azure.resourcemanager.avs.fluent.AuthorizationsClient;
import com.azure.resourcemanager.avs.fluent.AvsClient;
+import com.azure.resourcemanager.avs.fluent.CloudLinksClient;
import com.azure.resourcemanager.avs.fluent.ClustersClient;
+import com.azure.resourcemanager.avs.fluent.DatastoresClient;
+import com.azure.resourcemanager.avs.fluent.GlobalReachConnectionsClient;
import com.azure.resourcemanager.avs.fluent.HcxEnterpriseSitesClient;
import com.azure.resourcemanager.avs.fluent.LocationsClient;
import com.azure.resourcemanager.avs.fluent.OperationsClient;
import com.azure.resourcemanager.avs.fluent.PrivateCloudsClient;
+import com.azure.resourcemanager.avs.fluent.ScriptCmdletsClient;
+import com.azure.resourcemanager.avs.fluent.ScriptExecutionsClient;
+import com.azure.resourcemanager.avs.fluent.ScriptPackagesClient;
+import com.azure.resourcemanager.avs.fluent.WorkloadNetworksClient;
import java.io.IOException;
import java.lang.reflect.Type;
import java.nio.ByteBuffer;
@@ -163,6 +171,18 @@ public ClustersClient getClusters() {
return this.clusters;
}
+ /** The DatastoresClient object to access its operations. */
+ private final DatastoresClient datastores;
+
+ /**
+ * Gets the DatastoresClient object to access its operations.
+ *
+ * @return the DatastoresClient object.
+ */
+ public DatastoresClient getDatastores() {
+ return this.datastores;
+ }
+
/** The HcxEnterpriseSitesClient object to access its operations. */
private final HcxEnterpriseSitesClient hcxEnterpriseSites;
@@ -187,6 +207,90 @@ public AuthorizationsClient getAuthorizations() {
return this.authorizations;
}
+ /** The GlobalReachConnectionsClient object to access its operations. */
+ private final GlobalReachConnectionsClient globalReachConnections;
+
+ /**
+ * Gets the GlobalReachConnectionsClient object to access its operations.
+ *
+ * @return the GlobalReachConnectionsClient object.
+ */
+ public GlobalReachConnectionsClient getGlobalReachConnections() {
+ return this.globalReachConnections;
+ }
+
+ /** The WorkloadNetworksClient object to access its operations. */
+ private final WorkloadNetworksClient workloadNetworks;
+
+ /**
+ * Gets the WorkloadNetworksClient object to access its operations.
+ *
+ * @return the WorkloadNetworksClient object.
+ */
+ public WorkloadNetworksClient getWorkloadNetworks() {
+ return this.workloadNetworks;
+ }
+
+ /** The CloudLinksClient object to access its operations. */
+ private final CloudLinksClient cloudLinks;
+
+ /**
+ * Gets the CloudLinksClient object to access its operations.
+ *
+ * @return the CloudLinksClient object.
+ */
+ public CloudLinksClient getCloudLinks() {
+ return this.cloudLinks;
+ }
+
+ /** The AddonsClient object to access its operations. */
+ private final AddonsClient addons;
+
+ /**
+ * Gets the AddonsClient object to access its operations.
+ *
+ * @return the AddonsClient object.
+ */
+ public AddonsClient getAddons() {
+ return this.addons;
+ }
+
+ /** The ScriptPackagesClient object to access its operations. */
+ private final ScriptPackagesClient scriptPackages;
+
+ /**
+ * Gets the ScriptPackagesClient object to access its operations.
+ *
+ * @return the ScriptPackagesClient object.
+ */
+ public ScriptPackagesClient getScriptPackages() {
+ return this.scriptPackages;
+ }
+
+ /** The ScriptCmdletsClient object to access its operations. */
+ private final ScriptCmdletsClient scriptCmdlets;
+
+ /**
+ * Gets the ScriptCmdletsClient object to access its operations.
+ *
+ * @return the ScriptCmdletsClient object.
+ */
+ public ScriptCmdletsClient getScriptCmdlets() {
+ return this.scriptCmdlets;
+ }
+
+ /** The ScriptExecutionsClient object to access its operations. */
+ private final ScriptExecutionsClient scriptExecutions;
+
+ /**
+ * Gets the ScriptExecutionsClient object to access its operations.
+ *
+ * @return the ScriptExecutionsClient object.
+ */
+ public ScriptExecutionsClient getScriptExecutions() {
+ return this.scriptExecutions;
+ }
+
/**
* Initializes an instance of AvsClient client.
*
@@ -209,13 +313,21 @@ public AuthorizationsClient getAuthorizations() {
this.defaultPollInterval = defaultPollInterval;
this.subscriptionId = subscriptionId;
this.endpoint = endpoint;
- this.apiVersion = "2020-03-20";
+ this.apiVersion = "2021-06-01";
this.operations = new OperationsClientImpl(this);
this.locations = new LocationsClientImpl(this);
this.privateClouds = new PrivateCloudsClientImpl(this);
this.clusters = new ClustersClientImpl(this);
+ this.datastores = new DatastoresClientImpl(this);
this.hcxEnterpriseSites = new HcxEnterpriseSitesClientImpl(this);
this.authorizations = new AuthorizationsClientImpl(this);
+ this.globalReachConnections = new GlobalReachConnectionsClientImpl(this);
+ this.workloadNetworks = new WorkloadNetworksClientImpl(this);
+ this.cloudLinks = new CloudLinksClientImpl(this);
+ this.addons = new AddonsClientImpl(this);
+ this.scriptPackages = new ScriptPackagesClientImpl(this);
+ this.scriptCmdlets = new ScriptCmdletsClientImpl(this);
+ this.scriptExecutions = new ScriptExecutionsClientImpl(this);
}
/**
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinkImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinkImpl.java
new file mode 100644
index 000000000000..04aadc494ec6
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinkImpl.java
@@ -0,0 +1,135 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.avs.fluent.models.CloudLinkInner;
+import com.azure.resourcemanager.avs.models.CloudLink;
+import com.azure.resourcemanager.avs.models.CloudLinkStatus;
+
+public final class CloudLinkImpl implements CloudLink, CloudLink.Definition, CloudLink.Update {
+ private CloudLinkInner innerObject;
+
+ private final com.azure.resourcemanager.avs.AvsManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public CloudLinkStatus status() {
+ return this.innerModel().status();
+ }
+
+ public String linkedCloud() {
+ return this.innerModel().linkedCloud();
+ }
+
+ public CloudLinkInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.avs.AvsManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String privateCloudName;
+
+ private String cloudLinkName;
+
+ public CloudLinkImpl withExistingPrivateCloud(String resourceGroupName, String privateCloudName) {
+ this.resourceGroupName = resourceGroupName;
+ this.privateCloudName = privateCloudName;
+ return this;
+ }
+
+ public CloudLink create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCloudLinks()
+ .createOrUpdate(resourceGroupName, privateCloudName, cloudLinkName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public CloudLink create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCloudLinks()
+ .createOrUpdate(resourceGroupName, privateCloudName, cloudLinkName, this.innerModel(), context);
+ return this;
+ }
+
+ CloudLinkImpl(String name, com.azure.resourcemanager.avs.AvsManager serviceManager) {
+ this.innerObject = new CloudLinkInner();
+ this.serviceManager = serviceManager;
+ this.cloudLinkName = name;
+ }
+
+ public CloudLinkImpl update() {
+ return this;
+ }
+
+ public CloudLink apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCloudLinks()
+ .createOrUpdate(resourceGroupName, privateCloudName, cloudLinkName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public CloudLink apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCloudLinks()
+ .createOrUpdate(resourceGroupName, privateCloudName, cloudLinkName, this.innerModel(), context);
+ return this;
+ }
+
+ CloudLinkImpl(CloudLinkInner innerObject, com.azure.resourcemanager.avs.AvsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.privateCloudName = Utils.getValueFromIdByName(innerObject.id(), "privateClouds");
+ this.cloudLinkName = Utils.getValueFromIdByName(innerObject.id(), "cloudLinks");
+ }
+
+ public CloudLink refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCloudLinks()
+ .getWithResponse(resourceGroupName, privateCloudName, cloudLinkName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CloudLink refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCloudLinks()
+ .getWithResponse(resourceGroupName, privateCloudName, cloudLinkName, context)
+ .getValue();
+ return this;
+ }
+
+ public CloudLinkImpl withLinkedCloud(String linkedCloud) {
+ this.innerModel().withLinkedCloud(linkedCloud);
+ return this;
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinksClientImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinksClientImpl.java
new file mode 100644
index 000000000000..b48ea493c304
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinksClientImpl.java
@@ -0,0 +1,1116 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.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.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.avs.fluent.CloudLinksClient;
+import com.azure.resourcemanager.avs.fluent.models.CloudLinkInner;
+import com.azure.resourcemanager.avs.models.CloudLinkList;
+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 CloudLinksClient. */
+public final class CloudLinksClientImpl implements CloudLinksClient {
+ private final ClientLogger logger = new ClientLogger(CloudLinksClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final CloudLinksService service;
+
+ /** The service client containing this operation class. */
+ private final AvsClientImpl client;
+
+ /**
+ * Initializes an instance of CloudLinksClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ CloudLinksClientImpl(AvsClientImpl client) {
+ this.service =
+ RestProxy.create(CloudLinksService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AvsClientCloudLinks to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AvsClientCloudLinks")
+ private interface CloudLinksService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/cloudLinks")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("privateCloudName") String privateCloudName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/cloudLinks/{cloudLinkName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("privateCloudName") String privateCloudName,
+ @PathParam("cloudLinkName") String cloudLinkName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/cloudLinks/{cloudLinkName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("privateCloudName") String privateCloudName,
+ @PathParam("cloudLinkName") String cloudLinkName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") CloudLinkInner cloudLink,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/cloudLinks/{cloudLinkName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("privateCloudName") String privateCloudName,
+ @PathParam("cloudLinkName") String cloudLinkName,
+ @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);
+ }
+
+ /**
+ * List cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(String resourceGroupName, String privateCloudName) {
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ 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 cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String privateCloudName, 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * List cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String resourceGroupName, String privateCloudName) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, privateCloudName),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * List cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String resourceGroupName, String privateCloudName, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, privateCloudName, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * List cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String resourceGroupName, String privateCloudName) {
+ return new PagedIterable<>(listAsync(resourceGroupName, privateCloudName));
+ }
+
+ /**
+ * List cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String resourceGroupName, String privateCloudName, Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, privateCloudName, context));
+ }
+
+ /**
+ * Get an cloud link by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an cloud link by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (cloudLinkName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudLinkName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ cloudLinkName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get an cloud link by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an cloud link by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (cloudLinkName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudLinkName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ cloudLinkName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Get an cloud link by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an cloud link by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ return getWithResponseAsync(resourceGroupName, privateCloudName, cloudLinkName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get an cloud link by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an cloud link by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CloudLinkInner get(String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ return getAsync(resourceGroupName, privateCloudName, cloudLinkName).block();
+ }
+
+ /**
+ * Get an cloud link by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an cloud link by name in a private cloud.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, Context context) {
+ return getWithResponseAsync(resourceGroupName, privateCloudName, cloudLinkName, context).block();
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, CloudLinkInner cloudLink) {
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (cloudLinkName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudLinkName is required and cannot be null."));
+ }
+ if (cloudLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudLink is required and cannot be null."));
+ } else {
+ cloudLink.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ cloudLinkName,
+ this.client.getApiVersion(),
+ cloudLink,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName,
+ String privateCloudName,
+ String cloudLinkName,
+ CloudLinkInner cloudLink,
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (cloudLinkName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudLinkName is required and cannot be null."));
+ }
+ if (cloudLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudLink is required and cannot be null."));
+ } else {
+ cloudLink.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ cloudLinkName,
+ this.client.getApiVersion(),
+ cloudLink,
+ accept,
+ context);
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, CloudLinkInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, CloudLinkInner cloudLink) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, privateCloudName, cloudLinkName, cloudLink);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), CloudLinkInner.class, CloudLinkInner.class, Context.NONE);
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, CloudLinkInner> beginCreateOrUpdateAsync(
+ String resourceGroupName,
+ String privateCloudName,
+ String cloudLinkName,
+ CloudLinkInner cloudLink,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, privateCloudName, cloudLinkName, cloudLink, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), CloudLinkInner.class, CloudLinkInner.class, context);
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, CloudLinkInner> beginCreateOrUpdate(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, CloudLinkInner cloudLink) {
+ return beginCreateOrUpdateAsync(resourceGroupName, privateCloudName, cloudLinkName, cloudLink).getSyncPoller();
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, CloudLinkInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String cloudLinkName,
+ CloudLinkInner cloudLink,
+ Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, privateCloudName, cloudLinkName, cloudLink, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, CloudLinkInner cloudLink) {
+ return beginCreateOrUpdateAsync(resourceGroupName, privateCloudName, cloudLinkName, cloudLink)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName,
+ String privateCloudName,
+ String cloudLinkName,
+ CloudLinkInner cloudLink,
+ Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, privateCloudName, cloudLinkName, cloudLink, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CloudLinkInner createOrUpdate(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, CloudLinkInner cloudLink) {
+ return createOrUpdateAsync(resourceGroupName, privateCloudName, cloudLinkName, cloudLink).block();
+ }
+
+ /**
+ * Create or update a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param cloudLink A cloud link in the private cloud.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a cloud link resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CloudLinkInner createOrUpdate(
+ String resourceGroupName,
+ String privateCloudName,
+ String cloudLinkName,
+ CloudLinkInner cloudLink,
+ Context context) {
+ return createOrUpdateAsync(resourceGroupName, privateCloudName, cloudLinkName, cloudLink, context).block();
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (cloudLinkName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudLinkName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ privateCloudName,
+ cloudLinkName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, 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 (privateCloudName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter privateCloudName is required and cannot be null."));
+ }
+ if (cloudLinkName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter cloudLinkName 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,
+ privateCloudName,
+ cloudLinkName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, privateCloudName, cloudLinkName);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, Context.NONE);
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, privateCloudName, cloudLinkName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ return beginDeleteAsync(resourceGroupName, privateCloudName, cloudLinkName).getSyncPoller();
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, Context context) {
+ return beginDeleteAsync(resourceGroupName, privateCloudName, cloudLinkName, context).getSyncPoller();
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ return beginDeleteAsync(resourceGroupName, privateCloudName, cloudLinkName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, Context context) {
+ return beginDeleteAsync(resourceGroupName, privateCloudName, cloudLinkName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ deleteAsync(resourceGroupName, privateCloudName, cloudLinkName).block();
+ }
+
+ /**
+ * Delete a cloud link in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud.
+ * @param cloudLinkName Name of the cloud link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String privateCloudName, String cloudLinkName, Context context) {
+ deleteAsync(resourceGroupName, privateCloudName, cloudLinkName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a paged list of cloud links.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinksImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinksImpl.java
new file mode 100644
index 000000000000..bf4cbf3ee8fa
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/CloudLinksImpl.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.avs.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.avs.fluent.CloudLinksClient;
+import com.azure.resourcemanager.avs.fluent.models.CloudLinkInner;
+import com.azure.resourcemanager.avs.models.CloudLink;
+import com.azure.resourcemanager.avs.models.CloudLinks;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class CloudLinksImpl implements CloudLinks {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CloudLinksImpl.class);
+
+ private final CloudLinksClient innerClient;
+
+ private final com.azure.resourcemanager.avs.AvsManager serviceManager;
+
+ public CloudLinksImpl(CloudLinksClient innerClient, com.azure.resourcemanager.avs.AvsManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String resourceGroupName, String privateCloudName) {
+ PagedIterable inner = this.serviceClient().list(resourceGroupName, privateCloudName);
+ return Utils.mapPage(inner, inner1 -> new CloudLinkImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(String resourceGroupName, String privateCloudName, Context context) {
+ PagedIterable inner = this.serviceClient().list(resourceGroupName, privateCloudName, context);
+ return Utils.mapPage(inner, inner1 -> new CloudLinkImpl(inner1, this.manager()));
+ }
+
+ public CloudLink get(String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ CloudLinkInner inner = this.serviceClient().get(resourceGroupName, privateCloudName, cloudLinkName);
+ if (inner != null) {
+ return new CloudLinkImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String privateCloudName, String cloudLinkName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(resourceGroupName, privateCloudName, cloudLinkName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new CloudLinkImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void delete(String resourceGroupName, String privateCloudName, String cloudLinkName) {
+ this.serviceClient().delete(resourceGroupName, privateCloudName, cloudLinkName);
+ }
+
+ public void delete(String resourceGroupName, String privateCloudName, String cloudLinkName, Context context) {
+ this.serviceClient().delete(resourceGroupName, privateCloudName, cloudLinkName, context);
+ }
+
+ public CloudLink getById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String privateCloudName = Utils.getValueFromIdByName(id, "privateClouds");
+ if (privateCloudName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'privateClouds'.", id)));
+ }
+ String cloudLinkName = Utils.getValueFromIdByName(id, "cloudLinks");
+ if (cloudLinkName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'cloudLinks'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, privateCloudName, cloudLinkName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String privateCloudName = Utils.getValueFromIdByName(id, "privateClouds");
+ if (privateCloudName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'privateClouds'.", id)));
+ }
+ String cloudLinkName = Utils.getValueFromIdByName(id, "cloudLinks");
+ if (cloudLinkName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'cloudLinks'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, privateCloudName, cloudLinkName, context);
+ }
+
+ public void deleteById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String privateCloudName = Utils.getValueFromIdByName(id, "privateClouds");
+ if (privateCloudName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'privateClouds'.", id)));
+ }
+ String cloudLinkName = Utils.getValueFromIdByName(id, "cloudLinks");
+ if (cloudLinkName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'cloudLinks'.", id)));
+ }
+ this.delete(resourceGroupName, privateCloudName, cloudLinkName, Context.NONE);
+ }
+
+ public void deleteByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String privateCloudName = Utils.getValueFromIdByName(id, "privateClouds");
+ if (privateCloudName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'privateClouds'.", id)));
+ }
+ String cloudLinkName = Utils.getValueFromIdByName(id, "cloudLinks");
+ if (cloudLinkName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'cloudLinks'.", id)));
+ }
+ this.delete(resourceGroupName, privateCloudName, cloudLinkName, context);
+ }
+
+ private CloudLinksClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.avs.AvsManager manager() {
+ return this.serviceManager;
+ }
+
+ public CloudLinkImpl define(String name) {
+ return new CloudLinkImpl(name, this.manager());
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/DatastoreImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/DatastoreImpl.java
new file mode 100644
index 000000000000..e5ebe29633b4
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/DatastoreImpl.java
@@ -0,0 +1,154 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.avs.fluent.models.DatastoreInner;
+import com.azure.resourcemanager.avs.models.Datastore;
+import com.azure.resourcemanager.avs.models.DatastoreProvisioningState;
+import com.azure.resourcemanager.avs.models.DiskPoolVolume;
+import com.azure.resourcemanager.avs.models.NetAppVolume;
+
+public final class DatastoreImpl implements Datastore, Datastore.Definition, Datastore.Update {
+ private DatastoreInner innerObject;
+
+ private final com.azure.resourcemanager.avs.AvsManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public DatastoreProvisioningState provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public NetAppVolume netAppVolume() {
+ return this.innerModel().netAppVolume();
+ }
+
+ public DiskPoolVolume diskPoolVolume() {
+ return this.innerModel().diskPoolVolume();
+ }
+
+ public DatastoreInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.avs.AvsManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String privateCloudName;
+
+ private String clusterName;
+
+ private String datastoreName;
+
+ public DatastoreImpl withExistingCluster(String resourceGroupName, String privateCloudName, String clusterName) {
+ this.resourceGroupName = resourceGroupName;
+ this.privateCloudName = privateCloudName;
+ this.clusterName = clusterName;
+ return this;
+ }
+
+ public Datastore create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDatastores()
+ .createOrUpdate(
+ resourceGroupName, privateCloudName, clusterName, datastoreName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Datastore create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDatastores()
+ .createOrUpdate(
+ resourceGroupName, privateCloudName, clusterName, datastoreName, this.innerModel(), context);
+ return this;
+ }
+
+ DatastoreImpl(String name, com.azure.resourcemanager.avs.AvsManager serviceManager) {
+ this.innerObject = new DatastoreInner();
+ this.serviceManager = serviceManager;
+ this.datastoreName = name;
+ }
+
+ public DatastoreImpl update() {
+ return this;
+ }
+
+ public Datastore apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDatastores()
+ .createOrUpdate(
+ resourceGroupName, privateCloudName, clusterName, datastoreName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Datastore apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDatastores()
+ .createOrUpdate(
+ resourceGroupName, privateCloudName, clusterName, datastoreName, this.innerModel(), context);
+ return this;
+ }
+
+ DatastoreImpl(DatastoreInner innerObject, com.azure.resourcemanager.avs.AvsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.privateCloudName = Utils.getValueFromIdByName(innerObject.id(), "privateClouds");
+ this.clusterName = Utils.getValueFromIdByName(innerObject.id(), "clusters");
+ this.datastoreName = Utils.getValueFromIdByName(innerObject.id(), "datastores");
+ }
+
+ public Datastore refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDatastores()
+ .getWithResponse(resourceGroupName, privateCloudName, clusterName, datastoreName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Datastore refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDatastores()
+ .getWithResponse(resourceGroupName, privateCloudName, clusterName, datastoreName, context)
+ .getValue();
+ return this;
+ }
+
+ public DatastoreImpl withNetAppVolume(NetAppVolume netAppVolume) {
+ this.innerModel().withNetAppVolume(netAppVolume);
+ return this;
+ }
+
+ public DatastoreImpl withDiskPoolVolume(DiskPoolVolume diskPoolVolume) {
+ this.innerModel().withDiskPoolVolume(diskPoolVolume);
+ return this;
+ }
+}
diff --git a/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/DatastoresClientImpl.java b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/DatastoresClientImpl.java
new file mode 100644
index 000000000000..ee56af5d7964
--- /dev/null
+++ b/sdk/avs/azure-resourcemanager-avs/src/main/java/com/azure/resourcemanager/avs/implementation/DatastoresClientImpl.java
@@ -0,0 +1,1221 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.avs.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.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.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.avs.fluent.DatastoresClient;
+import com.azure.resourcemanager.avs.fluent.models.DatastoreInner;
+import com.azure.resourcemanager.avs.models.DatastoreList;
+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 DatastoresClient. */
+public final class DatastoresClientImpl implements DatastoresClient {
+ private final ClientLogger logger = new ClientLogger(DatastoresClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final DatastoresService service;
+
+ /** The service client containing this operation class. */
+ private final AvsClientImpl client;
+
+ /**
+ * Initializes an instance of DatastoresClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ DatastoresClientImpl(AvsClientImpl client) {
+ this.service =
+ RestProxy.create(DatastoresService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AvsClientDatastores to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AvsClientDatastores")
+ private interface DatastoresService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds"
+ + "/{privateCloudName}/clusters/{clusterName}/datastores")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono