diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 8e04955187aa6..e0e9f6a48d32e 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -324,6 +324,7 @@ com.azure.resourcemanager:azure-resourcemanager-storagepool;1.0.0-beta.1;1.0.0-b
com.azure.resourcemanager:azure-resourcemanager-dataprotection;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-desktopvirtualization;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-loadtestservice;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-windowsiot;1.0.0-beta.1;1.0.0-beta.1
com.azure.tools:azure-sdk-archetype;1.0.0;1.0.0
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
diff --git a/pom.xml b/pom.xml
index bf7a714e06c42..84ccbe78db4a7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -842,6 +842,7 @@
sdk/videoanalyzer
sdk/vmwarecloudsimple
sdk/webpubsub
+ sdk/windowsiot
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/CHANGELOG.md b/sdk/windowsiot/azure-resourcemanager-windowsiot/CHANGELOG.md
new file mode 100644
index 0000000000000..e15c09e6fd7c2
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-12-10)
+
+- Azure Resource Manager windowsiot client library for Java. This package contains Microsoft Azure SDK for windowsiot Management SDK. Use this API to manage the Windows IoT device services in your Azure subscription. Package tag package-2019-06. 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/windowsiot/azure-resourcemanager-windowsiot/README.md b/sdk/windowsiot/azure-resourcemanager-windowsiot/README.md
new file mode 100644
index 0000000000000..b4c98db476d5f
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/README.md
@@ -0,0 +1,102 @@
+# Azure Resource Manager windowsiot client library for Java
+
+Azure Resource Manager windowsiot client library for Java.
+
+This package contains Microsoft Azure SDK for windowsiot Management SDK. Use this API to manage the Windows IoT device services in your Azure subscription. Package tag package-2019-06. 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-windowsiot;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-windowsiot
+ 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();
+WindowsiotManager manager = WindowsiotManager
+ .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
+
+[Code snippets and samples](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/windowsiot/azure-resourcemanager-windowsiot/SAMPLE.md)
+
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/main/CONTRIBUTING.md).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
+[docs]: https://azure.github.io/azure-sdk-for-java/
+[jdk]: https://docs.microsoft.com/java/azure/jdk/
+[azure_subscription]: https://azure.microsoft.com/free/
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/SAMPLE.md b/sdk/windowsiot/azure-resourcemanager-windowsiot/SAMPLE.md
new file mode 100644
index 0000000000000..a916ba18f2205
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/SAMPLE.md
@@ -0,0 +1,204 @@
+# Code snippets and samples
+
+
+## Operations
+
+- [List](#operations_list)
+
+## Services
+
+- [CheckDeviceServiceNameAvailability](#services_checkdeviceservicenameavailability)
+- [CreateOrUpdate](#services_createorupdate)
+- [Delete](#services_delete)
+- [GetByResourceGroup](#services_getbyresourcegroup)
+- [List](#services_list)
+- [ListByResourceGroup](#services_listbyresourcegroup)
+- [Update](#services_update)
+### Operations_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Operations List. */
+public final class OperationsListSamples {
+ /*
+ * x-ms-original-file: specification/windowsiot/resource-manager/Microsoft.WindowsIoT/stable/2019-06-01/examples/OperationsList.json
+ */
+ /**
+ * Sample code: Operations_List.
+ *
+ * @param manager Entry point to WindowsiotManager.
+ */
+ public static void operationsList(com.azure.resourcemanager.windowsiot.WindowsiotManager manager) {
+ manager.operations().list(Context.NONE);
+ }
+}
+```
+
+### Services_CheckDeviceServiceNameAvailability
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.windowsiot.models.DeviceServiceCheckNameAvailabilityParameters;
+
+/** Samples for Services CheckDeviceServiceNameAvailability. */
+public final class ServicesCheckDeviceServiceNameAvailabilitySamples {
+ /*
+ * x-ms-original-file: specification/windowsiot/resource-manager/Microsoft.WindowsIoT/stable/2019-06-01/examples/Service_CheckNameAvailability.json
+ */
+ /**
+ * Sample code: Service_CheckNameAvailability.
+ *
+ * @param manager Entry point to WindowsiotManager.
+ */
+ public static void serviceCheckNameAvailability(com.azure.resourcemanager.windowsiot.WindowsiotManager manager) {
+ manager
+ .services()
+ .checkDeviceServiceNameAvailabilityWithResponse(
+ new DeviceServiceCheckNameAvailabilityParameters().withName("service3363"), Context.NONE);
+ }
+}
+```
+
+### Services_CreateOrUpdate
+
+```java
+/** Samples for Services CreateOrUpdate. */
+public final class ServicesCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/windowsiot/resource-manager/Microsoft.WindowsIoT/stable/2019-06-01/examples/Service_Create.json
+ */
+ /**
+ * Sample code: Service_Create.
+ *
+ * @param manager Entry point to WindowsiotManager.
+ */
+ public static void serviceCreate(com.azure.resourcemanager.windowsiot.WindowsiotManager manager) {
+ manager
+ .services()
+ .define("service4445")
+ .withRegion("East US")
+ .withExistingResourceGroup("res9101")
+ .withNotes("blah")
+ .withQuantity(1000000L)
+ .withBillingDomainName("a.b.c")
+ .withAdminDomainName("d.e.f")
+ .create();
+ }
+}
+```
+
+### Services_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Services Delete. */
+public final class ServicesDeleteSamples {
+ /*
+ * x-ms-original-file: specification/windowsiot/resource-manager/Microsoft.WindowsIoT/stable/2019-06-01/examples/Service_Delete.json
+ */
+ /**
+ * Sample code: Service_Delete.
+ *
+ * @param manager Entry point to WindowsiotManager.
+ */
+ public static void serviceDelete(com.azure.resourcemanager.windowsiot.WindowsiotManager manager) {
+ manager.services().deleteWithResponse("res4228", "service2434", Context.NONE);
+ }
+}
+```
+
+### Services_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Services GetByResourceGroup. */
+public final class ServicesGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/windowsiot/resource-manager/Microsoft.WindowsIoT/stable/2019-06-01/examples/Service_GetProperties.json
+ */
+ /**
+ * Sample code: Services_GetProperties.
+ *
+ * @param manager Entry point to WindowsiotManager.
+ */
+ public static void servicesGetProperties(com.azure.resourcemanager.windowsiot.WindowsiotManager manager) {
+ manager.services().getByResourceGroupWithResponse("res9407", "service8596", Context.NONE);
+ }
+}
+```
+
+### Services_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Services List. */
+public final class ServicesListSamples {
+ /*
+ * x-ms-original-file: specification/windowsiot/resource-manager/Microsoft.WindowsIoT/stable/2019-06-01/examples/Service_List.json
+ */
+ /**
+ * Sample code: Service_List.
+ *
+ * @param manager Entry point to WindowsiotManager.
+ */
+ public static void serviceList(com.azure.resourcemanager.windowsiot.WindowsiotManager manager) {
+ manager.services().list(Context.NONE);
+ }
+}
+```
+
+### Services_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Services ListByResourceGroup. */
+public final class ServicesListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/windowsiot/resource-manager/Microsoft.WindowsIoT/stable/2019-06-01/examples/Service_ListByResourceGroup.json
+ */
+ /**
+ * Sample code: Service_ListByResourceGroup.
+ *
+ * @param manager Entry point to WindowsiotManager.
+ */
+ public static void serviceListByResourceGroup(com.azure.resourcemanager.windowsiot.WindowsiotManager manager) {
+ manager.services().listByResourceGroup("res6117", Context.NONE);
+ }
+}
+```
+
+### Services_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.windowsiot.models.DeviceService;
+
+/** Samples for Services Update. */
+public final class ServicesUpdateSamples {
+ /*
+ * x-ms-original-file: specification/windowsiot/resource-manager/Microsoft.WindowsIoT/stable/2019-06-01/examples/Service_Update.json
+ */
+ /**
+ * Sample code: Service_Update.
+ *
+ * @param manager Entry point to WindowsiotManager.
+ */
+ public static void serviceUpdate(com.azure.resourcemanager.windowsiot.WindowsiotManager manager) {
+ DeviceService resource =
+ manager.services().getByResourceGroupWithResponse("res9407", "service8596", Context.NONE).getValue();
+ resource
+ .update()
+ .withNotes("blah")
+ .withQuantity(1000000L)
+ .withBillingDomainName("a.b.c")
+ .withAdminDomainName("d.e.f")
+ .apply();
+ }
+}
+```
+
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/pom.xml b/sdk/windowsiot/azure-resourcemanager-windowsiot/pom.xml
new file mode 100644
index 0000000000000..3444dc56f0d89
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/pom.xml
@@ -0,0 +1,81 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-windowsiot
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for windowsiot Management
+ This package contains Microsoft Azure SDK for windowsiot Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Use this API to manage the Windows IoT device services in your Azure subscription. Package tag package-2019-06.
+ 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
+ true
+ false
+
+
+
+
+
+ com.azure
+ azure-core
+ 1.23.1
+
+
+ com.azure
+ azure-core-management
+ 1.4.4
+
+
+
+
+
+ org.revapi
+ revapi-maven-plugin
+ 0.11.2
+
+
+
+ -
+
java.method.addedToInterface
+
+ -
+ true
+
.*
+ com\.azure\.resourcemanager(\.[^.]+)+\.fluent(\.[^.]+)*
+
+
+
+
+
+
+
+
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/WindowsiotManager.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/WindowsiotManager.java
new file mode 100644
index 0000000000000..176a3c1fe0ba9
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/WindowsiotManager.java
@@ -0,0 +1,256 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot;
+
+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.HttpPipelinePosition;
+import com.azure.core.http.policy.AddDatePolicy;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+import com.azure.core.http.policy.RequestIdPolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.http.policy.ArmChallengeAuthenticationPolicy;
+import com.azure.core.management.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.windowsiot.fluent.DeviceServices;
+import com.azure.resourcemanager.windowsiot.implementation.DeviceServicesBuilder;
+import com.azure.resourcemanager.windowsiot.implementation.OperationsImpl;
+import com.azure.resourcemanager.windowsiot.implementation.ServicesImpl;
+import com.azure.resourcemanager.windowsiot.models.Operations;
+import com.azure.resourcemanager.windowsiot.models.Services;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * Entry point to WindowsiotManager. Use this API to manage the Windows IoT device services in your Azure subscription.
+ */
+public final class WindowsiotManager {
+ private Operations operations;
+
+ private Services services;
+
+ private final DeviceServices clientObject;
+
+ private WindowsiotManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new DeviceServicesBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of windowsiot service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the windowsiot service API instance.
+ */
+ public static WindowsiotManager 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 WindowsiotManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new WindowsiotManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private final ClientLogger logger = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private final List scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of windowsiot service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the windowsiot service API instance.
+ */
+ public WindowsiotManager 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.windowsiot")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new WindowsiotManager(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 Services. */
+ public Services services() {
+ if (this.services == null) {
+ this.services = new ServicesImpl(clientObject.getServices(), this);
+ }
+ return services;
+ }
+
+ /**
+ * @return Wrapped service client DeviceServices providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public DeviceServices serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/DeviceServices.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/DeviceServices.java
new file mode 100644
index 0000000000000..c36a26a43aa02
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/DeviceServices.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.windowsiot.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for DeviceServices class. */
+public interface DeviceServices {
+ /**
+ * 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 ServicesClient object to access its operations.
+ *
+ * @return the ServicesClient object.
+ */
+ ServicesClient getServices();
+}
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/OperationsClient.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..270e4e5552c5d
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.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.windowsiot.fluent.models.OperationEntityInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all of the available Windows IoT Services REST API operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list Windows IoT Device Service operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available Windows IoT Services REST API operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list Windows IoT Device Service operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/ServicesClient.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/ServicesClient.java
new file mode 100644
index 0000000000000..ec8d24d9ac052
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/ServicesClient.java
@@ -0,0 +1,222 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.windowsiot.fluent.models.DeviceServiceInner;
+import com.azure.resourcemanager.windowsiot.fluent.models.DeviceServiceNameAvailabilityInfoInner;
+import com.azure.resourcemanager.windowsiot.models.DeviceServiceCheckNameAvailabilityParameters;
+
+/** An instance of this class provides access to all the operations defined in ServicesClient. */
+public interface ServicesClient {
+ /**
+ * Get the non-security related metadata of a Windows IoT Device Service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param deviceName The name of the Windows IoT Device Service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the non-security related metadata of a Windows IoT Device Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceServiceInner getByResourceGroup(String resourceGroupName, String deviceName);
+
+ /**
+ * Get the non-security related metadata of a Windows IoT Device Service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param deviceName The name of the Windows IoT Device Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the non-security related metadata of a Windows IoT Device Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String deviceName, Context context);
+
+ /**
+ * Create or update the metadata of a Windows IoT Device Service. The usual pattern to modify a property is to
+ * retrieve the Windows IoT Device Service metadata and security metadata, and then combine them with the modified
+ * values in a new body to update the Windows IoT Device Service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param deviceName The name of the Windows IoT Device Service.
+ * @param deviceService The Windows IoT Device Service metadata and security metadata.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 Windows IoT Device Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceServiceInner createOrUpdate(String resourceGroupName, String deviceName, DeviceServiceInner deviceService);
+
+ /**
+ * Create or update the metadata of a Windows IoT Device Service. The usual pattern to modify a property is to
+ * retrieve the Windows IoT Device Service metadata and security metadata, and then combine them with the modified
+ * values in a new body to update the Windows IoT Device Service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param deviceName The name of the Windows IoT Device Service.
+ * @param deviceService The Windows IoT Device Service metadata and security metadata.
+ * @param ifMatch ETag of the Windows IoT Device Service. Do not specify for creating a new Windows IoT Device
+ * Service. Required to update an existing Windows IoT Device Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the Windows IoT Device Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName, String deviceName, DeviceServiceInner deviceService, String ifMatch, Context context);
+
+ /**
+ * Updates the metadata of a Windows IoT Device Service. The usual pattern to modify a property is to retrieve the
+ * Windows IoT Device Service metadata and security metadata, and then combine them with the modified values in a
+ * new body to update the Windows IoT Device Service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param deviceName The name of the Windows IoT Device Service.
+ * @param deviceService The Windows IoT Device Service metadata and security metadata.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 Windows IoT Device Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceServiceInner update(String resourceGroupName, String deviceName, DeviceServiceInner deviceService);
+
+ /**
+ * Updates the metadata of a Windows IoT Device Service. The usual pattern to modify a property is to retrieve the
+ * Windows IoT Device Service metadata and security metadata, and then combine them with the modified values in a
+ * new body to update the Windows IoT Device Service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param deviceName The name of the Windows IoT Device Service.
+ * @param deviceService The Windows IoT Device Service metadata and security metadata.
+ * @param ifMatch ETag of the Windows IoT Device Service. Do not specify for creating a brand new Windows IoT Device
+ * Service. Required to update an existing Windows IoT Device Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the Windows IoT Device Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String deviceName, DeviceServiceInner deviceService, String ifMatch, Context context);
+
+ /**
+ * Delete a Windows IoT Device Service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param deviceName The name of the Windows IoT Device Service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the Windows IoT Device Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceServiceInner delete(String resourceGroupName, String deviceName);
+
+ /**
+ * Delete a Windows IoT Device Service.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param deviceName The name of the Windows IoT Device Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the description of the Windows IoT Device Service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String deviceName, Context context);
+
+ /**
+ * Get all the IoT hubs in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the IoT hubs in a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Get all the IoT hubs in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group that contains the Windows IoT Device Service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the IoT hubs in a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Get all the IoT hubs in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the IoT hubs in a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Get all the IoT hubs in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the IoT hubs in a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Check if a Windows IoT Device Service name is available.
+ *
+ * @param deviceServiceCheckNameAvailabilityParameters Set the name parameter in the
+ * DeviceServiceCheckNameAvailabilityParameters structure to the name of the Windows IoT Device Service to
+ * check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties indicating whether a given Windows IoT Device Service name is available.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeviceServiceNameAvailabilityInfoInner checkDeviceServiceNameAvailability(
+ DeviceServiceCheckNameAvailabilityParameters deviceServiceCheckNameAvailabilityParameters);
+
+ /**
+ * Check if a Windows IoT Device Service name is available.
+ *
+ * @param deviceServiceCheckNameAvailabilityParameters Set the name parameter in the
+ * DeviceServiceCheckNameAvailabilityParameters structure to the name of the Windows IoT Device Service to
+ * check.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties indicating whether a given Windows IoT Device Service name is available.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkDeviceServiceNameAvailabilityWithResponse(
+ DeviceServiceCheckNameAvailabilityParameters deviceServiceCheckNameAvailabilityParameters, Context context);
+}
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceInner.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceInner.java
new file mode 100644
index 0000000000000..373abcc53ce61
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceInner.java
@@ -0,0 +1,190 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.Map;
+
+/** The description of the Windows IoT Device Service. */
+@Fluent
+public final class DeviceServiceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DeviceServiceInner.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;
+
+ /*
+ * The properties of a Windows IoT Device Service.
+ */
+ @JsonProperty(value = "properties")
+ private DeviceServiceProperties innerProperties;
+
+ /**
+ * 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 DeviceServiceInner object itself.
+ */
+ public DeviceServiceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get the innerProperties property: The properties of a Windows IoT Device Service.
+ *
+ * @return the innerProperties value.
+ */
+ private DeviceServiceProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DeviceServiceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DeviceServiceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the notes property: Windows IoT Device Service notes.
+ *
+ * @return the notes value.
+ */
+ public String notes() {
+ return this.innerProperties() == null ? null : this.innerProperties().notes();
+ }
+
+ /**
+ * Set the notes property: Windows IoT Device Service notes.
+ *
+ * @param notes the notes value to set.
+ * @return the DeviceServiceInner object itself.
+ */
+ public DeviceServiceInner withNotes(String notes) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DeviceServiceProperties();
+ }
+ this.innerProperties().withNotes(notes);
+ return this;
+ }
+
+ /**
+ * Get the startDate property: Windows IoT Device Service start date,.
+ *
+ * @return the startDate value.
+ */
+ public OffsetDateTime startDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDate();
+ }
+
+ /**
+ * Get the quantity property: Windows IoT Device Service device allocation,.
+ *
+ * @return the quantity value.
+ */
+ public Long quantity() {
+ return this.innerProperties() == null ? null : this.innerProperties().quantity();
+ }
+
+ /**
+ * Set the quantity property: Windows IoT Device Service device allocation,.
+ *
+ * @param quantity the quantity value to set.
+ * @return the DeviceServiceInner object itself.
+ */
+ public DeviceServiceInner withQuantity(Long quantity) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DeviceServiceProperties();
+ }
+ this.innerProperties().withQuantity(quantity);
+ return this;
+ }
+
+ /**
+ * Get the billingDomainName property: Windows IoT Device Service ODM AAD domain.
+ *
+ * @return the billingDomainName value.
+ */
+ public String billingDomainName() {
+ return this.innerProperties() == null ? null : this.innerProperties().billingDomainName();
+ }
+
+ /**
+ * Set the billingDomainName property: Windows IoT Device Service ODM AAD domain.
+ *
+ * @param billingDomainName the billingDomainName value to set.
+ * @return the DeviceServiceInner object itself.
+ */
+ public DeviceServiceInner withBillingDomainName(String billingDomainName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DeviceServiceProperties();
+ }
+ this.innerProperties().withBillingDomainName(billingDomainName);
+ return this;
+ }
+
+ /**
+ * Get the adminDomainName property: Windows IoT Device Service OEM AAD domain.
+ *
+ * @return the adminDomainName value.
+ */
+ public String adminDomainName() {
+ return this.innerProperties() == null ? null : this.innerProperties().adminDomainName();
+ }
+
+ /**
+ * Set the adminDomainName property: Windows IoT Device Service OEM AAD domain.
+ *
+ * @param adminDomainName the adminDomainName value to set.
+ * @return the DeviceServiceInner object itself.
+ */
+ public DeviceServiceInner withAdminDomainName(String adminDomainName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DeviceServiceProperties();
+ }
+ this.innerProperties().withAdminDomainName(adminDomainName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceNameAvailabilityInfoInner.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceNameAvailabilityInfoInner.java
new file mode 100644
index 0000000000000..58dd2fb82a98c
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceNameAvailabilityInfoInner.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.windowsiot.models.ServiceNameUnavailabilityReason;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties indicating whether a given Windows IoT Device Service name is available. */
+@Fluent
+public final class DeviceServiceNameAvailabilityInfoInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DeviceServiceNameAvailabilityInfoInner.class);
+
+ /*
+ * The value which indicates whether the provided name is available.
+ */
+ @JsonProperty(value = "nameAvailable", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean nameAvailable;
+
+ /*
+ * The reason for unavailability.
+ */
+ @JsonProperty(value = "reason", access = JsonProperty.Access.WRITE_ONLY)
+ private ServiceNameUnavailabilityReason reason;
+
+ /*
+ * The detailed reason message.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Get the nameAvailable property: The value which indicates whether the provided name is available.
+ *
+ * @return the nameAvailable value.
+ */
+ public Boolean nameAvailable() {
+ return this.nameAvailable;
+ }
+
+ /**
+ * Get the reason property: The reason for unavailability.
+ *
+ * @return the reason value.
+ */
+ public ServiceNameUnavailabilityReason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Get the message property: The detailed reason message.
+ *
+ * @return the message value.
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set the message property: The detailed reason message.
+ *
+ * @param message the message value to set.
+ * @return the DeviceServiceNameAvailabilityInfoInner object itself.
+ */
+ public DeviceServiceNameAvailabilityInfoInner 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/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceProperties.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceProperties.java
new file mode 100644
index 0000000000000..6ecef01d45b86
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/DeviceServiceProperties.java
@@ -0,0 +1,144 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.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.time.OffsetDateTime;
+
+/** The properties of a Windows IoT Device Service. */
+@Fluent
+public final class DeviceServiceProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DeviceServiceProperties.class);
+
+ /*
+ * Windows IoT Device Service notes.
+ */
+ @JsonProperty(value = "notes")
+ private String notes;
+
+ /*
+ * Windows IoT Device Service start date,
+ */
+ @JsonProperty(value = "startDate", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime startDate;
+
+ /*
+ * Windows IoT Device Service device allocation,
+ */
+ @JsonProperty(value = "quantity")
+ private Long quantity;
+
+ /*
+ * Windows IoT Device Service ODM AAD domain
+ */
+ @JsonProperty(value = "billingDomainName")
+ private String billingDomainName;
+
+ /*
+ * Windows IoT Device Service OEM AAD domain
+ */
+ @JsonProperty(value = "adminDomainName")
+ private String adminDomainName;
+
+ /**
+ * Get the notes property: Windows IoT Device Service notes.
+ *
+ * @return the notes value.
+ */
+ public String notes() {
+ return this.notes;
+ }
+
+ /**
+ * Set the notes property: Windows IoT Device Service notes.
+ *
+ * @param notes the notes value to set.
+ * @return the DeviceServiceProperties object itself.
+ */
+ public DeviceServiceProperties withNotes(String notes) {
+ this.notes = notes;
+ return this;
+ }
+
+ /**
+ * Get the startDate property: Windows IoT Device Service start date,.
+ *
+ * @return the startDate value.
+ */
+ public OffsetDateTime startDate() {
+ return this.startDate;
+ }
+
+ /**
+ * Get the quantity property: Windows IoT Device Service device allocation,.
+ *
+ * @return the quantity value.
+ */
+ public Long quantity() {
+ return this.quantity;
+ }
+
+ /**
+ * Set the quantity property: Windows IoT Device Service device allocation,.
+ *
+ * @param quantity the quantity value to set.
+ * @return the DeviceServiceProperties object itself.
+ */
+ public DeviceServiceProperties withQuantity(Long quantity) {
+ this.quantity = quantity;
+ return this;
+ }
+
+ /**
+ * Get the billingDomainName property: Windows IoT Device Service ODM AAD domain.
+ *
+ * @return the billingDomainName value.
+ */
+ public String billingDomainName() {
+ return this.billingDomainName;
+ }
+
+ /**
+ * Set the billingDomainName property: Windows IoT Device Service ODM AAD domain.
+ *
+ * @param billingDomainName the billingDomainName value to set.
+ * @return the DeviceServiceProperties object itself.
+ */
+ public DeviceServiceProperties withBillingDomainName(String billingDomainName) {
+ this.billingDomainName = billingDomainName;
+ return this;
+ }
+
+ /**
+ * Get the adminDomainName property: Windows IoT Device Service OEM AAD domain.
+ *
+ * @return the adminDomainName value.
+ */
+ public String adminDomainName() {
+ return this.adminDomainName;
+ }
+
+ /**
+ * Set the adminDomainName property: Windows IoT Device Service OEM AAD domain.
+ *
+ * @param adminDomainName the adminDomainName value to set.
+ * @return the DeviceServiceProperties object itself.
+ */
+ public DeviceServiceProperties withAdminDomainName(String adminDomainName) {
+ this.adminDomainName = adminDomainName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/OperationEntityInner.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/OperationEntityInner.java
new file mode 100644
index 0000000000000..88a4660aa82f3
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/OperationEntityInner.java
@@ -0,0 +1,132 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.windowsiot.models.OperationDisplayInfo;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The operation supported by Azure Data Catalog Service. */
+@Fluent
+public final class OperationEntityInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationEntityInner.class);
+
+ /*
+ * Operation name: {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * The operation supported by Azure Data Catalog Service.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplayInfo display;
+
+ /*
+ * Indicates whether the operation is a data action
+ */
+ @JsonProperty(value = "isDataAction")
+ private Boolean isDataAction;
+
+ /*
+ * Indicates the executor of the operation.
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /**
+ * Get the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @param name the name value to set.
+ * @return the OperationEntityInner object itself.
+ */
+ public OperationEntityInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display property: The operation supported by Azure Data Catalog Service.
+ *
+ * @return the display value.
+ */
+ public OperationDisplayInfo display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: The operation supported by Azure Data Catalog Service.
+ *
+ * @param display the display value to set.
+ * @return the OperationEntityInner object itself.
+ */
+ public OperationEntityInner withDisplay(OperationDisplayInfo display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the isDataAction property: Indicates whether the operation is a data action.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Set the isDataAction property: Indicates whether the operation is a data action.
+ *
+ * @param isDataAction the isDataAction value to set.
+ * @return the OperationEntityInner object itself.
+ */
+ public OperationEntityInner withIsDataAction(Boolean isDataAction) {
+ this.isDataAction = isDataAction;
+ return this;
+ }
+
+ /**
+ * Get the origin property: Indicates the executor of the operation.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: Indicates the executor of the operation.
+ *
+ * @param origin the origin value to set.
+ * @return the OperationEntityInner object itself.
+ */
+ public OperationEntityInner withOrigin(String origin) {
+ this.origin = origin;
+ 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/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/package-info.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/models/package-info.java
new file mode 100644
index 0000000000000..dccb06d6f4ea5
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/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 DeviceServices. Use this API to manage the Windows IoT device services
+ * in your Azure subscription.
+ */
+package com.azure.resourcemanager.windowsiot.fluent.models;
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/package-info.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/fluent/package-info.java
new file mode 100644
index 0000000000000..5eb9851412ba1
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/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 DeviceServices. Use this API to manage the Windows IoT device services in
+ * your Azure subscription.
+ */
+package com.azure.resourcemanager.windowsiot.fluent;
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServiceImpl.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServiceImpl.java
new file mode 100644
index 0000000000000..0b83b99e8c06f
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServiceImpl.java
@@ -0,0 +1,232 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.implementation;
+
+import com.azure.core.management.Region;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.windowsiot.fluent.models.DeviceServiceInner;
+import com.azure.resourcemanager.windowsiot.models.DeviceService;
+import java.time.OffsetDateTime;
+import java.util.Collections;
+import java.util.Map;
+
+public final class DeviceServiceImpl implements DeviceService, DeviceService.Definition, DeviceService.Update {
+ private DeviceServiceInner innerObject;
+
+ private final com.azure.resourcemanager.windowsiot.WindowsiotManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String location() {
+ return this.innerModel().location();
+ }
+
+ public Map tags() {
+ Map inner = this.innerModel().tags();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public String etag() {
+ return this.innerModel().etag();
+ }
+
+ public String notes() {
+ return this.innerModel().notes();
+ }
+
+ public OffsetDateTime startDate() {
+ return this.innerModel().startDate();
+ }
+
+ public Long quantity() {
+ return this.innerModel().quantity();
+ }
+
+ public String billingDomainName() {
+ return this.innerModel().billingDomainName();
+ }
+
+ public String adminDomainName() {
+ return this.innerModel().adminDomainName();
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public DeviceServiceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.windowsiot.WindowsiotManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String deviceName;
+
+ private String createIfMatch;
+
+ private String updateIfMatch;
+
+ public DeviceServiceImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public DeviceService create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getServices()
+ .createOrUpdateWithResponse(
+ resourceGroupName, deviceName, this.innerModel(), createIfMatch, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public DeviceService create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getServices()
+ .createOrUpdateWithResponse(resourceGroupName, deviceName, this.innerModel(), createIfMatch, context)
+ .getValue();
+ return this;
+ }
+
+ DeviceServiceImpl(String name, com.azure.resourcemanager.windowsiot.WindowsiotManager serviceManager) {
+ this.innerObject = new DeviceServiceInner();
+ this.serviceManager = serviceManager;
+ this.deviceName = name;
+ this.createIfMatch = null;
+ }
+
+ public DeviceServiceImpl update() {
+ this.updateIfMatch = null;
+ return this;
+ }
+
+ public DeviceService apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getServices()
+ .updateWithResponse(resourceGroupName, deviceName, this.innerModel(), updateIfMatch, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public DeviceService apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getServices()
+ .updateWithResponse(resourceGroupName, deviceName, this.innerModel(), updateIfMatch, context)
+ .getValue();
+ return this;
+ }
+
+ DeviceServiceImpl(
+ DeviceServiceInner innerObject, com.azure.resourcemanager.windowsiot.WindowsiotManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.deviceName = Utils.getValueFromIdByName(innerObject.id(), "deviceServices");
+ }
+
+ public DeviceService refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getServices()
+ .getByResourceGroupWithResponse(resourceGroupName, deviceName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public DeviceService refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getServices()
+ .getByResourceGroupWithResponse(resourceGroupName, deviceName, context)
+ .getValue();
+ return this;
+ }
+
+ public DeviceServiceImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public DeviceServiceImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public DeviceServiceImpl withTags(Map tags) {
+ this.innerModel().withTags(tags);
+ return this;
+ }
+
+ public DeviceServiceImpl withEtag(String etag) {
+ this.innerModel().withEtag(etag);
+ return this;
+ }
+
+ public DeviceServiceImpl withNotes(String notes) {
+ this.innerModel().withNotes(notes);
+ return this;
+ }
+
+ public DeviceServiceImpl withQuantity(Long quantity) {
+ this.innerModel().withQuantity(quantity);
+ return this;
+ }
+
+ public DeviceServiceImpl withBillingDomainName(String billingDomainName) {
+ this.innerModel().withBillingDomainName(billingDomainName);
+ return this;
+ }
+
+ public DeviceServiceImpl withAdminDomainName(String adminDomainName) {
+ this.innerModel().withAdminDomainName(adminDomainName);
+ return this;
+ }
+
+ public DeviceServiceImpl 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/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServiceNameAvailabilityInfoImpl.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServiceNameAvailabilityInfoImpl.java
new file mode 100644
index 0000000000000..94b45752a970f
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServiceNameAvailabilityInfoImpl.java
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.implementation;
+
+import com.azure.resourcemanager.windowsiot.fluent.models.DeviceServiceNameAvailabilityInfoInner;
+import com.azure.resourcemanager.windowsiot.models.DeviceServiceNameAvailabilityInfo;
+import com.azure.resourcemanager.windowsiot.models.ServiceNameUnavailabilityReason;
+
+public final class DeviceServiceNameAvailabilityInfoImpl implements DeviceServiceNameAvailabilityInfo {
+ private DeviceServiceNameAvailabilityInfoInner innerObject;
+
+ private final com.azure.resourcemanager.windowsiot.WindowsiotManager serviceManager;
+
+ DeviceServiceNameAvailabilityInfoImpl(
+ DeviceServiceNameAvailabilityInfoInner innerObject,
+ com.azure.resourcemanager.windowsiot.WindowsiotManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public Boolean nameAvailable() {
+ return this.innerModel().nameAvailable();
+ }
+
+ public ServiceNameUnavailabilityReason reason() {
+ return this.innerModel().reason();
+ }
+
+ public String message() {
+ return this.innerModel().message();
+ }
+
+ public DeviceServiceNameAvailabilityInfoInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.windowsiot.WindowsiotManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServicesBuilder.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServicesBuilder.java
new file mode 100644
index 0000000000000..6a0d96dea13a6
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServicesBuilder.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.windowsiot.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 DeviceServicesImpl type. */
+@ServiceClientBuilder(serviceClients = {DeviceServicesImpl.class})
+public final class DeviceServicesBuilder {
+ /*
+ * The subscription identifier.
+ */
+ private String subscriptionId;
+
+ /**
+ * Sets The subscription identifier.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the DeviceServicesBuilder.
+ */
+ public DeviceServicesBuilder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /*
+ * server parameter
+ */
+ private String endpoint;
+
+ /**
+ * Sets server parameter.
+ *
+ * @param endpoint the endpoint value.
+ * @return the DeviceServicesBuilder.
+ */
+ public DeviceServicesBuilder 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 DeviceServicesBuilder.
+ */
+ public DeviceServicesBuilder 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 DeviceServicesBuilder.
+ */
+ public DeviceServicesBuilder 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 DeviceServicesBuilder.
+ */
+ public DeviceServicesBuilder 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 DeviceServicesBuilder.
+ */
+ public DeviceServicesBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of DeviceServicesImpl with the provided parameters.
+ *
+ * @return an instance of DeviceServicesImpl.
+ */
+ public DeviceServicesImpl 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();
+ }
+ DeviceServicesImpl client =
+ new DeviceServicesImpl(
+ pipeline, serializerAdapter, defaultPollInterval, environment, subscriptionId, endpoint);
+ return client;
+ }
+}
diff --git a/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServicesImpl.java b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServicesImpl.java
new file mode 100644
index 0000000000000..e1ca440329552
--- /dev/null
+++ b/sdk/windowsiot/azure-resourcemanager-windowsiot/src/main/java/com/azure/resourcemanager/windowsiot/implementation/DeviceServicesImpl.java
@@ -0,0 +1,307 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.windowsiot.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.windowsiot.fluent.DeviceServices;
+import com.azure.resourcemanager.windowsiot.fluent.OperationsClient;
+import com.azure.resourcemanager.windowsiot.fluent.ServicesClient;
+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 DeviceServicesImpl type. */
+@ServiceClient(builder = DeviceServicesBuilder.class)
+public final class DeviceServicesImpl implements DeviceServices {
+ private final ClientLogger logger = new ClientLogger(DeviceServicesImpl.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 ServicesClient object to access its operations. */
+ private final ServicesClient services;
+
+ /**
+ * Gets the ServicesClient object to access its operations.
+ *
+ * @return the ServicesClient object.
+ */
+ public ServicesClient getServices() {
+ return this.services;
+ }
+
+ /**
+ * Initializes an instance of DeviceServices 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.
+ */
+ DeviceServicesImpl(
+ 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 = "2019-06-01";
+ this.operations = new OperationsClientImpl(this);
+ this.services = new ServicesClientImpl(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