diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 4f3a1a5bfed2a..2974246a80397 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -210,6 +210,7 @@ com.azure.resourcemanager:azure-resourcemanager-redisenterprise;1.0.0-beta.2;1.0
com.azure.resourcemanager:azure-resourcemanager-hybridkubernetes;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-iothub;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-datadog;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-deviceprovisioningservices;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 f511c48002b32..f6e9d0ded2523 100644
--- a/pom.xml
+++ b/pom.xml
@@ -593,8 +593,9 @@
sdk/coresdk/cosmossdk/costmanagement
- sdk/deviceupdatesdk/datadog
+ sdk/deviceprovisioningservices
+ sdk/deviceupdatesdk/digitaltwinssdk/eventgridsdk/eventhubs
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/CHANGELOG.md b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/CHANGELOG.md
new file mode 100644
index 0000000000000..40d0640edecd8
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-03-12)
+
+- Azure Resource Manager IotDps client library for Java. This package contains Microsoft Azure SDK for IotDps Management SDK. API for using the Azure IoT Hub Device Provisioning Service features. Package tag package-preview-2020-09. 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/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/README.md b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/README.md
new file mode 100644
index 0000000000000..398687ee9fdaa
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/README.md
@@ -0,0 +1,99 @@
+# Azure Resource Manager IotDps client library for Java
+
+Azure Resource Manager IotDps client library for Java.
+
+This package contains Microsoft Azure SDK for IotDps Management SDK. API for using the Azure IoT Hub Device Provisioning Service features. Package tag package-preview-2020-09. 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-deviceprovisioningservices;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-deviceprovisioningservices
+ 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();
+IotDpsManager manager = IotDpsManager
+ .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/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/pom.xml b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/pom.xml
new file mode 100644
index 0000000000000..0df1ac0388e1a
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/pom.xml
@@ -0,0 +1,67 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-deviceprovisioningservices
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for IotDps Management
+ This package contains Microsoft Azure SDK for IotDps Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. API for using the Azure IoT Hub Device Provisioning Service features. Package tag package-preview-2020-09.
+ 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.14.0
+
+
+ com.azure
+ azure-core-management
+ 1.2.0
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+
+
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/IotDpsManager.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/IotDpsManager.java
new file mode 100644
index 0000000000000..1fbbf0a265d9b
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/IotDpsManager.java
@@ -0,0 +1,238 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices;
+
+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.deviceprovisioningservices.fluent.IotDpsClient;
+import com.azure.resourcemanager.deviceprovisioningservices.implementation.DpsCertificatesImpl;
+import com.azure.resourcemanager.deviceprovisioningservices.implementation.IotDpsClientBuilder;
+import com.azure.resourcemanager.deviceprovisioningservices.implementation.IotDpsResourcesImpl;
+import com.azure.resourcemanager.deviceprovisioningservices.implementation.OperationsImpl;
+import com.azure.resourcemanager.deviceprovisioningservices.models.DpsCertificates;
+import com.azure.resourcemanager.deviceprovisioningservices.models.IotDpsResources;
+import com.azure.resourcemanager.deviceprovisioningservices.models.Operations;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/** Entry point to IotDpsManager. API for using the Azure IoT Hub Device Provisioning Service features. */
+public final class IotDpsManager {
+ private Operations operations;
+
+ private DpsCertificates dpsCertificates;
+
+ private IotDpsResources iotDpsResources;
+
+ private final IotDpsClient clientObject;
+
+ private IotDpsManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new IotDpsClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of IotDps service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the IotDps service API instance.
+ */
+ public static IotDpsManager 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 IotDpsManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new IotDpsManager.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 IotDps service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the IotDps service API instance.
+ */
+ public IotDpsManager 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.deviceprovisioningservices")
+ .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"));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new IotDpsManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @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 DpsCertificates. */
+ public DpsCertificates dpsCertificates() {
+ if (this.dpsCertificates == null) {
+ this.dpsCertificates = new DpsCertificatesImpl(clientObject.getDpsCertificates(), this);
+ }
+ return dpsCertificates;
+ }
+
+ /** @return Resource collection API of IotDpsResources. */
+ public IotDpsResources iotDpsResources() {
+ if (this.iotDpsResources == null) {
+ this.iotDpsResources = new IotDpsResourcesImpl(clientObject.getIotDpsResources(), this);
+ }
+ return iotDpsResources;
+ }
+
+ /**
+ * @return Wrapped service client IotDpsClient providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public IotDpsClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/DpsCertificatesClient.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/DpsCertificatesClient.java
new file mode 100644
index 0000000000000..afb767fd3bf16
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/DpsCertificatesClient.java
@@ -0,0 +1,312 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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.deviceprovisioningservices.fluent.models.CertificateListDescriptionInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.CertificateResponseInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.VerificationCodeResponseInner;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateBodyDescription;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificatePurpose;
+import com.azure.resourcemanager.deviceprovisioningservices.models.VerificationCodeRequest;
+import java.time.OffsetDateTime;
+
+/** An instance of this class provides access to all the operations defined in DpsCertificatesClient. */
+public interface DpsCertificatesClient {
+ /**
+ * Get the certificate from the provisioning service.
+ *
+ * @param certificateName Name of the certificate to retrieve.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of the provisioning service the certificate is associated with.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the certificate from the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CertificateResponseInner get(String certificateName, String resourceGroupName, String provisioningServiceName);
+
+ /**
+ * Get the certificate from the provisioning service.
+ *
+ * @param certificateName Name of the certificate to retrieve.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of the provisioning service the certificate is associated with.
+ * @param ifMatch ETag of the certificate.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the certificate from the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String certificateName,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String ifMatch,
+ Context context);
+
+ /**
+ * Add new certificate or update an existing certificate.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName The name of the certificate create or update.
+ * @param certificateDescription The certificate body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CertificateResponseInner createOrUpdate(
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName,
+ CertificateBodyDescription certificateDescription);
+
+ /**
+ * Add new certificate or update an existing certificate.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName The name of the certificate create or update.
+ * @param certificateDescription The certificate body.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName,
+ CertificateBodyDescription certificateDescription,
+ String ifMatch,
+ Context context);
+
+ /**
+ * Deletes the specified certificate associated with the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param ifMatch ETag of the certificate.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName This is a mandatory field, and is the logical name of the certificate that the
+ * provisioning service will access by.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String ifMatch, String provisioningServiceName, String certificateName);
+
+ /**
+ * Deletes the specified certificate associated with the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param ifMatch ETag of the certificate.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName This is a mandatory field, and is the logical name of the certificate that the
+ * provisioning service will access by.
+ * @param certificateName1 This is optional, and it is the Common Name of the certificate.
+ * @param certificateRawBytes Raw data within the certificate.
+ * @param certificateIsVerified Indicates if certificate has been verified by owner of the private key.
+ * @param certificatePurpose A description that mentions the purpose of the certificate.
+ * @param certificateCreated Time the certificate is created.
+ * @param certificateLastUpdated Time the certificate is last updated.
+ * @param certificateHasPrivateKey Indicates if the certificate contains a private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException 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 resourceGroupName,
+ String ifMatch,
+ String provisioningServiceName,
+ String certificateName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context);
+
+ /**
+ * Get all the certificates tied to the provisioning service.
+ *
+ * @param resourceGroupName Name of resource group.
+ * @param provisioningServiceName Name of provisioning service to retrieve certificates for.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the certificates tied to the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CertificateListDescriptionInner list(String resourceGroupName, String provisioningServiceName);
+
+ /**
+ * Get all the certificates tied to the provisioning service.
+ *
+ * @param resourceGroupName Name of resource group.
+ * @param provisioningServiceName Name of provisioning service to retrieve certificates for.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the certificates tied to the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(
+ String resourceGroupName, String provisioningServiceName, Context context);
+
+ /**
+ * Generate verification code for Proof of Possession.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param resourceGroupName name of resource group.
+ * @param provisioningServiceName Name of provisioning service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the response of the verification code.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VerificationCodeResponseInner generateVerificationCode(
+ String certificateName, String ifMatch, String resourceGroupName, String provisioningServiceName);
+
+ /**
+ * Generate verification code for Proof of Possession.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param resourceGroupName name of resource group.
+ * @param provisioningServiceName Name of provisioning service.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Description mentioning the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the response of the verification code.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response generateVerificationCodeWithResponse(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context);
+
+ /**
+ * Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded
+ * certificate.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate.
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Provisioning service name.
+ * @param request The name of the certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CertificateResponseInner verifyCertificate(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request);
+
+ /**
+ * Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded
+ * certificate.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate.
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Provisioning service name.
+ * @param request The name of the certificate.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Describe the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response verifyCertificateWithResponse(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context);
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/IotDpsClient.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/IotDpsClient.java
new file mode 100644
index 0000000000000..139d7f710e8f6
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/IotDpsClient.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.deviceprovisioningservices.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for IotDpsClient class. */
+public interface IotDpsClient {
+ /**
+ * Gets The subscription identifier.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the DpsCertificatesClient object to access its operations.
+ *
+ * @return the DpsCertificatesClient object.
+ */
+ DpsCertificatesClient getDpsCertificates();
+
+ /**
+ * Gets the IotDpsResourcesClient object to access its operations.
+ *
+ * @return the IotDpsResourcesClient object.
+ */
+ IotDpsResourcesClient getIotDpsResources();
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/IotDpsResourcesClient.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/IotDpsResourcesClient.java
new file mode 100644
index 0000000000000..937b68b63175a
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/IotDpsResourcesClient.java
@@ -0,0 +1,765 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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.deviceprovisioningservices.fluent.models.AsyncOperationResultInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.GroupIdInformationInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.IotDpsSkuDefinitionInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.NameAvailabilityInfoInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.PrivateEndpointConnectionInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.PrivateLinkResourcesInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.ProvisioningServiceDescriptionInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner;
+import com.azure.resourcemanager.deviceprovisioningservices.models.OperationInputs;
+import com.azure.resourcemanager.deviceprovisioningservices.models.TagsResource;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in IotDpsResourcesClient. */
+public interface IotDpsResourcesClient {
+ /**
+ * Get the metadata of the provisioning service without SAS keys.
+ *
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Name of the provisioning service to retrieve.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the metadata of the provisioning service without SAS keys.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProvisioningServiceDescriptionInner getByResourceGroup(String resourceGroupName, String provisioningServiceName);
+
+ /**
+ * Get the metadata of the provisioning service without SAS keys.
+ *
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Name of the provisioning service to retrieve.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the metadata of the provisioning service without SAS keys.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String provisioningServiceName, Context context);
+
+ /**
+ * Create or update the metadata of the provisioning service. The usual pattern to modify a property is to retrieve
+ * the provisioning service metadata and security metadata, and then combine them with the modified values in a new
+ * body to update the provisioning service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to create or update.
+ * @param iotDpsDescription Description of the provisioning service to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ProvisioningServiceDescriptionInner>
+ beginCreateOrUpdate(
+ String resourceGroupName,
+ String provisioningServiceName,
+ ProvisioningServiceDescriptionInner iotDpsDescription);
+
+ /**
+ * Create or update the metadata of the provisioning service. The usual pattern to modify a property is to retrieve
+ * the provisioning service metadata and security metadata, and then combine them with the modified values in a new
+ * body to update the provisioning service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to create or update.
+ * @param iotDpsDescription Description of the provisioning service to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ProvisioningServiceDescriptionInner>
+ beginCreateOrUpdate(
+ String resourceGroupName,
+ String provisioningServiceName,
+ ProvisioningServiceDescriptionInner iotDpsDescription,
+ Context context);
+
+ /**
+ * Create or update the metadata of the provisioning service. The usual pattern to modify a property is to retrieve
+ * the provisioning service metadata and security metadata, and then combine them with the modified values in a new
+ * body to update the provisioning service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to create or update.
+ * @param iotDpsDescription Description of the provisioning service to create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProvisioningServiceDescriptionInner createOrUpdate(
+ String resourceGroupName,
+ String provisioningServiceName,
+ ProvisioningServiceDescriptionInner iotDpsDescription);
+
+ /**
+ * Create or update the metadata of the provisioning service. The usual pattern to modify a property is to retrieve
+ * the provisioning service metadata and security metadata, and then combine them with the modified values in a new
+ * body to update the provisioning service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to create or update.
+ * @param iotDpsDescription Description of the provisioning service to create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProvisioningServiceDescriptionInner createOrUpdate(
+ String resourceGroupName,
+ String provisioningServiceName,
+ ProvisioningServiceDescriptionInner iotDpsDescription,
+ Context context);
+
+ /**
+ * Update an existing provisioning service's tags. to update other fields use the CreateOrUpdate method.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to create or update.
+ * @param provisioningServiceTags Updated tag information to set into the provisioning service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ProvisioningServiceDescriptionInner> beginUpdate(
+ String resourceGroupName, String provisioningServiceName, TagsResource provisioningServiceTags);
+
+ /**
+ * Update an existing provisioning service's tags. to update other fields use the CreateOrUpdate method.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to create or update.
+ * @param provisioningServiceTags Updated tag information to set into the provisioning service instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ProvisioningServiceDescriptionInner> beginUpdate(
+ String resourceGroupName,
+ String provisioningServiceName,
+ TagsResource provisioningServiceTags,
+ Context context);
+
+ /**
+ * Update an existing provisioning service's tags. to update other fields use the CreateOrUpdate method.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to create or update.
+ * @param provisioningServiceTags Updated tag information to set into the provisioning service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProvisioningServiceDescriptionInner update(
+ String resourceGroupName, String provisioningServiceName, TagsResource provisioningServiceTags);
+
+ /**
+ * Update an existing provisioning service's tags. to update other fields use the CreateOrUpdate method.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to create or update.
+ * @param provisioningServiceTags Updated tag information to set into the provisioning service instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProvisioningServiceDescriptionInner update(
+ String resourceGroupName,
+ String provisioningServiceName,
+ TagsResource provisioningServiceTags,
+ Context context);
+
+ /**
+ * Deletes the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String provisioningServiceName);
+
+ /**
+ * Deletes the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to delete.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String provisioningServiceName, Context context);
+
+ /**
+ * Deletes the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String provisioningServiceName);
+
+ /**
+ * Deletes the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service to delete.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String provisioningServiceName, Context context);
+
+ /**
+ * List all the provisioning services for a given subscription id.
+ *
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of provisioning service descriptions.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List all the provisioning services for a given subscription id.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of provisioning service descriptions.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Get a list of all provisioning services in the given resource group.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of all provisioning services in the given resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Get a list of all provisioning services in the given resource group.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of all provisioning services in the given resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets the status of a long running operation, such as create, update or delete a provisioning service.
+ *
+ * @param operationId Operation id corresponding to long running operation. Use this to poll for the status.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service that the operation is running on.
+ * @param asyncinfo Async header used to poll on the status of the operation, obtained while creating the long
+ * running operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the status of a long running operation, such as create, update or delete a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AsyncOperationResultInner getOperationResult(
+ String operationId, String resourceGroupName, String provisioningServiceName, String asyncinfo);
+
+ /**
+ * Gets the status of a long running operation, such as create, update or delete a provisioning service.
+ *
+ * @param operationId Operation id corresponding to long running operation. Use this to poll for the status.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of provisioning service that the operation is running on.
+ * @param asyncinfo Async header used to poll on the status of the operation, obtained while creating the long
+ * running operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the status of a long running operation, such as create, update or delete a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getOperationResultWithResponse(
+ String operationId,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String asyncinfo,
+ Context context);
+
+ /**
+ * Gets the list of valid SKUs and tiers for a provisioning service.
+ *
+ * @param provisioningServiceName Name of provisioning service.
+ * @param resourceGroupName Name of resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException 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 valid SKUs and tiers for a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listValidSkus(String provisioningServiceName, String resourceGroupName);
+
+ /**
+ * Gets the list of valid SKUs and tiers for a provisioning service.
+ *
+ * @param provisioningServiceName Name of provisioning service.
+ * @param resourceGroupName Name of resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException 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 valid SKUs and tiers for a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listValidSkus(
+ String provisioningServiceName, String resourceGroupName, Context context);
+
+ /**
+ * Check if a provisioning service name is available. This will validate if the name is syntactically valid and if
+ * the name is usable.
+ *
+ * @param arguments Set the name parameter in the OperationInputs structure to the name of the provisioning service
+ * to check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of name availability.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NameAvailabilityInfoInner checkProvisioningServiceNameAvailability(OperationInputs arguments);
+
+ /**
+ * Check if a provisioning service name is available. This will validate if the name is syntactically valid and if
+ * the name is usable.
+ *
+ * @param arguments Set the name parameter in the OperationInputs structure to the name of the provisioning service
+ * to check.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of name availability.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkProvisioningServiceNameAvailabilityWithResponse(
+ OperationInputs arguments, Context context);
+
+ /**
+ * List the primary and secondary keys for a provisioning service.
+ *
+ * @param provisioningServiceName The provisioning service name to get the shared access keys for.
+ * @param resourceGroupName resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of shared access keys.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listKeys(
+ String provisioningServiceName, String resourceGroupName);
+
+ /**
+ * List the primary and secondary keys for a provisioning service.
+ *
+ * @param provisioningServiceName The provisioning service name to get the shared access keys for.
+ * @param resourceGroupName resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of shared access keys.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listKeys(
+ String provisioningServiceName, String resourceGroupName, Context context);
+
+ /**
+ * List primary and secondary keys for a specific key name.
+ *
+ * @param provisioningServiceName Name of the provisioning service.
+ * @param keyName Logical key name to get key-values for.
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the shared access key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner listKeysForKeyName(
+ String provisioningServiceName, String keyName, String resourceGroupName);
+
+ /**
+ * List primary and secondary keys for a specific key name.
+ *
+ * @param provisioningServiceName Name of the provisioning service.
+ * @param keyName Logical key name to get key-values for.
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the shared access key.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listKeysForKeyNameWithResponse(
+ String provisioningServiceName, String keyName, String resourceGroupName, Context context);
+
+ /**
+ * List private link resources for the given provisioning service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the available private link resources for a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateLinkResourcesInner listPrivateLinkResources(String resourceGroupName, String resourceName);
+
+ /**
+ * List private link resources for the given provisioning service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the available private link resources for a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listPrivateLinkResourcesWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Get the specified private link resource for the given provisioning service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param groupId The name of the private link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified private link resource for the given provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GroupIdInformationInner getPrivateLinkResources(String resourceGroupName, String resourceName, String groupId);
+
+ /**
+ * Get the specified private link resource for the given provisioning service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param groupId The name of the private link resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified private link resource for the given provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getPrivateLinkResourcesWithResponse(
+ String resourceGroupName, String resourceName, String groupId, Context context);
+
+ /**
+ * List private endpoint connection properties.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException 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 private endpoint connections for a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List listPrivateEndpointConnections(String resourceGroupName, String resourceName);
+
+ /**
+ * List private endpoint connection properties.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException 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 private endpoint connections for a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> listPrivateEndpointConnectionsWithResponse(
+ String resourceGroupName, String resourceName, Context context);
+
+ /**
+ * Get private endpoint connection properties.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return private endpoint connection properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner getPrivateEndpointConnection(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName);
+
+ /**
+ * Get private endpoint connection properties.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return private endpoint connection properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getPrivateEndpointConnectionWithResponse(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName, Context context);
+
+ /**
+ * Create or update the status of a private endpoint connection with the specified name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param privateEndpointConnection The private endpoint connection with updated properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private endpoint connection of a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, PrivateEndpointConnectionInner>
+ beginCreateOrUpdatePrivateEndpointConnection(
+ String resourceGroupName,
+ String resourceName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionInner privateEndpointConnection);
+
+ /**
+ * Create or update the status of a private endpoint connection with the specified name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param privateEndpointConnection The private endpoint connection with updated properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private endpoint connection of a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, PrivateEndpointConnectionInner>
+ beginCreateOrUpdatePrivateEndpointConnection(
+ String resourceGroupName,
+ String resourceName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionInner privateEndpointConnection,
+ Context context);
+
+ /**
+ * Create or update the status of a private endpoint connection with the specified name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param privateEndpointConnection The private endpoint connection with updated properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private endpoint connection of a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner createOrUpdatePrivateEndpointConnection(
+ String resourceGroupName,
+ String resourceName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionInner privateEndpointConnection);
+
+ /**
+ * Create or update the status of a private endpoint connection with the specified name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param privateEndpointConnection The private endpoint connection with updated properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private endpoint connection of a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner createOrUpdatePrivateEndpointConnection(
+ String resourceGroupName,
+ String resourceName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionInner privateEndpointConnection,
+ Context context);
+
+ /**
+ * Delete private endpoint connection with the specified name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private endpoint connection of a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, PrivateEndpointConnectionInner>
+ beginDeletePrivateEndpointConnection(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName);
+
+ /**
+ * Delete private endpoint connection with the specified name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private endpoint connection of a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, PrivateEndpointConnectionInner>
+ beginDeletePrivateEndpointConnection(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName, Context context);
+
+ /**
+ * Delete private endpoint connection with the specified name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private endpoint connection of a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner deletePrivateEndpointConnection(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName);
+
+ /**
+ * Delete private endpoint connection with the specified name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the provisioning service.
+ * @param resourceName The name of the provisioning service.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private endpoint connection of a provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner deletePrivateEndpointConnection(
+ String resourceGroupName, String resourceName, String privateEndpointConnectionName, Context context);
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/OperationsClient.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..8d9a1c355f52a
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/OperationsClient.java
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all of the available Microsoft.Devices REST API operations.
+ *
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list provisioning service operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available Microsoft.Devices REST API operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException thrown if the request
+ * is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list provisioning service operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/AsyncOperationResultInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/AsyncOperationResultInner.java
new file mode 100644
index 0000000000000..fec8a52bc5d17
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/AsyncOperationResultInner.java
@@ -0,0 +1,80 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.models.ErrorMesssage;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Result of a long running operation. */
+@Fluent
+public final class AsyncOperationResultInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AsyncOperationResultInner.class);
+
+ /*
+ * current status of a long running operation.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /*
+ * Error message containing code, description and details
+ */
+ @JsonProperty(value = "error")
+ private ErrorMesssage error;
+
+ /**
+ * Get the status property: current status of a long running operation.
+ *
+ * @return the status value.
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: current status of a long running operation.
+ *
+ * @param status the status value to set.
+ * @return the AsyncOperationResultInner object itself.
+ */
+ public AsyncOperationResultInner withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the error property: Error message containing code, description and details.
+ *
+ * @return the error value.
+ */
+ public ErrorMesssage error() {
+ return this.error;
+ }
+
+ /**
+ * Set the error property: Error message containing code, description and details.
+ *
+ * @param error the error value to set.
+ * @return the AsyncOperationResultInner object itself.
+ */
+ public AsyncOperationResultInner withError(ErrorMesssage error) {
+ this.error = error;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (error() != null) {
+ error().validate();
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/CertificateListDescriptionInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/CertificateListDescriptionInner.java
new file mode 100644
index 0000000000000..8384ff271ae56
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/CertificateListDescriptionInner.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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;
+import java.util.List;
+
+/** The JSON-serialized array of Certificate objects. */
+@Fluent
+public final class CertificateListDescriptionInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CertificateListDescriptionInner.class);
+
+ /*
+ * The array of Certificate objects.
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * Get the value property: The array of Certificate objects.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: The array of Certificate objects.
+ *
+ * @param value the value value to set.
+ * @return the CertificateListDescriptionInner object itself.
+ */
+ public CertificateListDescriptionInner withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/CertificateResponseInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/CertificateResponseInner.java
new file mode 100644
index 0000000000000..17f4d9285913d
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/CertificateResponseInner.java
@@ -0,0 +1,70 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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.deviceprovisioningservices.models.CertificateProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The X509 Certificate. */
+@Fluent
+public final class CertificateResponseInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CertificateResponseInner.class);
+
+ /*
+ * properties of a certificate
+ */
+ @JsonProperty(value = "properties")
+ private CertificateProperties properties;
+
+ /*
+ * The entity tag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get the properties property: properties of a certificate.
+ *
+ * @return the properties value.
+ */
+ public CertificateProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: properties of a certificate.
+ *
+ * @param properties the properties value to set.
+ * @return the CertificateResponseInner object itself.
+ */
+ public CertificateResponseInner withProperties(CertificateProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: The entity tag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/GroupIdInformationInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/GroupIdInformationInner.java
new file mode 100644
index 0000000000000..ee3aa273bb249
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/GroupIdInformationInner.java
@@ -0,0 +1,104 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.models.GroupIdInformationProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The group information for creating a private endpoint on a provisioning service. */
+@Fluent
+public final class GroupIdInformationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(GroupIdInformationInner.class);
+
+ /*
+ * The resource identifier.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The resource name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The resource type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The properties for a group information object
+ */
+ @JsonProperty(value = "properties", required = true)
+ private GroupIdInformationProperties properties;
+
+ /**
+ * Get the id property: The resource identifier.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The resource name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the properties property: The properties for a group information object.
+ *
+ * @return the properties value.
+ */
+ public GroupIdInformationProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties for a group information object.
+ *
+ * @param properties the properties value to set.
+ * @return the GroupIdInformationInner object itself.
+ */
+ public GroupIdInformationInner withProperties(GroupIdInformationProperties 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 GroupIdInformationInner"));
+ } else {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/IotDpsSkuDefinitionInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/IotDpsSkuDefinitionInner.java
new file mode 100644
index 0000000000000..03df05de4b889
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/IotDpsSkuDefinitionInner.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.models.IotDpsSku;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Available SKUs of tier and units. */
+@Fluent
+public final class IotDpsSkuDefinitionInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(IotDpsSkuDefinitionInner.class);
+
+ /*
+ * Sku name.
+ */
+ @JsonProperty(value = "name")
+ private IotDpsSku name;
+
+ /**
+ * Get the name property: Sku name.
+ *
+ * @return the name value.
+ */
+ public IotDpsSku name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Sku name.
+ *
+ * @param name the name value to set.
+ * @return the IotDpsSkuDefinitionInner object itself.
+ */
+ public IotDpsSkuDefinitionInner withName(IotDpsSku name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/NameAvailabilityInfoInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/NameAvailabilityInfoInner.java
new file mode 100644
index 0000000000000..edb9361c47f2e
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/NameAvailabilityInfoInner.java
@@ -0,0 +1,103 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.models.NameUnavailabilityReason;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Description of name availability. */
+@Fluent
+public final class NameAvailabilityInfoInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NameAvailabilityInfoInner.class);
+
+ /*
+ * specifies if a name is available or not
+ */
+ @JsonProperty(value = "nameAvailable")
+ private Boolean nameAvailable;
+
+ /*
+ * specifies the reason a name is unavailable
+ */
+ @JsonProperty(value = "reason")
+ private NameUnavailabilityReason reason;
+
+ /*
+ * message containing a detailed reason name is unavailable
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Get the nameAvailable property: specifies if a name is available or not.
+ *
+ * @return the nameAvailable value.
+ */
+ public Boolean nameAvailable() {
+ return this.nameAvailable;
+ }
+
+ /**
+ * Set the nameAvailable property: specifies if a name is available or not.
+ *
+ * @param nameAvailable the nameAvailable value to set.
+ * @return the NameAvailabilityInfoInner object itself.
+ */
+ public NameAvailabilityInfoInner withNameAvailable(Boolean nameAvailable) {
+ this.nameAvailable = nameAvailable;
+ return this;
+ }
+
+ /**
+ * Get the reason property: specifies the reason a name is unavailable.
+ *
+ * @return the reason value.
+ */
+ public NameUnavailabilityReason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Set the reason property: specifies the reason a name is unavailable.
+ *
+ * @param reason the reason value to set.
+ * @return the NameAvailabilityInfoInner object itself.
+ */
+ public NameAvailabilityInfoInner withReason(NameUnavailabilityReason reason) {
+ this.reason = reason;
+ return this;
+ }
+
+ /**
+ * Get the message property: message containing a detailed reason name is unavailable.
+ *
+ * @return the message value.
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set the message property: message containing a detailed reason name is unavailable.
+ *
+ * @param message the message value to set.
+ * @return the NameAvailabilityInfoInner object itself.
+ */
+ public NameAvailabilityInfoInner withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/OperationInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/OperationInner.java
new file mode 100644
index 0000000000000..db024a14b8f1a
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/OperationInner.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.deviceprovisioningservices.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.models.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Provisioning Service REST API operation. */
+@Fluent
+public final class OperationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationInner.class);
+
+ /*
+ * Operation name: {provider}/{resource}/{read | write | action | delete}
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The object that represents the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /**
+ * Get the name property: Operation name: {provider}/{resource}/{read | write | action | delete}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the display property: The object that represents the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: The object that represents the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/PrivateEndpointConnectionInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/PrivateEndpointConnectionInner.java
new file mode 100644
index 0000000000000..8763a68b2cd4c
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/PrivateEndpointConnectionInner.java
@@ -0,0 +1,60 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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.deviceprovisioningservices.models.PrivateEndpointConnectionProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The private endpoint connection of a provisioning service. */
+@Fluent
+public final class PrivateEndpointConnectionInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateEndpointConnectionInner.class);
+
+ /*
+ * The properties of a private endpoint connection
+ */
+ @JsonProperty(value = "properties", required = true)
+ private PrivateEndpointConnectionProperties properties;
+
+ /**
+ * Get the properties property: The properties of a private endpoint connection.
+ *
+ * @return the properties value.
+ */
+ public PrivateEndpointConnectionProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties of a private endpoint connection.
+ *
+ * @param properties the properties value to set.
+ * @return the PrivateEndpointConnectionInner object itself.
+ */
+ public PrivateEndpointConnectionInner withProperties(PrivateEndpointConnectionProperties 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 PrivateEndpointConnectionInner"));
+ } else {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/PrivateLinkResourcesInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/PrivateLinkResourcesInner.java
new file mode 100644
index 0000000000000..ef5e59a6fee66
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/PrivateLinkResourcesInner.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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;
+import java.util.List;
+
+/** The available private link resources for a provisioning service. */
+@Fluent
+public final class PrivateLinkResourcesInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateLinkResourcesInner.class);
+
+ /*
+ * The list of available private link resources for a provisioning service
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * Get the value property: The list of available private link resources for a provisioning service.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: The list of available private link resources for a provisioning service.
+ *
+ * @param value the value value to set.
+ * @return the PrivateLinkResourcesInner object itself.
+ */
+ public PrivateLinkResourcesInner withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/ProvisioningServiceDescriptionInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/ProvisioningServiceDescriptionInner.java
new file mode 100644
index 0000000000000..6ce75d270fcdb
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/ProvisioningServiceDescriptionInner.java
@@ -0,0 +1,170 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.models.ArmIdentity;
+import com.azure.resourcemanager.deviceprovisioningservices.models.IotDpsPropertiesDescription;
+import com.azure.resourcemanager.deviceprovisioningservices.models.IotDpsSkuInfo;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The description of the provisioning service. */
+@Fluent
+public final class ProvisioningServiceDescriptionInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProvisioningServiceDescriptionInner.class);
+
+ /*
+ * The Etag field is *not* required. If it is provided in the response
+ * body, it must also be provided as a header per the normal ETag
+ * convention.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /*
+ * Service specific properties for a provisioning service
+ */
+ @JsonProperty(value = "properties", required = true)
+ private IotDpsPropertiesDescription properties;
+
+ /*
+ * Sku info for a provisioning Service.
+ */
+ @JsonProperty(value = "sku", required = true)
+ private IotDpsSkuInfo sku;
+
+ /*
+ * The managed identities for the IotDps instance.
+ */
+ @JsonProperty(value = "identity")
+ private ArmIdentity identity;
+
+ /**
+ * Get the etag property: The Etag field is *not* required. If it is provided in the response body, it must also be
+ * provided as a header per the normal ETag convention.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: The Etag field is *not* required. If it is provided in the response body, it must also be
+ * provided as a header per the normal ETag convention.
+ *
+ * @param etag the etag value to set.
+ * @return the ProvisioningServiceDescriptionInner object itself.
+ */
+ public ProvisioningServiceDescriptionInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get the properties property: Service specific properties for a provisioning service.
+ *
+ * @return the properties value.
+ */
+ public IotDpsPropertiesDescription properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Service specific properties for a provisioning service.
+ *
+ * @param properties the properties value to set.
+ * @return the ProvisioningServiceDescriptionInner object itself.
+ */
+ public ProvisioningServiceDescriptionInner withProperties(IotDpsPropertiesDescription properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the sku property: Sku info for a provisioning Service.
+ *
+ * @return the sku value.
+ */
+ public IotDpsSkuInfo sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: Sku info for a provisioning Service.
+ *
+ * @param sku the sku value to set.
+ * @return the ProvisioningServiceDescriptionInner object itself.
+ */
+ public ProvisioningServiceDescriptionInner withSku(IotDpsSkuInfo sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the identity property: The managed identities for the IotDps instance.
+ *
+ * @return the identity value.
+ */
+ public ArmIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: The managed identities for the IotDps instance.
+ *
+ * @param identity the identity value to set.
+ * @return the ProvisioningServiceDescriptionInner object itself.
+ */
+ public ProvisioningServiceDescriptionInner withIdentity(ArmIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProvisioningServiceDescriptionInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProvisioningServiceDescriptionInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property properties in model ProvisioningServiceDescriptionInner"));
+ } else {
+ properties().validate();
+ }
+ if (sku() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property sku in model ProvisioningServiceDescriptionInner"));
+ } else {
+ sku().validate();
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner.java
new file mode 100644
index 0000000000000..3ea3e913f4633
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner.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.deviceprovisioningservices.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.models.AccessRightsDescription;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Description of the shared access key. */
+@Fluent
+public final class SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner {
+ @JsonIgnore
+ private final ClientLogger logger =
+ new ClientLogger(SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner.class);
+
+ /*
+ * Name of the key.
+ */
+ @JsonProperty(value = "keyName", required = true)
+ private String keyName;
+
+ /*
+ * Primary SAS key value.
+ */
+ @JsonProperty(value = "primaryKey")
+ private String primaryKey;
+
+ /*
+ * Secondary SAS key value.
+ */
+ @JsonProperty(value = "secondaryKey")
+ private String secondaryKey;
+
+ /*
+ * Rights that this key has.
+ */
+ @JsonProperty(value = "rights", required = true)
+ private AccessRightsDescription rights;
+
+ /**
+ * Get the keyName property: Name of the key.
+ *
+ * @return the keyName value.
+ */
+ public String keyName() {
+ return this.keyName;
+ }
+
+ /**
+ * Set the keyName property: Name of the key.
+ *
+ * @param keyName the keyName value to set.
+ * @return the SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner object itself.
+ */
+ public SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner withKeyName(String keyName) {
+ this.keyName = keyName;
+ return this;
+ }
+
+ /**
+ * Get the primaryKey property: Primary SAS key value.
+ *
+ * @return the primaryKey value.
+ */
+ public String primaryKey() {
+ return this.primaryKey;
+ }
+
+ /**
+ * Set the primaryKey property: Primary SAS key value.
+ *
+ * @param primaryKey the primaryKey value to set.
+ * @return the SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner object itself.
+ */
+ public SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner withPrimaryKey(String primaryKey) {
+ this.primaryKey = primaryKey;
+ return this;
+ }
+
+ /**
+ * Get the secondaryKey property: Secondary SAS key value.
+ *
+ * @return the secondaryKey value.
+ */
+ public String secondaryKey() {
+ return this.secondaryKey;
+ }
+
+ /**
+ * Set the secondaryKey property: Secondary SAS key value.
+ *
+ * @param secondaryKey the secondaryKey value to set.
+ * @return the SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner object itself.
+ */
+ public SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner withSecondaryKey(String secondaryKey) {
+ this.secondaryKey = secondaryKey;
+ return this;
+ }
+
+ /**
+ * Get the rights property: Rights that this key has.
+ *
+ * @return the rights value.
+ */
+ public AccessRightsDescription rights() {
+ return this.rights;
+ }
+
+ /**
+ * Set the rights property: Rights that this key has.
+ *
+ * @param rights the rights value to set.
+ * @return the SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner object itself.
+ */
+ public SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner withRights(
+ AccessRightsDescription rights) {
+ this.rights = rights;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (keyName() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property keyName in model"
+ + " SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner"));
+ }
+ if (rights() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property rights in model"
+ + " SharedAccessSignatureAuthorizationRuleAccessRightsDescriptionInner"));
+ }
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/VerificationCodeResponseInner.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/VerificationCodeResponseInner.java
new file mode 100644
index 0000000000000..0ba30315dc409
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/VerificationCodeResponseInner.java
@@ -0,0 +1,70 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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.deviceprovisioningservices.models.VerificationCodeResponseProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Description of the response of the verification code. */
+@Fluent
+public final class VerificationCodeResponseInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(VerificationCodeResponseInner.class);
+
+ /*
+ * Request etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /*
+ * The properties property.
+ */
+ @JsonProperty(value = "properties")
+ private VerificationCodeResponseProperties properties;
+
+ /**
+ * Get the etag property: Request etag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Get the properties property: The properties property.
+ *
+ * @return the properties value.
+ */
+ public VerificationCodeResponseProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties property.
+ *
+ * @param properties the properties value to set.
+ * @return the VerificationCodeResponseInner object itself.
+ */
+ public VerificationCodeResponseInner withProperties(VerificationCodeResponseProperties 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/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/package-info.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/package-info.java
new file mode 100644
index 0000000000000..8c49d558e8e2a
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/models/package-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/**
+ * Package containing the inner data models for IotDpsClient. API for using the Azure IoT Hub Device Provisioning
+ * Service features.
+ */
+package com.azure.resourcemanager.deviceprovisioningservices.fluent.models;
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/package-info.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/package-info.java
new file mode 100644
index 0000000000000..80be674d46c58
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/fluent/package-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/**
+ * Package containing the service clients for IotDpsClient. API for using the Azure IoT Hub Device Provisioning Service
+ * features.
+ */
+package com.azure.resourcemanager.deviceprovisioningservices.fluent;
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/AsyncOperationResultImpl.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/AsyncOperationResultImpl.java
new file mode 100644
index 0000000000000..092f2aa20f3e3
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/AsyncOperationResultImpl.java
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.implementation;
+
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.AsyncOperationResultInner;
+import com.azure.resourcemanager.deviceprovisioningservices.models.AsyncOperationResult;
+import com.azure.resourcemanager.deviceprovisioningservices.models.ErrorMesssage;
+
+public final class AsyncOperationResultImpl implements AsyncOperationResult {
+ private AsyncOperationResultInner innerObject;
+
+ private final com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager;
+
+ AsyncOperationResultImpl(
+ AsyncOperationResultInner innerObject,
+ com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String status() {
+ return this.innerModel().status();
+ }
+
+ public ErrorMesssage error() {
+ return this.innerModel().error();
+ }
+
+ public AsyncOperationResultInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/CertificateListDescriptionImpl.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/CertificateListDescriptionImpl.java
new file mode 100644
index 0000000000000..fc152f5659083
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/CertificateListDescriptionImpl.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.implementation;
+
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.CertificateListDescriptionInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.CertificateResponseInner;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateListDescription;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateResponse;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public final class CertificateListDescriptionImpl implements CertificateListDescription {
+ private CertificateListDescriptionInner innerObject;
+
+ private final com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager;
+
+ CertificateListDescriptionImpl(
+ CertificateListDescriptionInner innerObject,
+ com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public List value() {
+ List inner = this.innerModel().value();
+ if (inner != null) {
+ return Collections
+ .unmodifiableList(
+ inner
+ .stream()
+ .map(inner1 -> new CertificateResponseImpl(inner1, this.manager()))
+ .collect(Collectors.toList()));
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public CertificateListDescriptionInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/CertificateResponseImpl.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/CertificateResponseImpl.java
new file mode 100644
index 0000000000000..99569d2f2691e
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/CertificateResponseImpl.java
@@ -0,0 +1,203 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.CertificateResponseInner;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateBodyDescription;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateProperties;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateResponse;
+
+public final class CertificateResponseImpl
+ implements CertificateResponse, CertificateResponse.Definition, CertificateResponse.Update {
+ private CertificateResponseInner innerObject;
+
+ private final com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public CertificateProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public String etag() {
+ return this.innerModel().etag();
+ }
+
+ public CertificateResponseInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String provisioningServiceName;
+
+ private String certificateName;
+
+ private String createIfMatch;
+
+ private CertificateBodyDescription createCertificateDescription;
+
+ private String updateIfMatch;
+
+ private CertificateBodyDescription updateCertificateDescription;
+
+ public CertificateResponseImpl withExistingProvisioningService(
+ String resourceGroupName, String provisioningServiceName) {
+ this.resourceGroupName = resourceGroupName;
+ this.provisioningServiceName = provisioningServiceName;
+ return this;
+ }
+
+ public CertificateResponse create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDpsCertificates()
+ .createOrUpdateWithResponse(
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName,
+ createCertificateDescription,
+ createIfMatch,
+ Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CertificateResponse create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDpsCertificates()
+ .createOrUpdateWithResponse(
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName,
+ createCertificateDescription,
+ createIfMatch,
+ context)
+ .getValue();
+ return this;
+ }
+
+ CertificateResponseImpl(
+ String name, com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager) {
+ this.innerObject = new CertificateResponseInner();
+ this.serviceManager = serviceManager;
+ this.certificateName = name;
+ this.createIfMatch = null;
+ this.createCertificateDescription = new CertificateBodyDescription();
+ }
+
+ public CertificateResponseImpl update() {
+ this.updateIfMatch = null;
+ this.updateCertificateDescription = new CertificateBodyDescription();
+ return this;
+ }
+
+ public CertificateResponse apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDpsCertificates()
+ .createOrUpdateWithResponse(
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName,
+ updateCertificateDescription,
+ updateIfMatch,
+ Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CertificateResponse apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDpsCertificates()
+ .createOrUpdateWithResponse(
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName,
+ updateCertificateDescription,
+ updateIfMatch,
+ context)
+ .getValue();
+ return this;
+ }
+
+ CertificateResponseImpl(
+ CertificateResponseInner innerObject,
+ com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.provisioningServiceName = Utils.getValueFromIdByName(innerObject.id(), "provisioningServices");
+ this.certificateName = Utils.getValueFromIdByName(innerObject.id(), "certificates");
+ }
+
+ public CertificateResponse refresh() {
+ String localIfMatch = null;
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDpsCertificates()
+ .getWithResponse(
+ certificateName, resourceGroupName, provisioningServiceName, localIfMatch, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CertificateResponse refresh(Context context) {
+ String localIfMatch = null;
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getDpsCertificates()
+ .getWithResponse(certificateName, resourceGroupName, provisioningServiceName, localIfMatch, context)
+ .getValue();
+ return this;
+ }
+
+ public CertificateResponseImpl withCertificate(String certificate) {
+ if (isInCreateMode()) {
+ this.createCertificateDescription.withCertificate(certificate);
+ return this;
+ } else {
+ this.updateCertificateDescription.withCertificate(certificate);
+ return this;
+ }
+ }
+
+ public CertificateResponseImpl withIfMatch(String ifMatch) {
+ if (isInCreateMode()) {
+ this.createIfMatch = ifMatch;
+ return this;
+ } else {
+ this.updateIfMatch = ifMatch;
+ return this;
+ }
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/DpsCertificatesClientImpl.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/DpsCertificatesClientImpl.java
new file mode 100644
index 0000000000000..051626d7ed7f4
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/DpsCertificatesClientImpl.java
@@ -0,0 +1,1984 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.util.Base64Util;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.DpsCertificatesClient;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.CertificateListDescriptionInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.CertificateResponseInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.VerificationCodeResponseInner;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateBodyDescription;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificatePurpose;
+import com.azure.resourcemanager.deviceprovisioningservices.models.ErrorDetailsException;
+import com.azure.resourcemanager.deviceprovisioningservices.models.VerificationCodeRequest;
+import java.time.OffsetDateTime;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in DpsCertificatesClient. */
+public final class DpsCertificatesClientImpl implements DpsCertificatesClient {
+ private final ClientLogger logger = new ClientLogger(DpsCertificatesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final DpsCertificatesService service;
+
+ /** The service client containing this operation class. */
+ private final IotDpsClientImpl client;
+
+ /**
+ * Initializes an instance of DpsCertificatesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ DpsCertificatesClientImpl(IotDpsClientImpl client) {
+ this.service =
+ RestProxy.create(DpsCertificatesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for IotDpsClientDpsCertificates to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "IotDpsClientDpsCerti")
+ private interface DpsCertificatesService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices"
+ + "/provisioningServices/{provisioningServiceName}/certificates/{certificateName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ErrorDetailsException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("certificateName") String certificateName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("provisioningServiceName") String provisioningServiceName,
+ @HeaderParam("If-Match") String ifMatch,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices"
+ + "/provisioningServices/{provisioningServiceName}/certificates/{certificateName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ErrorDetailsException.class)
+ Mono> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("provisioningServiceName") String provisioningServiceName,
+ @PathParam("certificateName") String certificateName,
+ @HeaderParam("If-Match") String ifMatch,
+ @BodyParam("application/json") CertificateBodyDescription certificateDescription,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices"
+ + "/provisioningServices/{provisioningServiceName}/certificates/{certificateName}")
+ @ExpectedResponses({200, 204})
+ @UnexpectedResponseExceptionType(ErrorDetailsException.class)
+ Mono> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @HeaderParam("If-Match") String ifMatch,
+ @PathParam("provisioningServiceName") String provisioningServiceName,
+ @PathParam("certificateName") String certificateName,
+ @QueryParam("certificate.name") String certificateName1,
+ @QueryParam("certificate.rawBytes") String certificateRawBytes,
+ @QueryParam("certificate.isVerified") Boolean certificateIsVerified,
+ @QueryParam("certificate.purpose") CertificatePurpose certificatePurpose,
+ @QueryParam("certificate.created") OffsetDateTime certificateCreated,
+ @QueryParam("certificate.lastUpdated") OffsetDateTime certificateLastUpdated,
+ @QueryParam("certificate.hasPrivateKey") Boolean certificateHasPrivateKey,
+ @QueryParam("certificate.nonce") String certificateNonce,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices"
+ + "/provisioningServices/{provisioningServiceName}/certificates")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ErrorDetailsException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("provisioningServiceName") String provisioningServiceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices"
+ + "/provisioningServices/{provisioningServiceName}/certificates/{certificateName}"
+ + "/generateVerificationCode")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ErrorDetailsException.class)
+ Mono> generateVerificationCode(
+ @HostParam("$host") String endpoint,
+ @PathParam("certificateName") String certificateName,
+ @HeaderParam("If-Match") String ifMatch,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("provisioningServiceName") String provisioningServiceName,
+ @QueryParam("certificate.name") String certificateName1,
+ @QueryParam("certificate.rawBytes") String certificateRawBytes,
+ @QueryParam("certificate.isVerified") Boolean certificateIsVerified,
+ @QueryParam("certificate.purpose") CertificatePurpose certificatePurpose,
+ @QueryParam("certificate.created") OffsetDateTime certificateCreated,
+ @QueryParam("certificate.lastUpdated") OffsetDateTime certificateLastUpdated,
+ @QueryParam("certificate.hasPrivateKey") Boolean certificateHasPrivateKey,
+ @QueryParam("certificate.nonce") String certificateNonce,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices"
+ + "/provisioningServices/{provisioningServiceName}/certificates/{certificateName}/verify")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ErrorDetailsException.class)
+ Mono> verifyCertificate(
+ @HostParam("$host") String endpoint,
+ @PathParam("certificateName") String certificateName,
+ @HeaderParam("If-Match") String ifMatch,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("provisioningServiceName") String provisioningServiceName,
+ @QueryParam("certificate.name") String certificateName1,
+ @QueryParam("certificate.rawBytes") String certificateRawBytes,
+ @QueryParam("certificate.isVerified") Boolean certificateIsVerified,
+ @QueryParam("certificate.purpose") CertificatePurpose certificatePurpose,
+ @QueryParam("certificate.created") OffsetDateTime certificateCreated,
+ @QueryParam("certificate.lastUpdated") OffsetDateTime certificateLastUpdated,
+ @QueryParam("certificate.hasPrivateKey") Boolean certificateHasPrivateKey,
+ @QueryParam("certificate.nonce") String certificateNonce,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") VerificationCodeRequest request,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Get the certificate from the provisioning service.
+ *
+ * @param certificateName Name of the certificate to retrieve.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of the provisioning service the certificate is associated with.
+ * @param ifMatch ETag of the certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the certificate from the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String certificateName, String resourceGroupName, String provisioningServiceName, String ifMatch) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ certificateName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ ifMatch,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get the certificate from the provisioning service.
+ *
+ * @param certificateName Name of the certificate to retrieve.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of the provisioning service the certificate is associated with.
+ * @param ifMatch ETag of the certificate.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the certificate from the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String certificateName,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String ifMatch,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ certificateName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ ifMatch,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Get the certificate from the provisioning service.
+ *
+ * @param certificateName Name of the certificate to retrieve.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of the provisioning service the certificate is associated with.
+ * @param ifMatch ETag of the certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the certificate from the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String certificateName, String resourceGroupName, String provisioningServiceName, String ifMatch) {
+ return getWithResponseAsync(certificateName, resourceGroupName, provisioningServiceName, ifMatch)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get the certificate from the provisioning service.
+ *
+ * @param certificateName Name of the certificate to retrieve.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of the provisioning service the certificate is associated with.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the certificate from the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String certificateName, String resourceGroupName, String provisioningServiceName) {
+ final String ifMatch = null;
+ return getWithResponseAsync(certificateName, resourceGroupName, provisioningServiceName, ifMatch)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get the certificate from the provisioning service.
+ *
+ * @param certificateName Name of the certificate to retrieve.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of the provisioning service the certificate is associated with.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the certificate from the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CertificateResponseInner get(
+ String certificateName, String resourceGroupName, String provisioningServiceName) {
+ final String ifMatch = null;
+ return getAsync(certificateName, resourceGroupName, provisioningServiceName, ifMatch).block();
+ }
+
+ /**
+ * Get the certificate from the provisioning service.
+ *
+ * @param certificateName Name of the certificate to retrieve.
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName Name of the provisioning service the certificate is associated with.
+ * @param ifMatch ETag of the certificate.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the certificate from the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String certificateName,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String ifMatch,
+ Context context) {
+ return getWithResponseAsync(certificateName, resourceGroupName, provisioningServiceName, ifMatch, context)
+ .block();
+ }
+
+ /**
+ * Add new certificate or update an existing certificate.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName The name of the certificate create or update.
+ * @param certificateDescription The certificate body.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName,
+ CertificateBodyDescription certificateDescription,
+ String ifMatch) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ if (certificateDescription == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter certificateDescription is required and cannot be null."));
+ } else {
+ certificateDescription.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName,
+ ifMatch,
+ certificateDescription,
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Add new certificate or update an existing certificate.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName The name of the certificate create or update.
+ * @param certificateDescription The certificate body.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName,
+ CertificateBodyDescription certificateDescription,
+ String ifMatch,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ if (certificateDescription == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter certificateDescription is required and cannot be null."));
+ } else {
+ certificateDescription.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName,
+ ifMatch,
+ certificateDescription,
+ accept,
+ context);
+ }
+
+ /**
+ * Add new certificate or update an existing certificate.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName The name of the certificate create or update.
+ * @param certificateDescription The certificate body.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName,
+ CertificateBodyDescription certificateDescription,
+ String ifMatch) {
+ return createOrUpdateWithResponseAsync(
+ resourceGroupName, provisioningServiceName, certificateName, certificateDescription, ifMatch)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Add new certificate or update an existing certificate.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName The name of the certificate create or update.
+ * @param certificateDescription The certificate body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName,
+ CertificateBodyDescription certificateDescription) {
+ final String ifMatch = null;
+ return createOrUpdateWithResponseAsync(
+ resourceGroupName, provisioningServiceName, certificateName, certificateDescription, ifMatch)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Add new certificate or update an existing certificate.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName The name of the certificate create or update.
+ * @param certificateDescription The certificate body.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CertificateResponseInner createOrUpdate(
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName,
+ CertificateBodyDescription certificateDescription) {
+ final String ifMatch = null;
+ return createOrUpdateAsync(
+ resourceGroupName, provisioningServiceName, certificateName, certificateDescription, ifMatch)
+ .block();
+ }
+
+ /**
+ * Add new certificate or update an existing certificate.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName The name of the certificate create or update.
+ * @param certificateDescription The certificate body.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName,
+ CertificateBodyDescription certificateDescription,
+ String ifMatch,
+ Context context) {
+ return createOrUpdateWithResponseAsync(
+ resourceGroupName, provisioningServiceName, certificateName, certificateDescription, ifMatch, context)
+ .block();
+ }
+
+ /**
+ * Deletes the specified certificate associated with the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param ifMatch ETag of the certificate.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName This is a mandatory field, and is the logical name of the certificate that the
+ * provisioning service will access by.
+ * @param certificateName1 This is optional, and it is the Common Name of the certificate.
+ * @param certificateRawBytes Raw data within the certificate.
+ * @param certificateIsVerified Indicates if certificate has been verified by owner of the private key.
+ * @param certificatePurpose A description that mentions the purpose of the certificate.
+ * @param certificateCreated Time the certificate is created.
+ * @param certificateLastUpdated Time the certificate is last updated.
+ * @param certificateHasPrivateKey Indicates if the certificate contains a private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> deleteWithResponseAsync(
+ String resourceGroupName,
+ String ifMatch,
+ String provisioningServiceName,
+ String certificateName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (ifMatch == null) {
+ return Mono.error(new IllegalArgumentException("Parameter ifMatch is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ String certificateRawBytesConverted = Base64Util.encodeToString(certificateRawBytes);
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ ifMatch,
+ provisioningServiceName,
+ certificateName,
+ certificateName1,
+ certificateRawBytesConverted,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Deletes the specified certificate associated with the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param ifMatch ETag of the certificate.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName This is a mandatory field, and is the logical name of the certificate that the
+ * provisioning service will access by.
+ * @param certificateName1 This is optional, and it is the Common Name of the certificate.
+ * @param certificateRawBytes Raw data within the certificate.
+ * @param certificateIsVerified Indicates if certificate has been verified by owner of the private key.
+ * @param certificatePurpose A description that mentions the purpose of the certificate.
+ * @param certificateCreated Time the certificate is created.
+ * @param certificateLastUpdated Time the certificate is last updated.
+ * @param certificateHasPrivateKey Indicates if the certificate contains a private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> deleteWithResponseAsync(
+ String resourceGroupName,
+ String ifMatch,
+ String provisioningServiceName,
+ String certificateName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (ifMatch == null) {
+ return Mono.error(new IllegalArgumentException("Parameter ifMatch is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ String certificateRawBytesConverted = Base64Util.encodeToString(certificateRawBytes);
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ ifMatch,
+ provisioningServiceName,
+ certificateName,
+ certificateName1,
+ certificateRawBytesConverted,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes the specified certificate associated with the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param ifMatch ETag of the certificate.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName This is a mandatory field, and is the logical name of the certificate that the
+ * provisioning service will access by.
+ * @param certificateName1 This is optional, and it is the Common Name of the certificate.
+ * @param certificateRawBytes Raw data within the certificate.
+ * @param certificateIsVerified Indicates if certificate has been verified by owner of the private key.
+ * @param certificatePurpose A description that mentions the purpose of the certificate.
+ * @param certificateCreated Time the certificate is created.
+ * @param certificateLastUpdated Time the certificate is last updated.
+ * @param certificateHasPrivateKey Indicates if the certificate contains a private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName,
+ String ifMatch,
+ String provisioningServiceName,
+ String certificateName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce) {
+ return deleteWithResponseAsync(
+ resourceGroupName,
+ ifMatch,
+ provisioningServiceName,
+ certificateName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * Deletes the specified certificate associated with the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param ifMatch ETag of the certificate.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName This is a mandatory field, and is the logical name of the certificate that the
+ * provisioning service will access by.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String ifMatch, String provisioningServiceName, String certificateName) {
+ final String certificateName1 = null;
+ final byte[] certificateRawBytes = new byte[0];
+ final Boolean certificateIsVerified = null;
+ final CertificatePurpose certificatePurpose = null;
+ final OffsetDateTime certificateCreated = null;
+ final OffsetDateTime certificateLastUpdated = null;
+ final Boolean certificateHasPrivateKey = null;
+ final String certificateNonce = null;
+ return deleteWithResponseAsync(
+ resourceGroupName,
+ ifMatch,
+ provisioningServiceName,
+ certificateName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * Deletes the specified certificate associated with the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param ifMatch ETag of the certificate.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName This is a mandatory field, and is the logical name of the certificate that the
+ * provisioning service will access by.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(
+ String resourceGroupName, String ifMatch, String provisioningServiceName, String certificateName) {
+ final String certificateName1 = null;
+ final byte[] certificateRawBytes = new byte[0];
+ final Boolean certificateIsVerified = null;
+ final CertificatePurpose certificatePurpose = null;
+ final OffsetDateTime certificateCreated = null;
+ final OffsetDateTime certificateLastUpdated = null;
+ final Boolean certificateHasPrivateKey = null;
+ final String certificateNonce = null;
+ deleteAsync(
+ resourceGroupName,
+ ifMatch,
+ provisioningServiceName,
+ certificateName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .block();
+ }
+
+ /**
+ * Deletes the specified certificate associated with the Provisioning Service.
+ *
+ * @param resourceGroupName Resource group identifier.
+ * @param ifMatch ETag of the certificate.
+ * @param provisioningServiceName The name of the provisioning service.
+ * @param certificateName This is a mandatory field, and is the logical name of the certificate that the
+ * provisioning service will access by.
+ * @param certificateName1 This is optional, and it is the Common Name of the certificate.
+ * @param certificateRawBytes Raw data within the certificate.
+ * @param certificateIsVerified Indicates if certificate has been verified by owner of the private key.
+ * @param certificatePurpose A description that mentions the purpose of the certificate.
+ * @param certificateCreated Time the certificate is created.
+ * @param certificateLastUpdated Time the certificate is last updated.
+ * @param certificateHasPrivateKey Indicates if the certificate contains a private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException 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 resourceGroupName,
+ String ifMatch,
+ String provisioningServiceName,
+ String certificateName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ return deleteWithResponseAsync(
+ resourceGroupName,
+ ifMatch,
+ provisioningServiceName,
+ certificateName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ context)
+ .block();
+ }
+
+ /**
+ * Get all the certificates tied to the provisioning service.
+ *
+ * @param resourceGroupName Name of resource group.
+ * @param provisioningServiceName Name of provisioning service to retrieve certificates for.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the certificates tied to the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listWithResponseAsync(
+ String resourceGroupName, String provisioningServiceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get all the certificates tied to the provisioning service.
+ *
+ * @param resourceGroupName Name of resource group.
+ * @param provisioningServiceName Name of provisioning service to retrieve certificates for.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the certificates tied to the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listWithResponseAsync(
+ String resourceGroupName, String provisioningServiceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Get all the certificates tied to the provisioning service.
+ *
+ * @param resourceGroupName Name of resource group.
+ * @param provisioningServiceName Name of provisioning service to retrieve certificates for.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the certificates tied to the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono listAsync(String resourceGroupName, String provisioningServiceName) {
+ return listWithResponseAsync(resourceGroupName, provisioningServiceName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get all the certificates tied to the provisioning service.
+ *
+ * @param resourceGroupName Name of resource group.
+ * @param provisioningServiceName Name of provisioning service to retrieve certificates for.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the certificates tied to the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CertificateListDescriptionInner list(String resourceGroupName, String provisioningServiceName) {
+ return listAsync(resourceGroupName, provisioningServiceName).block();
+ }
+
+ /**
+ * Get all the certificates tied to the provisioning service.
+ *
+ * @param resourceGroupName Name of resource group.
+ * @param provisioningServiceName Name of provisioning service to retrieve certificates for.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the certificates tied to the provisioning service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response listWithResponse(
+ String resourceGroupName, String provisioningServiceName, Context context) {
+ return listWithResponseAsync(resourceGroupName, provisioningServiceName, context).block();
+ }
+
+ /**
+ * Generate verification code for Proof of Possession.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param resourceGroupName name of resource group.
+ * @param provisioningServiceName Name of provisioning service.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Description mentioning the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the response of the verification code.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> generateVerificationCodeWithResponseAsync(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ if (ifMatch == null) {
+ return Mono.error(new IllegalArgumentException("Parameter ifMatch is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ String certificateRawBytesConverted = Base64Util.encodeToString(certificateRawBytes);
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .generateVerificationCode(
+ this.client.getEndpoint(),
+ certificateName,
+ ifMatch,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytesConverted,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Generate verification code for Proof of Possession.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param resourceGroupName name of resource group.
+ * @param provisioningServiceName Name of provisioning service.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Description mentioning the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the response of the verification code.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> generateVerificationCodeWithResponseAsync(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ if (ifMatch == null) {
+ return Mono.error(new IllegalArgumentException("Parameter ifMatch is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ String certificateRawBytesConverted = Base64Util.encodeToString(certificateRawBytes);
+ context = this.client.mergeContext(context);
+ return service
+ .generateVerificationCode(
+ this.client.getEndpoint(),
+ certificateName,
+ ifMatch,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytesConverted,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Generate verification code for Proof of Possession.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param resourceGroupName name of resource group.
+ * @param provisioningServiceName Name of provisioning service.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Description mentioning the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the response of the verification code.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono generateVerificationCodeAsync(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce) {
+ return generateVerificationCodeWithResponseAsync(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Generate verification code for Proof of Possession.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param resourceGroupName name of resource group.
+ * @param provisioningServiceName Name of provisioning service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the response of the verification code.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono generateVerificationCodeAsync(
+ String certificateName, String ifMatch, String resourceGroupName, String provisioningServiceName) {
+ final String certificateName1 = null;
+ final byte[] certificateRawBytes = new byte[0];
+ final Boolean certificateIsVerified = null;
+ final CertificatePurpose certificatePurpose = null;
+ final OffsetDateTime certificateCreated = null;
+ final OffsetDateTime certificateLastUpdated = null;
+ final Boolean certificateHasPrivateKey = null;
+ final String certificateNonce = null;
+ return generateVerificationCodeWithResponseAsync(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Generate verification code for Proof of Possession.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param resourceGroupName name of resource group.
+ * @param provisioningServiceName Name of provisioning service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the response of the verification code.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public VerificationCodeResponseInner generateVerificationCode(
+ String certificateName, String ifMatch, String resourceGroupName, String provisioningServiceName) {
+ final String certificateName1 = null;
+ final byte[] certificateRawBytes = new byte[0];
+ final Boolean certificateIsVerified = null;
+ final CertificatePurpose certificatePurpose = null;
+ final OffsetDateTime certificateCreated = null;
+ final OffsetDateTime certificateLastUpdated = null;
+ final Boolean certificateHasPrivateKey = null;
+ final String certificateNonce = null;
+ return generateVerificationCodeAsync(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .block();
+ }
+
+ /**
+ * Generate verification code for Proof of Possession.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate. This is required to update an existing certificate, and ignored while
+ * creating a brand new certificate.
+ * @param resourceGroupName name of resource group.
+ * @param provisioningServiceName Name of provisioning service.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Description mentioning the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of the response of the verification code.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response generateVerificationCodeWithResponse(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ return generateVerificationCodeWithResponseAsync(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ context)
+ .block();
+ }
+
+ /**
+ * Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded
+ * certificate.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate.
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Provisioning service name.
+ * @param request The name of the certificate.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Describe the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> verifyCertificateWithResponseAsync(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ if (ifMatch == null) {
+ return Mono.error(new IllegalArgumentException("Parameter ifMatch is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ if (request == null) {
+ return Mono.error(new IllegalArgumentException("Parameter request is required and cannot be null."));
+ } else {
+ request.validate();
+ }
+ final String accept = "application/json";
+ String certificateRawBytesConverted = Base64Util.encodeToString(certificateRawBytes);
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .verifyCertificate(
+ this.client.getEndpoint(),
+ certificateName,
+ ifMatch,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytesConverted,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ this.client.getApiVersion(),
+ request,
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded
+ * certificate.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate.
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Provisioning service name.
+ * @param request The name of the certificate.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Describe the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> verifyCertificateWithResponseAsync(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (certificateName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter certificateName is required and cannot be null."));
+ }
+ if (ifMatch == null) {
+ return Mono.error(new IllegalArgumentException("Parameter ifMatch is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (provisioningServiceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter provisioningServiceName is required and cannot be null."));
+ }
+ if (request == null) {
+ return Mono.error(new IllegalArgumentException("Parameter request is required and cannot be null."));
+ } else {
+ request.validate();
+ }
+ final String accept = "application/json";
+ String certificateRawBytesConverted = Base64Util.encodeToString(certificateRawBytes);
+ context = this.client.mergeContext(context);
+ return service
+ .verifyCertificate(
+ this.client.getEndpoint(),
+ certificateName,
+ ifMatch,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytesConverted,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ this.client.getApiVersion(),
+ request,
+ accept,
+ context);
+ }
+
+ /**
+ * Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded
+ * certificate.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate.
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Provisioning service name.
+ * @param request The name of the certificate.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Describe the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono verifyCertificateAsync(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce) {
+ return verifyCertificateWithResponseAsync(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ request,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded
+ * certificate.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate.
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Provisioning service name.
+ * @param request The name of the certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono verifyCertificateAsync(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request) {
+ final String certificateName1 = null;
+ final byte[] certificateRawBytes = new byte[0];
+ final Boolean certificateIsVerified = null;
+ final CertificatePurpose certificatePurpose = null;
+ final OffsetDateTime certificateCreated = null;
+ final OffsetDateTime certificateLastUpdated = null;
+ final Boolean certificateHasPrivateKey = null;
+ final String certificateNonce = null;
+ return verifyCertificateWithResponseAsync(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ request,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded
+ * certificate.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate.
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Provisioning service name.
+ * @param request The name of the certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CertificateResponseInner verifyCertificate(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request) {
+ final String certificateName1 = null;
+ final byte[] certificateRawBytes = new byte[0];
+ final Boolean certificateIsVerified = null;
+ final CertificatePurpose certificatePurpose = null;
+ final OffsetDateTime certificateCreated = null;
+ final OffsetDateTime certificateLastUpdated = null;
+ final Boolean certificateHasPrivateKey = null;
+ final String certificateNonce = null;
+ return verifyCertificateAsync(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ request,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce)
+ .block();
+ }
+
+ /**
+ * Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded
+ * certificate.
+ *
+ * @param certificateName The mandatory logical name of the certificate, that the provisioning service uses to
+ * access.
+ * @param ifMatch ETag of the certificate.
+ * @param resourceGroupName Resource group name.
+ * @param provisioningServiceName Provisioning service name.
+ * @param request The name of the certificate.
+ * @param certificateName1 Common Name for the certificate.
+ * @param certificateRawBytes Raw data of certificate.
+ * @param certificateIsVerified Indicates if the certificate has been verified by owner of the private key.
+ * @param certificatePurpose Describe the purpose of the certificate.
+ * @param certificateCreated Certificate creation time.
+ * @param certificateLastUpdated Certificate last updated time.
+ * @param certificateHasPrivateKey Indicates if the certificate contains private key.
+ * @param certificateNonce Random number generated to indicate Proof of Possession.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ErrorDetailsException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the X509 Certificate.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response verifyCertificateWithResponse(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ return verifyCertificateWithResponseAsync(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ request,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ context)
+ .block();
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/DpsCertificatesImpl.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/DpsCertificatesImpl.java
new file mode 100644
index 0000000000000..4557136f8700b
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/DpsCertificatesImpl.java
@@ -0,0 +1,425 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.DpsCertificatesClient;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.CertificateListDescriptionInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.CertificateResponseInner;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.VerificationCodeResponseInner;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateListDescription;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificatePurpose;
+import com.azure.resourcemanager.deviceprovisioningservices.models.CertificateResponse;
+import com.azure.resourcemanager.deviceprovisioningservices.models.DpsCertificates;
+import com.azure.resourcemanager.deviceprovisioningservices.models.VerificationCodeRequest;
+import com.azure.resourcemanager.deviceprovisioningservices.models.VerificationCodeResponse;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.time.OffsetDateTime;
+
+public final class DpsCertificatesImpl implements DpsCertificates {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DpsCertificatesImpl.class);
+
+ private final DpsCertificatesClient innerClient;
+
+ private final com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager;
+
+ public DpsCertificatesImpl(
+ DpsCertificatesClient innerClient,
+ com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public CertificateResponse get(String certificateName, String resourceGroupName, String provisioningServiceName) {
+ CertificateResponseInner inner =
+ this.serviceClient().get(certificateName, resourceGroupName, provisioningServiceName);
+ if (inner != null) {
+ return new CertificateResponseImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String certificateName,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String ifMatch,
+ Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(certificateName, resourceGroupName, provisioningServiceName, ifMatch, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new CertificateResponseImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void delete(
+ String resourceGroupName, String ifMatch, String provisioningServiceName, String certificateName) {
+ this.serviceClient().delete(resourceGroupName, ifMatch, provisioningServiceName, certificateName);
+ }
+
+ public Response deleteWithResponse(
+ String resourceGroupName,
+ String ifMatch,
+ String provisioningServiceName,
+ String certificateName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ return this
+ .serviceClient()
+ .deleteWithResponse(
+ resourceGroupName,
+ ifMatch,
+ provisioningServiceName,
+ certificateName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ context);
+ }
+
+ public CertificateListDescription list(String resourceGroupName, String provisioningServiceName) {
+ CertificateListDescriptionInner inner = this.serviceClient().list(resourceGroupName, provisioningServiceName);
+ if (inner != null) {
+ return new CertificateListDescriptionImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response listWithResponse(
+ String resourceGroupName, String provisioningServiceName, Context context) {
+ Response inner =
+ this.serviceClient().listWithResponse(resourceGroupName, provisioningServiceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new CertificateListDescriptionImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public VerificationCodeResponse generateVerificationCode(
+ String certificateName, String ifMatch, String resourceGroupName, String provisioningServiceName) {
+ VerificationCodeResponseInner inner =
+ this
+ .serviceClient()
+ .generateVerificationCode(certificateName, ifMatch, resourceGroupName, provisioningServiceName);
+ if (inner != null) {
+ return new VerificationCodeResponseImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response generateVerificationCodeWithResponse(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .generateVerificationCodeWithResponse(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new VerificationCodeResponseImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public CertificateResponse verifyCertificate(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request) {
+ CertificateResponseInner inner =
+ this
+ .serviceClient()
+ .verifyCertificate(certificateName, ifMatch, resourceGroupName, provisioningServiceName, request);
+ if (inner != null) {
+ return new CertificateResponseImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response verifyCertificateWithResponse(
+ String certificateName,
+ String ifMatch,
+ String resourceGroupName,
+ String provisioningServiceName,
+ VerificationCodeRequest request,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .verifyCertificateWithResponse(
+ certificateName,
+ ifMatch,
+ resourceGroupName,
+ provisioningServiceName,
+ request,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new CertificateResponseImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public CertificateResponse getById(String id) {
+ String certificateName = Utils.getValueFromIdByName(id, "certificates");
+ if (certificateName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'certificates'.", id)));
+ }
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String provisioningServiceName = Utils.getValueFromIdByName(id, "provisioningServices");
+ if (provisioningServiceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'provisioningServices'.",
+ id)));
+ }
+ String localIfMatch = null;
+ return this
+ .getWithResponse(certificateName, resourceGroupName, provisioningServiceName, localIfMatch, Context.NONE)
+ .getValue();
+ }
+
+ public Response getByIdWithResponse(String id, String ifMatch, Context context) {
+ String certificateName = Utils.getValueFromIdByName(id, "certificates");
+ if (certificateName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'certificates'.", id)));
+ }
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String provisioningServiceName = Utils.getValueFromIdByName(id, "provisioningServices");
+ if (provisioningServiceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'provisioningServices'.",
+ id)));
+ }
+ return this.getWithResponse(certificateName, resourceGroupName, provisioningServiceName, ifMatch, context);
+ }
+
+ public void deleteById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String provisioningServiceName = Utils.getValueFromIdByName(id, "provisioningServices");
+ if (provisioningServiceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'provisioningServices'.",
+ id)));
+ }
+ String certificateName = Utils.getValueFromIdByName(id, "certificates");
+ if (certificateName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'certificates'.", id)));
+ }
+ String localIfMatch = null;
+ String localCertificateName1 = null;
+ byte[] localCertificateRawBytes = null;
+ Boolean localCertificateIsVerified = null;
+ CertificatePurpose localCertificatePurpose = null;
+ OffsetDateTime localCertificateCreated = null;
+ OffsetDateTime localCertificateLastUpdated = null;
+ Boolean localCertificateHasPrivateKey = null;
+ String localCertificateNonce = null;
+ this
+ .deleteWithResponse(
+ resourceGroupName,
+ localIfMatch,
+ provisioningServiceName,
+ certificateName,
+ localCertificateName1,
+ localCertificateRawBytes,
+ localCertificateIsVerified,
+ localCertificatePurpose,
+ localCertificateCreated,
+ localCertificateLastUpdated,
+ localCertificateHasPrivateKey,
+ localCertificateNonce,
+ Context.NONE)
+ .getValue();
+ }
+
+ public Response deleteByIdWithResponse(
+ String id,
+ String ifMatch,
+ String certificateName1,
+ byte[] certificateRawBytes,
+ Boolean certificateIsVerified,
+ CertificatePurpose certificatePurpose,
+ OffsetDateTime certificateCreated,
+ OffsetDateTime certificateLastUpdated,
+ Boolean certificateHasPrivateKey,
+ String certificateNonce,
+ Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String provisioningServiceName = Utils.getValueFromIdByName(id, "provisioningServices");
+ if (provisioningServiceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'provisioningServices'.",
+ id)));
+ }
+ String certificateName = Utils.getValueFromIdByName(id, "certificates");
+ if (certificateName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'certificates'.", id)));
+ }
+ return this
+ .deleteWithResponse(
+ resourceGroupName,
+ ifMatch,
+ provisioningServiceName,
+ certificateName,
+ certificateName1,
+ certificateRawBytes,
+ certificateIsVerified,
+ certificatePurpose,
+ certificateCreated,
+ certificateLastUpdated,
+ certificateHasPrivateKey,
+ certificateNonce,
+ context);
+ }
+
+ private DpsCertificatesClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager manager() {
+ return this.serviceManager;
+ }
+
+ public CertificateResponseImpl define(String name) {
+ return new CertificateResponseImpl(name, this.manager());
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/GroupIdInformationImpl.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/GroupIdInformationImpl.java
new file mode 100644
index 0000000000000..2164f4fb1d7a5
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/GroupIdInformationImpl.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.implementation;
+
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.models.GroupIdInformationInner;
+import com.azure.resourcemanager.deviceprovisioningservices.models.GroupIdInformation;
+import com.azure.resourcemanager.deviceprovisioningservices.models.GroupIdInformationProperties;
+
+public final class GroupIdInformationImpl implements GroupIdInformation {
+ private GroupIdInformationInner innerObject;
+
+ private final com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager serviceManager;
+
+ GroupIdInformationImpl(
+ GroupIdInformationInner innerObject,
+ com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager 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 GroupIdInformationProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public GroupIdInformationInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.deviceprovisioningservices.IotDpsManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/IotDpsClientBuilder.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/IotDpsClientBuilder.java
new file mode 100644
index 0000000000000..7d1a86c228473
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/IotDpsClientBuilder.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.deviceprovisioningservices.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 IotDpsClientImpl type. */
+@ServiceClientBuilder(serviceClients = {IotDpsClientImpl.class})
+public final class IotDpsClientBuilder {
+ /*
+ * The subscription identifier.
+ */
+ private String subscriptionId;
+
+ /**
+ * Sets The subscription identifier.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the IotDpsClientBuilder.
+ */
+ public IotDpsClientBuilder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /*
+ * server parameter
+ */
+ private String endpoint;
+
+ /**
+ * Sets server parameter.
+ *
+ * @param endpoint the endpoint value.
+ * @return the IotDpsClientBuilder.
+ */
+ public IotDpsClientBuilder 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 IotDpsClientBuilder.
+ */
+ public IotDpsClientBuilder 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 IotDpsClientBuilder.
+ */
+ public IotDpsClientBuilder 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 IotDpsClientBuilder.
+ */
+ public IotDpsClientBuilder 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 IotDpsClientBuilder.
+ */
+ public IotDpsClientBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of IotDpsClientImpl with the provided parameters.
+ *
+ * @return an instance of IotDpsClientImpl.
+ */
+ public IotDpsClientImpl 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();
+ }
+ IotDpsClientImpl client =
+ new IotDpsClientImpl(
+ pipeline, serializerAdapter, defaultPollInterval, environment, subscriptionId, endpoint);
+ return client;
+ }
+}
diff --git a/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/IotDpsClientImpl.java b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/IotDpsClientImpl.java
new file mode 100644
index 0000000000000..cd89737255cd2
--- /dev/null
+++ b/sdk/deviceprovisioningservices/azure-resourcemanager-deviceprovisioningservices/src/main/java/com/azure/resourcemanager/deviceprovisioningservices/implementation/IotDpsClientImpl.java
@@ -0,0 +1,321 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deviceprovisioningservices.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.deviceprovisioningservices.fluent.DpsCertificatesClient;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.IotDpsClient;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.IotDpsResourcesClient;
+import com.azure.resourcemanager.deviceprovisioningservices.fluent.OperationsClient;
+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 IotDpsClientImpl type. */
+@ServiceClient(builder = IotDpsClientBuilder.class)
+public final class IotDpsClientImpl implements IotDpsClient {
+ private final ClientLogger logger = new ClientLogger(IotDpsClientImpl.class);
+
+ /** The subscription identifier. */
+ private final String subscriptionId;
+
+ /**
+ * Gets The subscription identifier.
+ *
+ * @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 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 DpsCertificatesClient object to access its operations. */
+ private final DpsCertificatesClient dpsCertificates;
+
+ /**
+ * Gets the DpsCertificatesClient object to access its operations.
+ *
+ * @return the DpsCertificatesClient object.
+ */
+ public DpsCertificatesClient getDpsCertificates() {
+ return this.dpsCertificates;
+ }
+
+ /** The IotDpsResourcesClient object to access its operations. */
+ private final IotDpsResourcesClient iotDpsResources;
+
+ /**
+ * Gets the IotDpsResourcesClient object to access its operations.
+ *
+ * @return the IotDpsResourcesClient object.
+ */
+ public IotDpsResourcesClient getIotDpsResources() {
+ return this.iotDpsResources;
+ }
+
+ /**
+ * Initializes an instance of IotDpsClient 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 subscription identifier.
+ * @param endpoint server parameter.
+ */
+ IotDpsClientImpl(
+ 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-09-01-preview";
+ this.operations = new OperationsClientImpl(this);
+ this.dpsCertificates = new DpsCertificatesClientImpl(this);
+ this.iotDpsResources = new IotDpsResourcesClientImpl(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