diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index e78acf6e1c3a7..ab3c62bcdfe65 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -294,6 +294,7 @@ com.azure.resourcemanager:azure-resourcemanager-imagebuilder;1.0.0-beta.1;1.0.0-
com.azure.resourcemanager:azure-resourcemanager-maps;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-botservice;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-recoveryservicesbackup;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-providerhub;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 593ffcb081892..bdb97f2ae60ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -776,6 +776,7 @@
sdk/policyinsights
sdk/postgresql
sdk/powerbidedicated
+ sdk/providerhub
sdk/purview
sdk/quantum
sdk/recoveryservices
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/CHANGELOG.md b/sdk/providerhub/azure-resourcemanager-providerhub/CHANGELOG.md
new file mode 100644
index 0000000000000..444dbf1349ecd
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-05-26)
+
+- Azure Resource Manager ProviderHub client library for Java. This package contains Microsoft Azure SDK for ProviderHub Management SDK. Microsoft ProviderHub. Package tag package-2020-11-20. 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/providerhub/azure-resourcemanager-providerhub/README.md b/sdk/providerhub/azure-resourcemanager-providerhub/README.md
new file mode 100644
index 0000000000000..29c8da37c0f7f
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/README.md
@@ -0,0 +1,101 @@
+# Azure Resource Manager ProviderHub client library for Java
+
+Azure Resource Manager ProviderHub client library for Java.
+
+This package contains Microsoft Azure SDK for ProviderHub Management SDK. Microsoft ProviderHub. Package tag package-2020-11-20. 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-providerhub;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-providerhub
+ 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();
+ProviderHubManager manager = ProviderHubManager
+ .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/master/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/master/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/pom.xml b/sdk/providerhub/azure-resourcemanager-providerhub/pom.xml
new file mode 100644
index 0000000000000..c0406c56cfdda
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/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-providerhub
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for ProviderHub Management
+ This package contains Microsoft Azure SDK for ProviderHub Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Microsoft ProviderHub. Package tag package-2020-11-20.
+ 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.16.0
+
+
+ com.azure
+ azure-core-management
+ 1.2.2
+
+
+
+
+
+ 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/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/ProviderHubManager.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/ProviderHubManager.java
new file mode 100644
index 0000000000000..3bcff99ecd44d
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/ProviderHubManager.java
@@ -0,0 +1,301 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub;
+
+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.BearerTokenAuthenticationPolicy;
+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.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.fluent.ProviderHub;
+import com.azure.resourcemanager.providerhub.implementation.CustomRolloutsImpl;
+import com.azure.resourcemanager.providerhub.implementation.DefaultRolloutsImpl;
+import com.azure.resourcemanager.providerhub.implementation.NotificationRegistrationsImpl;
+import com.azure.resourcemanager.providerhub.implementation.OperationsImpl;
+import com.azure.resourcemanager.providerhub.implementation.ProviderHubBuilder;
+import com.azure.resourcemanager.providerhub.implementation.ProviderRegistrationsImpl;
+import com.azure.resourcemanager.providerhub.implementation.ResourceProvidersImpl;
+import com.azure.resourcemanager.providerhub.implementation.ResourceTypeRegistrationsImpl;
+import com.azure.resourcemanager.providerhub.implementation.SkusImpl;
+import com.azure.resourcemanager.providerhub.models.CustomRollouts;
+import com.azure.resourcemanager.providerhub.models.DefaultRollouts;
+import com.azure.resourcemanager.providerhub.models.NotificationRegistrations;
+import com.azure.resourcemanager.providerhub.models.Operations;
+import com.azure.resourcemanager.providerhub.models.ProviderRegistrations;
+import com.azure.resourcemanager.providerhub.models.ResourceProviders;
+import com.azure.resourcemanager.providerhub.models.ResourceTypeRegistrations;
+import com.azure.resourcemanager.providerhub.models.Skus;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/** Entry point to ProviderHubManager. Microsoft ProviderHub. */
+public final class ProviderHubManager {
+ private CustomRollouts customRollouts;
+
+ private DefaultRollouts defaultRollouts;
+
+ private ResourceProviders resourceProviders;
+
+ private NotificationRegistrations notificationRegistrations;
+
+ private Operations operations;
+
+ private ProviderRegistrations providerRegistrations;
+
+ private ResourceTypeRegistrations resourceTypeRegistrations;
+
+ private Skus skus;
+
+ private final ProviderHub clientObject;
+
+ private ProviderHubManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new ProviderHubBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of ProviderHub service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ProviderHub service API instance.
+ */
+ public static ProviderHubManager 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 ProviderHubManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new ProviderHubManager.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 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;
+ }
+
+ /**
+ * 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 ProviderHub service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ProviderHub service API instance.
+ */
+ public ProviderHubManager 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.providerhub")
+ .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 (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 BearerTokenAuthenticationPolicy(
+ credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
+ 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 ProviderHubManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of CustomRollouts. */
+ public CustomRollouts customRollouts() {
+ if (this.customRollouts == null) {
+ this.customRollouts = new CustomRolloutsImpl(clientObject.getCustomRollouts(), this);
+ }
+ return customRollouts;
+ }
+
+ /** @return Resource collection API of DefaultRollouts. */
+ public DefaultRollouts defaultRollouts() {
+ if (this.defaultRollouts == null) {
+ this.defaultRollouts = new DefaultRolloutsImpl(clientObject.getDefaultRollouts(), this);
+ }
+ return defaultRollouts;
+ }
+
+ /** @return Resource collection API of ResourceProviders. */
+ public ResourceProviders resourceProviders() {
+ if (this.resourceProviders == null) {
+ this.resourceProviders = new ResourceProvidersImpl(clientObject.getResourceProviders(), this);
+ }
+ return resourceProviders;
+ }
+
+ /** @return Resource collection API of NotificationRegistrations. */
+ public NotificationRegistrations notificationRegistrations() {
+ if (this.notificationRegistrations == null) {
+ this.notificationRegistrations =
+ new NotificationRegistrationsImpl(clientObject.getNotificationRegistrations(), this);
+ }
+ return notificationRegistrations;
+ }
+
+ /** @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 ProviderRegistrations. */
+ public ProviderRegistrations providerRegistrations() {
+ if (this.providerRegistrations == null) {
+ this.providerRegistrations = new ProviderRegistrationsImpl(clientObject.getProviderRegistrations(), this);
+ }
+ return providerRegistrations;
+ }
+
+ /** @return Resource collection API of ResourceTypeRegistrations. */
+ public ResourceTypeRegistrations resourceTypeRegistrations() {
+ if (this.resourceTypeRegistrations == null) {
+ this.resourceTypeRegistrations =
+ new ResourceTypeRegistrationsImpl(clientObject.getResourceTypeRegistrations(), this);
+ }
+ return resourceTypeRegistrations;
+ }
+
+ /** @return Resource collection API of Skus. */
+ public Skus skus() {
+ if (this.skus == null) {
+ this.skus = new SkusImpl(clientObject.getSkus(), this);
+ }
+ return skus;
+ }
+
+ /**
+ * @return Wrapped service client ProviderHub providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public ProviderHub serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/CustomRolloutsClient.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/CustomRolloutsClient.java
new file mode 100644
index 0000000000000..fb2fe07df559f
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/CustomRolloutsClient.java
@@ -0,0 +1,97 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.providerhub.fluent.models.CustomRolloutInner;
+
+/** An instance of this class provides access to all the operations defined in CustomRolloutsClient. */
+public interface CustomRolloutsClient {
+ /**
+ * Gets the custom rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the custom rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomRolloutInner get(String providerNamespace, String rolloutName);
+
+ /**
+ * Gets the custom rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the custom rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String providerNamespace, String rolloutName, Context context);
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The custom rollout properties supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomRolloutInner createOrUpdate(String providerNamespace, String rolloutName, CustomRolloutInner properties);
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The custom rollout properties supplied to the CreateOrUpdate 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 rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String providerNamespace, String rolloutName, CustomRolloutInner properties, Context context);
+
+ /**
+ * Gets the list of the custom rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of the custom rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProviderRegistration(String providerNamespace);
+
+ /**
+ * Gets the list of the custom rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of the custom rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProviderRegistration(String providerNamespace, Context context);
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/DefaultRolloutsClient.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/DefaultRolloutsClient.java
new file mode 100644
index 0000000000000..d94649f80b21e
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/DefaultRolloutsClient.java
@@ -0,0 +1,182 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.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.providerhub.fluent.models.DefaultRolloutInner;
+
+/** An instance of this class provides access to all the operations defined in DefaultRolloutsClient. */
+public interface DefaultRolloutsClient {
+ /**
+ * Gets the default rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the default rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DefaultRolloutInner get(String providerNamespace, String rolloutName);
+
+ /**
+ * Gets the default rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the default rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String providerNamespace, String rolloutName, Context context);
+
+ /**
+ * Deletes the rollout resource. Rollout must be in terminal state.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String providerNamespace, String rolloutName);
+
+ /**
+ * Deletes the rollout resource. Rollout must be in terminal state.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String providerNamespace, String rolloutName, Context context);
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DefaultRolloutInner> beginCreateOrUpdate(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties);
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DefaultRolloutInner> beginCreateOrUpdate(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties, Context context);
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DefaultRolloutInner createOrUpdate(String providerNamespace, String rolloutName, DefaultRolloutInner properties);
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DefaultRolloutInner createOrUpdate(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties, Context context);
+
+ /**
+ * Gets the list of the rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of the rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProviderRegistration(String providerNamespace);
+
+ /**
+ * Gets the list of the rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of the rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProviderRegistration(String providerNamespace, Context context);
+
+ /**
+ * Stops or cancels the rollout, if in progress.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String providerNamespace, String rolloutName);
+
+ /**
+ * Stops or cancels the rollout, if in progress.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response stopWithResponse(String providerNamespace, String rolloutName, Context context);
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/NotificationRegistrationsClient.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/NotificationRegistrationsClient.java
new file mode 100644
index 0000000000000..3b3d888585e2e
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/NotificationRegistrationsClient.java
@@ -0,0 +1,128 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.providerhub.fluent.models.NotificationRegistrationInner;
+
+/** An instance of this class provides access to all the operations defined in NotificationRegistrationsClient. */
+public interface NotificationRegistrationsClient {
+ /**
+ * Gets the notification registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the notification registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NotificationRegistrationInner get(String providerNamespace, String notificationRegistrationName);
+
+ /**
+ * Gets the notification registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the notification registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String providerNamespace, String notificationRegistrationName, Context context);
+
+ /**
+ * Creates or updates a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param properties The required body parameters supplied to the notification registration operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the notification registration definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NotificationRegistrationInner createOrUpdate(
+ String providerNamespace, String notificationRegistrationName, NotificationRegistrationInner properties);
+
+ /**
+ * Creates or updates a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param properties The required body parameters supplied to the notification registration operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the notification registration definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String providerNamespace,
+ String notificationRegistrationName,
+ NotificationRegistrationInner properties,
+ Context context);
+
+ /**
+ * Deletes a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 providerNamespace, String notificationRegistrationName);
+
+ /**
+ * Deletes a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String providerNamespace, String notificationRegistrationName, Context context);
+
+ /**
+ * Gets the list of the notification registrations for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of the notification registrations for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProviderRegistration(String providerNamespace);
+
+ /**
+ * Gets the list of the notification registrations for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of the notification registrations for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProviderRegistration(String providerNamespace, Context context);
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/OperationsClient.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..b76fcdb859aa2
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/OperationsClient.java
@@ -0,0 +1,118 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.providerhub.fluent.models.OperationsContentInner;
+import com.azure.resourcemanager.providerhub.fluent.models.OperationsDefinitionInner;
+import com.azure.resourcemanager.providerhub.models.OperationsPutContent;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all the operations supported by Microsoft.ProviderHub.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the operations supported by Microsoft.ProviderHub.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Gets the operations supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the operations supported by the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List listByProviderRegistration(String providerNamespace);
+
+ /**
+ * Gets the operations supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the operations supported by the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> listByProviderRegistrationWithResponse(
+ String providerNamespace, Context context);
+
+ /**
+ * Creates or updates the operation supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param operationsPutContent The operations content properties supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationsContentInner createOrUpdate(String providerNamespace, OperationsPutContent operationsPutContent);
+
+ /**
+ * Creates or updates the operation supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param operationsPutContent The operations content properties supplied to the CreateOrUpdate operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String providerNamespace, OperationsPutContent operationsPutContent, Context context);
+
+ /**
+ * Deletes an operation.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 providerNamespace);
+
+ /**
+ * Deletes an operation.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String providerNamespace, Context context);
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ProviderHub.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ProviderHub.java
new file mode 100644
index 0000000000000..c86fb68a54ce9
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ProviderHub.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for ProviderHub class. */
+public interface ProviderHub {
+ /**
+ * 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 CustomRolloutsClient object to access its operations.
+ *
+ * @return the CustomRolloutsClient object.
+ */
+ CustomRolloutsClient getCustomRollouts();
+
+ /**
+ * Gets the DefaultRolloutsClient object to access its operations.
+ *
+ * @return the DefaultRolloutsClient object.
+ */
+ DefaultRolloutsClient getDefaultRollouts();
+
+ /**
+ * Gets the ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ ResourceProvidersClient getResourceProviders();
+
+ /**
+ * Gets the NotificationRegistrationsClient object to access its operations.
+ *
+ * @return the NotificationRegistrationsClient object.
+ */
+ NotificationRegistrationsClient getNotificationRegistrations();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the ProviderRegistrationsClient object to access its operations.
+ *
+ * @return the ProviderRegistrationsClient object.
+ */
+ ProviderRegistrationsClient getProviderRegistrations();
+
+ /**
+ * Gets the ResourceTypeRegistrationsClient object to access its operations.
+ *
+ * @return the ResourceTypeRegistrationsClient object.
+ */
+ ResourceTypeRegistrationsClient getResourceTypeRegistrations();
+
+ /**
+ * Gets the SkusClient object to access its operations.
+ *
+ * @return the SkusClient object.
+ */
+ SkusClient getSkus();
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ProviderRegistrationsClient.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ProviderRegistrationsClient.java
new file mode 100644
index 0000000000000..3157ac3023d37
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ProviderRegistrationsClient.java
@@ -0,0 +1,172 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.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.providerhub.fluent.models.OperationsDefinitionInner;
+import com.azure.resourcemanager.providerhub.fluent.models.ProviderRegistrationInner;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in ProviderRegistrationsClient. */
+public interface ProviderRegistrationsClient {
+ /**
+ * Gets the provider registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the provider registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProviderRegistrationInner get(String providerNamespace);
+
+ /**
+ * Gets the provider registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the provider registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String providerNamespace, Context context);
+
+ /**
+ * Creates or updates the provider registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param properties The provider registration properties supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ProviderRegistrationInner> beginCreateOrUpdate(
+ String providerNamespace, ProviderRegistrationInner properties);
+
+ /**
+ * Creates or updates the provider registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param properties The provider registration properties supplied to the CreateOrUpdate operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ProviderRegistrationInner> beginCreateOrUpdate(
+ String providerNamespace, ProviderRegistrationInner properties, Context context);
+
+ /**
+ * Creates or updates the provider registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param properties The provider registration properties supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProviderRegistrationInner createOrUpdate(String providerNamespace, ProviderRegistrationInner properties);
+
+ /**
+ * Creates or updates the provider registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param properties The provider registration properties supplied to the CreateOrUpdate operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProviderRegistrationInner createOrUpdate(
+ String providerNamespace, ProviderRegistrationInner properties, Context context);
+
+ /**
+ * Deletes a provider registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 providerNamespace);
+
+ /**
+ * Deletes a provider registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String providerNamespace, Context context);
+
+ /**
+ * Gets the list of the provider registrations in the 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 the list of the provider registrations in the subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets the list of the provider registrations in the 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 the list of the provider registrations in the subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Generates the operations api for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return array of OperationsDefinition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List generateOperations(String providerNamespace);
+
+ /**
+ * Generates the operations api for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return array of OperationsDefinition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> generateOperationsWithResponse(String providerNamespace, Context context);
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ResourceProvidersClient.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ResourceProvidersClient.java
new file mode 100644
index 0000000000000..a0bcf3bd3c24d
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ResourceProvidersClient.java
@@ -0,0 +1,69 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.providerhub.fluent.models.CheckinManifestInfoInner;
+import com.azure.resourcemanager.providerhub.fluent.models.ResourceProviderManifestInner;
+import com.azure.resourcemanager.providerhub.models.CheckinManifestParams;
+
+/** An instance of this class provides access to all the operations defined in ResourceProvidersClient. */
+public interface ResourceProvidersClient {
+ /**
+ * Generates the manifest for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourceProviderManifestInner generateManifest(String providerNamespace);
+
+ /**
+ * Generates the manifest for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response generateManifestWithResponse(String providerNamespace, Context context);
+
+ /**
+ * Checkin the manifest.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param checkinManifestParams The required body parameters supplied to the checkin manifest operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckinManifestInfoInner checkinManifest(String providerNamespace, CheckinManifestParams checkinManifestParams);
+
+ /**
+ * Checkin the manifest.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param checkinManifestParams The required body parameters supplied to the checkin manifest operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkinManifestWithResponse(
+ String providerNamespace, CheckinManifestParams checkinManifestParams, Context context);
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ResourceTypeRegistrationsClient.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ResourceTypeRegistrationsClient.java
new file mode 100644
index 0000000000000..3a3f49e20131b
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/ResourceTypeRegistrationsClient.java
@@ -0,0 +1,162 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.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.providerhub.fluent.models.ResourceTypeRegistrationInner;
+
+/** An instance of this class provides access to all the operations defined in ResourceTypeRegistrationsClient. */
+public interface ResourceTypeRegistrationsClient {
+ /**
+ * Gets a resource type details in the given subscription and provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 resource type details in the given subscription and provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourceTypeRegistrationInner get(String providerNamespace, String resourceType);
+
+ /**
+ * Gets a resource type details in the given subscription and provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 resource type details in the given subscription and provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String providerNamespace, String resourceType, Context context);
+
+ /**
+ * Creates or updates a resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param properties The required request body parameters supplied to the resource type registration CreateOrUpdate
+ * operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ResourceTypeRegistrationInner> beginCreateOrUpdate(
+ String providerNamespace, String resourceType, ResourceTypeRegistrationInner properties);
+
+ /**
+ * Creates or updates a resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param properties The required request body parameters supplied to the resource type registration CreateOrUpdate
+ * operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ResourceTypeRegistrationInner> beginCreateOrUpdate(
+ String providerNamespace, String resourceType, ResourceTypeRegistrationInner properties, Context context);
+
+ /**
+ * Creates or updates a resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param properties The required request body parameters supplied to the resource type registration CreateOrUpdate
+ * operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourceTypeRegistrationInner createOrUpdate(
+ String providerNamespace, String resourceType, ResourceTypeRegistrationInner properties);
+
+ /**
+ * Creates or updates a resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param properties The required request body parameters supplied to the resource type registration CreateOrUpdate
+ * operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourceTypeRegistrationInner createOrUpdate(
+ String providerNamespace, String resourceType, ResourceTypeRegistrationInner properties, Context context);
+
+ /**
+ * Deletes a resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 providerNamespace, String resourceType);
+
+ /**
+ * Deletes a resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String providerNamespace, String resourceType, Context context);
+
+ /**
+ * Gets the list of the resource types for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of the resource types for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProviderRegistration(String providerNamespace);
+
+ /**
+ * Gets the list of the resource types for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of the resource types for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProviderRegistration(String providerNamespace, Context context);
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/SkusClient.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/SkusClient.java
new file mode 100644
index 0000000000000..6185d8618345f
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/SkusClient.java
@@ -0,0 +1,638 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.providerhub.fluent.models.SkuResourceInner;
+import com.azure.resourcemanager.providerhub.models.ResourceTypeSku;
+
+/** An instance of this class provides access to all the operations defined in SkusClient. */
+public interface SkusClient {
+ /**
+ * Gets the sku details for the given resource type and sku name.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param sku 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 sku details for the given resource type and sku name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SkuResourceInner get(String providerNamespace, String resourceType, String sku);
+
+ /**
+ * Gets the sku details for the given resource type and sku name.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param sku 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 sku details for the given resource type and sku name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String providerNamespace, String resourceType, String sku, Context context);
+
+ /**
+ * Creates or updates the resource type skus in the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param sku The SKU.
+ * @param properties The required body parameters supplied to the resource 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SkuResourceInner createOrUpdate(
+ String providerNamespace, String resourceType, String sku, ResourceTypeSku properties);
+
+ /**
+ * Creates or updates the resource type skus in the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param sku The SKU.
+ * @param properties The required body parameters supplied to the resource 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String providerNamespace, String resourceType, String sku, ResourceTypeSku properties, Context context);
+
+ /**
+ * Deletes a resource type sku.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param sku 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 providerNamespace, String resourceType, String sku);
+
+ /**
+ * Deletes a resource type sku.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param sku 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String providerNamespace, String resourceType, String sku, Context context);
+
+ /**
+ * Gets the sku details for the given resource type and sku name.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param sku 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 sku details for the given resource type and sku name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SkuResourceInner getNestedResourceTypeFirst(
+ String providerNamespace, String resourceType, String nestedResourceTypeFirst, String sku);
+
+ /**
+ * Gets the sku details for the given resource type and sku name.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param sku 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 sku details for the given resource type and sku name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getNestedResourceTypeFirstWithResponse(
+ String providerNamespace, String resourceType, String nestedResourceTypeFirst, String sku, Context context);
+
+ /**
+ * Creates or updates the resource type skus in the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param sku The SKU.
+ * @param properties The required body parameters supplied to the resource 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SkuResourceInner createOrUpdateNestedResourceTypeFirst(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String sku,
+ ResourceTypeSku properties);
+
+ /**
+ * Creates or updates the resource type skus in the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param sku The SKU.
+ * @param properties The required body parameters supplied to the resource 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateNestedResourceTypeFirstWithResponse(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String sku,
+ ResourceTypeSku properties,
+ Context context);
+
+ /**
+ * Deletes a resource type sku.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param sku 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 deleteNestedResourceTypeFirst(
+ String providerNamespace, String resourceType, String nestedResourceTypeFirst, String sku);
+
+ /**
+ * Deletes a resource type sku.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param sku 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteNestedResourceTypeFirstWithResponse(
+ String providerNamespace, String resourceType, String nestedResourceTypeFirst, String sku, Context context);
+
+ /**
+ * Gets the sku details for the given resource type and sku name.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param sku 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 sku details for the given resource type and sku name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SkuResourceInner getNestedResourceTypeSecond(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String sku);
+
+ /**
+ * Gets the sku details for the given resource type and sku name.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param sku 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 sku details for the given resource type and sku name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getNestedResourceTypeSecondWithResponse(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String sku,
+ Context context);
+
+ /**
+ * Creates or updates the resource type skus in the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param sku The SKU.
+ * @param properties The required body parameters supplied to the resource 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SkuResourceInner createOrUpdateNestedResourceTypeSecond(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String sku,
+ ResourceTypeSku properties);
+
+ /**
+ * Creates or updates the resource type skus in the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param sku The SKU.
+ * @param properties The required body parameters supplied to the resource 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateNestedResourceTypeSecondWithResponse(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String sku,
+ ResourceTypeSku properties,
+ Context context);
+
+ /**
+ * Deletes a resource type sku.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param sku 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 deleteNestedResourceTypeSecond(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String sku);
+
+ /**
+ * Deletes a resource type sku.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param sku 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteNestedResourceTypeSecondWithResponse(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String sku,
+ Context context);
+
+ /**
+ * Gets the sku details for the given resource type and sku name.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param nestedResourceTypeThird The third child resource type.
+ * @param sku 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 sku details for the given resource type and sku name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SkuResourceInner getNestedResourceTypeThird(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String nestedResourceTypeThird,
+ String sku);
+
+ /**
+ * Gets the sku details for the given resource type and sku name.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param nestedResourceTypeThird The third child resource type.
+ * @param sku 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 sku details for the given resource type and sku name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getNestedResourceTypeThirdWithResponse(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String nestedResourceTypeThird,
+ String sku,
+ Context context);
+
+ /**
+ * Creates or updates the resource type skus in the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param nestedResourceTypeThird The third child resource type.
+ * @param sku The SKU.
+ * @param properties The required body parameters supplied to the resource 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SkuResourceInner createOrUpdateNestedResourceTypeThird(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String nestedResourceTypeThird,
+ String sku,
+ ResourceTypeSku properties);
+
+ /**
+ * Creates or updates the resource type skus in the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param nestedResourceTypeThird The third child resource type.
+ * @param sku The SKU.
+ * @param properties The required body parameters supplied to the resource 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateNestedResourceTypeThirdWithResponse(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String nestedResourceTypeThird,
+ String sku,
+ ResourceTypeSku properties,
+ Context context);
+
+ /**
+ * Deletes a resource type sku.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param nestedResourceTypeThird The third child resource type.
+ * @param sku 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 deleteNestedResourceTypeThird(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String nestedResourceTypeThird,
+ String sku);
+
+ /**
+ * Deletes a resource type sku.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param nestedResourceTypeThird The third child resource type.
+ * @param sku 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteNestedResourceTypeThirdWithResponse(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String nestedResourceTypeThird,
+ String sku,
+ Context context);
+
+ /**
+ * Gets the list of skus for the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of skus for the given resource type.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceTypeRegistrations(String providerNamespace, String resourceType);
+
+ /**
+ * Gets the list of skus for the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of skus for the given resource type.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceTypeRegistrations(
+ String providerNamespace, String resourceType, Context context);
+
+ /**
+ * Gets the list of skus for the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of skus for the given resource type.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceTypeRegistrationsNestedResourceTypeFirst(
+ String providerNamespace, String resourceType, String nestedResourceTypeFirst);
+
+ /**
+ * Gets the list of skus for the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of skus for the given resource type.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceTypeRegistrationsNestedResourceTypeFirst(
+ String providerNamespace, String resourceType, String nestedResourceTypeFirst, Context context);
+
+ /**
+ * Gets the list of skus for the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of skus for the given resource type.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceTypeRegistrationsNestedResourceTypeSecond(
+ String providerNamespace, String resourceType, String nestedResourceTypeFirst, String nestedResourceTypeSecond);
+
+ /**
+ * Gets the list of skus for the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of skus for the given resource type.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceTypeRegistrationsNestedResourceTypeSecond(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ Context context);
+
+ /**
+ * Gets the list of skus for the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param nestedResourceTypeThird The third child resource type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of skus for the given resource type.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceTypeRegistrationsNestedResourceTypeThird(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String nestedResourceTypeThird);
+
+ /**
+ * Gets the list of skus for the given resource type.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param resourceType The resource type.
+ * @param nestedResourceTypeFirst The first child resource type.
+ * @param nestedResourceTypeSecond The second child resource type.
+ * @param nestedResourceTypeThird The third child resource type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of skus for the given resource type.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceTypeRegistrationsNestedResourceTypeThird(
+ String providerNamespace,
+ String resourceType,
+ String nestedResourceTypeFirst,
+ String nestedResourceTypeSecond,
+ String nestedResourceTypeThird,
+ Context context);
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/CheckinManifestInfoInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/CheckinManifestInfoInner.java
new file mode 100644
index 0000000000000..7f63af2cfd29b
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/CheckinManifestInfoInner.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.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The CheckinManifestInfo model. */
+@Fluent
+public final class CheckinManifestInfoInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CheckinManifestInfoInner.class);
+
+ /*
+ * The isCheckedIn property.
+ */
+ @JsonProperty(value = "isCheckedIn", required = true)
+ private boolean isCheckedIn;
+
+ /*
+ * The statusMessage property.
+ */
+ @JsonProperty(value = "statusMessage", required = true)
+ private String statusMessage;
+
+ /*
+ * The pullRequest property.
+ */
+ @JsonProperty(value = "pullRequest")
+ private String pullRequest;
+
+ /*
+ * The commitId property.
+ */
+ @JsonProperty(value = "commitId")
+ private String commitId;
+
+ /**
+ * Get the isCheckedIn property: The isCheckedIn property.
+ *
+ * @return the isCheckedIn value.
+ */
+ public boolean isCheckedIn() {
+ return this.isCheckedIn;
+ }
+
+ /**
+ * Set the isCheckedIn property: The isCheckedIn property.
+ *
+ * @param isCheckedIn the isCheckedIn value to set.
+ * @return the CheckinManifestInfoInner object itself.
+ */
+ public CheckinManifestInfoInner withIsCheckedIn(boolean isCheckedIn) {
+ this.isCheckedIn = isCheckedIn;
+ return this;
+ }
+
+ /**
+ * Get the statusMessage property: The statusMessage property.
+ *
+ * @return the statusMessage value.
+ */
+ public String statusMessage() {
+ return this.statusMessage;
+ }
+
+ /**
+ * Set the statusMessage property: The statusMessage property.
+ *
+ * @param statusMessage the statusMessage value to set.
+ * @return the CheckinManifestInfoInner object itself.
+ */
+ public CheckinManifestInfoInner withStatusMessage(String statusMessage) {
+ this.statusMessage = statusMessage;
+ return this;
+ }
+
+ /**
+ * Get the pullRequest property: The pullRequest property.
+ *
+ * @return the pullRequest value.
+ */
+ public String pullRequest() {
+ return this.pullRequest;
+ }
+
+ /**
+ * Set the pullRequest property: The pullRequest property.
+ *
+ * @param pullRequest the pullRequest value to set.
+ * @return the CheckinManifestInfoInner object itself.
+ */
+ public CheckinManifestInfoInner withPullRequest(String pullRequest) {
+ this.pullRequest = pullRequest;
+ return this;
+ }
+
+ /**
+ * Get the commitId property: The commitId property.
+ *
+ * @return the commitId value.
+ */
+ public String commitId() {
+ return this.commitId;
+ }
+
+ /**
+ * Set the commitId property: The commitId property.
+ *
+ * @param commitId the commitId value to set.
+ * @return the CheckinManifestInfoInner object itself.
+ */
+ public CheckinManifestInfoInner withCommitId(String commitId) {
+ this.commitId = commitId;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (statusMessage() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property statusMessage in model CheckinManifestInfoInner"));
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/CustomRolloutInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/CustomRolloutInner.java
new file mode 100644
index 0000000000000..7c56b9cd8499d
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/CustomRolloutInner.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.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.CustomRolloutProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Rollout details. */
+@Fluent
+public final class CustomRolloutInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CustomRolloutInner.class);
+
+ /*
+ * Properties of the rollout.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private CustomRolloutProperties properties;
+
+ /**
+ * Get the properties property: Properties of the rollout.
+ *
+ * @return the properties value.
+ */
+ public CustomRolloutProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Properties of the rollout.
+ *
+ * @param properties the properties value to set.
+ * @return the CustomRolloutInner object itself.
+ */
+ public CustomRolloutInner withProperties(CustomRolloutProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property properties in model CustomRolloutInner"));
+ } else {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/DefaultRolloutInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/DefaultRolloutInner.java
new file mode 100644
index 0000000000000..e364bba80aafa
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/DefaultRolloutInner.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.DefaultRolloutProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Default rollout definition. */
+@Fluent
+public final class DefaultRolloutInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DefaultRolloutInner.class);
+
+ /*
+ * Properties of the rollout.
+ */
+ @JsonProperty(value = "properties")
+ private DefaultRolloutProperties properties;
+
+ /**
+ * Get the properties property: Properties of the rollout.
+ *
+ * @return the properties value.
+ */
+ public DefaultRolloutProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Properties of the rollout.
+ *
+ * @param properties the properties value to set.
+ * @return the DefaultRolloutInner object itself.
+ */
+ public DefaultRolloutInner withProperties(DefaultRolloutProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/NotificationRegistrationInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/NotificationRegistrationInner.java
new file mode 100644
index 0000000000000..d2d2e32e3df50
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/NotificationRegistrationInner.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.NotificationRegistrationProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The notification registration definition. */
+@Fluent
+public final class NotificationRegistrationInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NotificationRegistrationInner.class);
+
+ /*
+ * The properties property.
+ */
+ @JsonProperty(value = "properties")
+ private NotificationRegistrationProperties properties;
+
+ /**
+ * Get the properties property: The properties property.
+ *
+ * @return the properties value.
+ */
+ public NotificationRegistrationProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties property.
+ *
+ * @param properties the properties value to set.
+ * @return the NotificationRegistrationInner object itself.
+ */
+ public NotificationRegistrationInner withProperties(NotificationRegistrationProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/OperationsContentInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/OperationsContentInner.java
new file mode 100644
index 0000000000000..7c6e2323dcfae
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/OperationsContentInner.java
@@ -0,0 +1,189 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionActionType;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionDisplay;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionOrigin;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The OperationsContent model. */
+@JsonFlatten
+@Fluent
+public class OperationsContentInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationsContentInner.class);
+
+ /*
+ * Name of the operation.
+ */
+ @JsonProperty(value = "properties.name")
+ private String namePropertiesName;
+
+ /*
+ * Indicates whether the operation applies to data-plane.
+ */
+ @JsonProperty(value = "properties.isDataAction")
+ private Boolean isDataAction;
+
+ /*
+ * The origin property.
+ */
+ @JsonProperty(value = "properties.origin")
+ private OperationsDefinitionOrigin origin;
+
+ /*
+ * Display information of the operation.
+ */
+ @JsonProperty(value = "properties.display")
+ private OperationsDefinitionDisplay display;
+
+ /*
+ * The actionType property.
+ */
+ @JsonProperty(value = "properties.actionType")
+ private OperationsDefinitionActionType actionType;
+
+ /*
+ * Any object
+ */
+ @JsonProperty(value = "properties.properties")
+ private Object properties;
+
+ /**
+ * Get the namePropertiesName property: Name of the operation.
+ *
+ * @return the namePropertiesName value.
+ */
+ public String namePropertiesName() {
+ return this.namePropertiesName;
+ }
+
+ /**
+ * Set the namePropertiesName property: Name of the operation.
+ *
+ * @param namePropertiesName the namePropertiesName value to set.
+ * @return the OperationsContentInner object itself.
+ */
+ public OperationsContentInner withNamePropertiesName(String namePropertiesName) {
+ this.namePropertiesName = namePropertiesName;
+ return this;
+ }
+
+ /**
+ * Get the isDataAction property: Indicates whether the operation applies to data-plane.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Set the isDataAction property: Indicates whether the operation applies to data-plane.
+ *
+ * @param isDataAction the isDataAction value to set.
+ * @return the OperationsContentInner object itself.
+ */
+ public OperationsContentInner withIsDataAction(Boolean isDataAction) {
+ this.isDataAction = isDataAction;
+ return this;
+ }
+
+ /**
+ * Get the origin property: The origin property.
+ *
+ * @return the origin value.
+ */
+ public OperationsDefinitionOrigin origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: The origin property.
+ *
+ * @param origin the origin value to set.
+ * @return the OperationsContentInner object itself.
+ */
+ public OperationsContentInner withOrigin(OperationsDefinitionOrigin origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Get the display property: Display information of the operation.
+ *
+ * @return the display value.
+ */
+ public OperationsDefinitionDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Display information of the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationsContentInner object itself.
+ */
+ public OperationsContentInner withDisplay(OperationsDefinitionDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the actionType property: The actionType property.
+ *
+ * @return the actionType value.
+ */
+ public OperationsDefinitionActionType actionType() {
+ return this.actionType;
+ }
+
+ /**
+ * Set the actionType property: The actionType property.
+ *
+ * @param actionType the actionType value to set.
+ * @return the OperationsContentInner object itself.
+ */
+ public OperationsContentInner withActionType(OperationsDefinitionActionType actionType) {
+ this.actionType = actionType;
+ return this;
+ }
+
+ /**
+ * Get the properties property: Any object.
+ *
+ * @return the properties value.
+ */
+ public Object properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Any object.
+ *
+ * @param properties the properties value to set.
+ * @return the OperationsContentInner object itself.
+ */
+ public OperationsContentInner withProperties(Object properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/OperationsDefinitionInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/OperationsDefinitionInner.java
new file mode 100644
index 0000000000000..920e38dbf4b82
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/OperationsDefinitionInner.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.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionActionType;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionDisplay;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionOrigin;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of an Operation. */
+@Fluent
+public final class OperationsDefinitionInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationsDefinitionInner.class);
+
+ /*
+ * Name of the operation.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /*
+ * Indicates whether the operation applies to data-plane.
+ */
+ @JsonProperty(value = "isDataAction")
+ private Boolean isDataAction;
+
+ /*
+ * The origin property.
+ */
+ @JsonProperty(value = "origin")
+ private OperationsDefinitionOrigin origin;
+
+ /*
+ * Display information of the operation.
+ */
+ @JsonProperty(value = "display", required = true)
+ private OperationsDefinitionDisplay display;
+
+ /*
+ * The actionType property.
+ */
+ @JsonProperty(value = "actionType")
+ private OperationsDefinitionActionType actionType;
+
+ /*
+ * Any object
+ */
+ @JsonProperty(value = "properties")
+ private Object properties;
+
+ /**
+ * Get the name property: Name of the operation.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Name of the operation.
+ *
+ * @param name the name value to set.
+ * @return the OperationsDefinitionInner object itself.
+ */
+ public OperationsDefinitionInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the isDataAction property: Indicates whether the operation applies to data-plane.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Set the isDataAction property: Indicates whether the operation applies to data-plane.
+ *
+ * @param isDataAction the isDataAction value to set.
+ * @return the OperationsDefinitionInner object itself.
+ */
+ public OperationsDefinitionInner withIsDataAction(Boolean isDataAction) {
+ this.isDataAction = isDataAction;
+ return this;
+ }
+
+ /**
+ * Get the origin property: The origin property.
+ *
+ * @return the origin value.
+ */
+ public OperationsDefinitionOrigin origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: The origin property.
+ *
+ * @param origin the origin value to set.
+ * @return the OperationsDefinitionInner object itself.
+ */
+ public OperationsDefinitionInner withOrigin(OperationsDefinitionOrigin origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Get the display property: Display information of the operation.
+ *
+ * @return the display value.
+ */
+ public OperationsDefinitionDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Display information of the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationsDefinitionInner object itself.
+ */
+ public OperationsDefinitionInner withDisplay(OperationsDefinitionDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the actionType property: The actionType property.
+ *
+ * @return the actionType value.
+ */
+ public OperationsDefinitionActionType actionType() {
+ return this.actionType;
+ }
+
+ /**
+ * Set the actionType property: The actionType property.
+ *
+ * @param actionType the actionType value to set.
+ * @return the OperationsDefinitionInner object itself.
+ */
+ public OperationsDefinitionInner withActionType(OperationsDefinitionActionType actionType) {
+ this.actionType = actionType;
+ return this;
+ }
+
+ /**
+ * Get the properties property: Any object.
+ *
+ * @return the properties value.
+ */
+ public Object properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Any object.
+ *
+ * @param properties the properties value to set.
+ * @return the OperationsDefinitionInner object itself.
+ */
+ public OperationsDefinitionInner withProperties(Object properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property name in model OperationsDefinitionInner"));
+ }
+ if (display() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property display in model OperationsDefinitionInner"));
+ } else {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ProviderRegistrationInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ProviderRegistrationInner.java
new file mode 100644
index 0000000000000..5ad1e30f2c376
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ProviderRegistrationInner.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.ProviderRegistrationProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The ProviderRegistration model. */
+@Fluent
+public class ProviderRegistrationInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProviderRegistrationInner.class);
+
+ /*
+ * The properties property.
+ */
+ @JsonProperty(value = "properties")
+ private ProviderRegistrationProperties properties;
+
+ /**
+ * Get the properties property: The properties property.
+ *
+ * @return the properties value.
+ */
+ public ProviderRegistrationProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties property.
+ *
+ * @param properties the properties value to set.
+ * @return the ProviderRegistrationInner object itself.
+ */
+ public ProviderRegistrationInner withProperties(ProviderRegistrationProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ResourceProviderManifestInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ResourceProviderManifestInner.java
new file mode 100644
index 0000000000000..817ba5c815030
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ResourceProviderManifestInner.java
@@ -0,0 +1,431 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderAuthorization;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderCapabilities;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderEndpoint;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderManifestFeaturesRule;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderManifestManagement;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderManifestProviderAuthentication;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderManifestReRegisterSubscriptionMetadata;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderManifestRequestHeaderOptions;
+import com.azure.resourcemanager.providerhub.models.ResourceProviderType;
+import com.azure.resourcemanager.providerhub.models.ResourceType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The ResourceProviderManifest model. */
+@Fluent
+public final class ResourceProviderManifestInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ResourceProviderManifestInner.class);
+
+ /*
+ * The providerAuthentication property.
+ */
+ @JsonProperty(value = "providerAuthentication")
+ private ResourceProviderManifestProviderAuthentication providerAuthentication;
+
+ /*
+ * The providerAuthorizations property.
+ */
+ @JsonProperty(value = "providerAuthorizations")
+ private List providerAuthorizations;
+
+ /*
+ * The namespace property.
+ */
+ @JsonProperty(value = "namespace")
+ private String namespace;
+
+ /*
+ * The providerVersion property.
+ */
+ @JsonProperty(value = "providerVersion")
+ private String providerVersion;
+
+ /*
+ * The providerType property.
+ */
+ @JsonProperty(value = "providerType")
+ private ResourceProviderType providerType;
+
+ /*
+ * The requiredFeatures property.
+ */
+ @JsonProperty(value = "requiredFeatures")
+ private List requiredFeatures;
+
+ /*
+ * The featuresRule property.
+ */
+ @JsonProperty(value = "featuresRule")
+ private ResourceProviderManifestFeaturesRule featuresRule;
+
+ /*
+ * The requestHeaderOptions property.
+ */
+ @JsonProperty(value = "requestHeaderOptions")
+ private ResourceProviderManifestRequestHeaderOptions requestHeaderOptions;
+
+ /*
+ * The resourceTypes property.
+ */
+ @JsonProperty(value = "resourceTypes")
+ private List resourceTypes;
+
+ /*
+ * The management property.
+ */
+ @JsonProperty(value = "management")
+ private ResourceProviderManifestManagement management;
+
+ /*
+ * The capabilities property.
+ */
+ @JsonProperty(value = "capabilities")
+ private List capabilities;
+
+ /*
+ * Any object
+ */
+ @JsonProperty(value = "metadata")
+ private Object metadata;
+
+ /*
+ * The globalNotificationEndpoints property.
+ */
+ @JsonProperty(value = "globalNotificationEndpoints")
+ private List globalNotificationEndpoints;
+
+ /*
+ * The reRegisterSubscriptionMetadata property.
+ */
+ @JsonProperty(value = "reRegisterSubscriptionMetadata")
+ private ResourceProviderManifestReRegisterSubscriptionMetadata reRegisterSubscriptionMetadata;
+
+ /**
+ * Get the providerAuthentication property: The providerAuthentication property.
+ *
+ * @return the providerAuthentication value.
+ */
+ public ResourceProviderManifestProviderAuthentication providerAuthentication() {
+ return this.providerAuthentication;
+ }
+
+ /**
+ * Set the providerAuthentication property: The providerAuthentication property.
+ *
+ * @param providerAuthentication the providerAuthentication value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withProviderAuthentication(
+ ResourceProviderManifestProviderAuthentication providerAuthentication) {
+ this.providerAuthentication = providerAuthentication;
+ return this;
+ }
+
+ /**
+ * Get the providerAuthorizations property: The providerAuthorizations property.
+ *
+ * @return the providerAuthorizations value.
+ */
+ public List providerAuthorizations() {
+ return this.providerAuthorizations;
+ }
+
+ /**
+ * Set the providerAuthorizations property: The providerAuthorizations property.
+ *
+ * @param providerAuthorizations the providerAuthorizations value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withProviderAuthorizations(
+ List providerAuthorizations) {
+ this.providerAuthorizations = providerAuthorizations;
+ return this;
+ }
+
+ /**
+ * Get the namespace property: The namespace property.
+ *
+ * @return the namespace value.
+ */
+ public String namespace() {
+ return this.namespace;
+ }
+
+ /**
+ * Set the namespace property: The namespace property.
+ *
+ * @param namespace the namespace value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withNamespace(String namespace) {
+ this.namespace = namespace;
+ return this;
+ }
+
+ /**
+ * Get the providerVersion property: The providerVersion property.
+ *
+ * @return the providerVersion value.
+ */
+ public String providerVersion() {
+ return this.providerVersion;
+ }
+
+ /**
+ * Set the providerVersion property: The providerVersion property.
+ *
+ * @param providerVersion the providerVersion value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withProviderVersion(String providerVersion) {
+ this.providerVersion = providerVersion;
+ return this;
+ }
+
+ /**
+ * Get the providerType property: The providerType property.
+ *
+ * @return the providerType value.
+ */
+ public ResourceProviderType providerType() {
+ return this.providerType;
+ }
+
+ /**
+ * Set the providerType property: The providerType property.
+ *
+ * @param providerType the providerType value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withProviderType(ResourceProviderType providerType) {
+ this.providerType = providerType;
+ return this;
+ }
+
+ /**
+ * Get the requiredFeatures property: The requiredFeatures property.
+ *
+ * @return the requiredFeatures value.
+ */
+ public List requiredFeatures() {
+ return this.requiredFeatures;
+ }
+
+ /**
+ * Set the requiredFeatures property: The requiredFeatures property.
+ *
+ * @param requiredFeatures the requiredFeatures value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withRequiredFeatures(List requiredFeatures) {
+ this.requiredFeatures = requiredFeatures;
+ return this;
+ }
+
+ /**
+ * Get the featuresRule property: The featuresRule property.
+ *
+ * @return the featuresRule value.
+ */
+ public ResourceProviderManifestFeaturesRule featuresRule() {
+ return this.featuresRule;
+ }
+
+ /**
+ * Set the featuresRule property: The featuresRule property.
+ *
+ * @param featuresRule the featuresRule value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withFeaturesRule(ResourceProviderManifestFeaturesRule featuresRule) {
+ this.featuresRule = featuresRule;
+ return this;
+ }
+
+ /**
+ * Get the requestHeaderOptions property: The requestHeaderOptions property.
+ *
+ * @return the requestHeaderOptions value.
+ */
+ public ResourceProviderManifestRequestHeaderOptions requestHeaderOptions() {
+ return this.requestHeaderOptions;
+ }
+
+ /**
+ * Set the requestHeaderOptions property: The requestHeaderOptions property.
+ *
+ * @param requestHeaderOptions the requestHeaderOptions value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withRequestHeaderOptions(
+ ResourceProviderManifestRequestHeaderOptions requestHeaderOptions) {
+ this.requestHeaderOptions = requestHeaderOptions;
+ return this;
+ }
+
+ /**
+ * Get the resourceTypes property: The resourceTypes property.
+ *
+ * @return the resourceTypes value.
+ */
+ public List resourceTypes() {
+ return this.resourceTypes;
+ }
+
+ /**
+ * Set the resourceTypes property: The resourceTypes property.
+ *
+ * @param resourceTypes the resourceTypes value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withResourceTypes(List resourceTypes) {
+ this.resourceTypes = resourceTypes;
+ return this;
+ }
+
+ /**
+ * Get the management property: The management property.
+ *
+ * @return the management value.
+ */
+ public ResourceProviderManifestManagement management() {
+ return this.management;
+ }
+
+ /**
+ * Set the management property: The management property.
+ *
+ * @param management the management value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withManagement(ResourceProviderManifestManagement management) {
+ this.management = management;
+ return this;
+ }
+
+ /**
+ * Get the capabilities property: The capabilities property.
+ *
+ * @return the capabilities value.
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /**
+ * Set the capabilities property: The capabilities property.
+ *
+ * @param capabilities the capabilities value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withCapabilities(List capabilities) {
+ this.capabilities = capabilities;
+ return this;
+ }
+
+ /**
+ * Get the metadata property: Any object.
+ *
+ * @return the metadata value.
+ */
+ public Object metadata() {
+ return this.metadata;
+ }
+
+ /**
+ * Set the metadata property: Any object.
+ *
+ * @param metadata the metadata value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withMetadata(Object metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get the globalNotificationEndpoints property: The globalNotificationEndpoints property.
+ *
+ * @return the globalNotificationEndpoints value.
+ */
+ public List globalNotificationEndpoints() {
+ return this.globalNotificationEndpoints;
+ }
+
+ /**
+ * Set the globalNotificationEndpoints property: The globalNotificationEndpoints property.
+ *
+ * @param globalNotificationEndpoints the globalNotificationEndpoints value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withGlobalNotificationEndpoints(
+ List globalNotificationEndpoints) {
+ this.globalNotificationEndpoints = globalNotificationEndpoints;
+ return this;
+ }
+
+ /**
+ * Get the reRegisterSubscriptionMetadata property: The reRegisterSubscriptionMetadata property.
+ *
+ * @return the reRegisterSubscriptionMetadata value.
+ */
+ public ResourceProviderManifestReRegisterSubscriptionMetadata reRegisterSubscriptionMetadata() {
+ return this.reRegisterSubscriptionMetadata;
+ }
+
+ /**
+ * Set the reRegisterSubscriptionMetadata property: The reRegisterSubscriptionMetadata property.
+ *
+ * @param reRegisterSubscriptionMetadata the reRegisterSubscriptionMetadata value to set.
+ * @return the ResourceProviderManifestInner object itself.
+ */
+ public ResourceProviderManifestInner withReRegisterSubscriptionMetadata(
+ ResourceProviderManifestReRegisterSubscriptionMetadata reRegisterSubscriptionMetadata) {
+ this.reRegisterSubscriptionMetadata = reRegisterSubscriptionMetadata;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (providerAuthentication() != null) {
+ providerAuthentication().validate();
+ }
+ if (providerAuthorizations() != null) {
+ providerAuthorizations().forEach(e -> e.validate());
+ }
+ if (featuresRule() != null) {
+ featuresRule().validate();
+ }
+ if (requestHeaderOptions() != null) {
+ requestHeaderOptions().validate();
+ }
+ if (resourceTypes() != null) {
+ resourceTypes().forEach(e -> e.validate());
+ }
+ if (management() != null) {
+ management().validate();
+ }
+ if (capabilities() != null) {
+ capabilities().forEach(e -> e.validate());
+ }
+ if (globalNotificationEndpoints() != null) {
+ globalNotificationEndpoints().forEach(e -> e.validate());
+ }
+ if (reRegisterSubscriptionMetadata() != null) {
+ reRegisterSubscriptionMetadata().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ResourceTypeRegistrationInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ResourceTypeRegistrationInner.java
new file mode 100644
index 0000000000000..31855c19a5d51
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/ResourceTypeRegistrationInner.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.ResourceTypeRegistrationProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The ResourceTypeRegistration model. */
+@Fluent
+public final class ResourceTypeRegistrationInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ResourceTypeRegistrationInner.class);
+
+ /*
+ * The properties property.
+ */
+ @JsonProperty(value = "properties")
+ private ResourceTypeRegistrationProperties properties;
+
+ /**
+ * Get the properties property: The properties property.
+ *
+ * @return the properties value.
+ */
+ public ResourceTypeRegistrationProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties property.
+ *
+ * @param properties the properties value to set.
+ * @return the ResourceTypeRegistrationInner object itself.
+ */
+ public ResourceTypeRegistrationInner withProperties(ResourceTypeRegistrationProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/SkuResourceInner.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/SkuResourceInner.java
new file mode 100644
index 0000000000000..a1735d2b6a339
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/SkuResourceInner.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.models.SkuResourceProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The SkuResource model. */
+@Fluent
+public final class SkuResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SkuResourceInner.class);
+
+ /*
+ * The properties property.
+ */
+ @JsonProperty(value = "properties")
+ private SkuResourceProperties properties;
+
+ /**
+ * Get the properties property: The properties property.
+ *
+ * @return the properties value.
+ */
+ public SkuResourceProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties property.
+ *
+ * @param properties the properties value to set.
+ * @return the SkuResourceInner object itself.
+ */
+ public SkuResourceInner withProperties(SkuResourceProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/package-info.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/package-info.java
new file mode 100644
index 0000000000000..7ddc9f258e55e
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for ProviderHub. Microsoft ProviderHub. */
+package com.azure.resourcemanager.providerhub.fluent.models;
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/package-info.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/package-info.java
new file mode 100644
index 0000000000000..99ec7bc66353f
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for ProviderHub. Microsoft ProviderHub. */
+package com.azure.resourcemanager.providerhub.fluent;
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CheckinManifestInfoImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CheckinManifestInfoImpl.java
new file mode 100644
index 0000000000000..c5c70917f8194
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CheckinManifestInfoImpl.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.resourcemanager.providerhub.fluent.models.CheckinManifestInfoInner;
+import com.azure.resourcemanager.providerhub.models.CheckinManifestInfo;
+
+public final class CheckinManifestInfoImpl implements CheckinManifestInfo {
+ private CheckinManifestInfoInner innerObject;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ CheckinManifestInfoImpl(
+ CheckinManifestInfoInner innerObject, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public boolean isCheckedIn() {
+ return this.innerModel().isCheckedIn();
+ }
+
+ public String statusMessage() {
+ return this.innerModel().statusMessage();
+ }
+
+ public String pullRequest() {
+ return this.innerModel().pullRequest();
+ }
+
+ public String commitId() {
+ return this.innerModel().commitId();
+ }
+
+ public CheckinManifestInfoInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutImpl.java
new file mode 100644
index 0000000000000..18784be772271
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutImpl.java
@@ -0,0 +1,132 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.providerhub.fluent.models.CustomRolloutInner;
+import com.azure.resourcemanager.providerhub.models.CustomRollout;
+import com.azure.resourcemanager.providerhub.models.CustomRolloutProperties;
+
+public final class CustomRolloutImpl implements CustomRollout, CustomRollout.Definition, CustomRollout.Update {
+ private CustomRolloutInner innerObject;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public CustomRolloutProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public CustomRolloutInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+
+ private String providerNamespace;
+
+ private String rolloutName;
+
+ public CustomRolloutImpl withExistingProviderRegistration(String providerNamespace) {
+ this.providerNamespace = providerNamespace;
+ return this;
+ }
+
+ public CustomRollout create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomRollouts()
+ .createOrUpdateWithResponse(providerNamespace, rolloutName, this.innerModel(), Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CustomRollout create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomRollouts()
+ .createOrUpdateWithResponse(providerNamespace, rolloutName, this.innerModel(), context)
+ .getValue();
+ return this;
+ }
+
+ CustomRolloutImpl(String name, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = new CustomRolloutInner();
+ this.serviceManager = serviceManager;
+ this.rolloutName = name;
+ }
+
+ public CustomRolloutImpl update() {
+ return this;
+ }
+
+ public CustomRollout apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomRollouts()
+ .createOrUpdateWithResponse(providerNamespace, rolloutName, this.innerModel(), Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CustomRollout apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomRollouts()
+ .createOrUpdateWithResponse(providerNamespace, rolloutName, this.innerModel(), context)
+ .getValue();
+ return this;
+ }
+
+ CustomRolloutImpl(
+ CustomRolloutInner innerObject, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.providerNamespace = Utils.getValueFromIdByName(innerObject.id(), "providerRegistrations");
+ this.rolloutName = Utils.getValueFromIdByName(innerObject.id(), "customRollouts");
+ }
+
+ public CustomRollout refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomRollouts()
+ .getWithResponse(providerNamespace, rolloutName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CustomRollout refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomRollouts()
+ .getWithResponse(providerNamespace, rolloutName, context)
+ .getValue();
+ return this;
+ }
+
+ public CustomRolloutImpl withProperties(CustomRolloutProperties properties) {
+ this.innerModel().withProperties(properties);
+ return this;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutsClientImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutsClientImpl.java
new file mode 100644
index 0000000000000..fb5d334d62207
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutsClientImpl.java
@@ -0,0 +1,671 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.fluent.CustomRolloutsClient;
+import com.azure.resourcemanager.providerhub.fluent.models.CustomRolloutInner;
+import com.azure.resourcemanager.providerhub.models.CustomRolloutArrayResponseWithContinuation;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in CustomRolloutsClient. */
+public final class CustomRolloutsClientImpl implements CustomRolloutsClient {
+ private final ClientLogger logger = new ClientLogger(CustomRolloutsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final CustomRolloutsService service;
+
+ /** The service client containing this operation class. */
+ private final ProviderHubImpl client;
+
+ /**
+ * Initializes an instance of CustomRolloutsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ CustomRolloutsClientImpl(ProviderHubImpl client) {
+ this.service =
+ RestProxy.create(CustomRolloutsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ProviderHubCustomRollouts to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ProviderHubCustomRol")
+ private interface CustomRolloutsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/customRollouts/{rolloutName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("rolloutName") String rolloutName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/customRollouts/{rolloutName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("rolloutName") String rolloutName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") CustomRolloutInner properties,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/customRollouts")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByProviderRegistration(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByProviderRegistrationNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets the custom rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 custom rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(String providerNamespace, String rolloutName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the custom rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 custom rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String providerNamespace, String rolloutName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the custom rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 custom rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String providerNamespace, String rolloutName) {
+ return getWithResponseAsync(providerNamespace, rolloutName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the custom rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 custom rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CustomRolloutInner get(String providerNamespace, String rolloutName) {
+ return getAsync(providerNamespace, rolloutName).block();
+ }
+
+ /**
+ * Gets the custom rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 custom rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(String providerNamespace, String rolloutName, Context context) {
+ return getWithResponseAsync(providerNamespace, rolloutName, context).block();
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The custom rollout properties supplied to the CreateOrUpdate 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 rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String providerNamespace, String rolloutName, CustomRolloutInner properties) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ properties,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The custom rollout properties supplied to the CreateOrUpdate 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 rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String providerNamespace, String rolloutName, CustomRolloutInner properties, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ properties,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The custom rollout properties supplied to the CreateOrUpdate 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 rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String providerNamespace, String rolloutName, CustomRolloutInner properties) {
+ return createOrUpdateWithResponseAsync(providerNamespace, rolloutName, properties)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The custom rollout properties supplied to the CreateOrUpdate 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 rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CustomRolloutInner createOrUpdate(
+ String providerNamespace, String rolloutName, CustomRolloutInner properties) {
+ return createOrUpdateAsync(providerNamespace, rolloutName, properties).block();
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The custom rollout properties supplied to the CreateOrUpdate 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 rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response createOrUpdateWithResponse(
+ String providerNamespace, String rolloutName, CustomRolloutInner properties, Context context) {
+ return createOrUpdateWithResponseAsync(providerNamespace, rolloutName, properties, context).block();
+ }
+
+ /**
+ * Gets the list of the custom rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the custom rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationSinglePageAsync(
+ String providerNamespace) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByProviderRegistration(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the list of the custom rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the custom rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationSinglePageAsync(
+ String providerNamespace, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByProviderRegistration(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets the list of the custom rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the custom rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProviderRegistrationAsync(String providerNamespace) {
+ return new PagedFlux<>(
+ () -> listByProviderRegistrationSinglePageAsync(providerNamespace),
+ nextLink -> listByProviderRegistrationNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets the list of the custom rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the custom rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProviderRegistrationAsync(String providerNamespace, Context context) {
+ return new PagedFlux<>(
+ () -> listByProviderRegistrationSinglePageAsync(providerNamespace, context),
+ nextLink -> listByProviderRegistrationNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets the list of the custom rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the custom rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByProviderRegistration(String providerNamespace) {
+ return new PagedIterable<>(listByProviderRegistrationAsync(providerNamespace));
+ }
+
+ /**
+ * Gets the list of the custom rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the custom rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByProviderRegistration(String providerNamespace, Context context) {
+ return new PagedIterable<>(listByProviderRegistrationAsync(providerNamespace, context));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationNextSinglePageAsync(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.listByProviderRegistrationNext(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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationNextSinglePageAsync(
+ 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
+ .listByProviderRegistrationNext(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/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutsImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutsImpl.java
new file mode 100644
index 0000000000000..c3fa9dbc1483b
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/CustomRolloutsImpl.java
@@ -0,0 +1,120 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.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.providerhub.fluent.CustomRolloutsClient;
+import com.azure.resourcemanager.providerhub.fluent.models.CustomRolloutInner;
+import com.azure.resourcemanager.providerhub.models.CustomRollout;
+import com.azure.resourcemanager.providerhub.models.CustomRollouts;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class CustomRolloutsImpl implements CustomRollouts {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CustomRolloutsImpl.class);
+
+ private final CustomRolloutsClient innerClient;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ public CustomRolloutsImpl(
+ CustomRolloutsClient innerClient, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public CustomRollout get(String providerNamespace, String rolloutName) {
+ CustomRolloutInner inner = this.serviceClient().get(providerNamespace, rolloutName);
+ if (inner != null) {
+ return new CustomRolloutImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(String providerNamespace, String rolloutName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(providerNamespace, rolloutName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new CustomRolloutImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public PagedIterable listByProviderRegistration(String providerNamespace) {
+ PagedIterable inner = this.serviceClient().listByProviderRegistration(providerNamespace);
+ return Utils.mapPage(inner, inner1 -> new CustomRolloutImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByProviderRegistration(String providerNamespace, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByProviderRegistration(providerNamespace, context);
+ return Utils.mapPage(inner, inner1 -> new CustomRolloutImpl(inner1, this.manager()));
+ }
+
+ public CustomRollout getById(String id) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String rolloutName = Utils.getValueFromIdByName(id, "customRollouts");
+ if (rolloutName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customRollouts'.", id)));
+ }
+ return this.getWithResponse(providerNamespace, rolloutName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String rolloutName = Utils.getValueFromIdByName(id, "customRollouts");
+ if (rolloutName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customRollouts'.", id)));
+ }
+ return this.getWithResponse(providerNamespace, rolloutName, context);
+ }
+
+ private CustomRolloutsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+
+ public CustomRolloutImpl define(String name) {
+ return new CustomRolloutImpl(name, this.manager());
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutImpl.java
new file mode 100644
index 0000000000000..4a909745426ad
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutImpl.java
@@ -0,0 +1,137 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.providerhub.fluent.models.DefaultRolloutInner;
+import com.azure.resourcemanager.providerhub.models.DefaultRollout;
+import com.azure.resourcemanager.providerhub.models.DefaultRolloutProperties;
+
+public final class DefaultRolloutImpl implements DefaultRollout, DefaultRollout.Definition, DefaultRollout.Update {
+ private DefaultRolloutInner innerObject;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public DefaultRolloutProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public DefaultRolloutInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+
+ private String providerNamespace;
+
+ private String rolloutName;
+
+ public DefaultRolloutImpl withExistingProviderRegistration(String providerNamespace) {
+ this.providerNamespace = providerNamespace;
+ return this;
+ }
+
+ public DefaultRollout create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDefaultRollouts()
+ .createOrUpdate(providerNamespace, rolloutName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public DefaultRollout create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDefaultRollouts()
+ .createOrUpdate(providerNamespace, rolloutName, this.innerModel(), context);
+ return this;
+ }
+
+ DefaultRolloutImpl(String name, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = new DefaultRolloutInner();
+ this.serviceManager = serviceManager;
+ this.rolloutName = name;
+ }
+
+ public DefaultRolloutImpl update() {
+ return this;
+ }
+
+ public DefaultRollout apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDefaultRollouts()
+ .createOrUpdate(providerNamespace, rolloutName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public DefaultRollout apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDefaultRollouts()
+ .createOrUpdate(providerNamespace, rolloutName, this.innerModel(), context);
+ return this;
+ }
+
+ DefaultRolloutImpl(
+ DefaultRolloutInner innerObject, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.providerNamespace = Utils.getValueFromIdByName(innerObject.id(), "providerRegistrations");
+ this.rolloutName = Utils.getValueFromIdByName(innerObject.id(), "defaultRollouts");
+ }
+
+ public DefaultRollout refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDefaultRollouts()
+ .getWithResponse(providerNamespace, rolloutName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public DefaultRollout refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDefaultRollouts()
+ .getWithResponse(providerNamespace, rolloutName, context)
+ .getValue();
+ return this;
+ }
+
+ public void stop() {
+ serviceManager.defaultRollouts().stop(providerNamespace, rolloutName);
+ }
+
+ public Response stopWithResponse(Context context) {
+ return serviceManager.defaultRollouts().stopWithResponse(providerNamespace, rolloutName, context);
+ }
+
+ public DefaultRolloutImpl withProperties(DefaultRolloutProperties properties) {
+ this.innerModel().withProperties(properties);
+ return this;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutsClientImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutsClientImpl.java
new file mode 100644
index 0000000000000..bcd9d6c48a35b
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutsClientImpl.java
@@ -0,0 +1,1083 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.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.providerhub.fluent.DefaultRolloutsClient;
+import com.azure.resourcemanager.providerhub.fluent.models.DefaultRolloutInner;
+import com.azure.resourcemanager.providerhub.models.DefaultRolloutArrayResponseWithContinuation;
+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 DefaultRolloutsClient. */
+public final class DefaultRolloutsClientImpl implements DefaultRolloutsClient {
+ private final ClientLogger logger = new ClientLogger(DefaultRolloutsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final DefaultRolloutsService service;
+
+ /** The service client containing this operation class. */
+ private final ProviderHubImpl client;
+
+ /**
+ * Initializes an instance of DefaultRolloutsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ DefaultRolloutsClientImpl(ProviderHubImpl client) {
+ this.service =
+ RestProxy.create(DefaultRolloutsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ProviderHubDefaultRollouts to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ProviderHubDefaultRo")
+ private interface DefaultRolloutsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/defaultRollouts/{rolloutName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("rolloutName") String rolloutName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/defaultRollouts/{rolloutName}")
+ @ExpectedResponses({200, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("rolloutName") String rolloutName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/defaultRollouts/{rolloutName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("rolloutName") String rolloutName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") DefaultRolloutInner properties,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/defaultRollouts")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByProviderRegistration(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/defaultRollouts/{rolloutName}/stop")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> stop(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("rolloutName") String rolloutName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByProviderRegistrationNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets the default rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 default rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(String providerNamespace, String rolloutName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the default rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 default rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String providerNamespace, String rolloutName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the default rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 default rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String providerNamespace, String rolloutName) {
+ return getWithResponseAsync(providerNamespace, rolloutName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the default rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 default rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DefaultRolloutInner get(String providerNamespace, String rolloutName) {
+ return getAsync(providerNamespace, rolloutName).block();
+ }
+
+ /**
+ * Gets the default rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 default rollout details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String providerNamespace, String rolloutName, Context context) {
+ return getWithResponseAsync(providerNamespace, rolloutName, context).block();
+ }
+
+ /**
+ * Deletes the rollout resource. Rollout must be in terminal state.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 providerNamespace, String rolloutName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes the rollout resource. Rollout must be in terminal state.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 providerNamespace, String rolloutName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes the rollout resource. Rollout must be in terminal state.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 providerNamespace, String rolloutName) {
+ return deleteWithResponseAsync(providerNamespace, rolloutName).flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * Deletes the rollout resource. Rollout must be in terminal state.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 providerNamespace, String rolloutName) {
+ deleteAsync(providerNamespace, rolloutName).block();
+ }
+
+ /**
+ * Deletes the rollout resource. Rollout must be in terminal state.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response deleteWithResponse(String providerNamespace, String rolloutName, Context context) {
+ return deleteWithResponseAsync(providerNamespace, rolloutName, context).block();
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ properties,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ properties,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, DefaultRolloutInner> beginCreateOrUpdateAsync(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(providerNamespace, rolloutName, properties);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ DefaultRolloutInner.class,
+ DefaultRolloutInner.class,
+ Context.NONE);
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, DefaultRolloutInner> beginCreateOrUpdateAsync(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(providerNamespace, rolloutName, properties, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), DefaultRolloutInner.class, DefaultRolloutInner.class, context);
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, DefaultRolloutInner> beginCreateOrUpdate(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties) {
+ return beginCreateOrUpdateAsync(providerNamespace, rolloutName, properties).getSyncPoller();
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, DefaultRolloutInner> beginCreateOrUpdate(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties, Context context) {
+ return beginCreateOrUpdateAsync(providerNamespace, rolloutName, properties, context).getSyncPoller();
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties) {
+ return beginCreateOrUpdateAsync(providerNamespace, rolloutName, properties)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties, Context context) {
+ return beginCreateOrUpdateAsync(providerNamespace, rolloutName, properties, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DefaultRolloutInner createOrUpdate(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties) {
+ return createOrUpdateAsync(providerNamespace, rolloutName, properties).block();
+ }
+
+ /**
+ * Creates or updates the rollout details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @param properties The Default rollout properties supplied to the CreateOrUpdate 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 default rollout definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DefaultRolloutInner createOrUpdate(
+ String providerNamespace, String rolloutName, DefaultRolloutInner properties, Context context) {
+ return createOrUpdateAsync(providerNamespace, rolloutName, properties, context).block();
+ }
+
+ /**
+ * Gets the list of the rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationSinglePageAsync(
+ String providerNamespace) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByProviderRegistration(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the list of the rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationSinglePageAsync(
+ String providerNamespace, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByProviderRegistration(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets the list of the rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProviderRegistrationAsync(String providerNamespace) {
+ return new PagedFlux<>(
+ () -> listByProviderRegistrationSinglePageAsync(providerNamespace),
+ nextLink -> listByProviderRegistrationNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets the list of the rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProviderRegistrationAsync(String providerNamespace, Context context) {
+ return new PagedFlux<>(
+ () -> listByProviderRegistrationSinglePageAsync(providerNamespace, context),
+ nextLink -> listByProviderRegistrationNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets the list of the rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByProviderRegistration(String providerNamespace) {
+ return new PagedIterable<>(listByProviderRegistrationAsync(providerNamespace));
+ }
+
+ /**
+ * Gets the list of the rollouts for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the rollouts for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByProviderRegistration(String providerNamespace, Context context) {
+ return new PagedIterable<>(listByProviderRegistrationAsync(providerNamespace, context));
+ }
+
+ /**
+ * Stops or cancels the rollout, if in progress.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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> stopWithResponseAsync(String providerNamespace, String rolloutName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .stop(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Stops or cancels the rollout, if in progress.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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> stopWithResponseAsync(String providerNamespace, String rolloutName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (rolloutName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter rolloutName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .stop(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ rolloutName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Stops or cancels the rollout, if in progress.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 stopAsync(String providerNamespace, String rolloutName) {
+ return stopWithResponseAsync(providerNamespace, rolloutName).flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * Stops or cancels the rollout, if in progress.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 stop(String providerNamespace, String rolloutName) {
+ stopAsync(providerNamespace, rolloutName).block();
+ }
+
+ /**
+ * Stops or cancels the rollout, if in progress.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param rolloutName The rollout name.
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response stopWithResponse(String providerNamespace, String rolloutName, Context context) {
+ return stopWithResponseAsync(providerNamespace, rolloutName, 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationNextSinglePageAsync(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.listByProviderRegistrationNext(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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationNextSinglePageAsync(
+ 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
+ .listByProviderRegistrationNext(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/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutsImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutsImpl.java
new file mode 100644
index 0000000000000..5c5aa0f308efe
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/DefaultRolloutsImpl.java
@@ -0,0 +1,180 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.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.providerhub.fluent.DefaultRolloutsClient;
+import com.azure.resourcemanager.providerhub.fluent.models.DefaultRolloutInner;
+import com.azure.resourcemanager.providerhub.models.DefaultRollout;
+import com.azure.resourcemanager.providerhub.models.DefaultRollouts;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class DefaultRolloutsImpl implements DefaultRollouts {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DefaultRolloutsImpl.class);
+
+ private final DefaultRolloutsClient innerClient;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ public DefaultRolloutsImpl(
+ DefaultRolloutsClient innerClient, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public DefaultRollout get(String providerNamespace, String rolloutName) {
+ DefaultRolloutInner inner = this.serviceClient().get(providerNamespace, rolloutName);
+ if (inner != null) {
+ return new DefaultRolloutImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(String providerNamespace, String rolloutName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(providerNamespace, rolloutName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new DefaultRolloutImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void deleteByResourceGroup(String providerNamespace, String rolloutName) {
+ this.serviceClient().delete(providerNamespace, rolloutName);
+ }
+
+ public Response deleteWithResponse(String providerNamespace, String rolloutName, Context context) {
+ return this.serviceClient().deleteWithResponse(providerNamespace, rolloutName, context);
+ }
+
+ public PagedIterable listByProviderRegistration(String providerNamespace) {
+ PagedIterable inner = this.serviceClient().listByProviderRegistration(providerNamespace);
+ return Utils.mapPage(inner, inner1 -> new DefaultRolloutImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByProviderRegistration(String providerNamespace, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByProviderRegistration(providerNamespace, context);
+ return Utils.mapPage(inner, inner1 -> new DefaultRolloutImpl(inner1, this.manager()));
+ }
+
+ public void stop(String providerNamespace, String rolloutName) {
+ this.serviceClient().stop(providerNamespace, rolloutName);
+ }
+
+ public Response stopWithResponse(String providerNamespace, String rolloutName, Context context) {
+ return this.serviceClient().stopWithResponse(providerNamespace, rolloutName, context);
+ }
+
+ public DefaultRollout getById(String id) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String rolloutName = Utils.getValueFromIdByName(id, "defaultRollouts");
+ if (rolloutName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'defaultRollouts'.", id)));
+ }
+ return this.getWithResponse(providerNamespace, rolloutName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String rolloutName = Utils.getValueFromIdByName(id, "defaultRollouts");
+ if (rolloutName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'defaultRollouts'.", id)));
+ }
+ return this.getWithResponse(providerNamespace, rolloutName, context);
+ }
+
+ public void deleteById(String id) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String rolloutName = Utils.getValueFromIdByName(id, "defaultRollouts");
+ if (rolloutName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'defaultRollouts'.", id)));
+ }
+ this.deleteWithResponse(providerNamespace, rolloutName, Context.NONE).getValue();
+ }
+
+ public Response deleteByIdWithResponse(String id, Context context) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String rolloutName = Utils.getValueFromIdByName(id, "defaultRollouts");
+ if (rolloutName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'defaultRollouts'.", id)));
+ }
+ return this.deleteWithResponse(providerNamespace, rolloutName, context);
+ }
+
+ private DefaultRolloutsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+
+ public DefaultRolloutImpl define(String name) {
+ return new DefaultRolloutImpl(name, this.manager());
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationImpl.java
new file mode 100644
index 0000000000000..76e10f96d5a43
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationImpl.java
@@ -0,0 +1,136 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.providerhub.fluent.models.NotificationRegistrationInner;
+import com.azure.resourcemanager.providerhub.models.NotificationRegistration;
+import com.azure.resourcemanager.providerhub.models.NotificationRegistrationProperties;
+
+public final class NotificationRegistrationImpl
+ implements NotificationRegistration, NotificationRegistration.Definition, NotificationRegistration.Update {
+ private NotificationRegistrationInner innerObject;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public NotificationRegistrationProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public NotificationRegistrationInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+
+ private String providerNamespace;
+
+ private String notificationRegistrationName;
+
+ public NotificationRegistrationImpl withExistingProviderRegistration(String providerNamespace) {
+ this.providerNamespace = providerNamespace;
+ return this;
+ }
+
+ public NotificationRegistration create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getNotificationRegistrations()
+ .createOrUpdateWithResponse(
+ providerNamespace, notificationRegistrationName, this.innerModel(), Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public NotificationRegistration create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getNotificationRegistrations()
+ .createOrUpdateWithResponse(providerNamespace, notificationRegistrationName, this.innerModel(), context)
+ .getValue();
+ return this;
+ }
+
+ NotificationRegistrationImpl(String name, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = new NotificationRegistrationInner();
+ this.serviceManager = serviceManager;
+ this.notificationRegistrationName = name;
+ }
+
+ public NotificationRegistrationImpl update() {
+ return this;
+ }
+
+ public NotificationRegistration apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getNotificationRegistrations()
+ .createOrUpdateWithResponse(
+ providerNamespace, notificationRegistrationName, this.innerModel(), Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public NotificationRegistration apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getNotificationRegistrations()
+ .createOrUpdateWithResponse(providerNamespace, notificationRegistrationName, this.innerModel(), context)
+ .getValue();
+ return this;
+ }
+
+ NotificationRegistrationImpl(
+ NotificationRegistrationInner innerObject,
+ com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.providerNamespace = Utils.getValueFromIdByName(innerObject.id(), "providerRegistrations");
+ this.notificationRegistrationName = Utils.getValueFromIdByName(innerObject.id(), "notificationRegistrations");
+ }
+
+ public NotificationRegistration refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getNotificationRegistrations()
+ .getWithResponse(providerNamespace, notificationRegistrationName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public NotificationRegistration refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getNotificationRegistrations()
+ .getWithResponse(providerNamespace, notificationRegistrationName, context)
+ .getValue();
+ return this;
+ }
+
+ public NotificationRegistrationImpl withProperties(NotificationRegistrationProperties properties) {
+ this.innerModel().withProperties(properties);
+ return this;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationsClientImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationsClientImpl.java
new file mode 100644
index 0000000000000..72a24377d7169
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationsClientImpl.java
@@ -0,0 +1,861 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.fluent.NotificationRegistrationsClient;
+import com.azure.resourcemanager.providerhub.fluent.models.NotificationRegistrationInner;
+import com.azure.resourcemanager.providerhub.models.NotificationRegistrationArrayResponseWithContinuation;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in NotificationRegistrationsClient. */
+public final class NotificationRegistrationsClientImpl implements NotificationRegistrationsClient {
+ private final ClientLogger logger = new ClientLogger(NotificationRegistrationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final NotificationRegistrationsService service;
+
+ /** The service client containing this operation class. */
+ private final ProviderHubImpl client;
+
+ /**
+ * Initializes an instance of NotificationRegistrationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ NotificationRegistrationsClientImpl(ProviderHubImpl client) {
+ this.service =
+ RestProxy
+ .create(
+ NotificationRegistrationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ProviderHubNotificationRegistrations to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ProviderHubNotificat")
+ private interface NotificationRegistrationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/notificationRegistrations/{notificationRegistrationName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("notificationRegistrationName") String notificationRegistrationName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/notificationRegistrations/{notificationRegistrationName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("notificationRegistrationName") String notificationRegistrationName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") NotificationRegistrationInner properties,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/notificationRegistrations/{notificationRegistrationName}")
+ @ExpectedResponses({200, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @PathParam("notificationRegistrationName") String notificationRegistrationName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/notificationRegistrations")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByProviderRegistration(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByProviderRegistrationNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets the notification registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 notification registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String providerNamespace, String notificationRegistrationName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (notificationRegistrationName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter notificationRegistrationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ notificationRegistrationName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the notification registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 notification registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String providerNamespace, String notificationRegistrationName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (notificationRegistrationName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter notificationRegistrationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ notificationRegistrationName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the notification registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 notification registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String providerNamespace, String notificationRegistrationName) {
+ return getWithResponseAsync(providerNamespace, notificationRegistrationName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the notification registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 notification registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public NotificationRegistrationInner get(String providerNamespace, String notificationRegistrationName) {
+ return getAsync(providerNamespace, notificationRegistrationName).block();
+ }
+
+ /**
+ * Gets the notification registration details.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 notification registration details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String providerNamespace, String notificationRegistrationName, Context context) {
+ return getWithResponseAsync(providerNamespace, notificationRegistrationName, context).block();
+ }
+
+ /**
+ * Creates or updates a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param properties The required body parameters supplied to the notification registration 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 notification registration definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String providerNamespace, String notificationRegistrationName, NotificationRegistrationInner properties) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (notificationRegistrationName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter notificationRegistrationName is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ notificationRegistrationName,
+ this.client.getApiVersion(),
+ properties,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates or updates a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param properties The required body parameters supplied to the notification registration 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 the notification registration definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String providerNamespace,
+ String notificationRegistrationName,
+ NotificationRegistrationInner properties,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (notificationRegistrationName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter notificationRegistrationName is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ notificationRegistrationName,
+ this.client.getApiVersion(),
+ properties,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates or updates a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param properties The required body parameters supplied to the notification registration 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 notification registration definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String providerNamespace, String notificationRegistrationName, NotificationRegistrationInner properties) {
+ return createOrUpdateWithResponseAsync(providerNamespace, notificationRegistrationName, properties)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Creates or updates a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param properties The required body parameters supplied to the notification registration 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 notification registration definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public NotificationRegistrationInner createOrUpdate(
+ String providerNamespace, String notificationRegistrationName, NotificationRegistrationInner properties) {
+ return createOrUpdateAsync(providerNamespace, notificationRegistrationName, properties).block();
+ }
+
+ /**
+ * Creates or updates a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @param properties The required body parameters supplied to the notification registration 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 the notification registration definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response createOrUpdateWithResponse(
+ String providerNamespace,
+ String notificationRegistrationName,
+ NotificationRegistrationInner properties,
+ Context context) {
+ return createOrUpdateWithResponseAsync(providerNamespace, notificationRegistrationName, properties, context)
+ .block();
+ }
+
+ /**
+ * Deletes a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 providerNamespace, String notificationRegistrationName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (notificationRegistrationName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter notificationRegistrationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ notificationRegistrationName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 providerNamespace, String notificationRegistrationName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (notificationRegistrationName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter notificationRegistrationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ notificationRegistrationName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 providerNamespace, String notificationRegistrationName) {
+ return deleteWithResponseAsync(providerNamespace, notificationRegistrationName)
+ .flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * Deletes a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 providerNamespace, String notificationRegistrationName) {
+ deleteAsync(providerNamespace, notificationRegistrationName).block();
+ }
+
+ /**
+ * Deletes a notification registration.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param notificationRegistrationName The notification registration.
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response deleteWithResponse(
+ String providerNamespace, String notificationRegistrationName, Context context) {
+ return deleteWithResponseAsync(providerNamespace, notificationRegistrationName, context).block();
+ }
+
+ /**
+ * Gets the list of the notification registrations for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the notification registrations for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationSinglePageAsync(
+ String providerNamespace) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByProviderRegistration(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the list of the notification registrations for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the notification registrations for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationSinglePageAsync(
+ String providerNamespace, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByProviderRegistration(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets the list of the notification registrations for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the notification registrations for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProviderRegistrationAsync(String providerNamespace) {
+ return new PagedFlux<>(
+ () -> listByProviderRegistrationSinglePageAsync(providerNamespace),
+ nextLink -> listByProviderRegistrationNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets the list of the notification registrations for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the notification registrations for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProviderRegistrationAsync(
+ String providerNamespace, Context context) {
+ return new PagedFlux<>(
+ () -> listByProviderRegistrationSinglePageAsync(providerNamespace, context),
+ nextLink -> listByProviderRegistrationNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets the list of the notification registrations for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the notification registrations for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByProviderRegistration(String providerNamespace) {
+ return new PagedIterable<>(listByProviderRegistrationAsync(providerNamespace));
+ }
+
+ /**
+ * Gets the list of the notification registrations for the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 list of the notification registrations for the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByProviderRegistration(
+ String providerNamespace, Context context) {
+ return new PagedIterable<>(listByProviderRegistrationAsync(providerNamespace, context));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationNextSinglePageAsync(
+ 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.listByProviderRegistrationNext(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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationNextSinglePageAsync(
+ 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
+ .listByProviderRegistrationNext(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/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationsImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationsImpl.java
new file mode 100644
index 0000000000000..5f31cd5d02b0a
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/NotificationRegistrationsImpl.java
@@ -0,0 +1,185 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.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.providerhub.fluent.NotificationRegistrationsClient;
+import com.azure.resourcemanager.providerhub.fluent.models.NotificationRegistrationInner;
+import com.azure.resourcemanager.providerhub.models.NotificationRegistration;
+import com.azure.resourcemanager.providerhub.models.NotificationRegistrations;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class NotificationRegistrationsImpl implements NotificationRegistrations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NotificationRegistrationsImpl.class);
+
+ private final NotificationRegistrationsClient innerClient;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ public NotificationRegistrationsImpl(
+ NotificationRegistrationsClient innerClient,
+ com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public NotificationRegistration get(String providerNamespace, String notificationRegistrationName) {
+ NotificationRegistrationInner inner = this.serviceClient().get(providerNamespace, notificationRegistrationName);
+ if (inner != null) {
+ return new NotificationRegistrationImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String providerNamespace, String notificationRegistrationName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(providerNamespace, notificationRegistrationName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new NotificationRegistrationImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void deleteByResourceGroup(String providerNamespace, String notificationRegistrationName) {
+ this.serviceClient().delete(providerNamespace, notificationRegistrationName);
+ }
+
+ public Response deleteWithResponse(
+ String providerNamespace, String notificationRegistrationName, Context context) {
+ return this.serviceClient().deleteWithResponse(providerNamespace, notificationRegistrationName, context);
+ }
+
+ public PagedIterable listByProviderRegistration(String providerNamespace) {
+ PagedIterable inner =
+ this.serviceClient().listByProviderRegistration(providerNamespace);
+ return Utils.mapPage(inner, inner1 -> new NotificationRegistrationImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByProviderRegistration(
+ String providerNamespace, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByProviderRegistration(providerNamespace, context);
+ return Utils.mapPage(inner, inner1 -> new NotificationRegistrationImpl(inner1, this.manager()));
+ }
+
+ public NotificationRegistration getById(String id) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String notificationRegistrationName = Utils.getValueFromIdByName(id, "notificationRegistrations");
+ if (notificationRegistrationName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'notificationRegistrations'.",
+ id)));
+ }
+ return this.getWithResponse(providerNamespace, notificationRegistrationName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String notificationRegistrationName = Utils.getValueFromIdByName(id, "notificationRegistrations");
+ if (notificationRegistrationName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'notificationRegistrations'.",
+ id)));
+ }
+ return this.getWithResponse(providerNamespace, notificationRegistrationName, context);
+ }
+
+ public void deleteById(String id) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String notificationRegistrationName = Utils.getValueFromIdByName(id, "notificationRegistrations");
+ if (notificationRegistrationName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'notificationRegistrations'.",
+ id)));
+ }
+ this.deleteWithResponse(providerNamespace, notificationRegistrationName, Context.NONE).getValue();
+ }
+
+ public Response deleteByIdWithResponse(String id, Context context) {
+ String providerNamespace = Utils.getValueFromIdByName(id, "providerRegistrations");
+ if (providerNamespace == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'providerRegistrations'.",
+ id)));
+ }
+ String notificationRegistrationName = Utils.getValueFromIdByName(id, "notificationRegistrations");
+ if (notificationRegistrationName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'notificationRegistrations'.",
+ id)));
+ }
+ return this.deleteWithResponse(providerNamespace, notificationRegistrationName, context);
+ }
+
+ private NotificationRegistrationsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+
+ public NotificationRegistrationImpl define(String name) {
+ return new NotificationRegistrationImpl(name, this.manager());
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsClientImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsClientImpl.java
new file mode 100644
index 0000000000000..7f3970fda3d78
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsClientImpl.java
@@ -0,0 +1,730 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.providerhub.fluent.OperationsClient;
+import com.azure.resourcemanager.providerhub.fluent.models.OperationsContentInner;
+import com.azure.resourcemanager.providerhub.fluent.models.OperationsDefinitionInner;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionArrayResponseWithContinuation;
+import com.azure.resourcemanager.providerhub.models.OperationsPutContent;
+import java.util.List;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public final class OperationsClientImpl implements OperationsClient {
+ private final ClientLogger logger = new ClientLogger(OperationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final OperationsService service;
+
+ /** The service client containing this operation class. */
+ private final ProviderHubImpl client;
+
+ /**
+ * Initializes an instance of OperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ OperationsClientImpl(ProviderHubImpl client) {
+ this.service =
+ RestProxy.create(OperationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ProviderHubOperations to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ProviderHubOperation")
+ private interface OperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get("/providers/Microsoft.ProviderHub/operations")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint, @HeaderParam("Accept") String accept, Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/operations/default")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> listByProviderRegistration(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/operations/default")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") OperationsPutContent operationsPutContent,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ProviderHub/providerRegistrations/{providerNamespace}"
+ + "/operations/default")
+ @ExpectedResponses({200, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("providerNamespace") String providerNamespace,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all the operations supported by Microsoft.ProviderHub.
+ *
+ * @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 response.
+ */
+ @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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.list(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()));
+ }
+
+ /**
+ * Lists all the operations supported by Microsoft.ProviderHub.
+ *
+ * @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 response.
+ */
+ @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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all the operations supported by Microsoft.ProviderHub.
+ *
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(() -> listSinglePageAsync(), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all the operations supported by Microsoft.ProviderHub.
+ *
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(context), nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all the operations supported by Microsoft.ProviderHub.
+ *
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * Lists all the operations supported by Microsoft.ProviderHub.
+ *
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(Context context) {
+ return new PagedIterable<>(listAsync(context));
+ }
+
+ /**
+ * Gets the operations supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 operations supported by the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> listByProviderRegistrationWithResponseAsync(
+ String providerNamespace) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByProviderRegistration(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the operations supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 operations supported by the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> listByProviderRegistrationWithResponseAsync(
+ String providerNamespace, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByProviderRegistration(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the operations supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 operations supported by the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProviderRegistrationAsync(String providerNamespace) {
+ return listByProviderRegistrationWithResponseAsync(providerNamespace)
+ .flatMap(
+ (Response> res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the operations supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 operations supported by the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public List listByProviderRegistration(String providerNamespace) {
+ return listByProviderRegistrationAsync(providerNamespace).block();
+ }
+
+ /**
+ * Gets the operations supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 operations supported by the given provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response> listByProviderRegistrationWithResponse(
+ String providerNamespace, Context context) {
+ return listByProviderRegistrationWithResponseAsync(providerNamespace, context).block();
+ }
+
+ /**
+ * Creates or updates the operation supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param operationsPutContent The operations content properties supplied to the CreateOrUpdate 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String providerNamespace, OperationsPutContent operationsPutContent) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (operationsPutContent == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter operationsPutContent is required and cannot be null."));
+ } else {
+ operationsPutContent.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ operationsPutContent,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates or updates the operation supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param operationsPutContent The operations content properties supplied to the CreateOrUpdate 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String providerNamespace, OperationsPutContent operationsPutContent, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ if (operationsPutContent == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter operationsPutContent is required and cannot be null."));
+ } else {
+ operationsPutContent.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ operationsPutContent,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates or updates the operation supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param operationsPutContent The operations content properties supplied to the CreateOrUpdate 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String providerNamespace, OperationsPutContent operationsPutContent) {
+ return createOrUpdateWithResponseAsync(providerNamespace, operationsPutContent)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Creates or updates the operation supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param operationsPutContent The operations content properties supplied to the CreateOrUpdate 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public OperationsContentInner createOrUpdate(String providerNamespace, OperationsPutContent operationsPutContent) {
+ return createOrUpdateAsync(providerNamespace, operationsPutContent).block();
+ }
+
+ /**
+ * Creates or updates the operation supported by the given provider.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @param operationsPutContent The operations content properties supplied to the CreateOrUpdate 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response createOrUpdateWithResponse(
+ String providerNamespace, OperationsPutContent operationsPutContent, Context context) {
+ return createOrUpdateWithResponseAsync(providerNamespace, operationsPutContent, context).block();
+ }
+
+ /**
+ * Deletes an operation.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 providerNamespace) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes an operation.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 providerNamespace, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (providerNamespace == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter providerNamespace is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ providerNamespace,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes an operation.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 providerNamespace) {
+ return deleteWithResponseAsync(providerNamespace).flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * Deletes an operation.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 providerNamespace) {
+ deleteAsync(providerNamespace).block();
+ }
+
+ /**
+ * Deletes an operation.
+ *
+ * @param providerNamespace The name of the resource provider hosted within ProviderHub.
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response deleteWithResponse(String providerNamespace, Context context) {
+ return deleteWithResponseAsync(providerNamespace, 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 the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsContentImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsContentImpl.java
new file mode 100644
index 0000000000000..4592492ce7ded
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsContentImpl.java
@@ -0,0 +1,67 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.resourcemanager.providerhub.fluent.models.OperationsContentInner;
+import com.azure.resourcemanager.providerhub.models.OperationsContent;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionActionType;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionDisplay;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionOrigin;
+
+public final class OperationsContentImpl implements OperationsContent {
+ private OperationsContentInner innerObject;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ OperationsContentImpl(
+ OperationsContentInner innerObject, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String namePropertiesName() {
+ return this.innerModel().namePropertiesName();
+ }
+
+ public Boolean isDataAction() {
+ return this.innerModel().isDataAction();
+ }
+
+ public OperationsDefinitionOrigin origin() {
+ return this.innerModel().origin();
+ }
+
+ public OperationsDefinitionDisplay display() {
+ return this.innerModel().display();
+ }
+
+ public OperationsDefinitionActionType actionType() {
+ return this.innerModel().actionType();
+ }
+
+ public Object properties() {
+ return this.innerModel().properties();
+ }
+
+ public OperationsContentInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsDefinitionImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsDefinitionImpl.java
new file mode 100644
index 0000000000000..25e98263d7b64
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsDefinitionImpl.java
@@ -0,0 +1,56 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.implementation;
+
+import com.azure.resourcemanager.providerhub.fluent.models.OperationsDefinitionInner;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinition;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionActionType;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionDisplay;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinitionOrigin;
+
+public final class OperationsDefinitionImpl implements OperationsDefinition {
+ private OperationsDefinitionInner innerObject;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ OperationsDefinitionImpl(
+ OperationsDefinitionInner innerObject,
+ com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public Boolean isDataAction() {
+ return this.innerModel().isDataAction();
+ }
+
+ public OperationsDefinitionOrigin origin() {
+ return this.innerModel().origin();
+ }
+
+ public OperationsDefinitionDisplay display() {
+ return this.innerModel().display();
+ }
+
+ public OperationsDefinitionActionType actionType() {
+ return this.innerModel().actionType();
+ }
+
+ public Object properties() {
+ return this.innerModel().properties();
+ }
+
+ public OperationsDefinitionInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsImpl.java
new file mode 100644
index 0000000000000..f90c570f0aed5
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/OperationsImpl.java
@@ -0,0 +1,119 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.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.providerhub.fluent.OperationsClient;
+import com.azure.resourcemanager.providerhub.fluent.models.OperationsContentInner;
+import com.azure.resourcemanager.providerhub.fluent.models.OperationsDefinitionInner;
+import com.azure.resourcemanager.providerhub.models.Operations;
+import com.azure.resourcemanager.providerhub.models.OperationsContent;
+import com.azure.resourcemanager.providerhub.models.OperationsDefinition;
+import com.azure.resourcemanager.providerhub.models.OperationsPutContent;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public final class OperationsImpl implements Operations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationsImpl.class);
+
+ private final OperationsClient innerClient;
+
+ private final com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager;
+
+ public OperationsImpl(
+ OperationsClient innerClient, com.azure.resourcemanager.providerhub.ProviderHubManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list() {
+ PagedIterable inner = this.serviceClient().list();
+ return Utils.mapPage(inner, inner1 -> new OperationsDefinitionImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(Context context) {
+ PagedIterable inner = this.serviceClient().list(context);
+ return Utils.mapPage(inner, inner1 -> new OperationsDefinitionImpl(inner1, this.manager()));
+ }
+
+ public List listByProviderRegistration(String providerNamespace) {
+ List inner = this.serviceClient().listByProviderRegistration(providerNamespace);
+ if (inner != null) {
+ return Collections
+ .unmodifiableList(
+ inner
+ .stream()
+ .map(inner1 -> new OperationsDefinitionImpl(inner1, this.manager()))
+ .collect(Collectors.toList()));
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public Response> listByProviderRegistrationWithResponse(
+ String providerNamespace, Context context) {
+ Response> inner =
+ this.serviceClient().listByProviderRegistrationWithResponse(providerNamespace, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ inner
+ .getValue()
+ .stream()
+ .map(inner1 -> new OperationsDefinitionImpl(inner1, this.manager()))
+ .collect(Collectors.toList()));
+ } else {
+ return null;
+ }
+ }
+
+ public OperationsContent createOrUpdate(String providerNamespace, OperationsPutContent operationsPutContent) {
+ OperationsContentInner inner = this.serviceClient().createOrUpdate(providerNamespace, operationsPutContent);
+ if (inner != null) {
+ return new OperationsContentImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response createOrUpdateWithResponse(
+ String providerNamespace, OperationsPutContent operationsPutContent, Context context) {
+ Response inner =
+ this.serviceClient().createOrUpdateWithResponse(providerNamespace, operationsPutContent, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new OperationsContentImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void delete(String providerNamespace) {
+ this.serviceClient().delete(providerNamespace);
+ }
+
+ public Response deleteWithResponse(String providerNamespace, Context context) {
+ return this.serviceClient().deleteWithResponse(providerNamespace, context);
+ }
+
+ private OperationsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.providerhub.ProviderHubManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/ProviderHubBuilder.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/ProviderHubBuilder.java
new file mode 100644
index 0000000000000..a425ae40abf68
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/ProviderHubBuilder.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.providerhub.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 ProviderHubImpl type. */
+@ServiceClientBuilder(serviceClients = {ProviderHubImpl.class})
+public final class ProviderHubBuilder {
+ /*
+ * The ID of the target subscription.
+ */
+ private String subscriptionId;
+
+ /**
+ * Sets The ID of the target subscription.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the ProviderHubBuilder.
+ */
+ public ProviderHubBuilder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /*
+ * server parameter
+ */
+ private String endpoint;
+
+ /**
+ * Sets server parameter.
+ *
+ * @param endpoint the endpoint value.
+ * @return the ProviderHubBuilder.
+ */
+ public ProviderHubBuilder 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 ProviderHubBuilder.
+ */
+ public ProviderHubBuilder 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 ProviderHubBuilder.
+ */
+ public ProviderHubBuilder 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 ProviderHubBuilder.
+ */
+ public ProviderHubBuilder 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 ProviderHubBuilder.
+ */
+ public ProviderHubBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of ProviderHubImpl with the provided parameters.
+ *
+ * @return an instance of ProviderHubImpl.
+ */
+ public ProviderHubImpl 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();
+ }
+ ProviderHubImpl client =
+ new ProviderHubImpl(
+ pipeline, serializerAdapter, defaultPollInterval, environment, subscriptionId, endpoint);
+ return client;
+ }
+}
diff --git a/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/ProviderHubImpl.java b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/ProviderHubImpl.java
new file mode 100644
index 0000000000000..eca0864f8d49d
--- /dev/null
+++ b/sdk/providerhub/azure-resourcemanager-providerhub/src/main/java/com/azure/resourcemanager/providerhub/implementation/ProviderHubImpl.java
@@ -0,0 +1,391 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.providerhub.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.providerhub.fluent.CustomRolloutsClient;
+import com.azure.resourcemanager.providerhub.fluent.DefaultRolloutsClient;
+import com.azure.resourcemanager.providerhub.fluent.NotificationRegistrationsClient;
+import com.azure.resourcemanager.providerhub.fluent.OperationsClient;
+import com.azure.resourcemanager.providerhub.fluent.ProviderHub;
+import com.azure.resourcemanager.providerhub.fluent.ProviderRegistrationsClient;
+import com.azure.resourcemanager.providerhub.fluent.ResourceProvidersClient;
+import com.azure.resourcemanager.providerhub.fluent.ResourceTypeRegistrationsClient;
+import com.azure.resourcemanager.providerhub.fluent.SkusClient;
+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 ProviderHubImpl type. */
+@ServiceClient(builder = ProviderHubBuilder.class)
+public final class ProviderHubImpl implements ProviderHub {
+ private final ClientLogger logger = new ClientLogger(ProviderHubImpl.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 CustomRolloutsClient object to access its operations. */
+ private final CustomRolloutsClient customRollouts;
+
+ /**
+ * Gets the CustomRolloutsClient object to access its operations.
+ *
+ * @return the CustomRolloutsClient object.
+ */
+ public CustomRolloutsClient getCustomRollouts() {
+ return this.customRollouts;
+ }
+
+ /** The DefaultRolloutsClient object to access its operations. */
+ private final DefaultRolloutsClient defaultRollouts;
+
+ /**
+ * Gets the DefaultRolloutsClient object to access its operations.
+ *
+ * @return the DefaultRolloutsClient object.
+ */
+ public DefaultRolloutsClient getDefaultRollouts() {
+ return this.defaultRollouts;
+ }
+
+ /** The ResourceProvidersClient object to access its operations. */
+ private final ResourceProvidersClient resourceProviders;
+
+ /**
+ * Gets the ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ public ResourceProvidersClient getResourceProviders() {
+ return this.resourceProviders;
+ }
+
+ /** The NotificationRegistrationsClient object to access its operations. */
+ private final NotificationRegistrationsClient notificationRegistrations;
+
+ /**
+ * Gets the NotificationRegistrationsClient object to access its operations.
+ *
+ * @return the NotificationRegistrationsClient object.
+ */
+ public NotificationRegistrationsClient getNotificationRegistrations() {
+ return this.notificationRegistrations;
+ }
+
+ /** 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 ProviderRegistrationsClient object to access its operations. */
+ private final ProviderRegistrationsClient providerRegistrations;
+
+ /**
+ * Gets the ProviderRegistrationsClient object to access its operations.
+ *
+ * @return the ProviderRegistrationsClient object.
+ */
+ public ProviderRegistrationsClient getProviderRegistrations() {
+ return this.providerRegistrations;
+ }
+
+ /** The ResourceTypeRegistrationsClient object to access its operations. */
+ private final ResourceTypeRegistrationsClient resourceTypeRegistrations;
+
+ /**
+ * Gets the ResourceTypeRegistrationsClient object to access its operations.
+ *
+ * @return the ResourceTypeRegistrationsClient object.
+ */
+ public ResourceTypeRegistrationsClient getResourceTypeRegistrations() {
+ return this.resourceTypeRegistrations;
+ }
+
+ /** The SkusClient object to access its operations. */
+ private final SkusClient skus;
+
+ /**
+ * Gets the SkusClient object to access its operations.
+ *
+ * @return the SkusClient object.
+ */
+ public SkusClient getSkus() {
+ return this.skus;
+ }
+
+ /**
+ * Initializes an instance of ProviderHub 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.
+ */
+ ProviderHubImpl(
+ 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 = "2020-11-20";
+ this.customRollouts = new CustomRolloutsClientImpl(this);
+ this.defaultRollouts = new DefaultRolloutsClientImpl(this);
+ this.resourceProviders = new ResourceProvidersClientImpl(this);
+ this.notificationRegistrations = new NotificationRegistrationsClientImpl(this);
+ this.operations = new OperationsClientImpl(this);
+ this.providerRegistrations = new ProviderRegistrationsClientImpl(this);
+ this.resourceTypeRegistrations = new ResourceTypeRegistrationsClientImpl(this);
+ this.skus = new SkusClientImpl(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