diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 9c6aad1ca5d17..bf3cdb5bdcd67 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -200,6 +200,7 @@ com.azure.resourcemanager:azure-resourcemanager-loganalytics;1.0.0-beta.1;1.0.0-
com.azure.resourcemanager:azure-resourcemanager-eventgrid;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-healthbot;1.0.0-beta.1;1.0.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-confluent;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-databoxedge;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 3d84dd84ceb34..d5e2a877c2d68 100644
--- a/pom.xml
+++ b/pom.xml
@@ -568,6 +568,7 @@
sdk/core
sdk/cosmos
sdk/costmanagement
+ sdk/databoxedge
sdk/digitaltwins
sdk/eventgrid
sdk/eventhubs
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/CHANGELOG.md b/sdk/databoxedge/azure-resourcemanager-databoxedge/CHANGELOG.md
new file mode 100644
index 0000000000000..0889b2e7e19e5
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-02-03)
+
+- Azure Resource Manager DataBoxEdge client library for Java. This package contains Microsoft Azure SDK for DataBoxEdge Management SDK. Package tag package-2019-08. 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/databoxedge/azure-resourcemanager-databoxedge/README.md b/sdk/databoxedge/azure-resourcemanager-databoxedge/README.md
new file mode 100644
index 0000000000000..efc40dcfa3c75
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/README.md
@@ -0,0 +1,99 @@
+# Azure Resource Manager DataBoxEdge client library for Java
+
+Azure Resource Manager DataBoxEdge client library for Java.
+
+This package contains Microsoft Azure SDK for DataBoxEdge Management SDK. Package tag package-2019-08. 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-databoxedge;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-databoxedge
+ 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();
+DataBoxEdgeManager manager = DataBoxEdgeManager
+ .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/databoxedge/azure-resourcemanager-databoxedge/pom.xml b/sdk/databoxedge/azure-resourcemanager-databoxedge/pom.xml
new file mode 100644
index 0000000000000..ac6e87f477fbf
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/pom.xml
@@ -0,0 +1,62 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-databoxedge
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for DataBoxEdge Management
+ This package contains Microsoft Azure SDK for DataBoxEdge Management SDK. Package tag package-2019-08. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt
+ 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-management
+ 1.1.0
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+
+
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/DataBoxEdgeManager.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/DataBoxEdgeManager.java
new file mode 100644
index 0000000000000..cd2bb38e0f2e7
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/DataBoxEdgeManager.java
@@ -0,0 +1,395 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge;
+
+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.databoxedge.fluent.DataBoxEdgeManagementClient;
+import com.azure.resourcemanager.databoxedge.implementation.AlertsImpl;
+import com.azure.resourcemanager.databoxedge.implementation.BandwidthSchedulesImpl;
+import com.azure.resourcemanager.databoxedge.implementation.ContainersImpl;
+import com.azure.resourcemanager.databoxedge.implementation.DataBoxEdgeManagementClientBuilder;
+import com.azure.resourcemanager.databoxedge.implementation.DevicesImpl;
+import com.azure.resourcemanager.databoxedge.implementation.JobsImpl;
+import com.azure.resourcemanager.databoxedge.implementation.NodesImpl;
+import com.azure.resourcemanager.databoxedge.implementation.OperationsImpl;
+import com.azure.resourcemanager.databoxedge.implementation.OperationsStatusImpl;
+import com.azure.resourcemanager.databoxedge.implementation.OrdersImpl;
+import com.azure.resourcemanager.databoxedge.implementation.RolesImpl;
+import com.azure.resourcemanager.databoxedge.implementation.SharesImpl;
+import com.azure.resourcemanager.databoxedge.implementation.SkusImpl;
+import com.azure.resourcemanager.databoxedge.implementation.StorageAccountCredentialsImpl;
+import com.azure.resourcemanager.databoxedge.implementation.StorageAccountsImpl;
+import com.azure.resourcemanager.databoxedge.implementation.TriggersImpl;
+import com.azure.resourcemanager.databoxedge.implementation.UsersImpl;
+import com.azure.resourcemanager.databoxedge.models.Alerts;
+import com.azure.resourcemanager.databoxedge.models.BandwidthSchedules;
+import com.azure.resourcemanager.databoxedge.models.Containers;
+import com.azure.resourcemanager.databoxedge.models.Devices;
+import com.azure.resourcemanager.databoxedge.models.Jobs;
+import com.azure.resourcemanager.databoxedge.models.Nodes;
+import com.azure.resourcemanager.databoxedge.models.Operations;
+import com.azure.resourcemanager.databoxedge.models.OperationsStatus;
+import com.azure.resourcemanager.databoxedge.models.Orders;
+import com.azure.resourcemanager.databoxedge.models.Roles;
+import com.azure.resourcemanager.databoxedge.models.Shares;
+import com.azure.resourcemanager.databoxedge.models.Skus;
+import com.azure.resourcemanager.databoxedge.models.StorageAccountCredentials;
+import com.azure.resourcemanager.databoxedge.models.StorageAccounts;
+import com.azure.resourcemanager.databoxedge.models.Triggers;
+import com.azure.resourcemanager.databoxedge.models.Users;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/** Entry point to DataBoxEdgeManager. */
+public final class DataBoxEdgeManager {
+ private Operations operations;
+
+ private Devices devices;
+
+ private Alerts alerts;
+
+ private BandwidthSchedules bandwidthSchedules;
+
+ private Jobs jobs;
+
+ private Nodes nodes;
+
+ private OperationsStatus operationsStatus;
+
+ private Orders orders;
+
+ private Roles roles;
+
+ private Shares shares;
+
+ private StorageAccountCredentials storageAccountCredentials;
+
+ private StorageAccounts storageAccounts;
+
+ private Containers containers;
+
+ private Triggers triggers;
+
+ private Users users;
+
+ private Skus skus;
+
+ private final DataBoxEdgeManagementClient clientObject;
+
+ private DataBoxEdgeManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new DataBoxEdgeManagementClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of DataBoxEdge service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the DataBoxEdge service API instance.
+ */
+ public static DataBoxEdgeManager 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 DataBoxEdgeManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new DataBoxEdgeManager.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 DataBoxEdge service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the DataBoxEdge service API instance.
+ */
+ public DataBoxEdgeManager 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.databoxedge")
+ .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 DataBoxEdgeManager(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 Devices. */
+ public Devices devices() {
+ if (this.devices == null) {
+ this.devices = new DevicesImpl(clientObject.getDevices(), this);
+ }
+ return devices;
+ }
+
+ /** @return Resource collection API of Alerts. */
+ public Alerts alerts() {
+ if (this.alerts == null) {
+ this.alerts = new AlertsImpl(clientObject.getAlerts(), this);
+ }
+ return alerts;
+ }
+
+ /** @return Resource collection API of BandwidthSchedules. */
+ public BandwidthSchedules bandwidthSchedules() {
+ if (this.bandwidthSchedules == null) {
+ this.bandwidthSchedules = new BandwidthSchedulesImpl(clientObject.getBandwidthSchedules(), this);
+ }
+ return bandwidthSchedules;
+ }
+
+ /** @return Resource collection API of Jobs. */
+ public Jobs jobs() {
+ if (this.jobs == null) {
+ this.jobs = new JobsImpl(clientObject.getJobs(), this);
+ }
+ return jobs;
+ }
+
+ /** @return Resource collection API of Nodes. */
+ public Nodes nodes() {
+ if (this.nodes == null) {
+ this.nodes = new NodesImpl(clientObject.getNodes(), this);
+ }
+ return nodes;
+ }
+
+ /** @return Resource collection API of OperationsStatus. */
+ public OperationsStatus operationsStatus() {
+ if (this.operationsStatus == null) {
+ this.operationsStatus = new OperationsStatusImpl(clientObject.getOperationsStatus(), this);
+ }
+ return operationsStatus;
+ }
+
+ /** @return Resource collection API of Orders. */
+ public Orders orders() {
+ if (this.orders == null) {
+ this.orders = new OrdersImpl(clientObject.getOrders(), this);
+ }
+ return orders;
+ }
+
+ /** @return Resource collection API of Roles. */
+ public Roles roles() {
+ if (this.roles == null) {
+ this.roles = new RolesImpl(clientObject.getRoles(), this);
+ }
+ return roles;
+ }
+
+ /** @return Resource collection API of Shares. */
+ public Shares shares() {
+ if (this.shares == null) {
+ this.shares = new SharesImpl(clientObject.getShares(), this);
+ }
+ return shares;
+ }
+
+ /** @return Resource collection API of StorageAccountCredentials. */
+ public StorageAccountCredentials storageAccountCredentials() {
+ if (this.storageAccountCredentials == null) {
+ this.storageAccountCredentials =
+ new StorageAccountCredentialsImpl(clientObject.getStorageAccountCredentials(), this);
+ }
+ return storageAccountCredentials;
+ }
+
+ /** @return Resource collection API of StorageAccounts. */
+ public StorageAccounts storageAccounts() {
+ if (this.storageAccounts == null) {
+ this.storageAccounts = new StorageAccountsImpl(clientObject.getStorageAccounts(), this);
+ }
+ return storageAccounts;
+ }
+
+ /** @return Resource collection API of Containers. */
+ public Containers containers() {
+ if (this.containers == null) {
+ this.containers = new ContainersImpl(clientObject.getContainers(), this);
+ }
+ return containers;
+ }
+
+ /** @return Resource collection API of Triggers. */
+ public Triggers triggers() {
+ if (this.triggers == null) {
+ this.triggers = new TriggersImpl(clientObject.getTriggers(), this);
+ }
+ return triggers;
+ }
+
+ /** @return Resource collection API of Users. */
+ public Users users() {
+ if (this.users == null) {
+ this.users = new UsersImpl(clientObject.getUsers(), this);
+ }
+ return users;
+ }
+
+ /** @return Resource collection API of Skus. */
+ public Skus skus() {
+ if (this.skus == null) {
+ this.skus = new SkusImpl(clientObject.getSkus(), this);
+ }
+ return skus;
+ }
+
+ /**
+ * @return Wrapped service client DataBoxEdgeManagementClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ */
+ public DataBoxEdgeManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/AlertsClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/AlertsClient.java
new file mode 100644
index 0000000000000..334d594b50827
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/AlertsClient.java
@@ -0,0 +1,71 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.AlertInner;
+
+/** An instance of this class provides access to all the operations defined in AlertsClient. */
+public interface AlertsClient {
+ /**
+ * Gets all the alerts for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the alerts for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets all the alerts for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the alerts for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets an alert by name.
+ *
+ * @param deviceName The device name.
+ * @param name The alert name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an alert by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Gets an alert by name.
+ *
+ * @param deviceName The device name.
+ * @param name The alert name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an alert by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/BandwidthSchedulesClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/BandwidthSchedulesClient.java
new file mode 100644
index 0000000000000..bf68720bc8fec
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/BandwidthSchedulesClient.java
@@ -0,0 +1,198 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.BandwidthScheduleInner;
+
+/** An instance of this class provides access to all the operations defined in BandwidthSchedulesClient. */
+public interface BandwidthSchedulesClient {
+ /**
+ * Gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets the properties of the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified bandwidth schedule.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BandwidthScheduleInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Gets the properties of the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified bandwidth schedule.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, BandwidthScheduleInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters);
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @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 bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, BandwidthScheduleInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters, Context context);
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BandwidthScheduleInner createOrUpdate(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters);
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @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 bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BandwidthScheduleInner createOrUpdate(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters, Context context);
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/ContainersClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/ContainersClient.java
new file mode 100644
index 0000000000000..1122c177d346d
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/ContainersClient.java
@@ -0,0 +1,294 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.ContainerInner;
+
+/** An instance of this class provides access to all the operations defined in ContainersClient. */
+public interface ContainersClient {
+ /**
+ * Lists all the containers of a storage Account in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage Account name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the containers on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByStorageAccount(
+ String deviceName, String storageAccountName, String resourceGroupName);
+
+ /**
+ * Lists all the containers of a storage Account in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage Account name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the containers on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByStorageAccount(
+ String deviceName, String storageAccountName, String resourceGroupName, Context context);
+
+ /**
+ * Gets a container by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container Name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a container by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContainerInner get(String deviceName, String storageAccountName, String containerName, String resourceGroupName);
+
+ /**
+ * Gets a container by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container Name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a container by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName, Context context);
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ContainerInner> beginCreateOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container);
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @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 represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ContainerInner> beginCreateOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container,
+ Context context);
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContainerInner createOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container);
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @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 represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContainerInner createOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container,
+ Context context);
+
+ /**
+ * Deletes the container on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName);
+
+ /**
+ * Deletes the container on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the container on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String storageAccountName, String containerName, String resourceGroupName);
+
+ /**
+ * Deletes the container on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName, Context context);
+
+ /**
+ * Refreshes the container metadata with the data from the cloud.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRefresh(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName);
+
+ /**
+ * Refreshes the container metadata with the data from the cloud.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRefresh(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName, Context context);
+
+ /**
+ * Refreshes the container metadata with the data from the cloud.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void refresh(String deviceName, String storageAccountName, String containerName, String resourceGroupName);
+
+ /**
+ * Refreshes the container metadata with the data from the cloud.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void refresh(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/DataBoxEdgeManagementClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/DataBoxEdgeManagementClient.java
new file mode 100644
index 0000000000000..d3ea0cb32538e
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/DataBoxEdgeManagementClient.java
@@ -0,0 +1,158 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for DataBoxEdgeManagementClient class. */
+public interface DataBoxEdgeManagementClient {
+ /**
+ * Gets The subscription ID.
+ *
+ * @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 DevicesClient object to access its operations.
+ *
+ * @return the DevicesClient object.
+ */
+ DevicesClient getDevices();
+
+ /**
+ * Gets the AlertsClient object to access its operations.
+ *
+ * @return the AlertsClient object.
+ */
+ AlertsClient getAlerts();
+
+ /**
+ * Gets the BandwidthSchedulesClient object to access its operations.
+ *
+ * @return the BandwidthSchedulesClient object.
+ */
+ BandwidthSchedulesClient getBandwidthSchedules();
+
+ /**
+ * Gets the JobsClient object to access its operations.
+ *
+ * @return the JobsClient object.
+ */
+ JobsClient getJobs();
+
+ /**
+ * Gets the NodesClient object to access its operations.
+ *
+ * @return the NodesClient object.
+ */
+ NodesClient getNodes();
+
+ /**
+ * Gets the OperationsStatusClient object to access its operations.
+ *
+ * @return the OperationsStatusClient object.
+ */
+ OperationsStatusClient getOperationsStatus();
+
+ /**
+ * Gets the OrdersClient object to access its operations.
+ *
+ * @return the OrdersClient object.
+ */
+ OrdersClient getOrders();
+
+ /**
+ * Gets the RolesClient object to access its operations.
+ *
+ * @return the RolesClient object.
+ */
+ RolesClient getRoles();
+
+ /**
+ * Gets the SharesClient object to access its operations.
+ *
+ * @return the SharesClient object.
+ */
+ SharesClient getShares();
+
+ /**
+ * Gets the StorageAccountCredentialsClient object to access its operations.
+ *
+ * @return the StorageAccountCredentialsClient object.
+ */
+ StorageAccountCredentialsClient getStorageAccountCredentials();
+
+ /**
+ * Gets the StorageAccountsClient object to access its operations.
+ *
+ * @return the StorageAccountsClient object.
+ */
+ StorageAccountsClient getStorageAccounts();
+
+ /**
+ * Gets the ContainersClient object to access its operations.
+ *
+ * @return the ContainersClient object.
+ */
+ ContainersClient getContainers();
+
+ /**
+ * Gets the TriggersClient object to access its operations.
+ *
+ * @return the TriggersClient object.
+ */
+ TriggersClient getTriggers();
+
+ /**
+ * Gets the UsersClient object to access its operations.
+ *
+ * @return the UsersClient object.
+ */
+ UsersClient getUsers();
+
+ /**
+ * Gets the SkusClient object to access its operations.
+ *
+ * @return the SkusClient object.
+ */
+ SkusClient getSkus();
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/DevicesClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/DevicesClient.java
new file mode 100644
index 0000000000000..44aa91941334e
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/DevicesClient.java
@@ -0,0 +1,582 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.DataBoxEdgeDeviceExtendedInfoInner;
+import com.azure.resourcemanager.databoxedge.fluent.models.DataBoxEdgeDeviceInner;
+import com.azure.resourcemanager.databoxedge.fluent.models.NetworkSettingsInner;
+import com.azure.resourcemanager.databoxedge.fluent.models.UpdateSummaryInner;
+import com.azure.resourcemanager.databoxedge.fluent.models.UploadCertificateResponseInner;
+import com.azure.resourcemanager.databoxedge.models.DataBoxEdgeDevicePatch;
+import com.azure.resourcemanager.databoxedge.models.SecuritySettings;
+import com.azure.resourcemanager.databoxedge.models.UploadCertificateRequest;
+
+/** An instance of this class provides access to all the operations defined in DevicesClient. */
+public interface DevicesClient {
+ /**
+ * Gets all the Data Box Edge/Data Box Gateway devices in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the Data Box Edge/Data Box Gateway devices in a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets all the Data Box Edge/Data Box Gateway devices in a subscription.
+ *
+ * @param expand Specify $expand=details to populate additional fields related to the resource or Specify
+ * $skipToken=<token> to populate the next page in the list.
+ * @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 Data Box Edge/Data Box Gateway devices in a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String expand, Context context);
+
+ /**
+ * Gets all the Data Box Edge/Data Box Gateway devices in a resource group.
+ *
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the Data Box Edge/Data Box Gateway devices in a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Gets all the Data Box Edge/Data Box Gateway devices in a resource group.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param expand Specify $expand=details to populate additional fields related to the resource or Specify
+ * $skipToken=<token> to populate the next page in the list.
+ * @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 Data Box Edge/Data Box Gateway devices in a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, String expand, Context context);
+
+ /**
+ * Gets the properties of the Data Box Edge/Data Box Gateway device.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param deviceName The device name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataBoxEdgeDeviceInner getByResourceGroup(String resourceGroupName, String deviceName);
+
+ /**
+ * Gets the properties of the Data Box Edge/Data Box Gateway device.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param deviceName The device name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String deviceName, Context context);
+
+ /**
+ * Creates or updates a Data Box Edge/Data Box Gateway resource.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param dataBoxEdgeDevice The resource object.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DataBoxEdgeDeviceInner> beginCreateOrUpdate(
+ String deviceName, String resourceGroupName, DataBoxEdgeDeviceInner dataBoxEdgeDevice);
+
+ /**
+ * Creates or updates a Data Box Edge/Data Box Gateway resource.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param dataBoxEdgeDevice The resource object.
+ * @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 Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DataBoxEdgeDeviceInner> beginCreateOrUpdate(
+ String deviceName, String resourceGroupName, DataBoxEdgeDeviceInner dataBoxEdgeDevice, Context context);
+
+ /**
+ * Creates or updates a Data Box Edge/Data Box Gateway resource.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param dataBoxEdgeDevice The resource object.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataBoxEdgeDeviceInner createOrUpdate(
+ String deviceName, String resourceGroupName, DataBoxEdgeDeviceInner dataBoxEdgeDevice);
+
+ /**
+ * Creates or updates a Data Box Edge/Data Box Gateway resource.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param dataBoxEdgeDevice The resource object.
+ * @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 Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataBoxEdgeDeviceInner createOrUpdate(
+ String deviceName, String resourceGroupName, DataBoxEdgeDeviceInner dataBoxEdgeDevice, Context context);
+
+ /**
+ * Deletes the Data Box Edge/Data Box Gateway device.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param deviceName The device name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String deviceName);
+
+ /**
+ * Deletes the Data Box Edge/Data Box Gateway device.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param deviceName The device name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String deviceName, Context context);
+
+ /**
+ * Deletes the Data Box Edge/Data Box Gateway device.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param deviceName The device name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String deviceName);
+
+ /**
+ * Deletes the Data Box Edge/Data Box Gateway device.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param deviceName The device name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String deviceName, Context context);
+
+ /**
+ * Modifies a Data Box Edge/Data Box Gateway resource.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The resource parameters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataBoxEdgeDeviceInner update(String deviceName, String resourceGroupName, DataBoxEdgeDevicePatch parameters);
+
+ /**
+ * Modifies a Data Box Edge/Data Box Gateway resource.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The resource parameters.
+ * @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 Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String deviceName, String resourceGroupName, DataBoxEdgeDevicePatch parameters, Context context);
+
+ /**
+ * Downloads the updates on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDownloadUpdates(String deviceName, String resourceGroupName);
+
+ /**
+ * Downloads the updates on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDownloadUpdates(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Downloads the updates on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void downloadUpdates(String deviceName, String resourceGroupName);
+
+ /**
+ * Downloads the updates on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void downloadUpdates(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets additional information for the specified Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return additional information for the specified Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataBoxEdgeDeviceExtendedInfoInner getExtendedInformation(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets additional information for the specified Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return additional information for the specified Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getExtendedInformationWithResponse(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Installs the updates on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginInstallUpdates(String deviceName, String resourceGroupName);
+
+ /**
+ * Installs the updates on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginInstallUpdates(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Installs the updates on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void installUpdates(String deviceName, String resourceGroupName);
+
+ /**
+ * Installs the updates on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void installUpdates(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets the network settings of the specified Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network settings of the specified Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkSettingsInner getNetworkSettings(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets the network settings of the specified Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the network settings of the specified Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getNetworkSettingsWithResponse(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Scans for updates on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginScanForUpdates(String deviceName, String resourceGroupName);
+
+ /**
+ * Scans for updates on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginScanForUpdates(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Scans for updates on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void scanForUpdates(String deviceName, String resourceGroupName);
+
+ /**
+ * Scans for updates on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void scanForUpdates(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Updates the security settings on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param securitySettings The security settings.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginCreateOrUpdateSecuritySettings(
+ String deviceName, String resourceGroupName, SecuritySettings securitySettings);
+
+ /**
+ * Updates the security settings on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param securitySettings The security settings.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginCreateOrUpdateSecuritySettings(
+ String deviceName, String resourceGroupName, SecuritySettings securitySettings, Context context);
+
+ /**
+ * Updates the security settings on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param securitySettings The security settings.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void createOrUpdateSecuritySettings(String deviceName, String resourceGroupName, SecuritySettings securitySettings);
+
+ /**
+ * Updates the security settings on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param securitySettings The security settings.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void createOrUpdateSecuritySettings(
+ String deviceName, String resourceGroupName, SecuritySettings securitySettings, Context context);
+
+ /**
+ * Gets information about the availability of updates based on the last scan of the device. It also gets information
+ * about any ongoing download or install jobs on the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information about the availability of updates based on the last scan of the device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ UpdateSummaryInner getUpdateSummary(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets information about the availability of updates based on the last scan of the device. It also gets information
+ * about any ongoing download or install jobs on the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information about the availability of updates based on the last scan of the device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getUpdateSummaryWithResponse(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Uploads registration certificate for the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The upload certificate request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 upload registration certificate response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ UploadCertificateResponseInner uploadCertificate(
+ String deviceName, String resourceGroupName, UploadCertificateRequest parameters);
+
+ /**
+ * Uploads registration certificate for the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The upload certificate request.
+ * @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 upload registration certificate response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response uploadCertificateWithResponse(
+ String deviceName, String resourceGroupName, UploadCertificateRequest parameters, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/JobsClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/JobsClient.java
new file mode 100644
index 0000000000000..640570ef6745d
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/JobsClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.JobInner;
+
+/** An instance of this class provides access to all the operations defined in JobsClient. */
+public interface JobsClient {
+ /**
+ * Gets the details of a specified job on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The job name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of a specified job on a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JobInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Gets the details of a specified job on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The job name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of a specified job on a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/NodesClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/NodesClient.java
new file mode 100644
index 0000000000000..47241df8e08d2
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/NodesClient.java
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.NodeInner;
+
+/** An instance of this class provides access to all the operations defined in NodesClient. */
+public interface NodesClient {
+ /**
+ * Gets all the nodes currently configured under this Data Box Edge device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the nodes currently configured under this Data Box Edge device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets all the nodes currently configured under this Data Box Edge device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the nodes currently configured under this Data Box Edge device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/OperationsClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..04b9c37132d4e
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/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.databoxedge.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.databoxedge.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * List all the supported 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 the list of operations used for the discovery of available provider operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List all the supported 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 the list of operations used for the discovery of available provider operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/OperationsStatusClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/OperationsStatusClient.java
new file mode 100644
index 0000000000000..1cc20e96c6227
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/OperationsStatusClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.JobInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsStatusClient. */
+public interface OperationsStatusClient {
+ /**
+ * Gets the details of a specified job on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The job name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of a specified job on a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JobInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Gets the details of a specified job on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The job name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of a specified job on a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/OrdersClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/OrdersClient.java
new file mode 100644
index 0000000000000..6f7bc753adbd0
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/OrdersClient.java
@@ -0,0 +1,183 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.OrderInner;
+
+/** An instance of this class provides access to all the operations defined in OrdersClient. */
+public interface OrdersClient {
+ /**
+ * Lists all the orders related to a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of order entities.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Lists all the orders related to a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of order entities.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets a specific order by name.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a specific order by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OrderInner get(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets a specific order by name.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a specific order by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Creates or updates an order.
+ *
+ * @param deviceName The order details of a device.
+ * @param resourceGroupName The resource group name.
+ * @param order The order to be created or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 order details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, OrderInner> beginCreateOrUpdate(
+ String deviceName, String resourceGroupName, OrderInner order);
+
+ /**
+ * Creates or updates an order.
+ *
+ * @param deviceName The order details of a device.
+ * @param resourceGroupName The resource group name.
+ * @param order The order to be created or updated.
+ * @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 order details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, OrderInner> beginCreateOrUpdate(
+ String deviceName, String resourceGroupName, OrderInner order, Context context);
+
+ /**
+ * Creates or updates an order.
+ *
+ * @param deviceName The order details of a device.
+ * @param resourceGroupName The resource group name.
+ * @param order The order to be created or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 order details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OrderInner createOrUpdate(String deviceName, String resourceGroupName, OrderInner order);
+
+ /**
+ * Creates or updates an order.
+ *
+ * @param deviceName The order details of a device.
+ * @param resourceGroupName The resource group name.
+ * @param order The order to be created or updated.
+ * @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 order details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OrderInner createOrUpdate(String deviceName, String resourceGroupName, OrderInner order, Context context);
+
+ /**
+ * Deletes the order related to the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String deviceName, String resourceGroupName);
+
+ /**
+ * Deletes the order related to the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the order related to the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String resourceGroupName);
+
+ /**
+ * Deletes the order related to the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/RolesClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/RolesClient.java
new file mode 100644
index 0000000000000..cef88cc8ea6e4
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/RolesClient.java
@@ -0,0 +1,194 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.RoleInner;
+
+/** An instance of this class provides access to all the operations defined in RolesClient. */
+public interface RolesClient {
+ /**
+ * Lists all the roles configured in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the roles on the Data Box Edge device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Lists all the roles configured in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the roles on the Data Box Edge device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets a specific role by name.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a specific role by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Gets a specific role by name.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a specific role by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Create or update a role.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @param role The role properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return compute role.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, RoleInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, RoleInner role);
+
+ /**
+ * Create or update a role.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @param role The role properties.
+ * @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 compute role.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, RoleInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, RoleInner role, Context context);
+
+ /**
+ * Create or update a role.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @param role The role properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return compute role.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleInner createOrUpdate(String deviceName, String name, String resourceGroupName, RoleInner role);
+
+ /**
+ * Create or update a role.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @param role The role properties.
+ * @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 compute role.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleInner createOrUpdate(String deviceName, String name, String resourceGroupName, RoleInner role, Context context);
+
+ /**
+ * Deletes the role on the device.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the role on the device.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the role on the device.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the role on the device.
+ *
+ * @param deviceName The device name.
+ * @param name The role name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/SharesClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/SharesClient.java
new file mode 100644
index 0000000000000..e1a33e0771fc3
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/SharesClient.java
@@ -0,0 +1,252 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.ShareInner;
+
+/** An instance of this class provides access to all the operations defined in SharesClient. */
+public interface SharesClient {
+ /**
+ * Lists all the shares in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the shares on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Lists all the shares in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the shares on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets a share by name.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a share by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ShareInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Gets a share by name.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a share by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Creates a new share or updates an existing share on the device.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param share The share properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a share on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ShareInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, ShareInner share);
+
+ /**
+ * Creates a new share or updates an existing share on the device.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param share The share properties.
+ * @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 represents a share on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ShareInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, ShareInner share, Context context);
+
+ /**
+ * Creates a new share or updates an existing share on the device.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param share The share properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a share on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ShareInner createOrUpdate(String deviceName, String name, String resourceGroupName, ShareInner share);
+
+ /**
+ * Creates a new share or updates an existing share on the device.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param share The share properties.
+ * @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 represents a share on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ShareInner createOrUpdate(
+ String deviceName, String name, String resourceGroupName, ShareInner share, Context context);
+
+ /**
+ * Deletes the share on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the share on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the share on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the share on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Refreshes the share metadata with the data from the cloud.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRefresh(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Refreshes the share metadata with the data from the cloud.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRefresh(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Refreshes the share metadata with the data from the cloud.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void refresh(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Refreshes the share metadata with the data from the cloud.
+ *
+ * @param deviceName The device name.
+ * @param name The share name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void refresh(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/SkusClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/SkusClient.java
new file mode 100644
index 0000000000000..73dc0b3417259
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/SkusClient.java
@@ -0,0 +1,37 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.ResourceTypeSkuInner;
+
+/** An instance of this class provides access to all the operations defined in SkusClient. */
+public interface SkusClient {
+ /**
+ * List all the available Skus in the region and information related to them.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of SKU Information objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List all the available Skus in the region and information related to them.
+ *
+ * @param filter Specify $filter='location eq <location>' to filter on location.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of SKU Information objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String filter, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/StorageAccountCredentialsClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/StorageAccountCredentialsClient.java
new file mode 100644
index 0000000000000..435bc27ffad7f
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/StorageAccountCredentialsClient.java
@@ -0,0 +1,212 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.StorageAccountCredentialInner;
+
+/** An instance of this class provides access to all the operations defined in StorageAccountCredentialsClient. */
+public interface StorageAccountCredentialsClient {
+ /**
+ * Gets all the storage account credentials in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the storage account credentials in a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets all the storage account credentials in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the storage account credentials in a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets the properties of the specified storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified storage account credential.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountCredentialInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Gets the properties of the specified storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified storage account credential.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Creates or updates the storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @param storageAccountCredential The storage account credential.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 storage account credential.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, StorageAccountCredentialInner> beginCreateOrUpdate(
+ String deviceName,
+ String name,
+ String resourceGroupName,
+ StorageAccountCredentialInner storageAccountCredential);
+
+ /**
+ * Creates or updates the storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @param storageAccountCredential The storage account credential.
+ * @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 storage account credential.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, StorageAccountCredentialInner> beginCreateOrUpdate(
+ String deviceName,
+ String name,
+ String resourceGroupName,
+ StorageAccountCredentialInner storageAccountCredential,
+ Context context);
+
+ /**
+ * Creates or updates the storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @param storageAccountCredential The storage account credential.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 storage account credential.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountCredentialInner createOrUpdate(
+ String deviceName,
+ String name,
+ String resourceGroupName,
+ StorageAccountCredentialInner storageAccountCredential);
+
+ /**
+ * Creates or updates the storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @param storageAccountCredential The storage account credential.
+ * @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 storage account credential.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountCredentialInner createOrUpdate(
+ String deviceName,
+ String name,
+ String resourceGroupName,
+ StorageAccountCredentialInner storageAccountCredential,
+ Context context);
+
+ /**
+ * Deletes the storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the storage account credential.
+ *
+ * @param deviceName The device name.
+ * @param name The storage account credential name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/StorageAccountsClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/StorageAccountsClient.java
new file mode 100644
index 0000000000000..9badd639ba648
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/StorageAccountsClient.java
@@ -0,0 +1,207 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.StorageAccountInner;
+
+/** An instance of this class provides access to all the operations defined in StorageAccountsClient. */
+public interface StorageAccountsClient {
+ /**
+ * Lists all the storage accounts in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the Storage Accounts on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Lists all the storage accounts in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the Storage Accounts on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(
+ String deviceName, String resourceGroupName, Context context);
+
+ /**
+ * Gets a StorageAccount by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage account name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a StorageAccount by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountInner get(String deviceName, String storageAccountName, String resourceGroupName);
+
+ /**
+ * Gets a StorageAccount by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage account name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a StorageAccount by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String deviceName, String storageAccountName, String resourceGroupName, Context context);
+
+ /**
+ * Creates a new StorageAccount or updates an existing StorageAccount on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The StorageAccount name.
+ * @param resourceGroupName The resource group name.
+ * @param storageAccount The StorageAccount properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a Storage Account on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, StorageAccountInner> beginCreateOrUpdate(
+ String deviceName, String storageAccountName, String resourceGroupName, StorageAccountInner storageAccount);
+
+ /**
+ * Creates a new StorageAccount or updates an existing StorageAccount on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The StorageAccount name.
+ * @param resourceGroupName The resource group name.
+ * @param storageAccount The StorageAccount properties.
+ * @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 represents a Storage Account on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, StorageAccountInner> beginCreateOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String resourceGroupName,
+ StorageAccountInner storageAccount,
+ Context context);
+
+ /**
+ * Creates a new StorageAccount or updates an existing StorageAccount on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The StorageAccount name.
+ * @param resourceGroupName The resource group name.
+ * @param storageAccount The StorageAccount properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a Storage Account on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountInner createOrUpdate(
+ String deviceName, String storageAccountName, String resourceGroupName, StorageAccountInner storageAccount);
+
+ /**
+ * Creates a new StorageAccount or updates an existing StorageAccount on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The StorageAccount name.
+ * @param resourceGroupName The resource group name.
+ * @param storageAccount The StorageAccount properties.
+ * @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 represents a Storage Account on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountInner createOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String resourceGroupName,
+ StorageAccountInner storageAccount,
+ Context context);
+
+ /**
+ * Deletes the StorageAccount on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The StorageAccount name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String storageAccountName, String resourceGroupName);
+
+ /**
+ * Deletes the StorageAccount on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The StorageAccount name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String storageAccountName, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the StorageAccount on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The StorageAccount name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String storageAccountName, String resourceGroupName);
+
+ /**
+ * Deletes the StorageAccount on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The StorageAccount name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String storageAccountName, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/TriggersClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/TriggersClient.java
new file mode 100644
index 0000000000000..7eb9230930692
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/TriggersClient.java
@@ -0,0 +1,197 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.TriggerInner;
+
+/** An instance of this class provides access to all the operations defined in TriggersClient. */
+public interface TriggersClient {
+ /**
+ * Lists all the triggers configured in the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all trigger on the data box edge device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Lists all the triggers configured in the device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param filter Specify $filter='CustomContextTag eq <tag>' to filter on custom context tag property.
+ * @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 collection of all trigger on the data box edge device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(
+ String deviceName, String resourceGroupName, String filter, Context context);
+
+ /**
+ * Get a specific trigger by name.
+ *
+ * @param deviceName The device name.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a specific trigger by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TriggerInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Get a specific trigger by name.
+ *
+ * @param deviceName The device name.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a specific trigger by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Creates or updates a trigger.
+ *
+ * @param deviceName Creates or updates a trigger.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @param trigger The trigger.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return trigger details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, TriggerInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, TriggerInner trigger);
+
+ /**
+ * Creates or updates a trigger.
+ *
+ * @param deviceName Creates or updates a trigger.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @param trigger The trigger.
+ * @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 trigger details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, TriggerInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, TriggerInner trigger, Context context);
+
+ /**
+ * Creates or updates a trigger.
+ *
+ * @param deviceName Creates or updates a trigger.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @param trigger The trigger.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return trigger details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TriggerInner createOrUpdate(String deviceName, String name, String resourceGroupName, TriggerInner trigger);
+
+ /**
+ * Creates or updates a trigger.
+ *
+ * @param deviceName Creates or updates a trigger.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @param trigger The trigger.
+ * @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 trigger details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TriggerInner createOrUpdate(
+ String deviceName, String name, String resourceGroupName, TriggerInner trigger, Context context);
+
+ /**
+ * Deletes the trigger on the gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the trigger on the gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the trigger on the gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the trigger on the gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The trigger name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/UsersClient.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/UsersClient.java
new file mode 100644
index 0000000000000..6fc2a24cfbdc3
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/UsersClient.java
@@ -0,0 +1,196 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.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.databoxedge.fluent.models.UserInner;
+
+/** An instance of this class provides access to all the operations defined in UsersClient. */
+public interface UsersClient {
+ /**
+ * Gets all the users registered on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the users registered on a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+
+ /**
+ * Gets all the users registered on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param filter Specify $filter='UserType eq <type>' to filter on user type property.
+ * @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 users registered on a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDataBoxEdgeDevice(
+ String deviceName, String resourceGroupName, String filter, Context context);
+
+ /**
+ * Gets the properties of the specified user.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified user.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ UserInner get(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Gets the properties of the specified user.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified user.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Creates a new user or updates an existing user's information on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @param user The user details.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a user who has access to one or more shares on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, UserInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, UserInner user);
+
+ /**
+ * Creates a new user or updates an existing user's information on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @param user The user details.
+ * @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 represents a user who has access to one or more shares on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, UserInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, UserInner user, Context context);
+
+ /**
+ * Creates a new user or updates an existing user's information on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @param user The user details.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a user who has access to one or more shares on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ UserInner createOrUpdate(String deviceName, String name, String resourceGroupName, UserInner user);
+
+ /**
+ * Creates a new user or updates an existing user's information on a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @param user The user details.
+ * @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 represents a user who has access to one or more shares on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ UserInner createOrUpdate(String deviceName, String name, String resourceGroupName, UserInner user, Context context);
+
+ /**
+ * Deletes the user on a databox edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the user on a databox edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String deviceName, String name, String resourceGroupName, Context context);
+
+ /**
+ * Deletes the user on a databox edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName);
+
+ /**
+ * Deletes the user on a databox edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The user name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String deviceName, String name, String resourceGroupName, Context context);
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/AlertInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/AlertInner.java
new file mode 100644
index 0000000000000..1cf1a3fc5eccc
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/AlertInner.java
@@ -0,0 +1,141 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.AlertErrorDetails;
+import com.azure.resourcemanager.databoxedge.models.AlertSeverity;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.Map;
+
+/** Alert on the data box edge/gateway device. */
+@JsonFlatten
+@Immutable
+public class AlertInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AlertInner.class);
+
+ /*
+ * Alert title.
+ */
+ @JsonProperty(value = "properties.title", access = JsonProperty.Access.WRITE_ONLY)
+ private String title;
+
+ /*
+ * Alert type.
+ */
+ @JsonProperty(value = "properties.alertType", access = JsonProperty.Access.WRITE_ONLY)
+ private String alertType;
+
+ /*
+ * UTC time when the alert appeared.
+ */
+ @JsonProperty(value = "properties.appearedAtDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime appearedAtDateTime;
+
+ /*
+ * Alert recommendation.
+ */
+ @JsonProperty(value = "properties.recommendation", access = JsonProperty.Access.WRITE_ONLY)
+ private String recommendation;
+
+ /*
+ * Severity of the alert.
+ */
+ @JsonProperty(value = "properties.severity", access = JsonProperty.Access.WRITE_ONLY)
+ private AlertSeverity severity;
+
+ /*
+ * Error details of the alert.
+ */
+ @JsonProperty(value = "properties.errorDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private AlertErrorDetails errorDetails;
+
+ /*
+ * Alert details.
+ */
+ @JsonProperty(value = "properties.detailedInformation", access = JsonProperty.Access.WRITE_ONLY)
+ private Map detailedInformation;
+
+ /**
+ * Get the title property: Alert title.
+ *
+ * @return the title value.
+ */
+ public String title() {
+ return this.title;
+ }
+
+ /**
+ * Get the alertType property: Alert type.
+ *
+ * @return the alertType value.
+ */
+ public String alertType() {
+ return this.alertType;
+ }
+
+ /**
+ * Get the appearedAtDateTime property: UTC time when the alert appeared.
+ *
+ * @return the appearedAtDateTime value.
+ */
+ public OffsetDateTime appearedAtDateTime() {
+ return this.appearedAtDateTime;
+ }
+
+ /**
+ * Get the recommendation property: Alert recommendation.
+ *
+ * @return the recommendation value.
+ */
+ public String recommendation() {
+ return this.recommendation;
+ }
+
+ /**
+ * Get the severity property: Severity of the alert.
+ *
+ * @return the severity value.
+ */
+ public AlertSeverity severity() {
+ return this.severity;
+ }
+
+ /**
+ * Get the errorDetails property: Error details of the alert.
+ *
+ * @return the errorDetails value.
+ */
+ public AlertErrorDetails errorDetails() {
+ return this.errorDetails;
+ }
+
+ /**
+ * Get the detailedInformation property: Alert details.
+ *
+ * @return the detailedInformation value.
+ */
+ public Map detailedInformation() {
+ return this.detailedInformation;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (errorDetails() != null) {
+ errorDetails().validate();
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/BandwidthScheduleInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/BandwidthScheduleInner.java
new file mode 100644
index 0000000000000..3bd2fdf8f7c6e
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/BandwidthScheduleInner.java
@@ -0,0 +1,150 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.DayOfWeek;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The bandwidth schedule details. */
+@JsonFlatten
+@Fluent
+public class BandwidthScheduleInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BandwidthScheduleInner.class);
+
+ /*
+ * The start time of the schedule in UTC.
+ */
+ @JsonProperty(value = "properties.start", required = true)
+ private String start;
+
+ /*
+ * The stop time of the schedule in UTC.
+ */
+ @JsonProperty(value = "properties.stop", required = true)
+ private String stop;
+
+ /*
+ * The bandwidth rate in Mbps.
+ */
+ @JsonProperty(value = "properties.rateInMbps", required = true)
+ private int rateInMbps;
+
+ /*
+ * The days of the week when this schedule is applicable.
+ */
+ @JsonProperty(value = "properties.days", required = true)
+ private List days;
+
+ /**
+ * Get the start property: The start time of the schedule in UTC.
+ *
+ * @return the start value.
+ */
+ public String start() {
+ return this.start;
+ }
+
+ /**
+ * Set the start property: The start time of the schedule in UTC.
+ *
+ * @param start the start value to set.
+ * @return the BandwidthScheduleInner object itself.
+ */
+ public BandwidthScheduleInner withStart(String start) {
+ this.start = start;
+ return this;
+ }
+
+ /**
+ * Get the stop property: The stop time of the schedule in UTC.
+ *
+ * @return the stop value.
+ */
+ public String stop() {
+ return this.stop;
+ }
+
+ /**
+ * Set the stop property: The stop time of the schedule in UTC.
+ *
+ * @param stop the stop value to set.
+ * @return the BandwidthScheduleInner object itself.
+ */
+ public BandwidthScheduleInner withStop(String stop) {
+ this.stop = stop;
+ return this;
+ }
+
+ /**
+ * Get the rateInMbps property: The bandwidth rate in Mbps.
+ *
+ * @return the rateInMbps value.
+ */
+ public int rateInMbps() {
+ return this.rateInMbps;
+ }
+
+ /**
+ * Set the rateInMbps property: The bandwidth rate in Mbps.
+ *
+ * @param rateInMbps the rateInMbps value to set.
+ * @return the BandwidthScheduleInner object itself.
+ */
+ public BandwidthScheduleInner withRateInMbps(int rateInMbps) {
+ this.rateInMbps = rateInMbps;
+ return this;
+ }
+
+ /**
+ * Get the days property: The days of the week when this schedule is applicable.
+ *
+ * @return the days value.
+ */
+ public List days() {
+ return this.days;
+ }
+
+ /**
+ * Set the days property: The days of the week when this schedule is applicable.
+ *
+ * @param days the days value to set.
+ * @return the BandwidthScheduleInner object itself.
+ */
+ public BandwidthScheduleInner withDays(List days) {
+ this.days = days;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (start() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property start in model BandwidthScheduleInner"));
+ }
+ if (stop() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property stop in model BandwidthScheduleInner"));
+ }
+ if (days() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property days in model BandwidthScheduleInner"));
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ContainerInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ContainerInner.java
new file mode 100644
index 0000000000000..d4c2952aa00fd
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ContainerInner.java
@@ -0,0 +1,112 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.AzureContainerDataFormat;
+import com.azure.resourcemanager.databoxedge.models.ContainerStatus;
+import com.azure.resourcemanager.databoxedge.models.RefreshDetails;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Represents a container on the Data Box Edge/Gateway device. */
+@JsonFlatten
+@Fluent
+public class ContainerInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ContainerInner.class);
+
+ /*
+ * Current status of the container.
+ */
+ @JsonProperty(value = "properties.containerStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private ContainerStatus containerStatus;
+
+ /*
+ * DataFormat for Container
+ */
+ @JsonProperty(value = "properties.dataFormat", required = true)
+ private AzureContainerDataFormat dataFormat;
+
+ /*
+ * Details of the refresh job on this container.
+ */
+ @JsonProperty(value = "properties.refreshDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private RefreshDetails refreshDetails;
+
+ /*
+ * The UTC time when container got created.
+ */
+ @JsonProperty(value = "properties.createdDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime createdDateTime;
+
+ /**
+ * Get the containerStatus property: Current status of the container.
+ *
+ * @return the containerStatus value.
+ */
+ public ContainerStatus containerStatus() {
+ return this.containerStatus;
+ }
+
+ /**
+ * Get the dataFormat property: DataFormat for Container.
+ *
+ * @return the dataFormat value.
+ */
+ public AzureContainerDataFormat dataFormat() {
+ return this.dataFormat;
+ }
+
+ /**
+ * Set the dataFormat property: DataFormat for Container.
+ *
+ * @param dataFormat the dataFormat value to set.
+ * @return the ContainerInner object itself.
+ */
+ public ContainerInner withDataFormat(AzureContainerDataFormat dataFormat) {
+ this.dataFormat = dataFormat;
+ return this;
+ }
+
+ /**
+ * Get the refreshDetails property: Details of the refresh job on this container.
+ *
+ * @return the refreshDetails value.
+ */
+ public RefreshDetails refreshDetails() {
+ return this.refreshDetails;
+ }
+
+ /**
+ * Get the createdDateTime property: The UTC time when container got created.
+ *
+ * @return the createdDateTime value.
+ */
+ public OffsetDateTime createdDateTime() {
+ return this.createdDateTime;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (dataFormat() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property dataFormat in model ContainerInner"));
+ }
+ if (refreshDetails() != null) {
+ refreshDetails().validate();
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/DataBoxEdgeDeviceExtendedInfoInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/DataBoxEdgeDeviceExtendedInfoInner.java
new file mode 100644
index 0000000000000..e748fb08dbf44
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/DataBoxEdgeDeviceExtendedInfoInner.java
@@ -0,0 +1,99 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The extended Info of the Data Box Edge/Gateway device. */
+@JsonFlatten
+@Fluent
+public class DataBoxEdgeDeviceExtendedInfoInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DataBoxEdgeDeviceExtendedInfoInner.class);
+
+ /*
+ * The digital signature of encrypted certificate.
+ */
+ @JsonProperty(value = "properties.encryptionKeyThumbprint")
+ private String encryptionKeyThumbprint;
+
+ /*
+ * The public part of the encryption certificate. Client uses this to
+ * encrypt any secret.
+ */
+ @JsonProperty(value = "properties.encryptionKey")
+ private String encryptionKey;
+
+ /*
+ * The Resource ID of the Resource.
+ */
+ @JsonProperty(value = "properties.resourceKey", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceKey;
+
+ /**
+ * Get the encryptionKeyThumbprint property: The digital signature of encrypted certificate.
+ *
+ * @return the encryptionKeyThumbprint value.
+ */
+ public String encryptionKeyThumbprint() {
+ return this.encryptionKeyThumbprint;
+ }
+
+ /**
+ * Set the encryptionKeyThumbprint property: The digital signature of encrypted certificate.
+ *
+ * @param encryptionKeyThumbprint the encryptionKeyThumbprint value to set.
+ * @return the DataBoxEdgeDeviceExtendedInfoInner object itself.
+ */
+ public DataBoxEdgeDeviceExtendedInfoInner withEncryptionKeyThumbprint(String encryptionKeyThumbprint) {
+ this.encryptionKeyThumbprint = encryptionKeyThumbprint;
+ return this;
+ }
+
+ /**
+ * Get the encryptionKey property: The public part of the encryption certificate. Client uses this to encrypt any
+ * secret.
+ *
+ * @return the encryptionKey value.
+ */
+ public String encryptionKey() {
+ return this.encryptionKey;
+ }
+
+ /**
+ * Set the encryptionKey property: The public part of the encryption certificate. Client uses this to encrypt any
+ * secret.
+ *
+ * @param encryptionKey the encryptionKey value to set.
+ * @return the DataBoxEdgeDeviceExtendedInfoInner object itself.
+ */
+ public DataBoxEdgeDeviceExtendedInfoInner withEncryptionKey(String encryptionKey) {
+ this.encryptionKey = encryptionKey;
+ return this;
+ }
+
+ /**
+ * Get the resourceKey property: The Resource ID of the Resource.
+ *
+ * @return the resourceKey value.
+ */
+ public String resourceKey() {
+ return this.resourceKey;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/DataBoxEdgeDeviceInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/DataBoxEdgeDeviceInner.java
new file mode 100644
index 0000000000000..37f660791285d
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/DataBoxEdgeDeviceInner.java
@@ -0,0 +1,412 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.DataBoxEdgeDeviceStatus;
+import com.azure.resourcemanager.databoxedge.models.DeviceType;
+import com.azure.resourcemanager.databoxedge.models.RoleTypes;
+import com.azure.resourcemanager.databoxedge.models.Sku;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** The Data Box Edge/Gateway device. */
+@JsonFlatten
+@Fluent
+public class DataBoxEdgeDeviceInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DataBoxEdgeDeviceInner.class);
+
+ /*
+ * The location of the device. This is a supported and registered Azure
+ * geographical region (for example, West US, East US, or Southeast Asia).
+ * The geographical region of a device cannot be changed once it is
+ * created, but if an identical geographical region is specified on update,
+ * the request will succeed.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /*
+ * The list of tags that describe the device. These tags can be used to
+ * view and group this device (across resource groups).
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /*
+ * The SKU type.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /*
+ * The etag for the devices.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /*
+ * The status of the Data Box Edge/Gateway device.
+ */
+ @JsonProperty(value = "properties.dataBoxEdgeDeviceStatus")
+ private DataBoxEdgeDeviceStatus dataBoxEdgeDeviceStatus;
+
+ /*
+ * The Serial Number of Data Box Edge/Gateway device.
+ */
+ @JsonProperty(value = "properties.serialNumber", access = JsonProperty.Access.WRITE_ONLY)
+ private String serialNumber;
+
+ /*
+ * The Description of the Data Box Edge/Gateway device.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /*
+ * The description of the Data Box Edge/Gateway device model.
+ */
+ @JsonProperty(value = "properties.modelDescription")
+ private String modelDescription;
+
+ /*
+ * The type of the Data Box Edge/Gateway device.
+ */
+ @JsonProperty(value = "properties.deviceType", access = JsonProperty.Access.WRITE_ONLY)
+ private DeviceType deviceType;
+
+ /*
+ * The Data Box Edge/Gateway device name.
+ */
+ @JsonProperty(value = "properties.friendlyName")
+ private String friendlyName;
+
+ /*
+ * The Data Box Edge/Gateway device culture.
+ */
+ @JsonProperty(value = "properties.culture", access = JsonProperty.Access.WRITE_ONLY)
+ private String culture;
+
+ /*
+ * The Data Box Edge/Gateway device model.
+ */
+ @JsonProperty(value = "properties.deviceModel", access = JsonProperty.Access.WRITE_ONLY)
+ private String deviceModel;
+
+ /*
+ * The Data Box Edge/Gateway device software version.
+ */
+ @JsonProperty(value = "properties.deviceSoftwareVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String deviceSoftwareVersion;
+
+ /*
+ * The Data Box Edge/Gateway device local capacity in MB.
+ */
+ @JsonProperty(value = "properties.deviceLocalCapacity", access = JsonProperty.Access.WRITE_ONLY)
+ private Long deviceLocalCapacity;
+
+ /*
+ * The Data Box Edge/Gateway device timezone.
+ */
+ @JsonProperty(value = "properties.timeZone", access = JsonProperty.Access.WRITE_ONLY)
+ private String timeZone;
+
+ /*
+ * The device software version number of the device (eg: 1.2.18105.6).
+ */
+ @JsonProperty(value = "properties.deviceHcsVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String deviceHcsVersion;
+
+ /*
+ * Type of compute roles configured.
+ */
+ @JsonProperty(value = "properties.configuredRoleTypes", access = JsonProperty.Access.WRITE_ONLY)
+ private List configuredRoleTypes;
+
+ /*
+ * The number of nodes in the cluster.
+ */
+ @JsonProperty(value = "properties.nodeCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer nodeCount;
+
+ /**
+ * Get the location property: The location of the device. This is a supported and registered Azure geographical
+ * region (for example, West US, East US, or Southeast Asia). The geographical region of a device cannot be changed
+ * once it is created, but if an identical geographical region is specified on update, the request will succeed.
+ *
+ * @return the location value.
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location property: The location of the device. This is a supported and registered Azure geographical
+ * region (for example, West US, East US, or Southeast Asia). The geographical region of a device cannot be changed
+ * once it is created, but if an identical geographical region is specified on update, the request will succeed.
+ *
+ * @param location the location value to set.
+ * @return the DataBoxEdgeDeviceInner object itself.
+ */
+ public DataBoxEdgeDeviceInner withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the tags property: The list of tags that describe the device. These tags can be used to view and group this
+ * device (across resource groups).
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: The list of tags that describe the device. These tags can be used to view and group this
+ * device (across resource groups).
+ *
+ * @param tags the tags value to set.
+ * @return the DataBoxEdgeDeviceInner object itself.
+ */
+ public DataBoxEdgeDeviceInner withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the sku property: The SKU type.
+ *
+ * @return the sku value.
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: The SKU type.
+ *
+ * @param sku the sku value to set.
+ * @return the DataBoxEdgeDeviceInner object itself.
+ */
+ public DataBoxEdgeDeviceInner withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the etag property: The etag for the devices.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: The etag for the devices.
+ *
+ * @param etag the etag value to set.
+ * @return the DataBoxEdgeDeviceInner object itself.
+ */
+ public DataBoxEdgeDeviceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get the dataBoxEdgeDeviceStatus property: The status of the Data Box Edge/Gateway device.
+ *
+ * @return the dataBoxEdgeDeviceStatus value.
+ */
+ public DataBoxEdgeDeviceStatus dataBoxEdgeDeviceStatus() {
+ return this.dataBoxEdgeDeviceStatus;
+ }
+
+ /**
+ * Set the dataBoxEdgeDeviceStatus property: The status of the Data Box Edge/Gateway device.
+ *
+ * @param dataBoxEdgeDeviceStatus the dataBoxEdgeDeviceStatus value to set.
+ * @return the DataBoxEdgeDeviceInner object itself.
+ */
+ public DataBoxEdgeDeviceInner withDataBoxEdgeDeviceStatus(DataBoxEdgeDeviceStatus dataBoxEdgeDeviceStatus) {
+ this.dataBoxEdgeDeviceStatus = dataBoxEdgeDeviceStatus;
+ return this;
+ }
+
+ /**
+ * Get the serialNumber property: The Serial Number of Data Box Edge/Gateway device.
+ *
+ * @return the serialNumber value.
+ */
+ public String serialNumber() {
+ return this.serialNumber;
+ }
+
+ /**
+ * Get the description property: The Description of the Data Box Edge/Gateway device.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: The Description of the Data Box Edge/Gateway device.
+ *
+ * @param description the description value to set.
+ * @return the DataBoxEdgeDeviceInner object itself.
+ */
+ public DataBoxEdgeDeviceInner withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the modelDescription property: The description of the Data Box Edge/Gateway device model.
+ *
+ * @return the modelDescription value.
+ */
+ public String modelDescription() {
+ return this.modelDescription;
+ }
+
+ /**
+ * Set the modelDescription property: The description of the Data Box Edge/Gateway device model.
+ *
+ * @param modelDescription the modelDescription value to set.
+ * @return the DataBoxEdgeDeviceInner object itself.
+ */
+ public DataBoxEdgeDeviceInner withModelDescription(String modelDescription) {
+ this.modelDescription = modelDescription;
+ return this;
+ }
+
+ /**
+ * Get the deviceType property: The type of the Data Box Edge/Gateway device.
+ *
+ * @return the deviceType value.
+ */
+ public DeviceType deviceType() {
+ return this.deviceType;
+ }
+
+ /**
+ * Get the friendlyName property: The Data Box Edge/Gateway device name.
+ *
+ * @return the friendlyName value.
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the friendlyName property: The Data Box Edge/Gateway device name.
+ *
+ * @param friendlyName the friendlyName value to set.
+ * @return the DataBoxEdgeDeviceInner object itself.
+ */
+ public DataBoxEdgeDeviceInner withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the culture property: The Data Box Edge/Gateway device culture.
+ *
+ * @return the culture value.
+ */
+ public String culture() {
+ return this.culture;
+ }
+
+ /**
+ * Get the deviceModel property: The Data Box Edge/Gateway device model.
+ *
+ * @return the deviceModel value.
+ */
+ public String deviceModel() {
+ return this.deviceModel;
+ }
+
+ /**
+ * Get the deviceSoftwareVersion property: The Data Box Edge/Gateway device software version.
+ *
+ * @return the deviceSoftwareVersion value.
+ */
+ public String deviceSoftwareVersion() {
+ return this.deviceSoftwareVersion;
+ }
+
+ /**
+ * Get the deviceLocalCapacity property: The Data Box Edge/Gateway device local capacity in MB.
+ *
+ * @return the deviceLocalCapacity value.
+ */
+ public Long deviceLocalCapacity() {
+ return this.deviceLocalCapacity;
+ }
+
+ /**
+ * Get the timeZone property: The Data Box Edge/Gateway device timezone.
+ *
+ * @return the timeZone value.
+ */
+ public String timeZone() {
+ return this.timeZone;
+ }
+
+ /**
+ * Get the deviceHcsVersion property: The device software version number of the device (eg: 1.2.18105.6).
+ *
+ * @return the deviceHcsVersion value.
+ */
+ public String deviceHcsVersion() {
+ return this.deviceHcsVersion;
+ }
+
+ /**
+ * Get the configuredRoleTypes property: Type of compute roles configured.
+ *
+ * @return the configuredRoleTypes value.
+ */
+ public List configuredRoleTypes() {
+ return this.configuredRoleTypes;
+ }
+
+ /**
+ * Get the nodeCount property: The number of nodes in the cluster.
+ *
+ * @return the nodeCount value.
+ */
+ public Integer nodeCount() {
+ return this.nodeCount;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (location() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property location in model DataBoxEdgeDeviceInner"));
+ }
+ if (sku() != null) {
+ sku().validate();
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/JobInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/JobInner.java
new file mode 100644
index 0000000000000..b1714c488b56c
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/JobInner.java
@@ -0,0 +1,298 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.JobErrorDetails;
+import com.azure.resourcemanager.databoxedge.models.JobStatus;
+import com.azure.resourcemanager.databoxedge.models.JobType;
+import com.azure.resourcemanager.databoxedge.models.UpdateDownloadProgress;
+import com.azure.resourcemanager.databoxedge.models.UpdateInstallProgress;
+import com.azure.resourcemanager.databoxedge.models.UpdateOperationStage;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** A device job. */
+@JsonFlatten
+@Fluent
+public class JobInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(JobInner.class);
+
+ /*
+ * The path ID that uniquely identifies the object.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The name of the object.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The hierarchical type of the object.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The current status of the job.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private JobStatus status;
+
+ /*
+ * The UTC date and time at which the job started.
+ */
+ @JsonProperty(value = "startTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime startTime;
+
+ /*
+ * The UTC date and time at which the job completed.
+ */
+ @JsonProperty(value = "endTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime endTime;
+
+ /*
+ * The percentage of the job that is complete.
+ */
+ @JsonProperty(value = "percentComplete", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer percentComplete;
+
+ /*
+ * The error details.
+ */
+ @JsonProperty(value = "error", access = JsonProperty.Access.WRITE_ONLY)
+ private JobErrorDetails error;
+
+ /*
+ * The type of the job.
+ */
+ @JsonProperty(value = "properties.jobType", access = JsonProperty.Access.WRITE_ONLY)
+ private JobType jobType;
+
+ /*
+ * Current stage of the update operation.
+ */
+ @JsonProperty(value = "properties.currentStage", access = JsonProperty.Access.WRITE_ONLY)
+ private UpdateOperationStage currentStage;
+
+ /*
+ * The download progress.
+ */
+ @JsonProperty(value = "properties.downloadProgress", access = JsonProperty.Access.WRITE_ONLY)
+ private UpdateDownloadProgress downloadProgress;
+
+ /*
+ * The install progress.
+ */
+ @JsonProperty(value = "properties.installProgress", access = JsonProperty.Access.WRITE_ONLY)
+ private UpdateInstallProgress installProgress;
+
+ /*
+ * Total number of errors encountered during the refresh process.
+ */
+ @JsonProperty(value = "properties.totalRefreshErrors", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer totalRefreshErrors;
+
+ /*
+ * Local share/remote container relative path to the error manifest file of
+ * the refresh.
+ */
+ @JsonProperty(value = "properties.errorManifestFile", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorManifestFile;
+
+ /*
+ * ARM ID of the entity that was refreshed.
+ */
+ @JsonProperty(value = "properties.refreshedEntityId", access = JsonProperty.Access.WRITE_ONLY)
+ private String refreshedEntityId;
+
+ /*
+ * If only subfolders need to be refreshed, then the subfolder path inside
+ * the share or container. (The path is empty if there are no subfolders.)
+ */
+ @JsonProperty(value = "properties.folder")
+ private String folder;
+
+ /**
+ * Get the id property: The path ID that uniquely identifies the object.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The name of the object.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The hierarchical type of the object.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the status property: The current status of the job.
+ *
+ * @return the status value.
+ */
+ public JobStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the startTime property: The UTC date and time at which the job started.
+ *
+ * @return the startTime value.
+ */
+ public OffsetDateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Get the endTime property: The UTC date and time at which the job completed.
+ *
+ * @return the endTime value.
+ */
+ public OffsetDateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Get the percentComplete property: The percentage of the job that is complete.
+ *
+ * @return the percentComplete value.
+ */
+ public Integer percentComplete() {
+ return this.percentComplete;
+ }
+
+ /**
+ * Get the error property: The error details.
+ *
+ * @return the error value.
+ */
+ public JobErrorDetails error() {
+ return this.error;
+ }
+
+ /**
+ * Get the jobType property: The type of the job.
+ *
+ * @return the jobType value.
+ */
+ public JobType jobType() {
+ return this.jobType;
+ }
+
+ /**
+ * Get the currentStage property: Current stage of the update operation.
+ *
+ * @return the currentStage value.
+ */
+ public UpdateOperationStage currentStage() {
+ return this.currentStage;
+ }
+
+ /**
+ * Get the downloadProgress property: The download progress.
+ *
+ * @return the downloadProgress value.
+ */
+ public UpdateDownloadProgress downloadProgress() {
+ return this.downloadProgress;
+ }
+
+ /**
+ * Get the installProgress property: The install progress.
+ *
+ * @return the installProgress value.
+ */
+ public UpdateInstallProgress installProgress() {
+ return this.installProgress;
+ }
+
+ /**
+ * Get the totalRefreshErrors property: Total number of errors encountered during the refresh process.
+ *
+ * @return the totalRefreshErrors value.
+ */
+ public Integer totalRefreshErrors() {
+ return this.totalRefreshErrors;
+ }
+
+ /**
+ * Get the errorManifestFile property: Local share/remote container relative path to the error manifest file of the
+ * refresh.
+ *
+ * @return the errorManifestFile value.
+ */
+ public String errorManifestFile() {
+ return this.errorManifestFile;
+ }
+
+ /**
+ * Get the refreshedEntityId property: ARM ID of the entity that was refreshed.
+ *
+ * @return the refreshedEntityId value.
+ */
+ public String refreshedEntityId() {
+ return this.refreshedEntityId;
+ }
+
+ /**
+ * Get the folder property: If only subfolders need to be refreshed, then the subfolder path inside the share or
+ * container. (The path is empty if there are no subfolders.).
+ *
+ * @return the folder value.
+ */
+ public String folder() {
+ return this.folder;
+ }
+
+ /**
+ * Set the folder property: If only subfolders need to be refreshed, then the subfolder path inside the share or
+ * container. (The path is empty if there are no subfolders.).
+ *
+ * @param folder the folder value to set.
+ * @return the JobInner object itself.
+ */
+ public JobInner withFolder(String folder) {
+ this.folder = folder;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (error() != null) {
+ error().validate();
+ }
+ if (downloadProgress() != null) {
+ downloadProgress().validate();
+ }
+ if (installProgress() != null) {
+ installProgress().validate();
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/NetworkSettingsInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/NetworkSettingsInner.java
new file mode 100644
index 0000000000000..3812339ecb2ab
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/NetworkSettingsInner.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.NetworkAdapter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The network settings of a device. */
+@JsonFlatten
+@Immutable
+public class NetworkSettingsInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NetworkSettingsInner.class);
+
+ /*
+ * The network adapter list on the device.
+ */
+ @JsonProperty(value = "properties.networkAdapters", access = JsonProperty.Access.WRITE_ONLY)
+ private List networkAdapters;
+
+ /**
+ * Get the networkAdapters property: The network adapter list on the device.
+ *
+ * @return the networkAdapters value.
+ */
+ public List networkAdapters() {
+ return this.networkAdapters;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (networkAdapters() != null) {
+ networkAdapters().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/NodeInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/NodeInner.java
new file mode 100644
index 0000000000000..c294abf52db42
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/NodeInner.java
@@ -0,0 +1,139 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.NodeStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a single node in a Data box Edge/Gateway device Gateway devices, standalone Edge devices and a single node
+ * cluster Edge device will all have 1 node Multi-node Edge devices will have more than 1 nodes.
+ */
+@JsonFlatten
+@Immutable
+public class NodeInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NodeInner.class);
+
+ /*
+ * The current status of the individual node
+ */
+ @JsonProperty(value = "properties.nodeStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private NodeStatus nodeStatus;
+
+ /*
+ * Serial number of the Chassis
+ */
+ @JsonProperty(value = "properties.nodeChassisSerialNumber", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeChassisSerialNumber;
+
+ /*
+ * Serial number of the individual node
+ */
+ @JsonProperty(value = "properties.nodeSerialNumber", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeSerialNumber;
+
+ /*
+ * Display Name of the individual node
+ */
+ @JsonProperty(value = "properties.nodeDisplayName", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeDisplayName;
+
+ /*
+ * Friendly software version name that is currently installed on the node
+ */
+ @JsonProperty(value = "properties.nodeFriendlySoftwareVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeFriendlySoftwareVersion;
+
+ /*
+ * HCS version that is currently installed on the node
+ */
+ @JsonProperty(value = "properties.nodeHcsVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeHcsVersion;
+
+ /*
+ * Guid instance id of the node
+ */
+ @JsonProperty(value = "properties.nodeInstanceId", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeInstanceId;
+
+ /**
+ * Get the nodeStatus property: The current status of the individual node.
+ *
+ * @return the nodeStatus value.
+ */
+ public NodeStatus nodeStatus() {
+ return this.nodeStatus;
+ }
+
+ /**
+ * Get the nodeChassisSerialNumber property: Serial number of the Chassis.
+ *
+ * @return the nodeChassisSerialNumber value.
+ */
+ public String nodeChassisSerialNumber() {
+ return this.nodeChassisSerialNumber;
+ }
+
+ /**
+ * Get the nodeSerialNumber property: Serial number of the individual node.
+ *
+ * @return the nodeSerialNumber value.
+ */
+ public String nodeSerialNumber() {
+ return this.nodeSerialNumber;
+ }
+
+ /**
+ * Get the nodeDisplayName property: Display Name of the individual node.
+ *
+ * @return the nodeDisplayName value.
+ */
+ public String nodeDisplayName() {
+ return this.nodeDisplayName;
+ }
+
+ /**
+ * Get the nodeFriendlySoftwareVersion property: Friendly software version name that is currently installed on the
+ * node.
+ *
+ * @return the nodeFriendlySoftwareVersion value.
+ */
+ public String nodeFriendlySoftwareVersion() {
+ return this.nodeFriendlySoftwareVersion;
+ }
+
+ /**
+ * Get the nodeHcsVersion property: HCS version that is currently installed on the node.
+ *
+ * @return the nodeHcsVersion value.
+ */
+ public String nodeHcsVersion() {
+ return this.nodeHcsVersion;
+ }
+
+ /**
+ * Get the nodeInstanceId property: Guid instance id of the node.
+ *
+ * @return the nodeInstanceId value.
+ */
+ public String nodeInstanceId() {
+ return this.nodeInstanceId;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/OperationInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/OperationInner.java
new file mode 100644
index 0000000000000..e534c0cf2f7ae
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/OperationInner.java
@@ -0,0 +1,138 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.OperationDisplay;
+import com.azure.resourcemanager.databoxedge.models.ServiceSpecification;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Operations. */
+@JsonFlatten
+@Fluent
+public class OperationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationInner.class);
+
+ /*
+ * Name of the operation.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Properties displayed for the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * Origin of the operation.
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /*
+ * Service specification.
+ */
+ @JsonProperty(value = "properties.serviceSpecification")
+ private ServiceSpecification serviceSpecification;
+
+ /**
+ * Get the name property: Name of the operation.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Name of the operation.
+ *
+ * @param name the name value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display property: Properties displayed for the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Properties displayed for the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the origin property: Origin of the operation.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: Origin of the operation.
+ *
+ * @param origin the origin value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withOrigin(String origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Get the serviceSpecification property: Service specification.
+ *
+ * @return the serviceSpecification value.
+ */
+ public ServiceSpecification serviceSpecification() {
+ return this.serviceSpecification;
+ }
+
+ /**
+ * Set the serviceSpecification property: Service specification.
+ *
+ * @param serviceSpecification the serviceSpecification value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withServiceSpecification(ServiceSpecification serviceSpecification) {
+ this.serviceSpecification = serviceSpecification;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ if (serviceSpecification() != null) {
+ serviceSpecification().validate();
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/OrderInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/OrderInner.java
new file mode 100644
index 0000000000000..34ff53e2c15fd
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/OrderInner.java
@@ -0,0 +1,194 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.Address;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.ContactDetails;
+import com.azure.resourcemanager.databoxedge.models.OrderStatus;
+import com.azure.resourcemanager.databoxedge.models.TrackingInfo;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The order details. */
+@JsonFlatten
+@Fluent
+public class OrderInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OrderInner.class);
+
+ /*
+ * The contact details.
+ */
+ @JsonProperty(value = "properties.contactInformation")
+ private ContactDetails contactInformation;
+
+ /*
+ * The shipping address.
+ */
+ @JsonProperty(value = "properties.shippingAddress")
+ private Address shippingAddress;
+
+ /*
+ * Current status of the order.
+ */
+ @JsonProperty(value = "properties.currentStatus")
+ private OrderStatus currentStatus;
+
+ /*
+ * List of status changes in the order.
+ */
+ @JsonProperty(value = "properties.orderHistory", access = JsonProperty.Access.WRITE_ONLY)
+ private List orderHistory;
+
+ /*
+ * Serial number of the device.
+ */
+ @JsonProperty(value = "properties.serialNumber", access = JsonProperty.Access.WRITE_ONLY)
+ private String serialNumber;
+
+ /*
+ * Tracking information for the package delivered to the customer whether
+ * it has an original or a replacement device.
+ */
+ @JsonProperty(value = "properties.deliveryTrackingInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private List deliveryTrackingInfo;
+
+ /*
+ * Tracking information for the package returned from the customer whether
+ * it has an original or a replacement device.
+ */
+ @JsonProperty(value = "properties.returnTrackingInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private List returnTrackingInfo;
+
+ /**
+ * Get the contactInformation property: The contact details.
+ *
+ * @return the contactInformation value.
+ */
+ public ContactDetails contactInformation() {
+ return this.contactInformation;
+ }
+
+ /**
+ * Set the contactInformation property: The contact details.
+ *
+ * @param contactInformation the contactInformation value to set.
+ * @return the OrderInner object itself.
+ */
+ public OrderInner withContactInformation(ContactDetails contactInformation) {
+ this.contactInformation = contactInformation;
+ return this;
+ }
+
+ /**
+ * Get the shippingAddress property: The shipping address.
+ *
+ * @return the shippingAddress value.
+ */
+ public Address shippingAddress() {
+ return this.shippingAddress;
+ }
+
+ /**
+ * Set the shippingAddress property: The shipping address.
+ *
+ * @param shippingAddress the shippingAddress value to set.
+ * @return the OrderInner object itself.
+ */
+ public OrderInner withShippingAddress(Address shippingAddress) {
+ this.shippingAddress = shippingAddress;
+ return this;
+ }
+
+ /**
+ * Get the currentStatus property: Current status of the order.
+ *
+ * @return the currentStatus value.
+ */
+ public OrderStatus currentStatus() {
+ return this.currentStatus;
+ }
+
+ /**
+ * Set the currentStatus property: Current status of the order.
+ *
+ * @param currentStatus the currentStatus value to set.
+ * @return the OrderInner object itself.
+ */
+ public OrderInner withCurrentStatus(OrderStatus currentStatus) {
+ this.currentStatus = currentStatus;
+ return this;
+ }
+
+ /**
+ * Get the orderHistory property: List of status changes in the order.
+ *
+ * @return the orderHistory value.
+ */
+ public List orderHistory() {
+ return this.orderHistory;
+ }
+
+ /**
+ * Get the serialNumber property: Serial number of the device.
+ *
+ * @return the serialNumber value.
+ */
+ public String serialNumber() {
+ return this.serialNumber;
+ }
+
+ /**
+ * Get the deliveryTrackingInfo property: Tracking information for the package delivered to the customer whether it
+ * has an original or a replacement device.
+ *
+ * @return the deliveryTrackingInfo value.
+ */
+ public List deliveryTrackingInfo() {
+ return this.deliveryTrackingInfo;
+ }
+
+ /**
+ * Get the returnTrackingInfo property: Tracking information for the package returned from the customer whether it
+ * has an original or a replacement device.
+ *
+ * @return the returnTrackingInfo value.
+ */
+ public List returnTrackingInfo() {
+ return this.returnTrackingInfo;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (contactInformation() != null) {
+ contactInformation().validate();
+ }
+ if (shippingAddress() != null) {
+ shippingAddress().validate();
+ }
+ if (currentStatus() != null) {
+ currentStatus().validate();
+ }
+ if (orderHistory() != null) {
+ orderHistory().forEach(e -> e.validate());
+ }
+ if (deliveryTrackingInfo() != null) {
+ deliveryTrackingInfo().forEach(e -> e.validate());
+ }
+ if (returnTrackingInfo() != null) {
+ returnTrackingInfo().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ResourceTypeSkuInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ResourceTypeSkuInner.java
new file mode 100644
index 0000000000000..7cdc781fa7801
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ResourceTypeSkuInner.java
@@ -0,0 +1,189 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.SkuCost;
+import com.azure.resourcemanager.databoxedge.models.SkuLocationInfo;
+import com.azure.resourcemanager.databoxedge.models.SkuName;
+import com.azure.resourcemanager.databoxedge.models.SkuRestriction;
+import com.azure.resourcemanager.databoxedge.models.SkuTier;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** SkuInformation object. */
+@Immutable
+public final class ResourceTypeSkuInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ResourceTypeSkuInner.class);
+
+ /*
+ * The type of the resource
+ */
+ @JsonProperty(value = "resourceType", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceType;
+
+ /*
+ * The Sku name
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private SkuName name;
+
+ /*
+ * The Sku kind
+ */
+ @JsonProperty(value = "kind", access = JsonProperty.Access.WRITE_ONLY)
+ private String kind;
+
+ /*
+ * The Sku tier
+ */
+ @JsonProperty(value = "tier", access = JsonProperty.Access.WRITE_ONLY)
+ private SkuTier tier;
+
+ /*
+ * The Sku family
+ */
+ @JsonProperty(value = "family", access = JsonProperty.Access.WRITE_ONLY)
+ private String family;
+
+ /*
+ * Availability of the SKU for the region
+ */
+ @JsonProperty(value = "locations", access = JsonProperty.Access.WRITE_ONLY)
+ private List locations;
+
+ /*
+ * The API versions in which SKU is available
+ */
+ @JsonProperty(value = "apiVersions", access = JsonProperty.Access.WRITE_ONLY)
+ private List apiVersions;
+
+ /*
+ * Availability of the SKU for the location/zone
+ */
+ @JsonProperty(value = "locationInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private List locationInfo;
+
+ /*
+ * The pricing info of the Sku.
+ */
+ @JsonProperty(value = "costs", access = JsonProperty.Access.WRITE_ONLY)
+ private List costs;
+
+ /*
+ * Restrictions of the SKU availability.
+ */
+ @JsonProperty(value = "restrictions", access = JsonProperty.Access.WRITE_ONLY)
+ private List restrictions;
+
+ /**
+ * Get the resourceType property: The type of the resource.
+ *
+ * @return the resourceType value.
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Get the name property: The Sku name.
+ *
+ * @return the name value.
+ */
+ public SkuName name() {
+ return this.name;
+ }
+
+ /**
+ * Get the kind property: The Sku kind.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Get the tier property: The Sku tier.
+ *
+ * @return the tier value.
+ */
+ public SkuTier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Get the family property: The Sku family.
+ *
+ * @return the family value.
+ */
+ public String family() {
+ return this.family;
+ }
+
+ /**
+ * Get the locations property: Availability of the SKU for the region.
+ *
+ * @return the locations value.
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Get the apiVersions property: The API versions in which SKU is available.
+ *
+ * @return the apiVersions value.
+ */
+ public List apiVersions() {
+ return this.apiVersions;
+ }
+
+ /**
+ * Get the locationInfo property: Availability of the SKU for the location/zone.
+ *
+ * @return the locationInfo value.
+ */
+ public List locationInfo() {
+ return this.locationInfo;
+ }
+
+ /**
+ * Get the costs property: The pricing info of the Sku.
+ *
+ * @return the costs value.
+ */
+ public List costs() {
+ return this.costs;
+ }
+
+ /**
+ * Get the restrictions property: Restrictions of the SKU availability.
+ *
+ * @return the restrictions value.
+ */
+ public List restrictions() {
+ return this.restrictions;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (locationInfo() != null) {
+ locationInfo().forEach(e -> e.validate());
+ }
+ if (costs() != null) {
+ costs().forEach(e -> e.validate());
+ }
+ if (restrictions() != null) {
+ restrictions().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/RoleInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/RoleInner.java
new file mode 100644
index 0000000000000..06f52481c0a6a
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/RoleInner.java
@@ -0,0 +1,37 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.IoTRole;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** Compute role. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "kind",
+ defaultImpl = RoleInner.class)
+@JsonTypeName("Role")
+@JsonSubTypes({@JsonSubTypes.Type(name = "IOT", value = IoTRole.class)})
+@Immutable
+public class RoleInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(RoleInner.class);
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ShareInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ShareInner.java
new file mode 100644
index 0000000000000..280d6bc637031
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/ShareInner.java
@@ -0,0 +1,324 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.AzureContainerInfo;
+import com.azure.resourcemanager.databoxedge.models.ClientAccessRight;
+import com.azure.resourcemanager.databoxedge.models.DataPolicy;
+import com.azure.resourcemanager.databoxedge.models.MonitoringStatus;
+import com.azure.resourcemanager.databoxedge.models.MountPointMap;
+import com.azure.resourcemanager.databoxedge.models.RefreshDetails;
+import com.azure.resourcemanager.databoxedge.models.ShareAccessProtocol;
+import com.azure.resourcemanager.databoxedge.models.ShareStatus;
+import com.azure.resourcemanager.databoxedge.models.UserAccessRight;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Represents a share on the Data Box Edge/Gateway device. */
+@JsonFlatten
+@Fluent
+public class ShareInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ShareInner.class);
+
+ /*
+ * Description for the share.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /*
+ * Current status of the share.
+ */
+ @JsonProperty(value = "properties.shareStatus", required = true)
+ private ShareStatus shareStatus;
+
+ /*
+ * Current monitoring status of the share.
+ */
+ @JsonProperty(value = "properties.monitoringStatus", required = true)
+ private MonitoringStatus monitoringStatus;
+
+ /*
+ * Azure container mapping for the share.
+ */
+ @JsonProperty(value = "properties.azureContainerInfo")
+ private AzureContainerInfo azureContainerInfo;
+
+ /*
+ * Access protocol to be used by the share.
+ */
+ @JsonProperty(value = "properties.accessProtocol", required = true)
+ private ShareAccessProtocol accessProtocol;
+
+ /*
+ * Mapping of users and corresponding access rights on the share (required
+ * for SMB protocol).
+ */
+ @JsonProperty(value = "properties.userAccessRights")
+ private List userAccessRights;
+
+ /*
+ * List of IP addresses and corresponding access rights on the
+ * share(required for NFS protocol).
+ */
+ @JsonProperty(value = "properties.clientAccessRights")
+ private List clientAccessRights;
+
+ /*
+ * Details of the refresh job on this share.
+ */
+ @JsonProperty(value = "properties.refreshDetails")
+ private RefreshDetails refreshDetails;
+
+ /*
+ * Share mount point to the role.
+ */
+ @JsonProperty(value = "properties.shareMappings", access = JsonProperty.Access.WRITE_ONLY)
+ private List shareMappings;
+
+ /*
+ * Data policy of the share.
+ */
+ @JsonProperty(value = "properties.dataPolicy")
+ private DataPolicy dataPolicy;
+
+ /**
+ * Get the description property: Description for the share.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: Description for the share.
+ *
+ * @param description the description value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the shareStatus property: Current status of the share.
+ *
+ * @return the shareStatus value.
+ */
+ public ShareStatus shareStatus() {
+ return this.shareStatus;
+ }
+
+ /**
+ * Set the shareStatus property: Current status of the share.
+ *
+ * @param shareStatus the shareStatus value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withShareStatus(ShareStatus shareStatus) {
+ this.shareStatus = shareStatus;
+ return this;
+ }
+
+ /**
+ * Get the monitoringStatus property: Current monitoring status of the share.
+ *
+ * @return the monitoringStatus value.
+ */
+ public MonitoringStatus monitoringStatus() {
+ return this.monitoringStatus;
+ }
+
+ /**
+ * Set the monitoringStatus property: Current monitoring status of the share.
+ *
+ * @param monitoringStatus the monitoringStatus value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withMonitoringStatus(MonitoringStatus monitoringStatus) {
+ this.monitoringStatus = monitoringStatus;
+ return this;
+ }
+
+ /**
+ * Get the azureContainerInfo property: Azure container mapping for the share.
+ *
+ * @return the azureContainerInfo value.
+ */
+ public AzureContainerInfo azureContainerInfo() {
+ return this.azureContainerInfo;
+ }
+
+ /**
+ * Set the azureContainerInfo property: Azure container mapping for the share.
+ *
+ * @param azureContainerInfo the azureContainerInfo value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withAzureContainerInfo(AzureContainerInfo azureContainerInfo) {
+ this.azureContainerInfo = azureContainerInfo;
+ return this;
+ }
+
+ /**
+ * Get the accessProtocol property: Access protocol to be used by the share.
+ *
+ * @return the accessProtocol value.
+ */
+ public ShareAccessProtocol accessProtocol() {
+ return this.accessProtocol;
+ }
+
+ /**
+ * Set the accessProtocol property: Access protocol to be used by the share.
+ *
+ * @param accessProtocol the accessProtocol value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withAccessProtocol(ShareAccessProtocol accessProtocol) {
+ this.accessProtocol = accessProtocol;
+ return this;
+ }
+
+ /**
+ * Get the userAccessRights property: Mapping of users and corresponding access rights on the share (required for
+ * SMB protocol).
+ *
+ * @return the userAccessRights value.
+ */
+ public List userAccessRights() {
+ return this.userAccessRights;
+ }
+
+ /**
+ * Set the userAccessRights property: Mapping of users and corresponding access rights on the share (required for
+ * SMB protocol).
+ *
+ * @param userAccessRights the userAccessRights value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withUserAccessRights(List userAccessRights) {
+ this.userAccessRights = userAccessRights;
+ return this;
+ }
+
+ /**
+ * Get the clientAccessRights property: List of IP addresses and corresponding access rights on the share(required
+ * for NFS protocol).
+ *
+ * @return the clientAccessRights value.
+ */
+ public List clientAccessRights() {
+ return this.clientAccessRights;
+ }
+
+ /**
+ * Set the clientAccessRights property: List of IP addresses and corresponding access rights on the share(required
+ * for NFS protocol).
+ *
+ * @param clientAccessRights the clientAccessRights value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withClientAccessRights(List clientAccessRights) {
+ this.clientAccessRights = clientAccessRights;
+ return this;
+ }
+
+ /**
+ * Get the refreshDetails property: Details of the refresh job on this share.
+ *
+ * @return the refreshDetails value.
+ */
+ public RefreshDetails refreshDetails() {
+ return this.refreshDetails;
+ }
+
+ /**
+ * Set the refreshDetails property: Details of the refresh job on this share.
+ *
+ * @param refreshDetails the refreshDetails value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withRefreshDetails(RefreshDetails refreshDetails) {
+ this.refreshDetails = refreshDetails;
+ return this;
+ }
+
+ /**
+ * Get the shareMappings property: Share mount point to the role.
+ *
+ * @return the shareMappings value.
+ */
+ public List shareMappings() {
+ return this.shareMappings;
+ }
+
+ /**
+ * Get the dataPolicy property: Data policy of the share.
+ *
+ * @return the dataPolicy value.
+ */
+ public DataPolicy dataPolicy() {
+ return this.dataPolicy;
+ }
+
+ /**
+ * Set the dataPolicy property: Data policy of the share.
+ *
+ * @param dataPolicy the dataPolicy value to set.
+ * @return the ShareInner object itself.
+ */
+ public ShareInner withDataPolicy(DataPolicy dataPolicy) {
+ this.dataPolicy = dataPolicy;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (shareStatus() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property shareStatus in model ShareInner"));
+ }
+ if (monitoringStatus() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property monitoringStatus in model ShareInner"));
+ }
+ if (azureContainerInfo() != null) {
+ azureContainerInfo().validate();
+ }
+ if (accessProtocol() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property accessProtocol in model ShareInner"));
+ }
+ if (userAccessRights() != null) {
+ userAccessRights().forEach(e -> e.validate());
+ }
+ if (clientAccessRights() != null) {
+ clientAccessRights().forEach(e -> e.validate());
+ }
+ if (refreshDetails() != null) {
+ refreshDetails().validate();
+ }
+ if (shareMappings() != null) {
+ shareMappings().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/StorageAccountCredentialInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/StorageAccountCredentialInner.java
new file mode 100644
index 0000000000000..734b0483e59f4
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/StorageAccountCredentialInner.java
@@ -0,0 +1,264 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.AccountType;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.AsymmetricEncryptedSecret;
+import com.azure.resourcemanager.databoxedge.models.SslStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The storage account credential. */
+@JsonFlatten
+@Fluent
+public class StorageAccountCredentialInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(StorageAccountCredentialInner.class);
+
+ /*
+ * Alias for the storage account.
+ */
+ @JsonProperty(value = "properties.alias", required = true)
+ private String alias;
+
+ /*
+ * Username for the storage account.
+ */
+ @JsonProperty(value = "properties.userName")
+ private String username;
+
+ /*
+ * Encrypted storage key.
+ */
+ @JsonProperty(value = "properties.accountKey")
+ private AsymmetricEncryptedSecret accountKey;
+
+ /*
+ * Connection string for the storage account. Use this string if username
+ * and account key are not specified.
+ */
+ @JsonProperty(value = "properties.connectionString")
+ private String connectionString;
+
+ /*
+ * Signifies whether SSL needs to be enabled or not.
+ */
+ @JsonProperty(value = "properties.sslStatus", required = true)
+ private SslStatus sslStatus;
+
+ /*
+ * Blob end point for private clouds.
+ */
+ @JsonProperty(value = "properties.blobDomainName")
+ private String blobDomainName;
+
+ /*
+ * Type of storage accessed on the storage account.
+ */
+ @JsonProperty(value = "properties.accountType", required = true)
+ private AccountType accountType;
+
+ /*
+ * Id of the storage account.
+ */
+ @JsonProperty(value = "properties.storageAccountId")
+ private String storageAccountId;
+
+ /**
+ * Get the alias property: Alias for the storage account.
+ *
+ * @return the alias value.
+ */
+ public String alias() {
+ return this.alias;
+ }
+
+ /**
+ * Set the alias property: Alias for the storage account.
+ *
+ * @param alias the alias value to set.
+ * @return the StorageAccountCredentialInner object itself.
+ */
+ public StorageAccountCredentialInner withAlias(String alias) {
+ this.alias = alias;
+ return this;
+ }
+
+ /**
+ * Get the username property: Username for the storage account.
+ *
+ * @return the username value.
+ */
+ public String username() {
+ return this.username;
+ }
+
+ /**
+ * Set the username property: Username for the storage account.
+ *
+ * @param username the username value to set.
+ * @return the StorageAccountCredentialInner object itself.
+ */
+ public StorageAccountCredentialInner withUsername(String username) {
+ this.username = username;
+ return this;
+ }
+
+ /**
+ * Get the accountKey property: Encrypted storage key.
+ *
+ * @return the accountKey value.
+ */
+ public AsymmetricEncryptedSecret accountKey() {
+ return this.accountKey;
+ }
+
+ /**
+ * Set the accountKey property: Encrypted storage key.
+ *
+ * @param accountKey the accountKey value to set.
+ * @return the StorageAccountCredentialInner object itself.
+ */
+ public StorageAccountCredentialInner withAccountKey(AsymmetricEncryptedSecret accountKey) {
+ this.accountKey = accountKey;
+ return this;
+ }
+
+ /**
+ * Get the connectionString property: Connection string for the storage account. Use this string if username and
+ * account key are not specified.
+ *
+ * @return the connectionString value.
+ */
+ public String connectionString() {
+ return this.connectionString;
+ }
+
+ /**
+ * Set the connectionString property: Connection string for the storage account. Use this string if username and
+ * account key are not specified.
+ *
+ * @param connectionString the connectionString value to set.
+ * @return the StorageAccountCredentialInner object itself.
+ */
+ public StorageAccountCredentialInner withConnectionString(String connectionString) {
+ this.connectionString = connectionString;
+ return this;
+ }
+
+ /**
+ * Get the sslStatus property: Signifies whether SSL needs to be enabled or not.
+ *
+ * @return the sslStatus value.
+ */
+ public SslStatus sslStatus() {
+ return this.sslStatus;
+ }
+
+ /**
+ * Set the sslStatus property: Signifies whether SSL needs to be enabled or not.
+ *
+ * @param sslStatus the sslStatus value to set.
+ * @return the StorageAccountCredentialInner object itself.
+ */
+ public StorageAccountCredentialInner withSslStatus(SslStatus sslStatus) {
+ this.sslStatus = sslStatus;
+ return this;
+ }
+
+ /**
+ * Get the blobDomainName property: Blob end point for private clouds.
+ *
+ * @return the blobDomainName value.
+ */
+ public String blobDomainName() {
+ return this.blobDomainName;
+ }
+
+ /**
+ * Set the blobDomainName property: Blob end point for private clouds.
+ *
+ * @param blobDomainName the blobDomainName value to set.
+ * @return the StorageAccountCredentialInner object itself.
+ */
+ public StorageAccountCredentialInner withBlobDomainName(String blobDomainName) {
+ this.blobDomainName = blobDomainName;
+ return this;
+ }
+
+ /**
+ * Get the accountType property: Type of storage accessed on the storage account.
+ *
+ * @return the accountType value.
+ */
+ public AccountType accountType() {
+ return this.accountType;
+ }
+
+ /**
+ * Set the accountType property: Type of storage accessed on the storage account.
+ *
+ * @param accountType the accountType value to set.
+ * @return the StorageAccountCredentialInner object itself.
+ */
+ public StorageAccountCredentialInner withAccountType(AccountType accountType) {
+ this.accountType = accountType;
+ return this;
+ }
+
+ /**
+ * Get the storageAccountId property: Id of the storage account.
+ *
+ * @return the storageAccountId value.
+ */
+ public String storageAccountId() {
+ return this.storageAccountId;
+ }
+
+ /**
+ * Set the storageAccountId property: Id of the storage account.
+ *
+ * @param storageAccountId the storageAccountId value to set.
+ * @return the StorageAccountCredentialInner object itself.
+ */
+ public StorageAccountCredentialInner withStorageAccountId(String storageAccountId) {
+ this.storageAccountId = storageAccountId;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (alias() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property alias in model StorageAccountCredentialInner"));
+ }
+ if (accountKey() != null) {
+ accountKey().validate();
+ }
+ if (sslStatus() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property sslStatus in model StorageAccountCredentialInner"));
+ }
+ if (accountType() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property accountType in model StorageAccountCredentialInner"));
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/StorageAccountInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/StorageAccountInner.java
new file mode 100644
index 0000000000000..dabe5c653d0fa
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/StorageAccountInner.java
@@ -0,0 +1,167 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.DataPolicy;
+import com.azure.resourcemanager.databoxedge.models.StorageAccountStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Represents a Storage Account on the Data Box Edge/Gateway device. */
+@JsonFlatten
+@Fluent
+public class StorageAccountInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(StorageAccountInner.class);
+
+ /*
+ * Description for the storage Account.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /*
+ * Current status of the storage account
+ */
+ @JsonProperty(value = "properties.storageAccountStatus")
+ private StorageAccountStatus storageAccountStatus;
+
+ /*
+ * Data policy of the storage Account.
+ */
+ @JsonProperty(value = "properties.dataPolicy")
+ private DataPolicy dataPolicy;
+
+ /*
+ * Storage Account Credential Id
+ */
+ @JsonProperty(value = "properties.storageAccountCredentialId")
+ private String storageAccountCredentialId;
+
+ /*
+ * BlobEndpoint of Storage Account
+ */
+ @JsonProperty(value = "properties.blobEndpoint", access = JsonProperty.Access.WRITE_ONLY)
+ private String blobEndpoint;
+
+ /*
+ * The Container Count. Present only for Storage Accounts with DataPolicy
+ * set to Cloud.
+ */
+ @JsonProperty(value = "properties.containerCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer containerCount;
+
+ /**
+ * Get the description property: Description for the storage Account.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: Description for the storage Account.
+ *
+ * @param description the description value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the storageAccountStatus property: Current status of the storage account.
+ *
+ * @return the storageAccountStatus value.
+ */
+ public StorageAccountStatus storageAccountStatus() {
+ return this.storageAccountStatus;
+ }
+
+ /**
+ * Set the storageAccountStatus property: Current status of the storage account.
+ *
+ * @param storageAccountStatus the storageAccountStatus value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withStorageAccountStatus(StorageAccountStatus storageAccountStatus) {
+ this.storageAccountStatus = storageAccountStatus;
+ return this;
+ }
+
+ /**
+ * Get the dataPolicy property: Data policy of the storage Account.
+ *
+ * @return the dataPolicy value.
+ */
+ public DataPolicy dataPolicy() {
+ return this.dataPolicy;
+ }
+
+ /**
+ * Set the dataPolicy property: Data policy of the storage Account.
+ *
+ * @param dataPolicy the dataPolicy value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withDataPolicy(DataPolicy dataPolicy) {
+ this.dataPolicy = dataPolicy;
+ return this;
+ }
+
+ /**
+ * Get the storageAccountCredentialId property: Storage Account Credential Id.
+ *
+ * @return the storageAccountCredentialId value.
+ */
+ public String storageAccountCredentialId() {
+ return this.storageAccountCredentialId;
+ }
+
+ /**
+ * Set the storageAccountCredentialId property: Storage Account Credential Id.
+ *
+ * @param storageAccountCredentialId the storageAccountCredentialId value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withStorageAccountCredentialId(String storageAccountCredentialId) {
+ this.storageAccountCredentialId = storageAccountCredentialId;
+ return this;
+ }
+
+ /**
+ * Get the blobEndpoint property: BlobEndpoint of Storage Account.
+ *
+ * @return the blobEndpoint value.
+ */
+ public String blobEndpoint() {
+ return this.blobEndpoint;
+ }
+
+ /**
+ * Get the containerCount property: The Container Count. Present only for Storage Accounts with DataPolicy set to
+ * Cloud.
+ *
+ * @return the containerCount value.
+ */
+ public Integer containerCount() {
+ return this.containerCount;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/TriggerInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/TriggerInner.java
new file mode 100644
index 0000000000000..6104763e1583c
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/TriggerInner.java
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.FileEventTrigger;
+import com.azure.resourcemanager.databoxedge.models.PeriodicTimerEventTrigger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** Trigger details. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "kind",
+ defaultImpl = TriggerInner.class)
+@JsonTypeName("Trigger")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "FileEvent", value = FileEventTrigger.class),
+ @JsonSubTypes.Type(name = "PeriodicTimerEvent", value = PeriodicTimerEventTrigger.class)
+})
+@Immutable
+public class TriggerInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TriggerInner.class);
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UpdateSummaryInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UpdateSummaryInner.java
new file mode 100644
index 0000000000000..b5be1f31758cf
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UpdateSummaryInner.java
@@ -0,0 +1,345 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.InstallRebootBehavior;
+import com.azure.resourcemanager.databoxedge.models.UpdateOperation;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** Details about ongoing updates and availability of updates on the device. */
+@JsonFlatten
+@Fluent
+public class UpdateSummaryInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(UpdateSummaryInner.class);
+
+ /*
+ * The current version of the device in format: 1.2.17312.13.",
+ */
+ @JsonProperty(value = "properties.deviceVersionNumber")
+ private String deviceVersionNumber;
+
+ /*
+ * The current version of the device in text format.
+ */
+ @JsonProperty(value = "properties.friendlyDeviceVersionName")
+ private String friendlyDeviceVersionName;
+
+ /*
+ * The last time when a scan was done on the device.
+ */
+ @JsonProperty(value = "properties.deviceLastScannedDateTime")
+ private OffsetDateTime deviceLastScannedDateTime;
+
+ /*
+ * The time when the last scan job was completed (success/cancelled/failed)
+ * on the appliance.
+ */
+ @JsonProperty(value = "properties.lastCompletedScanJobDateTime")
+ private OffsetDateTime lastCompletedScanJobDateTime;
+
+ /*
+ * The time when the last Download job was completed
+ * (success/cancelled/failed) on the appliance.
+ */
+ @JsonProperty(value = "properties.lastCompletedDownloadJobDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastCompletedDownloadJobDateTime;
+
+ /*
+ * The time when the last Install job was completed
+ * (success/cancelled/failed) on the appliance.
+ */
+ @JsonProperty(value = "properties.lastCompletedInstallJobDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastCompletedInstallJobDateTime;
+
+ /*
+ * The number of updates available for the current device version as per
+ * the last device scan.
+ */
+ @JsonProperty(value = "properties.totalNumberOfUpdatesAvailable", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer totalNumberOfUpdatesAvailable;
+
+ /*
+ * The total number of items pending download.
+ */
+ @JsonProperty(value = "properties.totalNumberOfUpdatesPendingDownload", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer totalNumberOfUpdatesPendingDownload;
+
+ /*
+ * The total number of items pending install.
+ */
+ @JsonProperty(value = "properties.totalNumberOfUpdatesPendingInstall", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer totalNumberOfUpdatesPendingInstall;
+
+ /*
+ * Indicates if updates are available and at least one of the updates needs
+ * a reboot.
+ */
+ @JsonProperty(value = "properties.rebootBehavior", access = JsonProperty.Access.WRITE_ONLY)
+ private InstallRebootBehavior rebootBehavior;
+
+ /*
+ * The current update operation.
+ */
+ @JsonProperty(value = "properties.ongoingUpdateOperation", access = JsonProperty.Access.WRITE_ONLY)
+ private UpdateOperation ongoingUpdateOperation;
+
+ /*
+ * The job ID of the download job in progress.
+ */
+ @JsonProperty(value = "properties.inProgressDownloadJobId", access = JsonProperty.Access.WRITE_ONLY)
+ private String inProgressDownloadJobId;
+
+ /*
+ * The job ID of the install job in progress.
+ */
+ @JsonProperty(value = "properties.inProgressInstallJobId", access = JsonProperty.Access.WRITE_ONLY)
+ private String inProgressInstallJobId;
+
+ /*
+ * The time when the currently running download (if any) started.
+ */
+ @JsonProperty(value = "properties.inProgressDownloadJobStartedDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime inProgressDownloadJobStartedDateTime;
+
+ /*
+ * The time when the currently running install (if any) started.
+ */
+ @JsonProperty(value = "properties.inProgressInstallJobStartedDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime inProgressInstallJobStartedDateTime;
+
+ /*
+ * The list of updates available for install.
+ */
+ @JsonProperty(value = "properties.updateTitles", access = JsonProperty.Access.WRITE_ONLY)
+ private List updateTitles;
+
+ /*
+ * The total size of updates available for download in bytes.
+ */
+ @JsonProperty(value = "properties.totalUpdateSizeInBytes", access = JsonProperty.Access.WRITE_ONLY)
+ private Double totalUpdateSizeInBytes;
+
+ /**
+ * Get the deviceVersionNumber property: The current version of the device in format: 1.2.17312.13.",.
+ *
+ * @return the deviceVersionNumber value.
+ */
+ public String deviceVersionNumber() {
+ return this.deviceVersionNumber;
+ }
+
+ /**
+ * Set the deviceVersionNumber property: The current version of the device in format: 1.2.17312.13.",.
+ *
+ * @param deviceVersionNumber the deviceVersionNumber value to set.
+ * @return the UpdateSummaryInner object itself.
+ */
+ public UpdateSummaryInner withDeviceVersionNumber(String deviceVersionNumber) {
+ this.deviceVersionNumber = deviceVersionNumber;
+ return this;
+ }
+
+ /**
+ * Get the friendlyDeviceVersionName property: The current version of the device in text format.
+ *
+ * @return the friendlyDeviceVersionName value.
+ */
+ public String friendlyDeviceVersionName() {
+ return this.friendlyDeviceVersionName;
+ }
+
+ /**
+ * Set the friendlyDeviceVersionName property: The current version of the device in text format.
+ *
+ * @param friendlyDeviceVersionName the friendlyDeviceVersionName value to set.
+ * @return the UpdateSummaryInner object itself.
+ */
+ public UpdateSummaryInner withFriendlyDeviceVersionName(String friendlyDeviceVersionName) {
+ this.friendlyDeviceVersionName = friendlyDeviceVersionName;
+ return this;
+ }
+
+ /**
+ * Get the deviceLastScannedDateTime property: The last time when a scan was done on the device.
+ *
+ * @return the deviceLastScannedDateTime value.
+ */
+ public OffsetDateTime deviceLastScannedDateTime() {
+ return this.deviceLastScannedDateTime;
+ }
+
+ /**
+ * Set the deviceLastScannedDateTime property: The last time when a scan was done on the device.
+ *
+ * @param deviceLastScannedDateTime the deviceLastScannedDateTime value to set.
+ * @return the UpdateSummaryInner object itself.
+ */
+ public UpdateSummaryInner withDeviceLastScannedDateTime(OffsetDateTime deviceLastScannedDateTime) {
+ this.deviceLastScannedDateTime = deviceLastScannedDateTime;
+ return this;
+ }
+
+ /**
+ * Get the lastCompletedScanJobDateTime property: The time when the last scan job was completed
+ * (success/cancelled/failed) on the appliance.
+ *
+ * @return the lastCompletedScanJobDateTime value.
+ */
+ public OffsetDateTime lastCompletedScanJobDateTime() {
+ return this.lastCompletedScanJobDateTime;
+ }
+
+ /**
+ * Set the lastCompletedScanJobDateTime property: The time when the last scan job was completed
+ * (success/cancelled/failed) on the appliance.
+ *
+ * @param lastCompletedScanJobDateTime the lastCompletedScanJobDateTime value to set.
+ * @return the UpdateSummaryInner object itself.
+ */
+ public UpdateSummaryInner withLastCompletedScanJobDateTime(OffsetDateTime lastCompletedScanJobDateTime) {
+ this.lastCompletedScanJobDateTime = lastCompletedScanJobDateTime;
+ return this;
+ }
+
+ /**
+ * Get the lastCompletedDownloadJobDateTime property: The time when the last Download job was completed
+ * (success/cancelled/failed) on the appliance.
+ *
+ * @return the lastCompletedDownloadJobDateTime value.
+ */
+ public OffsetDateTime lastCompletedDownloadJobDateTime() {
+ return this.lastCompletedDownloadJobDateTime;
+ }
+
+ /**
+ * Get the lastCompletedInstallJobDateTime property: The time when the last Install job was completed
+ * (success/cancelled/failed) on the appliance.
+ *
+ * @return the lastCompletedInstallJobDateTime value.
+ */
+ public OffsetDateTime lastCompletedInstallJobDateTime() {
+ return this.lastCompletedInstallJobDateTime;
+ }
+
+ /**
+ * Get the totalNumberOfUpdatesAvailable property: The number of updates available for the current device version as
+ * per the last device scan.
+ *
+ * @return the totalNumberOfUpdatesAvailable value.
+ */
+ public Integer totalNumberOfUpdatesAvailable() {
+ return this.totalNumberOfUpdatesAvailable;
+ }
+
+ /**
+ * Get the totalNumberOfUpdatesPendingDownload property: The total number of items pending download.
+ *
+ * @return the totalNumberOfUpdatesPendingDownload value.
+ */
+ public Integer totalNumberOfUpdatesPendingDownload() {
+ return this.totalNumberOfUpdatesPendingDownload;
+ }
+
+ /**
+ * Get the totalNumberOfUpdatesPendingInstall property: The total number of items pending install.
+ *
+ * @return the totalNumberOfUpdatesPendingInstall value.
+ */
+ public Integer totalNumberOfUpdatesPendingInstall() {
+ return this.totalNumberOfUpdatesPendingInstall;
+ }
+
+ /**
+ * Get the rebootBehavior property: Indicates if updates are available and at least one of the updates needs a
+ * reboot.
+ *
+ * @return the rebootBehavior value.
+ */
+ public InstallRebootBehavior rebootBehavior() {
+ return this.rebootBehavior;
+ }
+
+ /**
+ * Get the ongoingUpdateOperation property: The current update operation.
+ *
+ * @return the ongoingUpdateOperation value.
+ */
+ public UpdateOperation ongoingUpdateOperation() {
+ return this.ongoingUpdateOperation;
+ }
+
+ /**
+ * Get the inProgressDownloadJobId property: The job ID of the download job in progress.
+ *
+ * @return the inProgressDownloadJobId value.
+ */
+ public String inProgressDownloadJobId() {
+ return this.inProgressDownloadJobId;
+ }
+
+ /**
+ * Get the inProgressInstallJobId property: The job ID of the install job in progress.
+ *
+ * @return the inProgressInstallJobId value.
+ */
+ public String inProgressInstallJobId() {
+ return this.inProgressInstallJobId;
+ }
+
+ /**
+ * Get the inProgressDownloadJobStartedDateTime property: The time when the currently running download (if any)
+ * started.
+ *
+ * @return the inProgressDownloadJobStartedDateTime value.
+ */
+ public OffsetDateTime inProgressDownloadJobStartedDateTime() {
+ return this.inProgressDownloadJobStartedDateTime;
+ }
+
+ /**
+ * Get the inProgressInstallJobStartedDateTime property: The time when the currently running install (if any)
+ * started.
+ *
+ * @return the inProgressInstallJobStartedDateTime value.
+ */
+ public OffsetDateTime inProgressInstallJobStartedDateTime() {
+ return this.inProgressInstallJobStartedDateTime;
+ }
+
+ /**
+ * Get the updateTitles property: The list of updates available for install.
+ *
+ * @return the updateTitles value.
+ */
+ public List updateTitles() {
+ return this.updateTitles;
+ }
+
+ /**
+ * Get the totalUpdateSizeInBytes property: The total size of updates available for download in bytes.
+ *
+ * @return the totalUpdateSizeInBytes value.
+ */
+ public Double totalUpdateSizeInBytes() {
+ return this.totalUpdateSizeInBytes;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UploadCertificateResponseInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UploadCertificateResponseInner.java
new file mode 100644
index 0000000000000..fb10dfc34f1d3
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UploadCertificateResponseInner.java
@@ -0,0 +1,157 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.AuthenticationType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The upload registration certificate response. */
+@Fluent
+public final class UploadCertificateResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(UploadCertificateResponseInner.class);
+
+ /*
+ * Specifies authentication type.
+ */
+ @JsonProperty(value = "authType")
+ private AuthenticationType authType;
+
+ /*
+ * The resource ID of the Data Box Edge/Gateway device.
+ */
+ @JsonProperty(value = "resourceId", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceId;
+
+ /*
+ * Azure Active Directory tenant authority.
+ */
+ @JsonProperty(value = "aadAuthority", access = JsonProperty.Access.WRITE_ONLY)
+ private String aadAuthority;
+
+ /*
+ * Azure Active Directory tenant ID.
+ */
+ @JsonProperty(value = "aadTenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String aadTenantId;
+
+ /*
+ * Azure Active Directory service principal client ID.
+ */
+ @JsonProperty(value = "servicePrincipalClientId", access = JsonProperty.Access.WRITE_ONLY)
+ private String servicePrincipalClientId;
+
+ /*
+ * Azure Active Directory service principal object ID.
+ */
+ @JsonProperty(value = "servicePrincipalObjectId", access = JsonProperty.Access.WRITE_ONLY)
+ private String servicePrincipalObjectId;
+
+ /*
+ * The azure management endpoint audience.
+ */
+ @JsonProperty(value = "azureManagementEndpointAudience", access = JsonProperty.Access.WRITE_ONLY)
+ private String azureManagementEndpointAudience;
+
+ /*
+ * Identifier of the target resource that is the recipient of the requested
+ * token.
+ */
+ @JsonProperty(value = "aadAudience", access = JsonProperty.Access.WRITE_ONLY)
+ private String aadAudience;
+
+ /**
+ * Get the authType property: Specifies authentication type.
+ *
+ * @return the authType value.
+ */
+ public AuthenticationType authType() {
+ return this.authType;
+ }
+
+ /**
+ * Set the authType property: Specifies authentication type.
+ *
+ * @param authType the authType value to set.
+ * @return the UploadCertificateResponseInner object itself.
+ */
+ public UploadCertificateResponseInner withAuthType(AuthenticationType authType) {
+ this.authType = authType;
+ return this;
+ }
+
+ /**
+ * Get the resourceId property: The resource ID of the Data Box Edge/Gateway device.
+ *
+ * @return the resourceId value.
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Get the aadAuthority property: Azure Active Directory tenant authority.
+ *
+ * @return the aadAuthority value.
+ */
+ public String aadAuthority() {
+ return this.aadAuthority;
+ }
+
+ /**
+ * Get the aadTenantId property: Azure Active Directory tenant ID.
+ *
+ * @return the aadTenantId value.
+ */
+ public String aadTenantId() {
+ return this.aadTenantId;
+ }
+
+ /**
+ * Get the servicePrincipalClientId property: Azure Active Directory service principal client ID.
+ *
+ * @return the servicePrincipalClientId value.
+ */
+ public String servicePrincipalClientId() {
+ return this.servicePrincipalClientId;
+ }
+
+ /**
+ * Get the servicePrincipalObjectId property: Azure Active Directory service principal object ID.
+ *
+ * @return the servicePrincipalObjectId value.
+ */
+ public String servicePrincipalObjectId() {
+ return this.servicePrincipalObjectId;
+ }
+
+ /**
+ * Get the azureManagementEndpointAudience property: The azure management endpoint audience.
+ *
+ * @return the azureManagementEndpointAudience value.
+ */
+ public String azureManagementEndpointAudience() {
+ return this.azureManagementEndpointAudience;
+ }
+
+ /**
+ * Get the aadAudience property: Identifier of the target resource that is the recipient of the requested token.
+ *
+ * @return the aadAudience value.
+ */
+ public String aadAudience() {
+ return this.aadAudience;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UserInner.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UserInner.java
new file mode 100644
index 0000000000000..13a4f25dbe378
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/UserInner.java
@@ -0,0 +1,125 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.models.ArmBaseModel;
+import com.azure.resourcemanager.databoxedge.models.AsymmetricEncryptedSecret;
+import com.azure.resourcemanager.databoxedge.models.ShareAccessRight;
+import com.azure.resourcemanager.databoxedge.models.UserType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Represents a user who has access to one or more shares on the Data Box Edge/Gateway device. */
+@JsonFlatten
+@Fluent
+public class UserInner extends ArmBaseModel {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(UserInner.class);
+
+ /*
+ * The password details.
+ */
+ @JsonProperty(value = "properties.encryptedPassword")
+ private AsymmetricEncryptedSecret encryptedPassword;
+
+ /*
+ * List of shares that the user has rights on. This field should not be
+ * specified during user creation.
+ */
+ @JsonProperty(value = "properties.shareAccessRights")
+ private List shareAccessRights;
+
+ /*
+ * Type of the user.
+ */
+ @JsonProperty(value = "properties.userType", required = true)
+ private UserType userType;
+
+ /**
+ * Get the encryptedPassword property: The password details.
+ *
+ * @return the encryptedPassword value.
+ */
+ public AsymmetricEncryptedSecret encryptedPassword() {
+ return this.encryptedPassword;
+ }
+
+ /**
+ * Set the encryptedPassword property: The password details.
+ *
+ * @param encryptedPassword the encryptedPassword value to set.
+ * @return the UserInner object itself.
+ */
+ public UserInner withEncryptedPassword(AsymmetricEncryptedSecret encryptedPassword) {
+ this.encryptedPassword = encryptedPassword;
+ return this;
+ }
+
+ /**
+ * Get the shareAccessRights property: List of shares that the user has rights on. This field should not be
+ * specified during user creation.
+ *
+ * @return the shareAccessRights value.
+ */
+ public List shareAccessRights() {
+ return this.shareAccessRights;
+ }
+
+ /**
+ * Set the shareAccessRights property: List of shares that the user has rights on. This field should not be
+ * specified during user creation.
+ *
+ * @param shareAccessRights the shareAccessRights value to set.
+ * @return the UserInner object itself.
+ */
+ public UserInner withShareAccessRights(List shareAccessRights) {
+ this.shareAccessRights = shareAccessRights;
+ return this;
+ }
+
+ /**
+ * Get the userType property: Type of the user.
+ *
+ * @return the userType value.
+ */
+ public UserType userType() {
+ return this.userType;
+ }
+
+ /**
+ * Set the userType property: Type of the user.
+ *
+ * @param userType the userType value to set.
+ * @return the UserInner object itself.
+ */
+ public UserInner withUserType(UserType userType) {
+ this.userType = userType;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (encryptedPassword() != null) {
+ encryptedPassword().validate();
+ }
+ if (shareAccessRights() != null) {
+ shareAccessRights().forEach(e -> e.validate());
+ }
+ if (userType() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property userType in model UserInner"));
+ }
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/package-info.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/package-info.java
new file mode 100644
index 0000000000000..6bea273323778
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for DataBoxEdgeManagementClient. null. */
+package com.azure.resourcemanager.databoxedge.fluent.models;
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/package-info.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/package-info.java
new file mode 100644
index 0000000000000..e46bc16508437
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for DataBoxEdgeManagementClient. null. */
+package com.azure.resourcemanager.databoxedge.fluent;
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertImpl.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertImpl.java
new file mode 100644
index 0000000000000..a37624d5710b2
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertImpl.java
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.implementation;
+
+import com.azure.resourcemanager.databoxedge.DataBoxEdgeManager;
+import com.azure.resourcemanager.databoxedge.fluent.models.AlertInner;
+import com.azure.resourcemanager.databoxedge.models.Alert;
+import com.azure.resourcemanager.databoxedge.models.AlertErrorDetails;
+import com.azure.resourcemanager.databoxedge.models.AlertSeverity;
+import java.time.OffsetDateTime;
+import java.util.Collections;
+import java.util.Map;
+
+public final class AlertImpl implements Alert {
+ private AlertInner innerObject;
+
+ private final DataBoxEdgeManager serviceManager;
+
+ AlertImpl(AlertInner innerObject, DataBoxEdgeManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String title() {
+ return this.innerModel().title();
+ }
+
+ public String alertType() {
+ return this.innerModel().alertType();
+ }
+
+ public OffsetDateTime appearedAtDateTime() {
+ return this.innerModel().appearedAtDateTime();
+ }
+
+ public String recommendation() {
+ return this.innerModel().recommendation();
+ }
+
+ public AlertSeverity severity() {
+ return this.innerModel().severity();
+ }
+
+ public AlertErrorDetails errorDetails() {
+ return this.innerModel().errorDetails();
+ }
+
+ public Map detailedInformation() {
+ Map inner = this.innerModel().detailedInformation();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public AlertInner innerModel() {
+ return this.innerObject;
+ }
+
+ private DataBoxEdgeManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertsClientImpl.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertsClientImpl.java
new file mode 100644
index 0000000000000..c2667b46be213
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertsClientImpl.java
@@ -0,0 +1,516 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.implementation;
+
+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.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.fluent.AlertsClient;
+import com.azure.resourcemanager.databoxedge.fluent.models.AlertInner;
+import com.azure.resourcemanager.databoxedge.models.AlertList;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AlertsClient. */
+public final class AlertsClientImpl implements AlertsClient {
+ private final ClientLogger logger = new ClientLogger(AlertsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final AlertsService service;
+
+ /** The service client containing this operation class. */
+ private final DataBoxEdgeManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AlertsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AlertsClientImpl(DataBoxEdgeManagementClientImpl client) {
+ this.service = RestProxy.create(AlertsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for DataBoxEdgeManagementClientAlerts to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "DataBoxEdgeManagemen")
+ private interface AlertsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/alerts")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByDataBoxEdgeDevice(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/alerts/{name}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("name") String name,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByDataBoxEdgeDeviceNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets all the alerts for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the alerts for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDataBoxEdgeDeviceSinglePageAsync(
+ String deviceName, String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByDataBoxEdgeDevice(
+ this.client.getEndpoint(),
+ deviceName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Gets all the alerts for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the alerts for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDataBoxEdgeDeviceSinglePageAsync(
+ String deviceName, String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByDataBoxEdgeDevice(
+ this.client.getEndpoint(),
+ deviceName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets all the alerts for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the alerts for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByDataBoxEdgeDeviceAsync(String deviceName, String resourceGroupName) {
+ return new PagedFlux<>(
+ () -> listByDataBoxEdgeDeviceSinglePageAsync(deviceName, resourceGroupName),
+ nextLink -> listByDataBoxEdgeDeviceNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets all the alerts for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the alerts for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByDataBoxEdgeDeviceAsync(
+ String deviceName, String resourceGroupName, Context context) {
+ return new PagedFlux<>(
+ () -> listByDataBoxEdgeDeviceSinglePageAsync(deviceName, resourceGroupName, context),
+ nextLink -> listByDataBoxEdgeDeviceNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets all the alerts for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the alerts for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName) {
+ return new PagedIterable<>(listByDataBoxEdgeDeviceAsync(deviceName, resourceGroupName));
+ }
+
+ /**
+ * Gets all the alerts for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the alerts for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByDataBoxEdgeDevice(
+ String deviceName, String resourceGroupName, Context context) {
+ return new PagedIterable<>(listByDataBoxEdgeDeviceAsync(deviceName, resourceGroupName, context));
+ }
+
+ /**
+ * Gets an alert by name.
+ *
+ * @param deviceName The device name.
+ * @param name The alert name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an alert by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(String deviceName, String name, String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (name == null) {
+ return Mono.error(new IllegalArgumentException("Parameter name 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ deviceName,
+ name,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Gets an alert by name.
+ *
+ * @param deviceName The device name.
+ * @param name The alert name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an alert by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String deviceName, String name, String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (name == null) {
+ return Mono.error(new IllegalArgumentException("Parameter name 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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ deviceName,
+ name,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets an alert by name.
+ *
+ * @param deviceName The device name.
+ * @param name The alert name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an alert by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String deviceName, String name, String resourceGroupName) {
+ return getWithResponseAsync(deviceName, name, resourceGroupName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets an alert by name.
+ *
+ * @param deviceName The device name.
+ * @param name The alert name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an alert by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AlertInner get(String deviceName, String name, String resourceGroupName) {
+ return getAsync(deviceName, name, resourceGroupName).block();
+ }
+
+ /**
+ * Gets an alert by name.
+ *
+ * @param deviceName The device name.
+ * @param name The alert name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an alert by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String deviceName, String name, String resourceGroupName, Context context) {
+ return getWithResponseAsync(deviceName, name, resourceGroupName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of alerts.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDataBoxEdgeDeviceNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context -> service.listByDataBoxEdgeDeviceNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of alerts.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDataBoxEdgeDeviceNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByDataBoxEdgeDeviceNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertsImpl.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertsImpl.java
new file mode 100644
index 0000000000000..faf1f5f5edb7e
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/AlertsImpl.java
@@ -0,0 +1,71 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.DataBoxEdgeManager;
+import com.azure.resourcemanager.databoxedge.fluent.AlertsClient;
+import com.azure.resourcemanager.databoxedge.fluent.models.AlertInner;
+import com.azure.resourcemanager.databoxedge.models.Alert;
+import com.azure.resourcemanager.databoxedge.models.Alerts;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class AlertsImpl implements Alerts {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AlertsImpl.class);
+
+ private final AlertsClient innerClient;
+
+ private final DataBoxEdgeManager serviceManager;
+
+ public AlertsImpl(AlertsClient innerClient, DataBoxEdgeManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName) {
+ PagedIterable inner = this.serviceClient().listByDataBoxEdgeDevice(deviceName, resourceGroupName);
+ return inner.mapPage(inner1 -> new AlertImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByDataBoxEdgeDevice(deviceName, resourceGroupName, context);
+ return inner.mapPage(inner1 -> new AlertImpl(inner1, this.manager()));
+ }
+
+ public Alert get(String deviceName, String name, String resourceGroupName) {
+ AlertInner inner = this.serviceClient().get(deviceName, name, resourceGroupName);
+ if (inner != null) {
+ return new AlertImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(String deviceName, String name, String resourceGroupName, Context context) {
+ Response inner = this.serviceClient().getWithResponse(deviceName, name, resourceGroupName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AlertImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AlertsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private DataBoxEdgeManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthScheduleImpl.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthScheduleImpl.java
new file mode 100644
index 0000000000000..432ced9ea03e3
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthScheduleImpl.java
@@ -0,0 +1,167 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.databoxedge.DataBoxEdgeManager;
+import com.azure.resourcemanager.databoxedge.fluent.models.BandwidthScheduleInner;
+import com.azure.resourcemanager.databoxedge.models.BandwidthSchedule;
+import com.azure.resourcemanager.databoxedge.models.DayOfWeek;
+import java.util.Collections;
+import java.util.List;
+
+public final class BandwidthScheduleImpl
+ implements BandwidthSchedule, BandwidthSchedule.Definition, BandwidthSchedule.Update {
+ private BandwidthScheduleInner innerObject;
+
+ private final DataBoxEdgeManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String start() {
+ return this.innerModel().start();
+ }
+
+ public String stop() {
+ return this.innerModel().stop();
+ }
+
+ public int rateInMbps() {
+ return this.innerModel().rateInMbps();
+ }
+
+ public List days() {
+ List inner = this.innerModel().days();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public BandwidthScheduleInner innerModel() {
+ return this.innerObject;
+ }
+
+ private DataBoxEdgeManager manager() {
+ return this.serviceManager;
+ }
+
+ private String deviceName;
+
+ private String name;
+
+ private String resourceGroupName;
+
+ public BandwidthScheduleImpl withExistingDataBoxEdgeDevice(String deviceName, String resourceGroupName) {
+ this.deviceName = deviceName;
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public BandwidthSchedule create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBandwidthSchedules()
+ .createOrUpdate(deviceName, name, resourceGroupName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public BandwidthSchedule create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBandwidthSchedules()
+ .createOrUpdate(deviceName, name, resourceGroupName, this.innerModel(), context);
+ return this;
+ }
+
+ BandwidthScheduleImpl(String name, DataBoxEdgeManager serviceManager) {
+ this.innerObject = new BandwidthScheduleInner();
+ this.serviceManager = serviceManager;
+ this.name = name;
+ }
+
+ public BandwidthScheduleImpl update() {
+ return this;
+ }
+
+ public BandwidthSchedule apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBandwidthSchedules()
+ .createOrUpdate(deviceName, name, resourceGroupName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public BandwidthSchedule apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBandwidthSchedules()
+ .createOrUpdate(deviceName, name, resourceGroupName, this.innerModel(), context);
+ return this;
+ }
+
+ BandwidthScheduleImpl(BandwidthScheduleInner innerObject, DataBoxEdgeManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.deviceName = Utils.getValueFromIdByName(innerObject.id(), "dataBoxEdgeDevices");
+ this.name = Utils.getValueFromIdByName(innerObject.id(), "bandwidthSchedules");
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ }
+
+ public BandwidthSchedule refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBandwidthSchedules()
+ .getWithResponse(deviceName, name, resourceGroupName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public BandwidthSchedule refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBandwidthSchedules()
+ .getWithResponse(deviceName, name, resourceGroupName, context)
+ .getValue();
+ return this;
+ }
+
+ public BandwidthScheduleImpl withStart(String start) {
+ this.innerModel().withStart(start);
+ return this;
+ }
+
+ public BandwidthScheduleImpl withStop(String stop) {
+ this.innerModel().withStop(stop);
+ return this;
+ }
+
+ public BandwidthScheduleImpl withRateInMbps(int rateInMbps) {
+ this.innerModel().withRateInMbps(rateInMbps);
+ return this;
+ }
+
+ public BandwidthScheduleImpl withDays(List days) {
+ this.innerModel().withDays(days);
+ return this;
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthSchedulesClientImpl.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthSchedulesClientImpl.java
new file mode 100644
index 0000000000000..b460b27c3f85a
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthSchedulesClientImpl.java
@@ -0,0 +1,1097 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.databoxedge.fluent.BandwidthSchedulesClient;
+import com.azure.resourcemanager.databoxedge.fluent.models.BandwidthScheduleInner;
+import com.azure.resourcemanager.databoxedge.models.BandwidthSchedulesList;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BandwidthSchedulesClient. */
+public final class BandwidthSchedulesClientImpl implements BandwidthSchedulesClient {
+ private final ClientLogger logger = new ClientLogger(BandwidthSchedulesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BandwidthSchedulesService service;
+
+ /** The service client containing this operation class. */
+ private final DataBoxEdgeManagementClientImpl client;
+
+ /**
+ * Initializes an instance of BandwidthSchedulesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BandwidthSchedulesClientImpl(DataBoxEdgeManagementClientImpl client) {
+ this.service =
+ RestProxy.create(BandwidthSchedulesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for DataBoxEdgeManagementClientBandwidthSchedules to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "DataBoxEdgeManagemen")
+ private interface BandwidthSchedulesService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByDataBoxEdgeDevice(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("name") String name,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("name") String name,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") BandwidthScheduleInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("name") String name,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByDataBoxEdgeDeviceNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDataBoxEdgeDeviceSinglePageAsync(
+ String deviceName, String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByDataBoxEdgeDevice(
+ this.client.getEndpoint(),
+ deviceName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDataBoxEdgeDeviceSinglePageAsync(
+ String deviceName, String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByDataBoxEdgeDevice(
+ this.client.getEndpoint(),
+ deviceName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByDataBoxEdgeDeviceAsync(
+ String deviceName, String resourceGroupName) {
+ return new PagedFlux<>(
+ () -> listByDataBoxEdgeDeviceSinglePageAsync(deviceName, resourceGroupName),
+ nextLink -> listByDataBoxEdgeDeviceNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByDataBoxEdgeDeviceAsync(
+ String deviceName, String resourceGroupName, Context context) {
+ return new PagedFlux<>(
+ () -> listByDataBoxEdgeDeviceSinglePageAsync(deviceName, resourceGroupName, context),
+ nextLink -> listByDataBoxEdgeDeviceNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName) {
+ return new PagedIterable<>(listByDataBoxEdgeDeviceAsync(deviceName, resourceGroupName));
+ }
+
+ /**
+ * Gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the bandwidth schedules for a Data Box Edge/Data Box Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByDataBoxEdgeDevice(
+ String deviceName, String resourceGroupName, Context context) {
+ return new PagedIterable<>(listByDataBoxEdgeDeviceAsync(deviceName, resourceGroupName, context));
+ }
+
+ /**
+ * Gets the properties of the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified bandwidth schedule.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String deviceName, String name, String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (name == null) {
+ return Mono.error(new IllegalArgumentException("Parameter name 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ deviceName,
+ name,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Gets the properties of the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified bandwidth schedule.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String deviceName, String name, String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (name == null) {
+ return Mono.error(new IllegalArgumentException("Parameter name 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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ deviceName,
+ name,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the properties of the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified bandwidth schedule.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String deviceName, String name, String resourceGroupName) {
+ return getWithResponseAsync(deviceName, name, resourceGroupName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the properties of the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified bandwidth schedule.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BandwidthScheduleInner get(String deviceName, String name, String resourceGroupName) {
+ return getAsync(deviceName, name, resourceGroupName).block();
+ }
+
+ /**
+ * Gets the properties of the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of the specified bandwidth schedule.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String deviceName, String name, String resourceGroupName, Context context) {
+ return getWithResponseAsync(deviceName, name, resourceGroupName, context).block();
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (name == null) {
+ return Mono.error(new IllegalArgumentException("Parameter name 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ deviceName,
+ name,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (name == null) {
+ return Mono.error(new IllegalArgumentException("Parameter name 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ deviceName,
+ name,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, BandwidthScheduleInner> beginCreateOrUpdateAsync(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(deviceName, name, resourceGroupName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ BandwidthScheduleInner.class,
+ BandwidthScheduleInner.class,
+ Context.NONE);
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, BandwidthScheduleInner> beginCreateOrUpdateAsync(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(deviceName, name, resourceGroupName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ BandwidthScheduleInner.class,
+ BandwidthScheduleInner.class,
+ context);
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, BandwidthScheduleInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters) {
+ return beginCreateOrUpdateAsync(deviceName, name, resourceGroupName, parameters).getSyncPoller();
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, BandwidthScheduleInner> beginCreateOrUpdate(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters, Context context) {
+ return beginCreateOrUpdateAsync(deviceName, name, resourceGroupName, parameters, context).getSyncPoller();
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters) {
+ return beginCreateOrUpdateAsync(deviceName, name, resourceGroupName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters, Context context) {
+ return beginCreateOrUpdateAsync(deviceName, name, resourceGroupName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BandwidthScheduleInner createOrUpdate(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters) {
+ return createOrUpdateAsync(deviceName, name, resourceGroupName, parameters).block();
+ }
+
+ /**
+ * Creates or updates a bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name which needs to be added/updated.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The bandwidth schedule to be added or updated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the bandwidth schedule details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BandwidthScheduleInner createOrUpdate(
+ String deviceName, String name, String resourceGroupName, BandwidthScheduleInner parameters, Context context) {
+ return createOrUpdateAsync(deviceName, name, resourceGroupName, parameters, context).block();
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String deviceName, String name, String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (name == null) {
+ return Mono.error(new IllegalArgumentException("Parameter name 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ deviceName,
+ name,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String deviceName, String name, String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (name == null) {
+ return Mono.error(new IllegalArgumentException("Parameter name 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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ deviceName,
+ name,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginDeleteAsync(
+ String deviceName, String name, String resourceGroupName) {
+ Mono>> mono = deleteWithResponseAsync(deviceName, name, resourceGroupName);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, Context.NONE);
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginDeleteAsync(
+ String deviceName, String name, String resourceGroupName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono = deleteWithResponseAsync(deviceName, name, resourceGroupName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginDelete(String deviceName, String name, String resourceGroupName) {
+ return beginDeleteAsync(deviceName, name, resourceGroupName).getSyncPoller();
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginDelete(
+ String deviceName, String name, String resourceGroupName, Context context) {
+ return beginDeleteAsync(deviceName, name, resourceGroupName, context).getSyncPoller();
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String deviceName, String name, String resourceGroupName) {
+ return beginDeleteAsync(deviceName, name, resourceGroupName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String deviceName, String name, String resourceGroupName, Context context) {
+ return beginDeleteAsync(deviceName, name, resourceGroupName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String deviceName, String name, String resourceGroupName) {
+ deleteAsync(deviceName, name, resourceGroupName).block();
+ }
+
+ /**
+ * Deletes the specified bandwidth schedule.
+ *
+ * @param deviceName The device name.
+ * @param name The bandwidth schedule name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String deviceName, String name, String resourceGroupName, Context context) {
+ deleteAsync(deviceName, name, resourceGroupName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the collection of bandwidth schedules.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDataBoxEdgeDeviceNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context -> service.listByDataBoxEdgeDeviceNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the collection of bandwidth schedules.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDataBoxEdgeDeviceNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByDataBoxEdgeDeviceNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthSchedulesImpl.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthSchedulesImpl.java
new file mode 100644
index 0000000000000..e4bbc79483837
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/BandwidthSchedulesImpl.java
@@ -0,0 +1,207 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.databoxedge.DataBoxEdgeManager;
+import com.azure.resourcemanager.databoxedge.fluent.BandwidthSchedulesClient;
+import com.azure.resourcemanager.databoxedge.fluent.models.BandwidthScheduleInner;
+import com.azure.resourcemanager.databoxedge.models.BandwidthSchedule;
+import com.azure.resourcemanager.databoxedge.models.BandwidthSchedules;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BandwidthSchedulesImpl implements BandwidthSchedules {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BandwidthSchedulesImpl.class);
+
+ private final BandwidthSchedulesClient innerClient;
+
+ private final DataBoxEdgeManager serviceManager;
+
+ public BandwidthSchedulesImpl(BandwidthSchedulesClient innerClient, DataBoxEdgeManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable listByDataBoxEdgeDevice(String deviceName, String resourceGroupName) {
+ PagedIterable inner =
+ this.serviceClient().listByDataBoxEdgeDevice(deviceName, resourceGroupName);
+ return inner.mapPage(inner1 -> new BandwidthScheduleImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByDataBoxEdgeDevice(
+ String deviceName, String resourceGroupName, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByDataBoxEdgeDevice(deviceName, resourceGroupName, context);
+ return inner.mapPage(inner1 -> new BandwidthScheduleImpl(inner1, this.manager()));
+ }
+
+ public BandwidthSchedule get(String deviceName, String name, String resourceGroupName) {
+ BandwidthScheduleInner inner = this.serviceClient().get(deviceName, name, resourceGroupName);
+ if (inner != null) {
+ return new BandwidthScheduleImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String deviceName, String name, String resourceGroupName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(deviceName, name, resourceGroupName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new BandwidthScheduleImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void delete(String deviceName, String name, String resourceGroupName) {
+ this.serviceClient().delete(deviceName, name, resourceGroupName);
+ }
+
+ public void delete(String deviceName, String name, String resourceGroupName, Context context) {
+ this.serviceClient().delete(deviceName, name, resourceGroupName, context);
+ }
+
+ public BandwidthSchedule getById(String id) {
+ String deviceName = Utils.getValueFromIdByName(id, "dataBoxEdgeDevices");
+ if (deviceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'dataBoxEdgeDevices'.", id)));
+ }
+ String name = Utils.getValueFromIdByName(id, "bandwidthSchedules");
+ if (name == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'bandwidthSchedules'.", 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)));
+ }
+ return this.getWithResponse(deviceName, name, resourceGroupName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String deviceName = Utils.getValueFromIdByName(id, "dataBoxEdgeDevices");
+ if (deviceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'dataBoxEdgeDevices'.", id)));
+ }
+ String name = Utils.getValueFromIdByName(id, "bandwidthSchedules");
+ if (name == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'bandwidthSchedules'.", 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)));
+ }
+ return this.getWithResponse(deviceName, name, resourceGroupName, context);
+ }
+
+ public void deleteById(String id) {
+ String deviceName = Utils.getValueFromIdByName(id, "dataBoxEdgeDevices");
+ if (deviceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'dataBoxEdgeDevices'.", id)));
+ }
+ String name = Utils.getValueFromIdByName(id, "bandwidthSchedules");
+ if (name == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'bandwidthSchedules'.", 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)));
+ }
+ this.delete(deviceName, name, resourceGroupName, Context.NONE);
+ }
+
+ public void deleteByIdWithResponse(String id, Context context) {
+ String deviceName = Utils.getValueFromIdByName(id, "dataBoxEdgeDevices");
+ if (deviceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'dataBoxEdgeDevices'.", id)));
+ }
+ String name = Utils.getValueFromIdByName(id, "bandwidthSchedules");
+ if (name == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'bandwidthSchedules'.", 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)));
+ }
+ this.delete(deviceName, name, resourceGroupName, context);
+ }
+
+ private BandwidthSchedulesClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private DataBoxEdgeManager manager() {
+ return this.serviceManager;
+ }
+
+ public BandwidthScheduleImpl define(String name) {
+ return new BandwidthScheduleImpl(name, this.manager());
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/ContainerImpl.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/ContainerImpl.java
new file mode 100644
index 0000000000000..4bdfbfaa5ab52
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/ContainerImpl.java
@@ -0,0 +1,156 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.implementation;
+
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.databoxedge.DataBoxEdgeManager;
+import com.azure.resourcemanager.databoxedge.fluent.models.ContainerInner;
+import com.azure.resourcemanager.databoxedge.models.AzureContainerDataFormat;
+import com.azure.resourcemanager.databoxedge.models.Container;
+import com.azure.resourcemanager.databoxedge.models.ContainerStatus;
+import com.azure.resourcemanager.databoxedge.models.RefreshDetails;
+import java.time.OffsetDateTime;
+
+public final class ContainerImpl implements Container, Container.Definition, Container.Update {
+ private ContainerInner innerObject;
+
+ private final DataBoxEdgeManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public ContainerStatus containerStatus() {
+ return this.innerModel().containerStatus();
+ }
+
+ public AzureContainerDataFormat dataFormat() {
+ return this.innerModel().dataFormat();
+ }
+
+ public RefreshDetails refreshDetails() {
+ return this.innerModel().refreshDetails();
+ }
+
+ public OffsetDateTime createdDateTime() {
+ return this.innerModel().createdDateTime();
+ }
+
+ public ContainerInner innerModel() {
+ return this.innerObject;
+ }
+
+ private DataBoxEdgeManager manager() {
+ return this.serviceManager;
+ }
+
+ private String deviceName;
+
+ private String storageAccountName;
+
+ private String containerName;
+
+ private String resourceGroupName;
+
+ public ContainerImpl withExistingStorageAccount(
+ String deviceName, String storageAccountName, String resourceGroupName) {
+ this.deviceName = deviceName;
+ this.storageAccountName = storageAccountName;
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public Container create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getContainers()
+ .createOrUpdate(
+ deviceName, storageAccountName, containerName, resourceGroupName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Container create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getContainers()
+ .createOrUpdate(
+ deviceName, storageAccountName, containerName, resourceGroupName, this.innerModel(), context);
+ return this;
+ }
+
+ ContainerImpl(String name, DataBoxEdgeManager serviceManager) {
+ this.innerObject = new ContainerInner();
+ this.serviceManager = serviceManager;
+ this.containerName = name;
+ }
+
+ public ContainerImpl update() {
+ return this;
+ }
+
+ public Container apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getContainers()
+ .createOrUpdate(
+ deviceName, storageAccountName, containerName, resourceGroupName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Container apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getContainers()
+ .createOrUpdate(
+ deviceName, storageAccountName, containerName, resourceGroupName, this.innerModel(), context);
+ return this;
+ }
+
+ ContainerImpl(ContainerInner innerObject, DataBoxEdgeManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.deviceName = Utils.getValueFromIdByName(innerObject.id(), "dataBoxEdgeDevices");
+ this.storageAccountName = Utils.getValueFromIdByName(innerObject.id(), "storageAccounts");
+ this.containerName = Utils.getValueFromIdByName(innerObject.id(), "containers");
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ }
+
+ public Container refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getContainers()
+ .getWithResponse(deviceName, storageAccountName, containerName, resourceGroupName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Container refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getContainers()
+ .getWithResponse(deviceName, storageAccountName, containerName, resourceGroupName, context)
+ .getValue();
+ return this;
+ }
+
+ public ContainerImpl withDataFormat(AzureContainerDataFormat dataFormat) {
+ this.innerModel().withDataFormat(dataFormat);
+ return this;
+ }
+}
diff --git a/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/ContainersClientImpl.java b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/ContainersClientImpl.java
new file mode 100644
index 0000000000000..937fb62e3dbae
--- /dev/null
+++ b/sdk/databoxedge/azure-resourcemanager-databoxedge/src/main/java/com/azure/resourcemanager/databoxedge/implementation/ContainersClientImpl.java
@@ -0,0 +1,1521 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.databoxedge.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.databoxedge.fluent.ContainersClient;
+import com.azure.resourcemanager.databoxedge.fluent.models.ContainerInner;
+import com.azure.resourcemanager.databoxedge.models.ContainerList;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in ContainersClient. */
+public final class ContainersClientImpl implements ContainersClient {
+ private final ClientLogger logger = new ClientLogger(ContainersClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final ContainersService service;
+
+ /** The service client containing this operation class. */
+ private final DataBoxEdgeManagementClientImpl client;
+
+ /**
+ * Initializes an instance of ContainersClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ ContainersClientImpl(DataBoxEdgeManagementClientImpl client) {
+ this.service =
+ RestProxy.create(ContainersService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for DataBoxEdgeManagementClientContainers to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "DataBoxEdgeManagemen")
+ private interface ContainersService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/storageAccounts/{storageAccountName}/containers")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByStorageAccount(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("storageAccountName") String storageAccountName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/storageAccounts/{storageAccountName}/containers/{containerName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("storageAccountName") String storageAccountName,
+ @PathParam("containerName") String containerName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/storageAccounts/{storageAccountName}/containers/{containerName}")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("storageAccountName") String storageAccountName,
+ @PathParam("containerName") String containerName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") ContainerInner container,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/storageAccounts/{storageAccountName}/containers/{containerName}")
+ @ExpectedResponses({202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("storageAccountName") String storageAccountName,
+ @PathParam("containerName") String containerName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge"
+ + "/dataBoxEdgeDevices/{deviceName}/storageAccounts/{storageAccountName}/containers/{containerName}"
+ + "/refresh")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> refresh(
+ @HostParam("$host") String endpoint,
+ @PathParam("deviceName") String deviceName,
+ @PathParam("storageAccountName") String storageAccountName,
+ @PathParam("containerName") String containerName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByStorageAccountNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all the containers of a storage Account in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage Account name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the containers on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByStorageAccountSinglePageAsync(
+ String deviceName, String storageAccountName, String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (storageAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter storageAccountName 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByStorageAccount(
+ this.client.getEndpoint(),
+ deviceName,
+ storageAccountName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Lists all the containers of a storage Account in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage Account name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the containers on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByStorageAccountSinglePageAsync(
+ String deviceName, String storageAccountName, String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (storageAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter storageAccountName 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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByStorageAccount(
+ this.client.getEndpoint(),
+ deviceName,
+ storageAccountName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all the containers of a storage Account in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage Account name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the containers on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByStorageAccountAsync(
+ String deviceName, String storageAccountName, String resourceGroupName) {
+ return new PagedFlux<>(
+ () -> listByStorageAccountSinglePageAsync(deviceName, storageAccountName, resourceGroupName),
+ nextLink -> listByStorageAccountNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all the containers of a storage Account in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage Account name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the containers on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByStorageAccountAsync(
+ String deviceName, String storageAccountName, String resourceGroupName, Context context) {
+ return new PagedFlux<>(
+ () -> listByStorageAccountSinglePageAsync(deviceName, storageAccountName, resourceGroupName, context),
+ nextLink -> listByStorageAccountNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all the containers of a storage Account in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage Account name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the containers on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByStorageAccount(
+ String deviceName, String storageAccountName, String resourceGroupName) {
+ return new PagedIterable<>(listByStorageAccountAsync(deviceName, storageAccountName, resourceGroupName));
+ }
+
+ /**
+ * Lists all the containers of a storage Account in a Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The storage Account name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return collection of all the containers on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByStorageAccount(
+ String deviceName, String storageAccountName, String resourceGroupName, Context context) {
+ return new PagedIterable<>(
+ listByStorageAccountAsync(deviceName, storageAccountName, resourceGroupName, context));
+ }
+
+ /**
+ * Gets a container by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container Name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a container by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (storageAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter storageAccountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ deviceName,
+ storageAccountName,
+ containerName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Gets a container by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container Name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a container by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (storageAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter storageAccountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName 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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ deviceName,
+ storageAccountName,
+ containerName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets a container by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container Name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a container by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName) {
+ return getWithResponseAsync(deviceName, storageAccountName, containerName, resourceGroupName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets a container by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container Name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a container by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ContainerInner get(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName) {
+ return getAsync(deviceName, storageAccountName, containerName, resourceGroupName).block();
+ }
+
+ /**
+ * Gets a container by name.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container Name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a container by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName, Context context) {
+ return getWithResponseAsync(deviceName, storageAccountName, containerName, resourceGroupName, context).block();
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (storageAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter storageAccountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName 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 (container == null) {
+ return Mono.error(new IllegalArgumentException("Parameter container is required and cannot be null."));
+ } else {
+ container.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ deviceName,
+ storageAccountName,
+ containerName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ container,
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (storageAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter storageAccountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName 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 (container == null) {
+ return Mono.error(new IllegalArgumentException("Parameter container is required and cannot be null."));
+ } else {
+ container.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ deviceName,
+ storageAccountName,
+ containerName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ container,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, ContainerInner> beginCreateOrUpdateAsync(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(
+ deviceName, storageAccountName, containerName, resourceGroupName, container);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), ContainerInner.class, ContainerInner.class, Context.NONE);
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, ContainerInner> beginCreateOrUpdateAsync(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(
+ deviceName, storageAccountName, containerName, resourceGroupName, container, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), ContainerInner.class, ContainerInner.class, context);
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, ContainerInner> beginCreateOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container) {
+ return beginCreateOrUpdateAsync(deviceName, storageAccountName, containerName, resourceGroupName, container)
+ .getSyncPoller();
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, ContainerInner> beginCreateOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container,
+ Context context) {
+ return beginCreateOrUpdateAsync(
+ deviceName, storageAccountName, containerName, resourceGroupName, container, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container) {
+ return beginCreateOrUpdateAsync(deviceName, storageAccountName, containerName, resourceGroupName, container)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container,
+ Context context) {
+ return beginCreateOrUpdateAsync(
+ deviceName, storageAccountName, containerName, resourceGroupName, container, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ContainerInner createOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container) {
+ return createOrUpdateAsync(deviceName, storageAccountName, containerName, resourceGroupName, container).block();
+ }
+
+ /**
+ * Creates a new container or updates an existing container on the device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param container The container properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a container on the Data Box Edge/Gateway device.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ContainerInner createOrUpdate(
+ String deviceName,
+ String storageAccountName,
+ String containerName,
+ String resourceGroupName,
+ ContainerInner container,
+ Context context) {
+ return createOrUpdateAsync(deviceName, storageAccountName, containerName, resourceGroupName, container, context)
+ .block();
+ }
+
+ /**
+ * Deletes the container on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String deviceName, String storageAccountName, String containerName, String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (deviceName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter deviceName is required and cannot be null."));
+ }
+ if (storageAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter storageAccountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ deviceName,
+ storageAccountName,
+ containerName,
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Deletes the container on the Data Box Edge/Data Box Gateway device.
+ *
+ * @param deviceName The device name.
+ * @param storageAccountName The Storage Account Name.
+ * @param containerName The container name.
+ * @param resourceGroupName The resource group name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono