diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index b2e7e9f14af2..ff3d990fd963 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -306,6 +306,7 @@ com.azure.resourcemanager:azure-resourcemanager-postgresqlflexibleserver;1.0.0-b
com.azure.resourcemanager:azure-resourcemanager-elastic;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-webpubsub;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-security;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-hybridnetwork;1.0.0-beta.1;1.0.0-beta.1
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
# version. Unreleased dependencies are only valid for dependency versions.
diff --git a/pom.xml b/pom.xml
index 0c475ccdb3e4..8c638c5f7fca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -761,6 +761,7 @@
sdk/healthcareapissdk/hybridcomputesdk/hybridkubernetes
+ sdk/hybridnetworksdk/identitysdk/imagebuildersdk/iotcentral
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/CHANGELOG.md b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/CHANGELOG.md
new file mode 100644
index 000000000000..61c8400543ab
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-07-15)
+
+- Azure Resource Manager HybridNetwork client library for Java. This package contains Microsoft Azure SDK for HybridNetwork Management SDK. The definitions in this swagger specification will be used to manage the Hybrid Network resources. Package tag package-2021-05-01. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/README.md b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/README.md
new file mode 100644
index 000000000000..69e1a94824b2
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/README.md
@@ -0,0 +1,101 @@
+# Azure Resource Manager HybridNetwork client library for Java
+
+Azure Resource Manager HybridNetwork client library for Java.
+
+This package contains Microsoft Azure SDK for HybridNetwork Management SDK. The definitions in this swagger specification will be used to manage the Hybrid Network resources. Package tag package-2021-05-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
+
+We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.
+
+If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.
+
+Thank you in advance for your collaboration. We really appreciate your time!
+
+## Documentation
+
+Various documentation is available to help you get started
+
+- [API reference documentation][docs]
+
+## Getting started
+
+### Prerequisites
+
+- [Java Development Kit (JDK)][jdk] with version 8 or above
+- [Azure Subscription][azure_subscription]
+
+### Adding the package to your product
+
+[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-hybridnetwork;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-hybridnetwork
+ 1.0.0-beta.1
+
+```
+[//]: # ({x-version-update-end})
+
+### Include the recommended packages
+
+Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
+
+[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
+
+### Authentication
+
+By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
+
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
+
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, `azure` client can be authenticated by following code:
+
+```java
+AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
+TokenCredential credential = new DefaultAzureCredentialBuilder()
+ .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
+ .build();
+HybridNetworkManager manager = HybridNetworkManager
+ .authenticate(credential, profile);
+```
+
+The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
+
+See [Authentication][authenticate] for more options.
+
+## Key concepts
+
+See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
+
+## 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).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
+[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
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/pom.xml b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/pom.xml
new file mode 100644
index 000000000000..075b3526a665
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/pom.xml
@@ -0,0 +1,86 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-hybridnetwork
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for HybridNetwork Management
+ This package contains Microsoft Azure SDK for HybridNetwork Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. The definitions in this swagger specification will be used to manage the Hybrid Network resources. Package tag package-2021-05-01.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+
+ 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
+
+
+
+ org.revapi
+ revapi-maven-plugin
+ 0.11.2
+
+
+
+
+ java.method.addedToInterface
+
+
+ true
+ .*
+ com\.azure\.resourcemanager(\.[^.]+)+\.fluent(\.[^.]+)*
+
+
+
+
+
+
+
+
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/HybridNetworkManager.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/HybridNetworkManager.java
new file mode 100644
index 000000000000..23417e19fb88
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/HybridNetworkManager.java
@@ -0,0 +1,341 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork;
+
+import com.azure.core.credential.TokenCredential;
+import com.azure.core.http.HttpClient;
+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.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+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.hybridnetwork.fluent.HybridNetworkManagementClient;
+import com.azure.resourcemanager.hybridnetwork.implementation.DevicesImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.HybridNetworkManagementClientBuilder;
+import com.azure.resourcemanager.hybridnetwork.implementation.NetworkFunctionVendorSkusImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.NetworkFunctionVendorsImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.NetworkFunctionsImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.OperationsImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.RoleInstancesImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.VendorNetworkFunctionsImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.VendorSkuPreviewsImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.VendorSkusImpl;
+import com.azure.resourcemanager.hybridnetwork.implementation.VendorsImpl;
+import com.azure.resourcemanager.hybridnetwork.models.Devices;
+import com.azure.resourcemanager.hybridnetwork.models.NetworkFunctionVendorSkus;
+import com.azure.resourcemanager.hybridnetwork.models.NetworkFunctionVendors;
+import com.azure.resourcemanager.hybridnetwork.models.NetworkFunctions;
+import com.azure.resourcemanager.hybridnetwork.models.Operations;
+import com.azure.resourcemanager.hybridnetwork.models.RoleInstances;
+import com.azure.resourcemanager.hybridnetwork.models.VendorNetworkFunctions;
+import com.azure.resourcemanager.hybridnetwork.models.VendorSkuPreviews;
+import com.azure.resourcemanager.hybridnetwork.models.VendorSkus;
+import com.azure.resourcemanager.hybridnetwork.models.Vendors;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Entry point to HybridNetworkManager. The definitions in this swagger specification will be used to manage the Hybrid
+ * Network resources.
+ */
+public final class HybridNetworkManager {
+ private NetworkFunctions networkFunctions;
+
+ private Devices devices;
+
+ private Operations operations;
+
+ private Vendors vendors;
+
+ private VendorSkus vendorSkus;
+
+ private VendorSkuPreviews vendorSkuPreviews;
+
+ private NetworkFunctionVendors networkFunctionVendors;
+
+ private NetworkFunctionVendorSkus networkFunctionVendorSkus;
+
+ private VendorNetworkFunctions vendorNetworkFunctions;
+
+ private RoleInstances roleInstances;
+
+ private final HybridNetworkManagementClient clientObject;
+
+ private HybridNetworkManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new HybridNetworkManagementClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of HybridNetwork service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the HybridNetwork service API instance.
+ */
+ public static HybridNetworkManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ return configure().authenticate(credential, profile);
+ }
+
+ /**
+ * Gets a Configurable instance that can be used to create HybridNetworkManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new HybridNetworkManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private final ClientLogger logger = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private final List scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of HybridNetwork service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the HybridNetwork service API instance.
+ */
+ public HybridNetworkManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder
+ .append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.hybridnetwork")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies.addAll(this.policies);
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new HybridNetworkManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of NetworkFunctions. */
+ public NetworkFunctions networkFunctions() {
+ if (this.networkFunctions == null) {
+ this.networkFunctions = new NetworkFunctionsImpl(clientObject.getNetworkFunctions(), this);
+ }
+ return networkFunctions;
+ }
+
+ /** @return Resource collection API of Devices. */
+ public Devices devices() {
+ if (this.devices == null) {
+ this.devices = new DevicesImpl(clientObject.getDevices(), this);
+ }
+ return devices;
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /** @return Resource collection API of Vendors. */
+ public Vendors vendors() {
+ if (this.vendors == null) {
+ this.vendors = new VendorsImpl(clientObject.getVendors(), this);
+ }
+ return vendors;
+ }
+
+ /** @return Resource collection API of VendorSkus. */
+ public VendorSkus vendorSkus() {
+ if (this.vendorSkus == null) {
+ this.vendorSkus = new VendorSkusImpl(clientObject.getVendorSkus(), this);
+ }
+ return vendorSkus;
+ }
+
+ /** @return Resource collection API of VendorSkuPreviews. */
+ public VendorSkuPreviews vendorSkuPreviews() {
+ if (this.vendorSkuPreviews == null) {
+ this.vendorSkuPreviews = new VendorSkuPreviewsImpl(clientObject.getVendorSkuPreviews(), this);
+ }
+ return vendorSkuPreviews;
+ }
+
+ /** @return Resource collection API of NetworkFunctionVendors. */
+ public NetworkFunctionVendors networkFunctionVendors() {
+ if (this.networkFunctionVendors == null) {
+ this.networkFunctionVendors =
+ new NetworkFunctionVendorsImpl(clientObject.getNetworkFunctionVendors(), this);
+ }
+ return networkFunctionVendors;
+ }
+
+ /** @return Resource collection API of NetworkFunctionVendorSkus. */
+ public NetworkFunctionVendorSkus networkFunctionVendorSkus() {
+ if (this.networkFunctionVendorSkus == null) {
+ this.networkFunctionVendorSkus =
+ new NetworkFunctionVendorSkusImpl(clientObject.getNetworkFunctionVendorSkus(), this);
+ }
+ return networkFunctionVendorSkus;
+ }
+
+ /** @return Resource collection API of VendorNetworkFunctions. */
+ public VendorNetworkFunctions vendorNetworkFunctions() {
+ if (this.vendorNetworkFunctions == null) {
+ this.vendorNetworkFunctions =
+ new VendorNetworkFunctionsImpl(clientObject.getVendorNetworkFunctions(), this);
+ }
+ return vendorNetworkFunctions;
+ }
+
+ /** @return Resource collection API of RoleInstances. */
+ public RoleInstances roleInstances() {
+ if (this.roleInstances == null) {
+ this.roleInstances = new RoleInstancesImpl(clientObject.getRoleInstances(), this);
+ }
+ return roleInstances;
+ }
+
+ /**
+ * @return Wrapped service client HybridNetworkManagementClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ */
+ public HybridNetworkManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/DevicesClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/DevicesClient.java
new file mode 100644
index 000000000000..5109c2b6fe93
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/DevicesClient.java
@@ -0,0 +1,263 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.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.hybridnetwork.fluent.models.DeviceInner;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.DeviceRegistrationKeyInner;
+import com.azure.resourcemanager.hybridnetwork.models.TagsObject;
+
+/** An instance of this class provides access to all the operations defined in DevicesClient. */
+public interface DevicesClient {
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName);
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName, Context context);
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName);
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName, Context context);
+
+ /**
+ * Gets information about the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 information about the specified device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceInner getByResourceGroup(String resourceGroupName, String deviceName);
+
+ /**
+ * Gets information about the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 information about the specified device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String deviceName, Context context);
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DeviceInner> beginCreateOrUpdate(
+ String resourceGroupName, String deviceName, DeviceInner parameters);
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DeviceInner> beginCreateOrUpdate(
+ String resourceGroupName, String deviceName, DeviceInner parameters, Context context);
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceInner createOrUpdate(String resourceGroupName, String deviceName, DeviceInner parameters);
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceInner createOrUpdate(String resourceGroupName, String deviceName, DeviceInner parameters, Context context);
+
+ /**
+ * Updates device tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device resource.
+ * @param parameters Parameters supplied to the update device tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceInner updateTags(String resourceGroupName, String deviceName, TagsObject parameters);
+
+ /**
+ * Updates device tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device resource.
+ * @param parameters Parameters supplied to the update device tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateTagsWithResponse(
+ String resourceGroupName, String deviceName, TagsObject parameters, Context context);
+
+ /**
+ * Lists all the devices in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the devices in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists all the device resource in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all the device resource in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * List the registration key for the device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 device registration key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceRegistrationKeyInner listRegistrationKey(String resourceGroupName, String deviceName);
+
+ /**
+ * List the registration key for the device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 device registration key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listRegistrationKeyWithResponse(
+ String resourceGroupName, String deviceName, Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/HybridNetworkManagementClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/HybridNetworkManagementClient.java
new file mode 100644
index 000000000000..a9613ddb088e
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/HybridNetworkManagementClient.java
@@ -0,0 +1,116 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for HybridNetworkManagementClient class. */
+public interface HybridNetworkManagementClient {
+ /**
+ * Gets The ID of the target subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the NetworkFunctionsClient object to access its operations.
+ *
+ * @return the NetworkFunctionsClient object.
+ */
+ NetworkFunctionsClient getNetworkFunctions();
+
+ /**
+ * Gets the DevicesClient object to access its operations.
+ *
+ * @return the DevicesClient object.
+ */
+ DevicesClient getDevices();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the VendorsClient object to access its operations.
+ *
+ * @return the VendorsClient object.
+ */
+ VendorsClient getVendors();
+
+ /**
+ * Gets the VendorSkusClient object to access its operations.
+ *
+ * @return the VendorSkusClient object.
+ */
+ VendorSkusClient getVendorSkus();
+
+ /**
+ * Gets the VendorSkuPreviewsClient object to access its operations.
+ *
+ * @return the VendorSkuPreviewsClient object.
+ */
+ VendorSkuPreviewsClient getVendorSkuPreviews();
+
+ /**
+ * Gets the NetworkFunctionVendorsClient object to access its operations.
+ *
+ * @return the NetworkFunctionVendorsClient object.
+ */
+ NetworkFunctionVendorsClient getNetworkFunctionVendors();
+
+ /**
+ * Gets the NetworkFunctionVendorSkusClient object to access its operations.
+ *
+ * @return the NetworkFunctionVendorSkusClient object.
+ */
+ NetworkFunctionVendorSkusClient getNetworkFunctionVendorSkus();
+
+ /**
+ * Gets the VendorNetworkFunctionsClient object to access its operations.
+ *
+ * @return the VendorNetworkFunctionsClient object.
+ */
+ VendorNetworkFunctionsClient getVendorNetworkFunctions();
+
+ /**
+ * Gets the RoleInstancesClient object to access its operations.
+ *
+ * @return the RoleInstancesClient object.
+ */
+ RoleInstancesClient getRoleInstances();
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionVendorSkusClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionVendorSkusClient.java
new file mode 100644
index 000000000000..6c2238641de2
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionVendorSkusClient.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.hybridnetwork.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.NetworkFunctionSkuRoleDetailsInner;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.SkuOverviewInner;
+
+/** An instance of this class provides access to all the operations defined in NetworkFunctionVendorSkusClient. */
+public interface NetworkFunctionVendorSkusClient {
+ /**
+ * Lists all network function vendor sku details in a vendor.
+ *
+ * @param vendorName The name of the network function vendor.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 available network function skus.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVendor(String vendorName);
+
+ /**
+ * Lists all network function vendor sku details in a vendor.
+ *
+ * @param vendorName The name of the network function vendor.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 available network function skus.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByVendor(String vendorName, Context context);
+
+ /**
+ * Lists information about network function vendor sku details.
+ *
+ * @param vendorName The name of the network function vendor.
+ * @param vendorSkuName The name of the network function sku.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network function sku details.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listBySku(String vendorName, String vendorSkuName);
+
+ /**
+ * Lists information about network function vendor sku details.
+ *
+ * @param vendorName The name of the network function vendor.
+ * @param vendorSkuName The name of the network function sku.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network function sku details.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listBySku(
+ String vendorName, String vendorSkuName, Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionVendorsClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionVendorsClient.java
new file mode 100644
index 000000000000..afb4d4a622c7
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionVendorsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.NetworkFunctionVendorInner;
+
+/** An instance of this class provides access to all the operations defined in NetworkFunctionVendorsClient. */
+public interface NetworkFunctionVendorsClient {
+ /**
+ * Lists all the available vendor and sku information.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network function vendor list result.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the available vendor and sku information.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network function vendor list result.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionsClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionsClient.java
new file mode 100644
index 000000000000..9f2d8f1dc196
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/NetworkFunctionsClient.java
@@ -0,0 +1,246 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.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.hybridnetwork.fluent.models.NetworkFunctionInner;
+import com.azure.resourcemanager.hybridnetwork.models.TagsObject;
+
+/** An instance of this class provides access to all the operations defined in NetworkFunctionsClient. */
+public interface NetworkFunctionsClient {
+ /**
+ * Deletes the specified network function resource. This operation can take up to 1 hour to complete. This is
+ * expected service behavior.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName The name of the network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkFunctionName);
+
+ /**
+ * Deletes the specified network function resource. This operation can take up to 1 hour to complete. This is
+ * expected service behavior.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName The name of the network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 networkFunctionName, Context context);
+
+ /**
+ * Deletes the specified network function resource. This operation can take up to 1 hour to complete. This is
+ * expected service behavior.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName The name of the network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 networkFunctionName);
+
+ /**
+ * Deletes the specified network function resource. This operation can take up to 1 hour to complete. This is
+ * expected service behavior.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName The name of the network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 networkFunctionName, Context context);
+
+ /**
+ * Gets information about the specified network function resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName The name of the network function 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 information about the specified network function resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkFunctionInner getByResourceGroup(String resourceGroupName, String networkFunctionName);
+
+ /**
+ * Gets information about the specified network function resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName The name of the network function 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 information about the specified network function resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String networkFunctionName, Context context);
+
+ /**
+ * Creates or updates a network function resource. This operation can take up to 6 hours to complete. This is
+ * expected service behavior.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName Resource name for the network function resource.
+ * @param parameters Parameters supplied in the body to the create or update network function operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return network function resource response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, NetworkFunctionInner> beginCreateOrUpdate(
+ String resourceGroupName, String networkFunctionName, NetworkFunctionInner parameters);
+
+ /**
+ * Creates or updates a network function resource. This operation can take up to 6 hours to complete. This is
+ * expected service behavior.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName Resource name for the network function resource.
+ * @param parameters Parameters supplied in the body to the create or update network function operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return network function resource response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, NetworkFunctionInner> beginCreateOrUpdate(
+ String resourceGroupName, String networkFunctionName, NetworkFunctionInner parameters, Context context);
+
+ /**
+ * Creates or updates a network function resource. This operation can take up to 6 hours to complete. This is
+ * expected service behavior.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName Resource name for the network function resource.
+ * @param parameters Parameters supplied in the body to the create or update network function operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return network function resource response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkFunctionInner createOrUpdate(
+ String resourceGroupName, String networkFunctionName, NetworkFunctionInner parameters);
+
+ /**
+ * Creates or updates a network function resource. This operation can take up to 6 hours to complete. This is
+ * expected service behavior.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName Resource name for the network function resource.
+ * @param parameters Parameters supplied in the body to the create or update network function operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return network function resource response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkFunctionInner createOrUpdate(
+ String resourceGroupName, String networkFunctionName, NetworkFunctionInner parameters, Context context);
+
+ /**
+ * Updates the tags for the network function resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName Resource name for the network function resource.
+ * @param parameters Parameters supplied to the update network function tags operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return network function resource response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkFunctionInner updateTags(String resourceGroupName, String networkFunctionName, TagsObject parameters);
+
+ /**
+ * Updates the tags for the network function resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param networkFunctionName Resource name for the network function resource.
+ * @param parameters Parameters supplied to the update network function tags operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return network function resource response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateTagsWithResponse(
+ String resourceGroupName, String networkFunctionName, TagsObject parameters, Context context);
+
+ /**
+ * Lists all the network functions in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for network function API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the network functions in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for network function API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists all the network function resources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for network function API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all the network function resources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for network function API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/OperationsClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/OperationsClient.java
new file mode 100644
index 000000000000..68853e606ef3
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Gets a list of the operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of the operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets a list of the operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of the operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/RoleInstancesClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/RoleInstancesClient.java
new file mode 100644
index 000000000000..215dc4ececaf
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/RoleInstancesClient.java
@@ -0,0 +1,264 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.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.hybridnetwork.fluent.models.RoleInstanceInner;
+
+/** An instance of this class provides access to all the operations defined in RoleInstancesClient. */
+public interface RoleInstancesClient {
+ /**
+ * Starts a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginStart(
+ String locationName, String vendorName, String serviceKey, String roleInstanceName);
+
+ /**
+ * Starts a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginStart(
+ String locationName, String vendorName, String serviceKey, String roleInstanceName, Context context);
+
+ /**
+ * Starts a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String locationName, String vendorName, String serviceKey, String roleInstanceName);
+
+ /**
+ * Starts a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String locationName, String vendorName, String serviceKey, String roleInstanceName, Context context);
+
+ /**
+ * Powers off (stop) a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginStop(
+ String locationName, String vendorName, String serviceKey, String roleInstanceName);
+
+ /**
+ * Powers off (stop) a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginStop(
+ String locationName, String vendorName, String serviceKey, String roleInstanceName, Context context);
+
+ /**
+ * Powers off (stop) a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String locationName, String vendorName, String serviceKey, String roleInstanceName);
+
+ /**
+ * Powers off (stop) a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String locationName, String vendorName, String serviceKey, String roleInstanceName, Context context);
+
+ /**
+ * Restarts a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginRestart(
+ String locationName, String vendorName, String serviceKey, String roleInstanceName);
+
+ /**
+ * Restarts a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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> beginRestart(
+ String locationName, String vendorName, String serviceKey, String roleInstanceName, Context context);
+
+ /**
+ * Restarts a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void restart(String locationName, String vendorName, String serviceKey, String roleInstanceName);
+
+ /**
+ * Restarts a role instance of a vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void restart(String locationName, String vendorName, String serviceKey, String roleInstanceName, Context context);
+
+ /**
+ * Gets the information of role instance of vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the information of role instance of vendor network function.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleInstanceInner get(String locationName, String vendorName, String serviceKey, String roleInstanceName);
+
+ /**
+ * Gets the information of role instance of vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param roleInstanceName The name of the role instance of the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the information of role instance of vendor network function.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String locationName, String vendorName, String serviceKey, String roleInstanceName, Context context);
+
+ /**
+ * Lists the information of role instances of vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of role instances of vendor network function.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String locationName, String vendorName, String serviceKey);
+
+ /**
+ * Lists the information of role instances of vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of role instances of vendor network function.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String locationName, String vendorName, String serviceKey, Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorNetworkFunctionsClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorNetworkFunctionsClient.java
new file mode 100644
index 000000000000..86065f5e7395
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorNetworkFunctionsClient.java
@@ -0,0 +1,157 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.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.hybridnetwork.fluent.models.VendorNetworkFunctionInner;
+
+/** An instance of this class provides access to all the operations defined in VendorNetworkFunctionsClient. */
+public interface VendorNetworkFunctionsClient {
+ /**
+ * Gets information about the specified vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by the customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information about the specified vendor network function.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorNetworkFunctionInner get(String locationName, String vendorName, String serviceKey);
+
+ /**
+ * Gets information about the specified vendor network function.
+ *
+ * @param locationName The Azure region where the network function resource was created by the customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information about the specified vendor network function.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String locationName, String vendorName, String serviceKey, Context context);
+
+ /**
+ * Creates or updates a vendor network function. This operation can take up to 6 hours to complete. This is expected
+ * service behavior.
+ *
+ * @param locationName The Azure region where the network function resource was created by the customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param parameters Parameters supplied to the create or update vendor network function operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor network function sub resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VendorNetworkFunctionInner> beginCreateOrUpdate(
+ String locationName, String vendorName, String serviceKey, VendorNetworkFunctionInner parameters);
+
+ /**
+ * Creates or updates a vendor network function. This operation can take up to 6 hours to complete. This is expected
+ * service behavior.
+ *
+ * @param locationName The Azure region where the network function resource was created by the customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param parameters Parameters supplied to the create or update vendor network function operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor network function sub resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VendorNetworkFunctionInner> beginCreateOrUpdate(
+ String locationName,
+ String vendorName,
+ String serviceKey,
+ VendorNetworkFunctionInner parameters,
+ Context context);
+
+ /**
+ * Creates or updates a vendor network function. This operation can take up to 6 hours to complete. This is expected
+ * service behavior.
+ *
+ * @param locationName The Azure region where the network function resource was created by the customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param parameters Parameters supplied to the create or update vendor network function operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor network function sub resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorNetworkFunctionInner createOrUpdate(
+ String locationName, String vendorName, String serviceKey, VendorNetworkFunctionInner parameters);
+
+ /**
+ * Creates or updates a vendor network function. This operation can take up to 6 hours to complete. This is expected
+ * service behavior.
+ *
+ * @param locationName The Azure region where the network function resource was created by the customer.
+ * @param vendorName The name of the vendor.
+ * @param serviceKey The GUID for the vendor network function.
+ * @param parameters Parameters supplied to the create or update vendor network function operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor network function sub resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorNetworkFunctionInner createOrUpdate(
+ String locationName,
+ String vendorName,
+ String serviceKey,
+ VendorNetworkFunctionInner parameters,
+ Context context);
+
+ /**
+ * Lists all the vendor network function sub resources in an Azure region, filtered by skuType, skuName,
+ * vendorProvisioningState.
+ *
+ * @param locationName The Azure region where the network function resource was created by the customer.
+ * @param vendorName The name of the vendor.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for vendors API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String locationName, String vendorName);
+
+ /**
+ * Lists all the vendor network function sub resources in an Azure region, filtered by skuType, skuName,
+ * vendorProvisioningState.
+ *
+ * @param locationName The Azure region where the network function resource was created by the customer.
+ * @param vendorName The name of the vendor.
+ * @param filter The filter to apply on the operation. The properties you can use for eq (equals) are: skuType,
+ * skuName and vendorProvisioningState.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for vendors API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String locationName, String vendorName, String filter, Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorSkuPreviewsClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorSkuPreviewsClient.java
new file mode 100644
index 000000000000..b75ad8410171
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorSkuPreviewsClient.java
@@ -0,0 +1,205 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.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.hybridnetwork.fluent.models.PreviewSubscriptionInner;
+
+/** An instance of this class provides access to all the operations defined in VendorSkuPreviewsClient. */
+public interface VendorSkuPreviewsClient {
+ /**
+ * Lists all the preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 customer subscriptions which can use a sku.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vendorName, String skuName);
+
+ /**
+ * Lists all the preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 customer subscriptions which can use a sku.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vendorName, String skuName, Context context);
+
+ /**
+ * Creates or updates preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @param parameters Parameters supplied to the create or update vendor preview subscription operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer subscription which can use a sku.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, PreviewSubscriptionInner> beginCreateOrUpdate(
+ String vendorName, String skuName, String previewSubscription, PreviewSubscriptionInner parameters);
+
+ /**
+ * Creates or updates preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @param parameters Parameters supplied to the create or update vendor preview subscription operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer subscription which can use a sku.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, PreviewSubscriptionInner> beginCreateOrUpdate(
+ String vendorName,
+ String skuName,
+ String previewSubscription,
+ PreviewSubscriptionInner parameters,
+ Context context);
+
+ /**
+ * Creates or updates preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @param parameters Parameters supplied to the create or update vendor preview subscription operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer subscription which can use a sku.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PreviewSubscriptionInner createOrUpdate(
+ String vendorName, String skuName, String previewSubscription, PreviewSubscriptionInner parameters);
+
+ /**
+ * Creates or updates preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @param parameters Parameters supplied to the create or update vendor preview subscription operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer subscription which can use a sku.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PreviewSubscriptionInner createOrUpdate(
+ String vendorName,
+ String skuName,
+ String previewSubscription,
+ PreviewSubscriptionInner parameters,
+ Context context);
+
+ /**
+ * Gets the preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the preview information of a vendor sku.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PreviewSubscriptionInner get(String vendorName, String skuName, String previewSubscription);
+
+ /**
+ * Gets the preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the preview information of a vendor sku.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vendorName, String skuName, String previewSubscription, Context context);
+
+ /**
+ * Deletes the preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 vendorName, String skuName, String previewSubscription);
+
+ /**
+ * Deletes the preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 vendorName, String skuName, String previewSubscription, Context context);
+
+ /**
+ * Deletes the preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vendorName, String skuName, String previewSubscription);
+
+ /**
+ * Deletes the preview information of a vendor sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the vendor sku.
+ * @param previewSubscription Preview subscription ID.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vendorName, String skuName, String previewSubscription, Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorSkusClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorSkusClient.java
new file mode 100644
index 000000000000..c62638145ed2
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorSkusClient.java
@@ -0,0 +1,181 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.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.hybridnetwork.fluent.models.VendorSkuInner;
+
+/** An instance of this class provides access to all the operations defined in VendorSkusClient. */
+public interface VendorSkusClient {
+ /**
+ * Deletes the specified sku. This operation can take up to 2 hours to complete. This is expected service behavior.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 vendorName, String skuName);
+
+ /**
+ * Deletes the specified sku. This operation can take up to 2 hours to complete. This is expected service behavior.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 vendorName, String skuName, Context context);
+
+ /**
+ * Deletes the specified sku. This operation can take up to 2 hours to complete. This is expected service behavior.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vendorName, String skuName);
+
+ /**
+ * Deletes the specified sku. This operation can take up to 2 hours to complete. This is expected service behavior.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vendorName, String skuName, Context context);
+
+ /**
+ * Gets information about the specified sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information about the specified sku.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorSkuInner get(String vendorName, String skuName);
+
+ /**
+ * Gets information about the specified sku.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information about the specified sku.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String vendorName, String skuName, Context context);
+
+ /**
+ * Creates or updates a sku. This operation can take up to 2 hours to complete. This is expected service behavior.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @param parameters Parameters supplied to the create or update sku operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sku sub resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VendorSkuInner> beginCreateOrUpdate(
+ String vendorName, String skuName, VendorSkuInner parameters);
+
+ /**
+ * Creates or updates a sku. This operation can take up to 2 hours to complete. This is expected service behavior.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @param parameters Parameters supplied to the create or update sku operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sku sub resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VendorSkuInner> beginCreateOrUpdate(
+ String vendorName, String skuName, VendorSkuInner parameters, Context context);
+
+ /**
+ * Creates or updates a sku. This operation can take up to 2 hours to complete. This is expected service behavior.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @param parameters Parameters supplied to the create or update sku operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sku sub resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorSkuInner createOrUpdate(String vendorName, String skuName, VendorSkuInner parameters);
+
+ /**
+ * Creates or updates a sku. This operation can take up to 2 hours to complete. This is expected service behavior.
+ *
+ * @param vendorName The name of the vendor.
+ * @param skuName The name of the sku.
+ * @param parameters Parameters supplied to the create or update sku operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return sku sub resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorSkuInner createOrUpdate(String vendorName, String skuName, VendorSkuInner parameters, Context context);
+
+ /**
+ * Lists all the skus of a vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for list vendor sku API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vendorName);
+
+ /**
+ * Lists all the skus of a vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for list vendor sku API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vendorName, Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorsClient.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorsClient.java
new file mode 100644
index 000000000000..f453b7bcdf7c
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/VendorsClient.java
@@ -0,0 +1,179 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.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.hybridnetwork.fluent.models.VendorInner;
+
+/** An instance of this class provides access to all the operations defined in VendorsClient. */
+public interface VendorsClient {
+ /**
+ * Deletes the specified vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 vendorName);
+
+ /**
+ * Deletes the specified vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 vendorName, Context context);
+
+ /**
+ * Deletes the specified vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vendorName);
+
+ /**
+ * Deletes the specified vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 vendorName, Context context);
+
+ /**
+ * Gets information about the specified vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information about the specified vendor.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorInner get(String vendorName);
+
+ /**
+ * Gets information about the specified vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information about the specified vendor.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String vendorName, Context context);
+
+ /**
+ * Creates or updates a vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @param parameters Parameters supplied to the create vendor operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VendorInner> beginCreateOrUpdate(String vendorName, VendorInner parameters);
+
+ /**
+ * Creates or updates a vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @param parameters Parameters supplied to the create vendor operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VendorInner> beginCreateOrUpdate(
+ String vendorName, VendorInner parameters, Context context);
+
+ /**
+ * Creates or updates a vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @param parameters Parameters supplied to the create vendor operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorInner createOrUpdate(String vendorName, VendorInner parameters);
+
+ /**
+ * Creates or updates a vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorInner createOrUpdate(String vendorName);
+
+ /**
+ * Creates or updates a vendor.
+ *
+ * @param vendorName The name of the vendor.
+ * @param parameters Parameters supplied to the create vendor operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vendor resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VendorInner createOrUpdate(String vendorName, VendorInner parameters, Context context);
+
+ /**
+ * Lists all the vendors in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for vendors API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the vendors in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for vendors API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/DeviceInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/DeviceInner.java
new file mode 100644
index 000000000000..00752f0c65d0
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/DeviceInner.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.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SubResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.ProvisioningState;
+import com.azure.resourcemanager.hybridnetwork.models.Status;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Device resource. */
+@JsonFlatten
+@Fluent
+public class DeviceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DeviceInner.class);
+
+ /*
+ * The system meta data relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The current device status.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private Status status;
+
+ /*
+ * The provisioning state of the device resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The reference to the Azure stack edge device. Once set, it cannot be
+ * updated.
+ */
+ @JsonProperty(value = "properties.azureStackEdge")
+ private SubResource azureStackEdge;
+
+ /*
+ * The list of network functions deployed on the device.
+ */
+ @JsonProperty(value = "properties.networkFunctions", access = JsonProperty.Access.WRITE_ONLY)
+ private List networkFunctions;
+
+ /**
+ * Get the systemData property: The system meta data relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the status property: The current device status.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the device resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the azureStackEdge property: The reference to the Azure stack edge device. Once set, it cannot be updated.
+ *
+ * @return the azureStackEdge value.
+ */
+ public SubResource azureStackEdge() {
+ return this.azureStackEdge;
+ }
+
+ /**
+ * Set the azureStackEdge property: The reference to the Azure stack edge device. Once set, it cannot be updated.
+ *
+ * @param azureStackEdge the azureStackEdge value to set.
+ * @return the DeviceInner object itself.
+ */
+ public DeviceInner withAzureStackEdge(SubResource azureStackEdge) {
+ this.azureStackEdge = azureStackEdge;
+ return this;
+ }
+
+ /**
+ * Get the networkFunctions property: The list of network functions deployed on the device.
+ *
+ * @return the networkFunctions value.
+ */
+ public List networkFunctions() {
+ return this.networkFunctions;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DeviceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DeviceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/DeviceRegistrationKeyInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/DeviceRegistrationKeyInner.java
new file mode 100644
index 000000000000..c057d3f4d5cd
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/DeviceRegistrationKeyInner.java
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The device registration key. */
+@Immutable
+public final class DeviceRegistrationKeyInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DeviceRegistrationKeyInner.class);
+
+ /*
+ * The registration key for the device.
+ */
+ @JsonProperty(value = "registrationKey", access = JsonProperty.Access.WRITE_ONLY)
+ private String registrationKey;
+
+ /**
+ * Get the registrationKey property: The registration key for the device.
+ *
+ * @return the registrationKey value.
+ */
+ public String registrationKey() {
+ return this.registrationKey;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionInner.java
new file mode 100644
index 000000000000..75f6d233a1c9
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionInner.java
@@ -0,0 +1,329 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SubResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.NetworkFunctionUserConfiguration;
+import com.azure.resourcemanager.hybridnetwork.models.ProvisioningState;
+import com.azure.resourcemanager.hybridnetwork.models.SkuType;
+import com.azure.resourcemanager.hybridnetwork.models.VendorProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Network function resource response. */
+@JsonFlatten
+@Fluent
+public class NetworkFunctionInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NetworkFunctionInner.class);
+
+ /*
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /*
+ * The system meta data relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The provisioning state of the network function resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The reference to the device resource. Once set, it cannot be updated.
+ */
+ @JsonProperty(value = "properties.device")
+ private SubResource device;
+
+ /*
+ * The sku name for the network function. Once set, it cannot be updated.
+ */
+ @JsonProperty(value = "properties.skuName")
+ private String skuName;
+
+ /*
+ * The sku type for the network function.
+ */
+ @JsonProperty(value = "properties.skuType", access = JsonProperty.Access.WRITE_ONLY)
+ private SkuType skuType;
+
+ /*
+ * The vendor name for the network function. Once set, it cannot be
+ * updated.
+ */
+ @JsonProperty(value = "properties.vendorName")
+ private String vendorName;
+
+ /*
+ * The service key for the network function resource.
+ */
+ @JsonProperty(value = "properties.serviceKey", access = JsonProperty.Access.WRITE_ONLY)
+ private String serviceKey;
+
+ /*
+ * The vendor provisioning state for the network function resource.
+ */
+ @JsonProperty(value = "properties.vendorProvisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private VendorProvisioningState vendorProvisioningState;
+
+ /*
+ * The resource URI of the managed application.
+ */
+ @JsonProperty(value = "properties.managedApplication", access = JsonProperty.Access.WRITE_ONLY)
+ private SubResource managedApplication;
+
+ /*
+ * The parameters for the managed application.
+ */
+ @JsonProperty(value = "properties.managedApplicationParameters")
+ private Object managedApplicationParameters;
+
+ /*
+ * The network function container configurations from the user.
+ */
+ @JsonProperty(value = "properties.networkFunctionContainerConfigurations")
+ private Object networkFunctionContainerConfigurations;
+
+ /*
+ * The network function configurations from the user.
+ */
+ @JsonProperty(value = "properties.networkFunctionUserConfigurations")
+ private List networkFunctionUserConfigurations;
+
+ /**
+ * Get the etag property: A unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: A unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set.
+ * @return the NetworkFunctionInner object itself.
+ */
+ public NetworkFunctionInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system meta data relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the network function resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the device property: The reference to the device resource. Once set, it cannot be updated.
+ *
+ * @return the device value.
+ */
+ public SubResource device() {
+ return this.device;
+ }
+
+ /**
+ * Set the device property: The reference to the device resource. Once set, it cannot be updated.
+ *
+ * @param device the device value to set.
+ * @return the NetworkFunctionInner object itself.
+ */
+ public NetworkFunctionInner withDevice(SubResource device) {
+ this.device = device;
+ return this;
+ }
+
+ /**
+ * Get the skuName property: The sku name for the network function. Once set, it cannot be updated.
+ *
+ * @return the skuName value.
+ */
+ public String skuName() {
+ return this.skuName;
+ }
+
+ /**
+ * Set the skuName property: The sku name for the network function. Once set, it cannot be updated.
+ *
+ * @param skuName the skuName value to set.
+ * @return the NetworkFunctionInner object itself.
+ */
+ public NetworkFunctionInner withSkuName(String skuName) {
+ this.skuName = skuName;
+ return this;
+ }
+
+ /**
+ * Get the skuType property: The sku type for the network function.
+ *
+ * @return the skuType value.
+ */
+ public SkuType skuType() {
+ return this.skuType;
+ }
+
+ /**
+ * Get the vendorName property: The vendor name for the network function. Once set, it cannot be updated.
+ *
+ * @return the vendorName value.
+ */
+ public String vendorName() {
+ return this.vendorName;
+ }
+
+ /**
+ * Set the vendorName property: The vendor name for the network function. Once set, it cannot be updated.
+ *
+ * @param vendorName the vendorName value to set.
+ * @return the NetworkFunctionInner object itself.
+ */
+ public NetworkFunctionInner withVendorName(String vendorName) {
+ this.vendorName = vendorName;
+ return this;
+ }
+
+ /**
+ * Get the serviceKey property: The service key for the network function resource.
+ *
+ * @return the serviceKey value.
+ */
+ public String serviceKey() {
+ return this.serviceKey;
+ }
+
+ /**
+ * Get the vendorProvisioningState property: The vendor provisioning state for the network function resource.
+ *
+ * @return the vendorProvisioningState value.
+ */
+ public VendorProvisioningState vendorProvisioningState() {
+ return this.vendorProvisioningState;
+ }
+
+ /**
+ * Get the managedApplication property: The resource URI of the managed application.
+ *
+ * @return the managedApplication value.
+ */
+ public SubResource managedApplication() {
+ return this.managedApplication;
+ }
+
+ /**
+ * Get the managedApplicationParameters property: The parameters for the managed application.
+ *
+ * @return the managedApplicationParameters value.
+ */
+ public Object managedApplicationParameters() {
+ return this.managedApplicationParameters;
+ }
+
+ /**
+ * Set the managedApplicationParameters property: The parameters for the managed application.
+ *
+ * @param managedApplicationParameters the managedApplicationParameters value to set.
+ * @return the NetworkFunctionInner object itself.
+ */
+ public NetworkFunctionInner withManagedApplicationParameters(Object managedApplicationParameters) {
+ this.managedApplicationParameters = managedApplicationParameters;
+ return this;
+ }
+
+ /**
+ * Get the networkFunctionContainerConfigurations property: The network function container configurations from the
+ * user.
+ *
+ * @return the networkFunctionContainerConfigurations value.
+ */
+ public Object networkFunctionContainerConfigurations() {
+ return this.networkFunctionContainerConfigurations;
+ }
+
+ /**
+ * Set the networkFunctionContainerConfigurations property: The network function container configurations from the
+ * user.
+ *
+ * @param networkFunctionContainerConfigurations the networkFunctionContainerConfigurations value to set.
+ * @return the NetworkFunctionInner object itself.
+ */
+ public NetworkFunctionInner withNetworkFunctionContainerConfigurations(
+ Object networkFunctionContainerConfigurations) {
+ this.networkFunctionContainerConfigurations = networkFunctionContainerConfigurations;
+ return this;
+ }
+
+ /**
+ * Get the networkFunctionUserConfigurations property: The network function configurations from the user.
+ *
+ * @return the networkFunctionUserConfigurations value.
+ */
+ public List networkFunctionUserConfigurations() {
+ return this.networkFunctionUserConfigurations;
+ }
+
+ /**
+ * Set the networkFunctionUserConfigurations property: The network function configurations from the user.
+ *
+ * @param networkFunctionUserConfigurations the networkFunctionUserConfigurations value to set.
+ * @return the NetworkFunctionInner object itself.
+ */
+ public NetworkFunctionInner withNetworkFunctionUserConfigurations(
+ List networkFunctionUserConfigurations) {
+ this.networkFunctionUserConfigurations = networkFunctionUserConfigurations;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkFunctionInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkFunctionInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (networkFunctionUserConfigurations() != null) {
+ networkFunctionUserConfigurations().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionSkuRoleDetailsInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionSkuRoleDetailsInner.java
new file mode 100644
index 000000000000..d01c4fa53faa
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionSkuRoleDetailsInner.java
@@ -0,0 +1,133 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.NetworkInterface;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The network function user configuration. */
+@Fluent
+public final class NetworkFunctionSkuRoleDetailsInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NetworkFunctionSkuRoleDetailsInner.class);
+
+ /*
+ * The name of the network function role.
+ */
+ @JsonProperty(value = "roleName")
+ private String roleName;
+
+ /*
+ * The user data template for customers.
+ */
+ @JsonProperty(value = "userDataTemplate")
+ private Object userDataTemplate;
+
+ /*
+ * The user parameters for customers.
+ */
+ @JsonProperty(value = "userDataParameters")
+ private Object userDataParameters;
+
+ /*
+ * The network interface configuration.
+ */
+ @JsonProperty(value = "networkInterfaces")
+ private List networkInterfaces;
+
+ /**
+ * Get the roleName property: The name of the network function role.
+ *
+ * @return the roleName value.
+ */
+ public String roleName() {
+ return this.roleName;
+ }
+
+ /**
+ * Set the roleName property: The name of the network function role.
+ *
+ * @param roleName the roleName value to set.
+ * @return the NetworkFunctionSkuRoleDetailsInner object itself.
+ */
+ public NetworkFunctionSkuRoleDetailsInner withRoleName(String roleName) {
+ this.roleName = roleName;
+ return this;
+ }
+
+ /**
+ * Get the userDataTemplate property: The user data template for customers.
+ *
+ * @return the userDataTemplate value.
+ */
+ public Object userDataTemplate() {
+ return this.userDataTemplate;
+ }
+
+ /**
+ * Set the userDataTemplate property: The user data template for customers.
+ *
+ * @param userDataTemplate the userDataTemplate value to set.
+ * @return the NetworkFunctionSkuRoleDetailsInner object itself.
+ */
+ public NetworkFunctionSkuRoleDetailsInner withUserDataTemplate(Object userDataTemplate) {
+ this.userDataTemplate = userDataTemplate;
+ return this;
+ }
+
+ /**
+ * Get the userDataParameters property: The user parameters for customers.
+ *
+ * @return the userDataParameters value.
+ */
+ public Object userDataParameters() {
+ return this.userDataParameters;
+ }
+
+ /**
+ * Set the userDataParameters property: The user parameters for customers.
+ *
+ * @param userDataParameters the userDataParameters value to set.
+ * @return the NetworkFunctionSkuRoleDetailsInner object itself.
+ */
+ public NetworkFunctionSkuRoleDetailsInner withUserDataParameters(Object userDataParameters) {
+ this.userDataParameters = userDataParameters;
+ return this;
+ }
+
+ /**
+ * Get the networkInterfaces property: The network interface configuration.
+ *
+ * @return the networkInterfaces value.
+ */
+ public List networkInterfaces() {
+ return this.networkInterfaces;
+ }
+
+ /**
+ * Set the networkInterfaces property: The network interface configuration.
+ *
+ * @param networkInterfaces the networkInterfaces value to set.
+ * @return the NetworkFunctionSkuRoleDetailsInner object itself.
+ */
+ public NetworkFunctionSkuRoleDetailsInner withNetworkInterfaces(List networkInterfaces) {
+ this.networkInterfaces = networkInterfaces;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (networkInterfaces() != null) {
+ networkInterfaces().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionVendorInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionVendorInner.java
new file mode 100644
index 000000000000..456dae307c6b
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/NetworkFunctionVendorInner.java
@@ -0,0 +1,82 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The network function vendor. */
+@JsonFlatten
+@Fluent
+public class NetworkFunctionVendorInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NetworkFunctionVendorInner.class);
+
+ /*
+ * The network function vendor name.
+ */
+ @JsonProperty(value = "properties.vendorName")
+ private String vendorName;
+
+ /*
+ * The network function sku list.
+ */
+ @JsonProperty(value = "properties.skuList")
+ private List skuList;
+
+ /**
+ * Get the vendorName property: The network function vendor name.
+ *
+ * @return the vendorName value.
+ */
+ public String vendorName() {
+ return this.vendorName;
+ }
+
+ /**
+ * Set the vendorName property: The network function vendor name.
+ *
+ * @param vendorName the vendorName value to set.
+ * @return the NetworkFunctionVendorInner object itself.
+ */
+ public NetworkFunctionVendorInner withVendorName(String vendorName) {
+ this.vendorName = vendorName;
+ return this;
+ }
+
+ /**
+ * Get the skuList property: The network function sku list.
+ *
+ * @return the skuList value.
+ */
+ public List skuList() {
+ return this.skuList;
+ }
+
+ /**
+ * Set the skuList property: The network function sku list.
+ *
+ * @param skuList the skuList value to set.
+ * @return the NetworkFunctionVendorInner object itself.
+ */
+ public NetworkFunctionVendorInner withSkuList(List skuList) {
+ this.skuList = skuList;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (skuList() != null) {
+ skuList().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/OperationInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/OperationInner.java
new file mode 100644
index 000000000000..6b9d203790c9
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/OperationInner.java
@@ -0,0 +1,58 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Object that describes a single Microsoft.HybridNetwork operation. */
+@Immutable
+public final class OperationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationInner.class);
+
+ /*
+ * Operation name: {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The object that represents the operation.
+ */
+ @JsonProperty(value = "display", access = JsonProperty.Access.WRITE_ONLY)
+ private OperationDisplay display;
+
+ /**
+ * Get the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the display property: The object that represents the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/PreviewSubscriptionInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/PreviewSubscriptionInner.java
new file mode 100644
index 000000000000..197ea8e05f94
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/PreviewSubscriptionInner.java
@@ -0,0 +1,59 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Customer subscription which can use a sku. */
+@JsonFlatten
+@Immutable
+public class PreviewSubscriptionInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PreviewSubscriptionInner.class);
+
+ /*
+ * The system meta data relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The provisioning state of the PreviewSubscription resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * Get the systemData property: The system meta data relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the PreviewSubscription resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/RoleInstanceInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/RoleInstanceInner.java
new file mode 100644
index 000000000000..896575ba6b69
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/RoleInstanceInner.java
@@ -0,0 +1,164 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.OperationalState;
+import com.azure.resourcemanager.hybridnetwork.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The role instance sub resource. */
+@JsonFlatten
+@Fluent
+public class RoleInstanceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(RoleInstanceInner.class);
+
+ /*
+ * The role instance name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * The ARM ID of the resource.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * The type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /*
+ * The system meta data relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The provisioning state of the RoleInstance resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The operational state of the role instance.
+ */
+ @JsonProperty(value = "properties.operationalState")
+ private OperationalState operationalState;
+
+ /**
+ * Get the name property: The role instance name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The role instance name.
+ *
+ * @param name the name value to set.
+ * @return the RoleInstanceInner object itself.
+ */
+ public RoleInstanceInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the id property: The ARM ID of the resource.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: The ARM ID of the resource.
+ *
+ * @param id the id value to set.
+ * @return the RoleInstanceInner object itself.
+ */
+ public RoleInstanceInner withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The type of the resource.
+ *
+ * @param type the type value to set.
+ * @return the RoleInstanceInner object itself.
+ */
+ public RoleInstanceInner withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The system meta data relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the RoleInstance resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the operationalState property: The operational state of the role instance.
+ *
+ * @return the operationalState value.
+ */
+ public OperationalState operationalState() {
+ return this.operationalState;
+ }
+
+ /**
+ * Set the operationalState property: The operational state of the role instance.
+ *
+ * @param operationalState the operationalState value to set.
+ * @return the RoleInstanceInner object itself.
+ */
+ public RoleInstanceInner withOperationalState(OperationalState operationalState) {
+ this.operationalState = operationalState;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/SkuOverviewInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/SkuOverviewInner.java
new file mode 100644
index 000000000000..f26c81779ee0
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/SkuOverviewInner.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.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.SkuType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The network function sku overview. */
+@Fluent
+public final class SkuOverviewInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SkuOverviewInner.class);
+
+ /*
+ * The vendor sku name.
+ */
+ @JsonProperty(value = "skuName")
+ private String skuName;
+
+ /*
+ * The vendor sku type.
+ */
+ @JsonProperty(value = "skuType")
+ private SkuType skuType;
+
+ /**
+ * Get the skuName property: The vendor sku name.
+ *
+ * @return the skuName value.
+ */
+ public String skuName() {
+ return this.skuName;
+ }
+
+ /**
+ * Set the skuName property: The vendor sku name.
+ *
+ * @param skuName the skuName value to set.
+ * @return the SkuOverviewInner object itself.
+ */
+ public SkuOverviewInner withSkuName(String skuName) {
+ this.skuName = skuName;
+ return this;
+ }
+
+ /**
+ * Get the skuType property: The vendor sku type.
+ *
+ * @return the skuType value.
+ */
+ public SkuType skuType() {
+ return this.skuType;
+ }
+
+ /**
+ * Set the skuType property: The vendor sku type.
+ *
+ * @param skuType the skuType value to set.
+ * @return the SkuOverviewInner object itself.
+ */
+ public SkuOverviewInner withSkuType(SkuType skuType) {
+ this.skuType = skuType;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorInner.java
new file mode 100644
index 000000000000..81062291108c
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorInner.java
@@ -0,0 +1,76 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SubResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Vendor resource. */
+@JsonFlatten
+@Immutable
+public class VendorInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(VendorInner.class);
+
+ /*
+ * The system meta data relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The provisioning state of the vendor resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * A list of IDs of the vendor skus offered by the vendor.
+ */
+ @JsonProperty(value = "properties.skus", access = JsonProperty.Access.WRITE_ONLY)
+ private List skus;
+
+ /**
+ * Get the systemData property: The system meta data relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the vendor resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the skus property: A list of IDs of the vendor skus offered by the vendor.
+ *
+ * @return the skus value.
+ */
+ public List skus() {
+ return this.skus;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorNetworkFunctionInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorNetworkFunctionInner.java
new file mode 100644
index 000000000000..c5573a2e473f
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorNetworkFunctionInner.java
@@ -0,0 +1,151 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.NetworkFunctionVendorConfiguration;
+import com.azure.resourcemanager.hybridnetwork.models.ProvisioningState;
+import com.azure.resourcemanager.hybridnetwork.models.SkuType;
+import com.azure.resourcemanager.hybridnetwork.models.VendorProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Vendor network function sub resource. */
+@JsonFlatten
+@Fluent
+public class VendorNetworkFunctionInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(VendorNetworkFunctionInner.class);
+
+ /*
+ * The system meta data relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The provisioning state of the vendor network function sub resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The vendor controlled provisioning state of the vendor network function.
+ */
+ @JsonProperty(value = "properties.vendorProvisioningState")
+ private VendorProvisioningState vendorProvisioningState;
+
+ /*
+ * The name of the sku. Once set, it cannot be updated.
+ */
+ @JsonProperty(value = "properties.skuName", access = JsonProperty.Access.WRITE_ONLY)
+ private String skuName;
+
+ /*
+ * The sku type.
+ */
+ @JsonProperty(value = "properties.skuType", access = JsonProperty.Access.WRITE_ONLY)
+ private SkuType skuType;
+
+ /*
+ * An array of network function vendor configurations.
+ */
+ @JsonProperty(value = "properties.networkFunctionVendorConfigurations")
+ private List networkFunctionVendorConfigurations;
+
+ /**
+ * Get the systemData property: The system meta data relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the vendor network function sub resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the vendorProvisioningState property: The vendor controlled provisioning state of the vendor network
+ * function.
+ *
+ * @return the vendorProvisioningState value.
+ */
+ public VendorProvisioningState vendorProvisioningState() {
+ return this.vendorProvisioningState;
+ }
+
+ /**
+ * Set the vendorProvisioningState property: The vendor controlled provisioning state of the vendor network
+ * function.
+ *
+ * @param vendorProvisioningState the vendorProvisioningState value to set.
+ * @return the VendorNetworkFunctionInner object itself.
+ */
+ public VendorNetworkFunctionInner withVendorProvisioningState(VendorProvisioningState vendorProvisioningState) {
+ this.vendorProvisioningState = vendorProvisioningState;
+ return this;
+ }
+
+ /**
+ * Get the skuName property: The name of the sku. Once set, it cannot be updated.
+ *
+ * @return the skuName value.
+ */
+ public String skuName() {
+ return this.skuName;
+ }
+
+ /**
+ * Get the skuType property: The sku type.
+ *
+ * @return the skuType value.
+ */
+ public SkuType skuType() {
+ return this.skuType;
+ }
+
+ /**
+ * Get the networkFunctionVendorConfigurations property: An array of network function vendor configurations.
+ *
+ * @return the networkFunctionVendorConfigurations value.
+ */
+ public List networkFunctionVendorConfigurations() {
+ return this.networkFunctionVendorConfigurations;
+ }
+
+ /**
+ * Set the networkFunctionVendorConfigurations property: An array of network function vendor configurations.
+ *
+ * @param networkFunctionVendorConfigurations the networkFunctionVendorConfigurations value to set.
+ * @return the VendorNetworkFunctionInner object itself.
+ */
+ public VendorNetworkFunctionInner withNetworkFunctionVendorConfigurations(
+ List networkFunctionVendorConfigurations) {
+ this.networkFunctionVendorConfigurations = networkFunctionVendorConfigurations;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (networkFunctionVendorConfigurations() != null) {
+ networkFunctionVendorConfigurations().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorSkuInner.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorSkuInner.java
new file mode 100644
index 000000000000..241325317db6
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/VendorSkuInner.java
@@ -0,0 +1,250 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.hybridnetwork.models.NetworkFunctionTemplate;
+import com.azure.resourcemanager.hybridnetwork.models.NetworkFunctionType;
+import com.azure.resourcemanager.hybridnetwork.models.ProvisioningState;
+import com.azure.resourcemanager.hybridnetwork.models.SkuDeploymentMode;
+import com.azure.resourcemanager.hybridnetwork.models.SkuType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Sku sub resource. */
+@JsonFlatten
+@Fluent
+public class VendorSkuInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(VendorSkuInner.class);
+
+ /*
+ * The system meta data relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The provisioning state of the vendor sku sub resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The sku type.
+ */
+ @JsonProperty(value = "properties.skuType")
+ private SkuType skuType;
+
+ /*
+ * The sku deployment mode.
+ */
+ @JsonProperty(value = "properties.deploymentMode")
+ private SkuDeploymentMode deploymentMode;
+
+ /*
+ * The network function type.
+ */
+ @JsonProperty(value = "properties.networkFunctionType")
+ private NetworkFunctionType networkFunctionType;
+
+ /*
+ * Indicates if the vendor sku is in preview mode.
+ */
+ @JsonProperty(value = "properties.preview")
+ private Boolean preview;
+
+ /*
+ * The parameters for the managed application to be supplied by the vendor.
+ */
+ @JsonProperty(value = "properties.managedApplicationParameters")
+ private Object managedApplicationParameters;
+
+ /*
+ * The template for the managed application deployment.
+ */
+ @JsonProperty(value = "properties.managedApplicationTemplate")
+ private Object managedApplicationTemplate;
+
+ /*
+ * The template definition of the network function.
+ */
+ @JsonProperty(value = "properties.networkFunctionTemplate")
+ private NetworkFunctionTemplate networkFunctionTemplate;
+
+ /**
+ * Get the systemData property: The system meta data relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the vendor sku sub resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the skuType property: The sku type.
+ *
+ * @return the skuType value.
+ */
+ public SkuType skuType() {
+ return this.skuType;
+ }
+
+ /**
+ * Set the skuType property: The sku type.
+ *
+ * @param skuType the skuType value to set.
+ * @return the VendorSkuInner object itself.
+ */
+ public VendorSkuInner withSkuType(SkuType skuType) {
+ this.skuType = skuType;
+ return this;
+ }
+
+ /**
+ * Get the deploymentMode property: The sku deployment mode.
+ *
+ * @return the deploymentMode value.
+ */
+ public SkuDeploymentMode deploymentMode() {
+ return this.deploymentMode;
+ }
+
+ /**
+ * Set the deploymentMode property: The sku deployment mode.
+ *
+ * @param deploymentMode the deploymentMode value to set.
+ * @return the VendorSkuInner object itself.
+ */
+ public VendorSkuInner withDeploymentMode(SkuDeploymentMode deploymentMode) {
+ this.deploymentMode = deploymentMode;
+ return this;
+ }
+
+ /**
+ * Get the networkFunctionType property: The network function type.
+ *
+ * @return the networkFunctionType value.
+ */
+ public NetworkFunctionType networkFunctionType() {
+ return this.networkFunctionType;
+ }
+
+ /**
+ * Set the networkFunctionType property: The network function type.
+ *
+ * @param networkFunctionType the networkFunctionType value to set.
+ * @return the VendorSkuInner object itself.
+ */
+ public VendorSkuInner withNetworkFunctionType(NetworkFunctionType networkFunctionType) {
+ this.networkFunctionType = networkFunctionType;
+ return this;
+ }
+
+ /**
+ * Get the preview property: Indicates if the vendor sku is in preview mode.
+ *
+ * @return the preview value.
+ */
+ public Boolean preview() {
+ return this.preview;
+ }
+
+ /**
+ * Set the preview property: Indicates if the vendor sku is in preview mode.
+ *
+ * @param preview the preview value to set.
+ * @return the VendorSkuInner object itself.
+ */
+ public VendorSkuInner withPreview(Boolean preview) {
+ this.preview = preview;
+ return this;
+ }
+
+ /**
+ * Get the managedApplicationParameters property: The parameters for the managed application to be supplied by the
+ * vendor.
+ *
+ * @return the managedApplicationParameters value.
+ */
+ public Object managedApplicationParameters() {
+ return this.managedApplicationParameters;
+ }
+
+ /**
+ * Set the managedApplicationParameters property: The parameters for the managed application to be supplied by the
+ * vendor.
+ *
+ * @param managedApplicationParameters the managedApplicationParameters value to set.
+ * @return the VendorSkuInner object itself.
+ */
+ public VendorSkuInner withManagedApplicationParameters(Object managedApplicationParameters) {
+ this.managedApplicationParameters = managedApplicationParameters;
+ return this;
+ }
+
+ /**
+ * Get the managedApplicationTemplate property: The template for the managed application deployment.
+ *
+ * @return the managedApplicationTemplate value.
+ */
+ public Object managedApplicationTemplate() {
+ return this.managedApplicationTemplate;
+ }
+
+ /**
+ * Set the managedApplicationTemplate property: The template for the managed application deployment.
+ *
+ * @param managedApplicationTemplate the managedApplicationTemplate value to set.
+ * @return the VendorSkuInner object itself.
+ */
+ public VendorSkuInner withManagedApplicationTemplate(Object managedApplicationTemplate) {
+ this.managedApplicationTemplate = managedApplicationTemplate;
+ return this;
+ }
+
+ /**
+ * Get the networkFunctionTemplate property: The template definition of the network function.
+ *
+ * @return the networkFunctionTemplate value.
+ */
+ public NetworkFunctionTemplate networkFunctionTemplate() {
+ return this.networkFunctionTemplate;
+ }
+
+ /**
+ * Set the networkFunctionTemplate property: The template definition of the network function.
+ *
+ * @param networkFunctionTemplate the networkFunctionTemplate value to set.
+ * @return the VendorSkuInner object itself.
+ */
+ public VendorSkuInner withNetworkFunctionTemplate(NetworkFunctionTemplate networkFunctionTemplate) {
+ this.networkFunctionTemplate = networkFunctionTemplate;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (networkFunctionTemplate() != null) {
+ networkFunctionTemplate().validate();
+ }
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/package-info.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/package-info.java
new file mode 100644
index 000000000000..fb9edc9455d3
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/models/package-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/**
+ * Package containing the inner data models for HybridNetworkManagementClient. The definitions in this swagger
+ * specification will be used to manage the Hybrid Network resources.
+ */
+package com.azure.resourcemanager.hybridnetwork.fluent.models;
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/package-info.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/package-info.java
new file mode 100644
index 000000000000..3ed3babcb945
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/fluent/package-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/**
+ * Package containing the service clients for HybridNetworkManagementClient. The definitions in this swagger
+ * specification will be used to manage the Hybrid Network resources.
+ */
+package com.azure.resourcemanager.hybridnetwork.fluent;
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DeviceImpl.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DeviceImpl.java
new file mode 100644
index 000000000000..c6405efd41c7
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DeviceImpl.java
@@ -0,0 +1,216 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.Region;
+import com.azure.core.management.SubResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.DeviceInner;
+import com.azure.resourcemanager.hybridnetwork.models.Device;
+import com.azure.resourcemanager.hybridnetwork.models.DeviceRegistrationKey;
+import com.azure.resourcemanager.hybridnetwork.models.ProvisioningState;
+import com.azure.resourcemanager.hybridnetwork.models.Status;
+import com.azure.resourcemanager.hybridnetwork.models.TagsObject;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public final class DeviceImpl implements Device, Device.Definition, Device.Update {
+ private DeviceInner innerObject;
+
+ private final com.azure.resourcemanager.hybridnetwork.HybridNetworkManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String location() {
+ return this.innerModel().location();
+ }
+
+ public Map tags() {
+ Map inner = this.innerModel().tags();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public Status status() {
+ return this.innerModel().status();
+ }
+
+ public ProvisioningState provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public SubResource azureStackEdge() {
+ return this.innerModel().azureStackEdge();
+ }
+
+ public List networkFunctions() {
+ List inner = this.innerModel().networkFunctions();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public DeviceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.hybridnetwork.HybridNetworkManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String deviceName;
+
+ private TagsObject updateParameters;
+
+ public DeviceImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public Device create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDevices()
+ .createOrUpdate(resourceGroupName, deviceName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Device create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDevices()
+ .createOrUpdate(resourceGroupName, deviceName, this.innerModel(), context);
+ return this;
+ }
+
+ DeviceImpl(String name, com.azure.resourcemanager.hybridnetwork.HybridNetworkManager serviceManager) {
+ this.innerObject = new DeviceInner();
+ this.serviceManager = serviceManager;
+ this.deviceName = name;
+ }
+
+ public DeviceImpl update() {
+ this.updateParameters = new TagsObject();
+ return this;
+ }
+
+ public Device apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDevices()
+ .updateTagsWithResponse(resourceGroupName, deviceName, updateParameters, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Device apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDevices()
+ .updateTagsWithResponse(resourceGroupName, deviceName, updateParameters, context)
+ .getValue();
+ return this;
+ }
+
+ DeviceImpl(DeviceInner innerObject, com.azure.resourcemanager.hybridnetwork.HybridNetworkManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.deviceName = Utils.getValueFromIdByName(innerObject.id(), "devices");
+ }
+
+ public Device refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDevices()
+ .getByResourceGroupWithResponse(resourceGroupName, deviceName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Device refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDevices()
+ .getByResourceGroupWithResponse(resourceGroupName, deviceName, context)
+ .getValue();
+ return this;
+ }
+
+ public DeviceRegistrationKey listRegistrationKey() {
+ return serviceManager.devices().listRegistrationKey(resourceGroupName, deviceName);
+ }
+
+ public Response listRegistrationKeyWithResponse(Context context) {
+ return serviceManager.devices().listRegistrationKeyWithResponse(resourceGroupName, deviceName, context);
+ }
+
+ public DeviceImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public DeviceImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public DeviceImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.innerModel().withTags(tags);
+ return this;
+ } else {
+ this.updateParameters.withTags(tags);
+ return this;
+ }
+ }
+
+ public DeviceImpl withAzureStackEdge(SubResource azureStackEdge) {
+ this.innerModel().withAzureStackEdge(azureStackEdge);
+ return this;
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DeviceRegistrationKeyImpl.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DeviceRegistrationKeyImpl.java
new file mode 100644
index 000000000000..38444eae51e5
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DeviceRegistrationKeyImpl.java
@@ -0,0 +1,33 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.implementation;
+
+import com.azure.resourcemanager.hybridnetwork.fluent.models.DeviceRegistrationKeyInner;
+import com.azure.resourcemanager.hybridnetwork.models.DeviceRegistrationKey;
+
+public final class DeviceRegistrationKeyImpl implements DeviceRegistrationKey {
+ private DeviceRegistrationKeyInner innerObject;
+
+ private final com.azure.resourcemanager.hybridnetwork.HybridNetworkManager serviceManager;
+
+ DeviceRegistrationKeyImpl(
+ DeviceRegistrationKeyInner innerObject,
+ com.azure.resourcemanager.hybridnetwork.HybridNetworkManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String registrationKey() {
+ return this.innerModel().registrationKey();
+ }
+
+ public DeviceRegistrationKeyInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.hybridnetwork.HybridNetworkManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DevicesClientImpl.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DevicesClientImpl.java
new file mode 100644
index 000000000000..f6e3c19f1d77
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DevicesClientImpl.java
@@ -0,0 +1,1594 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.hybridnetwork.fluent.DevicesClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.DeviceInner;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.DeviceRegistrationKeyInner;
+import com.azure.resourcemanager.hybridnetwork.models.DeviceListResult;
+import com.azure.resourcemanager.hybridnetwork.models.TagsObject;
+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 DevicesClient. */
+public final class DevicesClientImpl implements DevicesClient {
+ private final ClientLogger logger = new ClientLogger(DevicesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final DevicesService service;
+
+ /** The service client containing this operation class. */
+ private final HybridNetworkManagementClientImpl client;
+
+ /**
+ * Initializes an instance of DevicesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ DevicesClientImpl(HybridNetworkManagementClientImpl client) {
+ this.service = RestProxy.create(DevicesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for HybridNetworkManagementClientDevices to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "HybridNetworkManagem")
+ private interface DevicesService {
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridNetwork"
+ + "/devices/{deviceName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("deviceName") String deviceName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridNetwork"
+ + "/devices/{deviceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("deviceName") String deviceName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridNetwork"
+ + "/devices/{deviceName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("deviceName") String deviceName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") DeviceInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridNetwork"
+ + "/devices/{deviceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> updateTags(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("deviceName") String deviceName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") TagsObject parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/devices")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridNetwork"
+ + "/devices")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridNetwork"
+ + "/devices/{deviceName}/listRegistrationKey")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listRegistrationKey(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("deviceName") String deviceName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listBySubscriptionNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroupNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName) {
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, deviceName);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, Context.NONE);
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, deviceName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName) {
+ return beginDeleteAsync(resourceGroupName, deviceName).getSyncPoller();
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName, Context context) {
+ return beginDeleteAsync(resourceGroupName, deviceName, context).getSyncPoller();
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName) {
+ return beginDeleteAsync(resourceGroupName, deviceName).last().flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName, Context context) {
+ return beginDeleteAsync(resourceGroupName, deviceName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName) {
+ deleteAsync(resourceGroupName, deviceName).block();
+ }
+
+ /**
+ * Deletes the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 deviceName, Context context) {
+ deleteAsync(resourceGroupName, deviceName, context).block();
+ }
+
+ /**
+ * Gets information about the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 information about the specified device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String deviceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets information about the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 information about the specified device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String deviceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets information about the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 information about the specified device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByResourceGroupAsync(String resourceGroupName, String deviceName) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, deviceName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets information about the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 information about the specified device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DeviceInner getByResourceGroup(String resourceGroupName, String deviceName) {
+ return getByResourceGroupAsync(resourceGroupName, deviceName).block();
+ }
+
+ /**
+ * Gets information about the specified device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 information about the specified device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String deviceName, Context context) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, deviceName, context).block();
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device 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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String deviceName, DeviceInner parameters) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String deviceName, DeviceInner parameters, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device 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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, DeviceInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String deviceName, DeviceInner parameters) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, deviceName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), DeviceInner.class, DeviceInner.class, Context.NONE);
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, DeviceInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String deviceName, DeviceInner parameters, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, deviceName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), DeviceInner.class, DeviceInner.class, context);
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device 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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, DeviceInner> beginCreateOrUpdate(
+ String resourceGroupName, String deviceName, DeviceInner parameters) {
+ return beginCreateOrUpdateAsync(resourceGroupName, deviceName, parameters).getSyncPoller();
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, DeviceInner> beginCreateOrUpdate(
+ String resourceGroupName, String deviceName, DeviceInner parameters, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, deviceName, parameters, context).getSyncPoller();
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device 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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(String resourceGroupName, String deviceName, DeviceInner parameters) {
+ return beginCreateOrUpdateAsync(resourceGroupName, deviceName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String deviceName, DeviceInner parameters, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, deviceName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device 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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DeviceInner createOrUpdate(String resourceGroupName, String deviceName, DeviceInner parameters) {
+ return createOrUpdateAsync(resourceGroupName, deviceName, parameters).block();
+ }
+
+ /**
+ * Creates or updates a device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName Resource name for the device resource.
+ * @param parameters Parameters supplied to the create or update device operation.
+ * @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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DeviceInner createOrUpdate(
+ String resourceGroupName, String deviceName, DeviceInner parameters, Context context) {
+ return createOrUpdateAsync(resourceGroupName, deviceName, parameters, context).block();
+ }
+
+ /**
+ * Updates device tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device resource.
+ * @param parameters Parameters supplied to the update device tags 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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateTagsWithResponseAsync(
+ String resourceGroupName, String deviceName, TagsObject parameters) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .updateTags(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Updates device tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device resource.
+ * @param parameters Parameters supplied to the update device tags operation.
+ * @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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateTagsWithResponseAsync(
+ String resourceGroupName, String deviceName, TagsObject parameters, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .updateTags(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Updates device tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device resource.
+ * @param parameters Parameters supplied to the update device tags 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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateTagsAsync(String resourceGroupName, String deviceName, TagsObject parameters) {
+ return updateTagsWithResponseAsync(resourceGroupName, deviceName, parameters)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Updates device tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device resource.
+ * @param parameters Parameters supplied to the update device tags 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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DeviceInner updateTags(String resourceGroupName, String deviceName, TagsObject parameters) {
+ return updateTagsAsync(resourceGroupName, deviceName, parameters).block();
+ }
+
+ /**
+ * Updates device tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device resource.
+ * @param parameters Parameters supplied to the update device tags operation.
+ * @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 device resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response updateTagsWithResponse(
+ String resourceGroupName, String deviceName, TagsObject parameters, Context context) {
+ return updateTagsWithResponseAsync(resourceGroupName, deviceName, parameters, context).block();
+ }
+
+ /**
+ * Lists all the devices in a subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync() {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists all the devices in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all the devices in a subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(), nextLink -> listBySubscriptionNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all the devices in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(context), nextLink -> listBySubscriptionNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all the devices in a subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * Lists all the devices in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(Context context) {
+ return new PagedIterable<>(listAsync(context));
+ }
+
+ /**
+ * Lists all the device resource in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupSinglePageAsync(String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByResourceGroup(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists all the device resource in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupSinglePageAsync(
+ String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByResourceGroup(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all the device resource in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByResourceGroupAsync(String resourceGroupName) {
+ return new PagedFlux<>(
+ () -> listByResourceGroupSinglePageAsync(resourceGroupName),
+ nextLink -> listByResourceGroupNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all the device resource in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByResourceGroupAsync(String resourceGroupName, Context context) {
+ return new PagedFlux<>(
+ () -> listByResourceGroupSinglePageAsync(resourceGroupName, context),
+ nextLink -> listByResourceGroupNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all the device resource in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByResourceGroup(String resourceGroupName) {
+ return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName));
+ }
+
+ /**
+ * Lists all the device resource in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByResourceGroup(String resourceGroupName, Context context) {
+ return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName, context));
+ }
+
+ /**
+ * List the registration key for the device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 device registration key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listRegistrationKeyWithResponseAsync(
+ String resourceGroupName, String deviceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listRegistrationKey(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * List the registration key for the device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 device registration key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listRegistrationKeyWithResponseAsync(
+ String resourceGroupName, String deviceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listRegistrationKey(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ deviceName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context);
+ }
+
+ /**
+ * List the registration key for the device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 device registration key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono listRegistrationKeyAsync(String resourceGroupName, String deviceName) {
+ return listRegistrationKeyWithResponseAsync(resourceGroupName, deviceName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * List the registration key for the device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 device registration key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DeviceRegistrationKeyInner listRegistrationKey(String resourceGroupName, String deviceName) {
+ return listRegistrationKeyAsync(resourceGroupName, deviceName).block();
+ }
+
+ /**
+ * List the registration key for the device.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deviceName The name of the device 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 device registration key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response listRegistrationKeyWithResponse(
+ String resourceGroupName, String deviceName, Context context) {
+ return listRegistrationKeyWithResponseAsync(resourceGroupName, deviceName, 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 response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listBySubscriptionNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context -> service.listBySubscriptionNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listBySubscriptionNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listBySubscriptionNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * 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 response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context -> service.listByResourceGroupNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for devices API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByResourceGroupNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DevicesImpl.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DevicesImpl.java
new file mode 100644
index 000000000000..53ada1f4ca13
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/DevicesImpl.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.hybridnetwork.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.hybridnetwork.fluent.DevicesClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.DeviceInner;
+import com.azure.resourcemanager.hybridnetwork.fluent.models.DeviceRegistrationKeyInner;
+import com.azure.resourcemanager.hybridnetwork.models.Device;
+import com.azure.resourcemanager.hybridnetwork.models.DeviceRegistrationKey;
+import com.azure.resourcemanager.hybridnetwork.models.Devices;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class DevicesImpl implements Devices {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DevicesImpl.class);
+
+ private final DevicesClient innerClient;
+
+ private final com.azure.resourcemanager.hybridnetwork.HybridNetworkManager serviceManager;
+
+ public DevicesImpl(
+ DevicesClient innerClient, com.azure.resourcemanager.hybridnetwork.HybridNetworkManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public void deleteByResourceGroup(String resourceGroupName, String deviceName) {
+ this.serviceClient().delete(resourceGroupName, deviceName);
+ }
+
+ public void delete(String resourceGroupName, String deviceName, Context context) {
+ this.serviceClient().delete(resourceGroupName, deviceName, context);
+ }
+
+ public Device getByResourceGroup(String resourceGroupName, String deviceName) {
+ DeviceInner inner = this.serviceClient().getByResourceGroup(resourceGroupName, deviceName);
+ if (inner != null) {
+ return new DeviceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String deviceName, Context context) {
+ Response inner =
+ this.serviceClient().getByResourceGroupWithResponse(resourceGroupName, deviceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new DeviceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public PagedIterable list() {
+ PagedIterable inner = this.serviceClient().list();
+ return Utils.mapPage(inner, inner1 -> new DeviceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(Context context) {
+ PagedIterable inner = this.serviceClient().list(context);
+ return Utils.mapPage(inner, inner1 -> new DeviceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByResourceGroup(String resourceGroupName) {
+ PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName);
+ return Utils.mapPage(inner, inner1 -> new DeviceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByResourceGroup(String resourceGroupName, Context context) {
+ PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName, context);
+ return Utils.mapPage(inner, inner1 -> new DeviceImpl(inner1, this.manager()));
+ }
+
+ public DeviceRegistrationKey listRegistrationKey(String resourceGroupName, String deviceName) {
+ DeviceRegistrationKeyInner inner = this.serviceClient().listRegistrationKey(resourceGroupName, deviceName);
+ if (inner != null) {
+ return new DeviceRegistrationKeyImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response listRegistrationKeyWithResponse(
+ String resourceGroupName, String deviceName, Context context) {
+ Response inner =
+ this.serviceClient().listRegistrationKeyWithResponse(resourceGroupName, deviceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new DeviceRegistrationKeyImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public Device 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 deviceName = Utils.getValueFromIdByName(id, "devices");
+ if (deviceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'devices'.", id)));
+ }
+ return this.getByResourceGroupWithResponse(resourceGroupName, deviceName, 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 deviceName = Utils.getValueFromIdByName(id, "devices");
+ if (deviceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'devices'.", id)));
+ }
+ return this.getByResourceGroupWithResponse(resourceGroupName, deviceName, 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 deviceName = Utils.getValueFromIdByName(id, "devices");
+ if (deviceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'devices'.", id)));
+ }
+ this.delete(resourceGroupName, deviceName, 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 deviceName = Utils.getValueFromIdByName(id, "devices");
+ if (deviceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'devices'.", id)));
+ }
+ this.delete(resourceGroupName, deviceName, context);
+ }
+
+ private DevicesClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.hybridnetwork.HybridNetworkManager manager() {
+ return this.serviceManager;
+ }
+
+ public DeviceImpl define(String name) {
+ return new DeviceImpl(name, this.manager());
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/HybridNetworkManagementClientBuilder.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/HybridNetworkManagementClientBuilder.java
new file mode 100644
index 000000000000..adda16cf7a2f
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/HybridNetworkManagementClientBuilder.java
@@ -0,0 +1,146 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.implementation;
+
+import com.azure.core.annotation.ServiceClientBuilder;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.policy.CookiePolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.serializer.SerializerFactory;
+import com.azure.core.util.serializer.SerializerAdapter;
+import java.time.Duration;
+
+/** A builder for creating a new instance of the HybridNetworkManagementClientImpl type. */
+@ServiceClientBuilder(serviceClients = {HybridNetworkManagementClientImpl.class})
+public final class HybridNetworkManagementClientBuilder {
+ /*
+ * The ID of the target subscription.
+ */
+ private String subscriptionId;
+
+ /**
+ * Sets The ID of the target subscription.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the HybridNetworkManagementClientBuilder.
+ */
+ public HybridNetworkManagementClientBuilder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /*
+ * server parameter
+ */
+ private String endpoint;
+
+ /**
+ * Sets server parameter.
+ *
+ * @param endpoint the endpoint value.
+ * @return the HybridNetworkManagementClientBuilder.
+ */
+ public HybridNetworkManagementClientBuilder endpoint(String endpoint) {
+ this.endpoint = endpoint;
+ return this;
+ }
+
+ /*
+ * The environment to connect to
+ */
+ private AzureEnvironment environment;
+
+ /**
+ * Sets The environment to connect to.
+ *
+ * @param environment the environment value.
+ * @return the HybridNetworkManagementClientBuilder.
+ */
+ public HybridNetworkManagementClientBuilder environment(AzureEnvironment environment) {
+ this.environment = environment;
+ return this;
+ }
+
+ /*
+ * The default poll interval for long-running operation
+ */
+ private Duration defaultPollInterval;
+
+ /**
+ * Sets The default poll interval for long-running operation.
+ *
+ * @param defaultPollInterval the defaultPollInterval value.
+ * @return the HybridNetworkManagementClientBuilder.
+ */
+ public HybridNetworkManagementClientBuilder defaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = defaultPollInterval;
+ return this;
+ }
+
+ /*
+ * The HTTP pipeline to send requests through
+ */
+ private HttpPipeline pipeline;
+
+ /**
+ * Sets The HTTP pipeline to send requests through.
+ *
+ * @param pipeline the pipeline value.
+ * @return the HybridNetworkManagementClientBuilder.
+ */
+ public HybridNetworkManagementClientBuilder pipeline(HttpPipeline pipeline) {
+ this.pipeline = pipeline;
+ return this;
+ }
+
+ /*
+ * The serializer to serialize an object into a string
+ */
+ private SerializerAdapter serializerAdapter;
+
+ /**
+ * Sets The serializer to serialize an object into a string.
+ *
+ * @param serializerAdapter the serializerAdapter value.
+ * @return the HybridNetworkManagementClientBuilder.
+ */
+ public HybridNetworkManagementClientBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of HybridNetworkManagementClientImpl with the provided parameters.
+ *
+ * @return an instance of HybridNetworkManagementClientImpl.
+ */
+ public HybridNetworkManagementClientImpl buildClient() {
+ if (endpoint == null) {
+ this.endpoint = "https://management.azure.com";
+ }
+ if (environment == null) {
+ this.environment = AzureEnvironment.AZURE;
+ }
+ if (defaultPollInterval == null) {
+ this.defaultPollInterval = Duration.ofSeconds(30);
+ }
+ if (pipeline == null) {
+ this.pipeline =
+ new HttpPipelineBuilder()
+ .policies(new UserAgentPolicy(), new RetryPolicy(), new CookiePolicy())
+ .build();
+ }
+ if (serializerAdapter == null) {
+ this.serializerAdapter = SerializerFactory.createDefaultManagementSerializerAdapter();
+ }
+ HybridNetworkManagementClientImpl client =
+ new HybridNetworkManagementClientImpl(
+ pipeline, serializerAdapter, defaultPollInterval, environment, subscriptionId, endpoint);
+ return client;
+ }
+}
diff --git a/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/HybridNetworkManagementClientImpl.java b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/HybridNetworkManagementClientImpl.java
new file mode 100644
index 000000000000..68afd30656ae
--- /dev/null
+++ b/sdk/hybridnetwork/azure-resourcemanager-hybridnetwork/src/main/java/com/azure/resourcemanager/hybridnetwork/implementation/HybridNetworkManagementClientImpl.java
@@ -0,0 +1,419 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.hybridnetwork.implementation;
+
+import com.azure.core.annotation.ServiceClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.management.polling.PollerFactory;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.AsyncPollResponse;
+import com.azure.core.util.polling.LongRunningOperationStatus;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.serializer.SerializerAdapter;
+import com.azure.core.util.serializer.SerializerEncoding;
+import com.azure.resourcemanager.hybridnetwork.fluent.DevicesClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.HybridNetworkManagementClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.NetworkFunctionVendorSkusClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.NetworkFunctionVendorsClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.NetworkFunctionsClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.OperationsClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.RoleInstancesClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.VendorNetworkFunctionsClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.VendorSkuPreviewsClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.VendorSkusClient;
+import com.azure.resourcemanager.hybridnetwork.fluent.VendorsClient;
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import java.util.Map;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** Initializes a new instance of the HybridNetworkManagementClientImpl type. */
+@ServiceClient(builder = HybridNetworkManagementClientBuilder.class)
+public final class HybridNetworkManagementClientImpl implements HybridNetworkManagementClient {
+ private final ClientLogger logger = new ClientLogger(HybridNetworkManagementClientImpl.class);
+
+ /** The ID of the target subscription. */
+ private final String subscriptionId;
+
+ /**
+ * Gets The ID of the target subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ public String getSubscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /** server parameter. */
+ private final String endpoint;
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ public String getEndpoint() {
+ return this.endpoint;
+ }
+
+ /** Api Version. */
+ private final String apiVersion;
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ public String getApiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The HTTP pipeline to send requests through. */
+ private final HttpPipeline httpPipeline;
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ public HttpPipeline getHttpPipeline() {
+ return this.httpPipeline;
+ }
+
+ /** The serializer to serialize an object into a string. */
+ private final SerializerAdapter serializerAdapter;
+
+ /**
+ * Gets The serializer to serialize an object into a string.
+ *
+ * @return the serializerAdapter value.
+ */
+ SerializerAdapter getSerializerAdapter() {
+ return this.serializerAdapter;
+ }
+
+ /** The default poll interval for long-running operation. */
+ private final Duration defaultPollInterval;
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ public Duration getDefaultPollInterval() {
+ return this.defaultPollInterval;
+ }
+
+ /** The NetworkFunctionsClient object to access its operations. */
+ private final NetworkFunctionsClient networkFunctions;
+
+ /**
+ * Gets the NetworkFunctionsClient object to access its operations.
+ *
+ * @return the NetworkFunctionsClient object.
+ */
+ public NetworkFunctionsClient getNetworkFunctions() {
+ return this.networkFunctions;
+ }
+
+ /** The DevicesClient object to access its operations. */
+ private final DevicesClient devices;
+
+ /**
+ * Gets the DevicesClient object to access its operations.
+ *
+ * @return the DevicesClient object.
+ */
+ public DevicesClient getDevices() {
+ return this.devices;
+ }
+
+ /** The OperationsClient object to access its operations. */
+ private final OperationsClient operations;
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ public OperationsClient getOperations() {
+ return this.operations;
+ }
+
+ /** The VendorsClient object to access its operations. */
+ private final VendorsClient vendors;
+
+ /**
+ * Gets the VendorsClient object to access its operations.
+ *
+ * @return the VendorsClient object.
+ */
+ public VendorsClient getVendors() {
+ return this.vendors;
+ }
+
+ /** The VendorSkusClient object to access its operations. */
+ private final VendorSkusClient vendorSkus;
+
+ /**
+ * Gets the VendorSkusClient object to access its operations.
+ *
+ * @return the VendorSkusClient object.
+ */
+ public VendorSkusClient getVendorSkus() {
+ return this.vendorSkus;
+ }
+
+ /** The VendorSkuPreviewsClient object to access its operations. */
+ private final VendorSkuPreviewsClient vendorSkuPreviews;
+
+ /**
+ * Gets the VendorSkuPreviewsClient object to access its operations.
+ *
+ * @return the VendorSkuPreviewsClient object.
+ */
+ public VendorSkuPreviewsClient getVendorSkuPreviews() {
+ return this.vendorSkuPreviews;
+ }
+
+ /** The NetworkFunctionVendorsClient object to access its operations. */
+ private final NetworkFunctionVendorsClient networkFunctionVendors;
+
+ /**
+ * Gets the NetworkFunctionVendorsClient object to access its operations.
+ *
+ * @return the NetworkFunctionVendorsClient object.
+ */
+ public NetworkFunctionVendorsClient getNetworkFunctionVendors() {
+ return this.networkFunctionVendors;
+ }
+
+ /** The NetworkFunctionVendorSkusClient object to access its operations. */
+ private final NetworkFunctionVendorSkusClient networkFunctionVendorSkus;
+
+ /**
+ * Gets the NetworkFunctionVendorSkusClient object to access its operations.
+ *
+ * @return the NetworkFunctionVendorSkusClient object.
+ */
+ public NetworkFunctionVendorSkusClient getNetworkFunctionVendorSkus() {
+ return this.networkFunctionVendorSkus;
+ }
+
+ /** The VendorNetworkFunctionsClient object to access its operations. */
+ private final VendorNetworkFunctionsClient vendorNetworkFunctions;
+
+ /**
+ * Gets the VendorNetworkFunctionsClient object to access its operations.
+ *
+ * @return the VendorNetworkFunctionsClient object.
+ */
+ public VendorNetworkFunctionsClient getVendorNetworkFunctions() {
+ return this.vendorNetworkFunctions;
+ }
+
+ /** The RoleInstancesClient object to access its operations. */
+ private final RoleInstancesClient roleInstances;
+
+ /**
+ * Gets the RoleInstancesClient object to access its operations.
+ *
+ * @return the RoleInstancesClient object.
+ */
+ public RoleInstancesClient getRoleInstances() {
+ return this.roleInstances;
+ }
+
+ /**
+ * Initializes an instance of HybridNetworkManagementClient client.
+ *
+ * @param httpPipeline The HTTP pipeline to send requests through.
+ * @param serializerAdapter The serializer to serialize an object into a string.
+ * @param defaultPollInterval The default poll interval for long-running operation.
+ * @param environment The Azure environment.
+ * @param subscriptionId The ID of the target subscription.
+ * @param endpoint server parameter.
+ */
+ HybridNetworkManagementClientImpl(
+ HttpPipeline httpPipeline,
+ SerializerAdapter serializerAdapter,
+ Duration defaultPollInterval,
+ AzureEnvironment environment,
+ String subscriptionId,
+ String endpoint) {
+ this.httpPipeline = httpPipeline;
+ this.serializerAdapter = serializerAdapter;
+ this.defaultPollInterval = defaultPollInterval;
+ this.subscriptionId = subscriptionId;
+ this.endpoint = endpoint;
+ this.apiVersion = "2021-05-01";
+ this.networkFunctions = new NetworkFunctionsClientImpl(this);
+ this.devices = new DevicesClientImpl(this);
+ this.operations = new OperationsClientImpl(this);
+ this.vendors = new VendorsClientImpl(this);
+ this.vendorSkus = new VendorSkusClientImpl(this);
+ this.vendorSkuPreviews = new VendorSkuPreviewsClientImpl(this);
+ this.networkFunctionVendors = new NetworkFunctionVendorsClientImpl(this);
+ this.networkFunctionVendorSkus = new NetworkFunctionVendorSkusClientImpl(this);
+ this.vendorNetworkFunctions = new VendorNetworkFunctionsClientImpl(this);
+ this.roleInstances = new RoleInstancesClientImpl(this);
+ }
+
+ /**
+ * Gets default client context.
+ *
+ * @return the default client context.
+ */
+ public Context getContext() {
+ return Context.NONE;
+ }
+
+ /**
+ * Merges default client context with provided context.
+ *
+ * @param context the context to be merged with default client context.
+ * @return the merged context.
+ */
+ public Context mergeContext(Context context) {
+ for (Map.Entry