diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/pom.xml b/sdk/databoxedge/mgmt-v2020_05_01_preview/pom.xml
new file mode 100644
index 000000000000..30461144c7bc
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.databoxedge.v2020_05_01_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-databoxedge
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for DataBoxEdge Management
+ This package contains Microsoft DataBoxEdge Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ARMBaseModel.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ARMBaseModel.java
new file mode 100644
index 000000000000..8c40a6239f51
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ARMBaseModel.java
@@ -0,0 +1,17 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Represents the base class for all object models.
+ */
+public class ARMBaseModel extends ProxyResource {
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AccountType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AccountType.java
new file mode 100644
index 000000000000..c40be273cf6d
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AccountType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AccountType.
+ */
+public final class AccountType extends ExpandableStringEnum {
+ /** Static value GeneralPurposeStorage for AccountType. */
+ public static final AccountType GENERAL_PURPOSE_STORAGE = fromString("GeneralPurposeStorage");
+
+ /** Static value BlobStorage for AccountType. */
+ public static final AccountType BLOB_STORAGE = fromString("BlobStorage");
+
+ /**
+ * Creates or finds a AccountType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AccountType
+ */
+ @JsonCreator
+ public static AccountType fromString(String name) {
+ return fromString(name, AccountType.class);
+ }
+
+ /**
+ * @return known AccountType values
+ */
+ public static Collection values() {
+ return values(AccountType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Address.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Address.java
new file mode 100644
index 000000000000..bcc3b59c9d60
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Address.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The shipping address of the customer.
+ */
+public class Address {
+ /**
+ * The address line1.
+ */
+ @JsonProperty(value = "addressLine1", required = true)
+ private String addressLine1;
+
+ /**
+ * The address line2.
+ */
+ @JsonProperty(value = "addressLine2")
+ private String addressLine2;
+
+ /**
+ * The address line3.
+ */
+ @JsonProperty(value = "addressLine3")
+ private String addressLine3;
+
+ /**
+ * The postal code.
+ */
+ @JsonProperty(value = "postalCode", required = true)
+ private String postalCode;
+
+ /**
+ * The city name.
+ */
+ @JsonProperty(value = "city", required = true)
+ private String city;
+
+ /**
+ * The state name.
+ */
+ @JsonProperty(value = "state", required = true)
+ private String state;
+
+ /**
+ * The country name.
+ */
+ @JsonProperty(value = "country", required = true)
+ private String country;
+
+ /**
+ * Get the address line1.
+ *
+ * @return the addressLine1 value
+ */
+ public String addressLine1() {
+ return this.addressLine1;
+ }
+
+ /**
+ * Set the address line1.
+ *
+ * @param addressLine1 the addressLine1 value to set
+ * @return the Address object itself.
+ */
+ public Address withAddressLine1(String addressLine1) {
+ this.addressLine1 = addressLine1;
+ return this;
+ }
+
+ /**
+ * Get the address line2.
+ *
+ * @return the addressLine2 value
+ */
+ public String addressLine2() {
+ return this.addressLine2;
+ }
+
+ /**
+ * Set the address line2.
+ *
+ * @param addressLine2 the addressLine2 value to set
+ * @return the Address object itself.
+ */
+ public Address withAddressLine2(String addressLine2) {
+ this.addressLine2 = addressLine2;
+ return this;
+ }
+
+ /**
+ * Get the address line3.
+ *
+ * @return the addressLine3 value
+ */
+ public String addressLine3() {
+ return this.addressLine3;
+ }
+
+ /**
+ * Set the address line3.
+ *
+ * @param addressLine3 the addressLine3 value to set
+ * @return the Address object itself.
+ */
+ public Address withAddressLine3(String addressLine3) {
+ this.addressLine3 = addressLine3;
+ return this;
+ }
+
+ /**
+ * Get the postal code.
+ *
+ * @return the postalCode value
+ */
+ public String postalCode() {
+ return this.postalCode;
+ }
+
+ /**
+ * Set the postal code.
+ *
+ * @param postalCode the postalCode value to set
+ * @return the Address object itself.
+ */
+ public Address withPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ return this;
+ }
+
+ /**
+ * Get the city name.
+ *
+ * @return the city value
+ */
+ public String city() {
+ return this.city;
+ }
+
+ /**
+ * Set the city name.
+ *
+ * @param city the city value to set
+ * @return the Address object itself.
+ */
+ public Address withCity(String city) {
+ this.city = city;
+ return this;
+ }
+
+ /**
+ * Get the state name.
+ *
+ * @return the state value
+ */
+ public String state() {
+ return this.state;
+ }
+
+ /**
+ * Set the state name.
+ *
+ * @param state the state value to set
+ * @return the Address object itself.
+ */
+ public Address withState(String state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get the country name.
+ *
+ * @return the country value
+ */
+ public String country() {
+ return this.country;
+ }
+
+ /**
+ * Set the country name.
+ *
+ * @param country the country value to set
+ * @return the Address object itself.
+ */
+ public Address withCountry(String country) {
+ this.country = country;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Alert.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Alert.java
new file mode 100644
index 000000000000..110c0a034cd5
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Alert.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.AlertInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import org.joda.time.DateTime;
+import java.util.Map;
+
+/**
+ * Type representing Alert.
+ */
+public interface Alert extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the alertType value.
+ */
+ String alertType();
+
+ /**
+ * @return the appearedAtDateTime value.
+ */
+ DateTime appearedAtDateTime();
+
+ /**
+ * @return the detailedInformation value.
+ */
+ Map detailedInformation();
+
+ /**
+ * @return the errorDetails value.
+ */
+ AlertErrorDetails errorDetails();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the recommendation value.
+ */
+ String recommendation();
+
+ /**
+ * @return the severity value.
+ */
+ AlertSeverity severity();
+
+ /**
+ * @return the title value.
+ */
+ String title();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AlertErrorDetails.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AlertErrorDetails.java
new file mode 100644
index 000000000000..c8f6585e0757
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AlertErrorDetails.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error details for the alert.
+ */
+public class AlertErrorDetails {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "errorCode", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorCode;
+
+ /**
+ * Error Message.
+ */
+ @JsonProperty(value = "errorMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorMessage;
+
+ /**
+ * Number of occurrences.
+ */
+ @JsonProperty(value = "occurrences", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer occurrences;
+
+ /**
+ * Get error code.
+ *
+ * @return the errorCode value
+ */
+ public String errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Get error Message.
+ *
+ * @return the errorMessage value
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Get number of occurrences.
+ *
+ * @return the occurrences value
+ */
+ public Integer occurrences() {
+ return this.occurrences;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AlertSeverity.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AlertSeverity.java
new file mode 100644
index 000000000000..d2745f08919f
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AlertSeverity.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AlertSeverity.
+ */
+public final class AlertSeverity extends ExpandableStringEnum {
+ /** Static value Informational for AlertSeverity. */
+ public static final AlertSeverity INFORMATIONAL = fromString("Informational");
+
+ /** Static value Warning for AlertSeverity. */
+ public static final AlertSeverity WARNING = fromString("Warning");
+
+ /** Static value Critical for AlertSeverity. */
+ public static final AlertSeverity CRITICAL = fromString("Critical");
+
+ /**
+ * Creates or finds a AlertSeverity from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AlertSeverity
+ */
+ @JsonCreator
+ public static AlertSeverity fromString(String name) {
+ return fromString(name, AlertSeverity.class);
+ }
+
+ /**
+ * @return known AlertSeverity values
+ */
+ public static Collection values() {
+ return values(AlertSeverity.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Alerts.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Alerts.java
new file mode 100644
index 000000000000..a22bf98bb0da
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Alerts.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.AlertsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Alerts.
+ */
+public interface Alerts extends HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String deviceName, String name, 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDataBoxEdgeDeviceAsync(final String deviceName, final String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AsymmetricEncryptedSecret.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AsymmetricEncryptedSecret.java
new file mode 100644
index 000000000000..79be7a97baff
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AsymmetricEncryptedSecret.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represent the secrets intended for encryption with asymmetric key pair.
+ */
+public class AsymmetricEncryptedSecret {
+ /**
+ * The value of the secret.
+ */
+ @JsonProperty(value = "value", required = true)
+ private String value;
+
+ /**
+ * Thumbprint certificate used to encrypt \"Value\". If the value is
+ * unencrypted, it will be null.
+ */
+ @JsonProperty(value = "encryptionCertThumbprint")
+ private String encryptionCertThumbprint;
+
+ /**
+ * The algorithm used to encrypt "Value". Possible values include: 'None',
+ * 'AES256', 'RSAES_PKCS1_v_1_5'.
+ */
+ @JsonProperty(value = "encryptionAlgorithm", required = true)
+ private EncryptionAlgorithm encryptionAlgorithm;
+
+ /**
+ * Get the value of the secret.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value of the secret.
+ *
+ * @param value the value value to set
+ * @return the AsymmetricEncryptedSecret object itself.
+ */
+ public AsymmetricEncryptedSecret withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get thumbprint certificate used to encrypt \"Value\". If the value is unencrypted, it will be null.
+ *
+ * @return the encryptionCertThumbprint value
+ */
+ public String encryptionCertThumbprint() {
+ return this.encryptionCertThumbprint;
+ }
+
+ /**
+ * Set thumbprint certificate used to encrypt \"Value\". If the value is unencrypted, it will be null.
+ *
+ * @param encryptionCertThumbprint the encryptionCertThumbprint value to set
+ * @return the AsymmetricEncryptedSecret object itself.
+ */
+ public AsymmetricEncryptedSecret withEncryptionCertThumbprint(String encryptionCertThumbprint) {
+ this.encryptionCertThumbprint = encryptionCertThumbprint;
+ return this;
+ }
+
+ /**
+ * Get the algorithm used to encrypt "Value". Possible values include: 'None', 'AES256', 'RSAES_PKCS1_v_1_5'.
+ *
+ * @return the encryptionAlgorithm value
+ */
+ public EncryptionAlgorithm encryptionAlgorithm() {
+ return this.encryptionAlgorithm;
+ }
+
+ /**
+ * Set the algorithm used to encrypt "Value". Possible values include: 'None', 'AES256', 'RSAES_PKCS1_v_1_5'.
+ *
+ * @param encryptionAlgorithm the encryptionAlgorithm value to set
+ * @return the AsymmetricEncryptedSecret object itself.
+ */
+ public AsymmetricEncryptedSecret withEncryptionAlgorithm(EncryptionAlgorithm encryptionAlgorithm) {
+ this.encryptionAlgorithm = encryptionAlgorithm;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Authentication.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Authentication.java
new file mode 100644
index 000000000000..9e719735ecd1
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Authentication.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Authentication mechanism for IoT devices.
+ */
+public class Authentication {
+ /**
+ * Symmetric key for authentication.
+ */
+ @JsonProperty(value = "symmetricKey")
+ private SymmetricKey symmetricKey;
+
+ /**
+ * Get symmetric key for authentication.
+ *
+ * @return the symmetricKey value
+ */
+ public SymmetricKey symmetricKey() {
+ return this.symmetricKey;
+ }
+
+ /**
+ * Set symmetric key for authentication.
+ *
+ * @param symmetricKey the symmetricKey value to set
+ * @return the Authentication object itself.
+ */
+ public Authentication withSymmetricKey(SymmetricKey symmetricKey) {
+ this.symmetricKey = symmetricKey;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AuthenticationType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AuthenticationType.java
new file mode 100644
index 000000000000..c5ec8ef330a6
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AuthenticationType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AuthenticationType.
+ */
+public final class AuthenticationType extends ExpandableStringEnum {
+ /** Static value Invalid for AuthenticationType. */
+ public static final AuthenticationType INVALID = fromString("Invalid");
+
+ /** Static value AzureActiveDirectory for AuthenticationType. */
+ public static final AuthenticationType AZURE_ACTIVE_DIRECTORY = fromString("AzureActiveDirectory");
+
+ /**
+ * Creates or finds a AuthenticationType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AuthenticationType
+ */
+ @JsonCreator
+ public static AuthenticationType fromString(String name) {
+ return fromString(name, AuthenticationType.class);
+ }
+
+ /**
+ * @return known AuthenticationType values
+ */
+ public static Collection values() {
+ return values(AuthenticationType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AvailableSkus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AvailableSkus.java
new file mode 100644
index 000000000000..4491e5a50756
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AvailableSkus.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.AvailableSkusInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing AvailableSkus.
+ */
+public interface AvailableSkus extends SupportsListing, HasInner {
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AzureContainerDataFormat.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AzureContainerDataFormat.java
new file mode 100644
index 000000000000..4db40526eecd
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AzureContainerDataFormat.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AzureContainerDataFormat.
+ */
+public final class AzureContainerDataFormat extends ExpandableStringEnum {
+ /** Static value BlockBlob for AzureContainerDataFormat. */
+ public static final AzureContainerDataFormat BLOCK_BLOB = fromString("BlockBlob");
+
+ /** Static value PageBlob for AzureContainerDataFormat. */
+ public static final AzureContainerDataFormat PAGE_BLOB = fromString("PageBlob");
+
+ /** Static value AzureFile for AzureContainerDataFormat. */
+ public static final AzureContainerDataFormat AZURE_FILE = fromString("AzureFile");
+
+ /**
+ * Creates or finds a AzureContainerDataFormat from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AzureContainerDataFormat
+ */
+ @JsonCreator
+ public static AzureContainerDataFormat fromString(String name) {
+ return fromString(name, AzureContainerDataFormat.class);
+ }
+
+ /**
+ * @return known AzureContainerDataFormat values
+ */
+ public static Collection values() {
+ return values(AzureContainerDataFormat.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AzureContainerInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AzureContainerInfo.java
new file mode 100644
index 000000000000..bf6db44aeaea
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/AzureContainerInfo.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure container mapping of the endpoint.
+ */
+public class AzureContainerInfo {
+ /**
+ * ID of the storage account credential used to access storage.
+ */
+ @JsonProperty(value = "storageAccountCredentialId", required = true)
+ private String storageAccountCredentialId;
+
+ /**
+ * Container name (Based on the data format specified, this represents the
+ * name of Azure Files/Page blob/Block blob).
+ */
+ @JsonProperty(value = "containerName", required = true)
+ private String containerName;
+
+ /**
+ * Storage format used for the file represented by the share. Possible
+ * values include: 'BlockBlob', 'PageBlob', 'AzureFile'.
+ */
+ @JsonProperty(value = "dataFormat", required = true)
+ private AzureContainerDataFormat dataFormat;
+
+ /**
+ * Get iD of the storage account credential used to access storage.
+ *
+ * @return the storageAccountCredentialId value
+ */
+ public String storageAccountCredentialId() {
+ return this.storageAccountCredentialId;
+ }
+
+ /**
+ * Set iD of the storage account credential used to access storage.
+ *
+ * @param storageAccountCredentialId the storageAccountCredentialId value to set
+ * @return the AzureContainerInfo object itself.
+ */
+ public AzureContainerInfo withStorageAccountCredentialId(String storageAccountCredentialId) {
+ this.storageAccountCredentialId = storageAccountCredentialId;
+ return this;
+ }
+
+ /**
+ * Get container name (Based on the data format specified, this represents the name of Azure Files/Page blob/Block blob).
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set container name (Based on the data format specified, this represents the name of Azure Files/Page blob/Block blob).
+ *
+ * @param containerName the containerName value to set
+ * @return the AzureContainerInfo object itself.
+ */
+ public AzureContainerInfo withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get storage format used for the file represented by the share. Possible values include: 'BlockBlob', 'PageBlob', 'AzureFile'.
+ *
+ * @return the dataFormat value
+ */
+ public AzureContainerDataFormat dataFormat() {
+ return this.dataFormat;
+ }
+
+ /**
+ * Set storage format used for the file represented by the share. Possible values include: 'BlockBlob', 'PageBlob', 'AzureFile'.
+ *
+ * @param dataFormat the dataFormat value to set
+ * @return the AzureContainerInfo object itself.
+ */
+ public AzureContainerInfo withDataFormat(AzureContainerDataFormat dataFormat) {
+ this.dataFormat = dataFormat;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/BandwidthSchedule.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/BandwidthSchedule.java
new file mode 100644
index 000000000000..f2c5957f3222
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/BandwidthSchedule.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.BandwidthScheduleInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import java.util.List;
+
+/**
+ * Type representing BandwidthSchedule.
+ */
+public interface BandwidthSchedule extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the days value.
+ */
+ List days();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the rateInMbps value.
+ */
+ int rateInMbps();
+
+ /**
+ * @return the start value.
+ */
+ String start();
+
+ /**
+ * @return the stop value.
+ */
+ String stop();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the BandwidthSchedule definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDataBoxEdgeDevice, DefinitionStages.WithDays, DefinitionStages.WithRateInMbps, DefinitionStages.WithStart, DefinitionStages.WithStop, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BandwidthSchedule definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BandwidthSchedule definition.
+ */
+ interface Blank extends WithDataBoxEdgeDevice {
+ }
+
+ /**
+ * The stage of the bandwidthschedule definition allowing to specify DataBoxEdgeDevice.
+ */
+ interface WithDataBoxEdgeDevice {
+ /**
+ * Specifies deviceName, resourceGroupName.
+ * @param deviceName The device name
+ * @param resourceGroupName The resource group name
+ * @return the next definition stage
+ */
+ WithDays withExistingDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+ }
+
+ /**
+ * The stage of the bandwidthschedule definition allowing to specify Days.
+ */
+ interface WithDays {
+ /**
+ * Specifies days.
+ * @param days The days of the week when this schedule is applicable
+ * @return the next definition stage
+ */
+ WithRateInMbps withDays(List days);
+ }
+
+ /**
+ * The stage of the bandwidthschedule definition allowing to specify RateInMbps.
+ */
+ interface WithRateInMbps {
+ /**
+ * Specifies rateInMbps.
+ * @param rateInMbps The bandwidth rate in Mbps
+ * @return the next definition stage
+ */
+ WithStart withRateInMbps(int rateInMbps);
+ }
+
+ /**
+ * The stage of the bandwidthschedule definition allowing to specify Start.
+ */
+ interface WithStart {
+ /**
+ * Specifies start.
+ * @param start The start time of the schedule in UTC
+ * @return the next definition stage
+ */
+ WithStop withStart(String start);
+ }
+
+ /**
+ * The stage of the bandwidthschedule definition allowing to specify Stop.
+ */
+ interface WithStop {
+ /**
+ * Specifies stop.
+ * @param stop The stop time of the schedule in UTC
+ * @return the next definition stage
+ */
+ WithCreate withStop(String stop);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a BandwidthSchedule update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of BandwidthSchedule update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/BandwidthSchedules.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/BandwidthSchedules.java
new file mode 100644
index 000000000000..0979a25910b1
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/BandwidthSchedules.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.BandwidthSchedulesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BandwidthSchedules.
+ */
+public interface BandwidthSchedules extends SupportsCreating, HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String deviceName, String name, 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDataBoxEdgeDeviceAsync(final String deviceName, final String resourceGroupName);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String deviceName, String name, String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ClientAccessRight.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ClientAccessRight.java
new file mode 100644
index 000000000000..7dd4087eb710
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ClientAccessRight.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The mapping between a particular client IP and the type of access client has
+ * on the NFS share.
+ */
+public class ClientAccessRight {
+ /**
+ * IP of the client.
+ */
+ @JsonProperty(value = "client", required = true)
+ private String client;
+
+ /**
+ * Type of access to be allowed for the client. Possible values include:
+ * 'NoAccess', 'ReadOnly', 'ReadWrite'.
+ */
+ @JsonProperty(value = "accessPermission", required = true)
+ private ClientPermissionType accessPermission;
+
+ /**
+ * Get iP of the client.
+ *
+ * @return the client value
+ */
+ public String client() {
+ return this.client;
+ }
+
+ /**
+ * Set iP of the client.
+ *
+ * @param client the client value to set
+ * @return the ClientAccessRight object itself.
+ */
+ public ClientAccessRight withClient(String client) {
+ this.client = client;
+ return this;
+ }
+
+ /**
+ * Get type of access to be allowed for the client. Possible values include: 'NoAccess', 'ReadOnly', 'ReadWrite'.
+ *
+ * @return the accessPermission value
+ */
+ public ClientPermissionType accessPermission() {
+ return this.accessPermission;
+ }
+
+ /**
+ * Set type of access to be allowed for the client. Possible values include: 'NoAccess', 'ReadOnly', 'ReadWrite'.
+ *
+ * @param accessPermission the accessPermission value to set
+ * @return the ClientAccessRight object itself.
+ */
+ public ClientAccessRight withAccessPermission(ClientPermissionType accessPermission) {
+ this.accessPermission = accessPermission;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ClientPermissionType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ClientPermissionType.java
new file mode 100644
index 000000000000..45bf4904c926
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ClientPermissionType.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ClientPermissionType.
+ */
+public final class ClientPermissionType extends ExpandableStringEnum {
+ /** Static value NoAccess for ClientPermissionType. */
+ public static final ClientPermissionType NO_ACCESS = fromString("NoAccess");
+
+ /** Static value ReadOnly for ClientPermissionType. */
+ public static final ClientPermissionType READ_ONLY = fromString("ReadOnly");
+
+ /** Static value ReadWrite for ClientPermissionType. */
+ public static final ClientPermissionType READ_WRITE = fromString("ReadWrite");
+
+ /**
+ * Creates or finds a ClientPermissionType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ClientPermissionType
+ */
+ @JsonCreator
+ public static ClientPermissionType fromString(String name) {
+ return fromString(name, ClientPermissionType.class);
+ }
+
+ /**
+ * @return known ClientPermissionType values
+ */
+ public static Collection values() {
+ return values(ClientPermissionType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ContactDetails.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ContactDetails.java
new file mode 100644
index 000000000000..3983e0791667
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ContactDetails.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Contains all the contact details of the customer.
+ */
+public class ContactDetails {
+ /**
+ * The contact person name.
+ */
+ @JsonProperty(value = "contactPerson", required = true)
+ private String contactPerson;
+
+ /**
+ * The name of the company.
+ */
+ @JsonProperty(value = "companyName", required = true)
+ private String companyName;
+
+ /**
+ * The phone number.
+ */
+ @JsonProperty(value = "phone", required = true)
+ private String phone;
+
+ /**
+ * The email list.
+ */
+ @JsonProperty(value = "emailList", required = true)
+ private List emailList;
+
+ /**
+ * Get the contact person name.
+ *
+ * @return the contactPerson value
+ */
+ public String contactPerson() {
+ return this.contactPerson;
+ }
+
+ /**
+ * Set the contact person name.
+ *
+ * @param contactPerson the contactPerson value to set
+ * @return the ContactDetails object itself.
+ */
+ public ContactDetails withContactPerson(String contactPerson) {
+ this.contactPerson = contactPerson;
+ return this;
+ }
+
+ /**
+ * Get the name of the company.
+ *
+ * @return the companyName value
+ */
+ public String companyName() {
+ return this.companyName;
+ }
+
+ /**
+ * Set the name of the company.
+ *
+ * @param companyName the companyName value to set
+ * @return the ContactDetails object itself.
+ */
+ public ContactDetails withCompanyName(String companyName) {
+ this.companyName = companyName;
+ return this;
+ }
+
+ /**
+ * Get the phone number.
+ *
+ * @return the phone value
+ */
+ public String phone() {
+ return this.phone;
+ }
+
+ /**
+ * Set the phone number.
+ *
+ * @param phone the phone value to set
+ * @return the ContactDetails object itself.
+ */
+ public ContactDetails withPhone(String phone) {
+ this.phone = phone;
+ return this;
+ }
+
+ /**
+ * Get the email list.
+ *
+ * @return the emailList value
+ */
+ public List emailList() {
+ return this.emailList;
+ }
+
+ /**
+ * Set the email list.
+ *
+ * @param emailList the emailList value to set
+ * @return the ContactDetails object itself.
+ */
+ public ContactDetails withEmailList(List emailList) {
+ this.emailList = emailList;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Container.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Container.java
new file mode 100644
index 000000000000..758f0fe43685
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Container.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.ContainerInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing Container.
+ */
+public interface Container extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the containerStatus value.
+ */
+ ContainerStatus containerStatus();
+
+ /**
+ * @return the createdDateTime value.
+ */
+ DateTime createdDateTime();
+
+ /**
+ * @return the dataFormat value.
+ */
+ AzureContainerDataFormat dataFormat();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the refreshDetails value.
+ */
+ RefreshDetails refreshDetails();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Container definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithStorageAccount, DefinitionStages.WithDataFormat, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Container definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Container definition.
+ */
+ interface Blank extends WithStorageAccount {
+ }
+
+ /**
+ * The stage of the container definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies deviceName, storageAccountName, resourceGroupName.
+ * @param deviceName The device name
+ * @param storageAccountName The Storage Account Name
+ * @param resourceGroupName The resource group name
+ * @return the next definition stage
+ */
+ WithDataFormat withExistingStorageAccount(String deviceName, String storageAccountName, String resourceGroupName);
+ }
+
+ /**
+ * The stage of the container definition allowing to specify DataFormat.
+ */
+ interface WithDataFormat {
+ /**
+ * Specifies dataFormat.
+ * @param dataFormat DataFormat for Container. Possible values include: 'BlockBlob', 'PageBlob', 'AzureFile'
+ * @return the next definition stage
+ */
+ WithCreate withDataFormat(AzureContainerDataFormat dataFormat);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a Container update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of Container update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ContainerStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ContainerStatus.java
new file mode 100644
index 000000000000..3a21906b286b
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ContainerStatus.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerStatus.
+ */
+public final class ContainerStatus extends ExpandableStringEnum {
+ /** Static value OK for ContainerStatus. */
+ public static final ContainerStatus OK = fromString("OK");
+
+ /** Static value Offline for ContainerStatus. */
+ public static final ContainerStatus OFFLINE = fromString("Offline");
+
+ /** Static value Unknown for ContainerStatus. */
+ public static final ContainerStatus UNKNOWN = fromString("Unknown");
+
+ /** Static value Updating for ContainerStatus. */
+ public static final ContainerStatus UPDATING = fromString("Updating");
+
+ /** Static value NeedsAttention for ContainerStatus. */
+ public static final ContainerStatus NEEDS_ATTENTION = fromString("NeedsAttention");
+
+ /**
+ * Creates or finds a ContainerStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerStatus
+ */
+ @JsonCreator
+ public static ContainerStatus fromString(String name) {
+ return fromString(name, ContainerStatus.class);
+ }
+
+ /**
+ * @return known ContainerStatus values
+ */
+ public static Collection values() {
+ return values(ContainerStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Containers.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Containers.java
new file mode 100644
index 000000000000..179e1d40f63e
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Containers.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.ContainersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Containers.
+ */
+public interface Containers extends SupportsCreating, HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable refreshAsync(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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String deviceName, String storageAccountName, String containerName, 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByStorageAccountAsync(final String deviceName, final String storageAccountName, final 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String deviceName, String storageAccountName, String containerName, String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDevice.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDevice.java
new file mode 100644
index 000000000000..4b04987a0e1e
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDevice.java
@@ -0,0 +1,294 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import java.util.List;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.SkuInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeDeviceInner;
+
+/**
+ * Type representing DataBoxEdgeDevice.
+ */
+public interface DataBoxEdgeDevice extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the configuredRoleTypes value.
+ */
+ List configuredRoleTypes();
+
+ /**
+ * @return the culture value.
+ */
+ String culture();
+
+ /**
+ * @return the dataBoxEdgeDeviceStatus value.
+ */
+ DataBoxEdgeDeviceStatus dataBoxEdgeDeviceStatus();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the deviceHcsVersion value.
+ */
+ String deviceHcsVersion();
+
+ /**
+ * @return the deviceLocalCapacity value.
+ */
+ Long deviceLocalCapacity();
+
+ /**
+ * @return the deviceModel value.
+ */
+ String deviceModel();
+
+ /**
+ * @return the deviceSoftwareVersion value.
+ */
+ String deviceSoftwareVersion();
+
+ /**
+ * @return the deviceType value.
+ */
+ DeviceType deviceType();
+
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * @return the modelDescription value.
+ */
+ String modelDescription();
+
+ /**
+ * @return the nodeCount value.
+ */
+ Integer nodeCount();
+
+ /**
+ * @return the serialNumber value.
+ */
+ String serialNumber();
+
+ /**
+ * @return the sku value.
+ */
+ SkuInner sku();
+
+ /**
+ * @return the timeZone value.
+ */
+ String timeZone();
+
+ /**
+ * The entirety of the DataBoxEdgeDevice definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DataBoxEdgeDevice definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DataBoxEdgeDevice definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the DataBoxEdgeDevice definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the databoxedgedevice definition allowing to specify DataBoxEdgeDeviceStatus.
+ */
+ interface WithDataBoxEdgeDeviceStatus {
+ /**
+ * Specifies dataBoxEdgeDeviceStatus.
+ * @param dataBoxEdgeDeviceStatus The status of the Data Box Edge/Gateway device. Possible values include: 'ReadyToSetup', 'Online', 'Offline', 'NeedsAttention', 'Disconnected', 'PartiallyDisconnected', 'Maintenance'
+ * @return the next definition stage
+ */
+ WithCreate withDataBoxEdgeDeviceStatus(DataBoxEdgeDeviceStatus dataBoxEdgeDeviceStatus);
+ }
+
+ /**
+ * The stage of the databoxedgedevice definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description The Description of the Data Box Edge/Gateway device
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the databoxedgedevice definition allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ * @param etag The etag for the devices
+ * @return the next definition stage
+ */
+ WithCreate withEtag(String etag);
+ }
+
+ /**
+ * The stage of the databoxedgedevice definition allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName The Data Box Edge/Gateway device name
+ * @return the next definition stage
+ */
+ WithCreate withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * The stage of the databoxedgedevice definition allowing to specify ModelDescription.
+ */
+ interface WithModelDescription {
+ /**
+ * Specifies modelDescription.
+ * @param modelDescription The description of the Data Box Edge/Gateway device model
+ * @return the next definition stage
+ */
+ WithCreate withModelDescription(String modelDescription);
+ }
+
+ /**
+ * The stage of the databoxedgedevice definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU type
+ * @return the next definition stage
+ */
+ WithCreate withSku(SkuInner sku);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithDataBoxEdgeDeviceStatus, DefinitionStages.WithDescription, DefinitionStages.WithEtag, DefinitionStages.WithFriendlyName, DefinitionStages.WithModelDescription, DefinitionStages.WithSku {
+ }
+ }
+ /**
+ * The template for a DataBoxEdgeDevice update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithDataBoxEdgeDeviceStatus, UpdateStages.WithDescription, UpdateStages.WithEtag, UpdateStages.WithFriendlyName, UpdateStages.WithModelDescription, UpdateStages.WithSku {
+ }
+
+ /**
+ * Grouping of DataBoxEdgeDevice update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databoxedgedevice update allowing to specify DataBoxEdgeDeviceStatus.
+ */
+ interface WithDataBoxEdgeDeviceStatus {
+ /**
+ * Specifies dataBoxEdgeDeviceStatus.
+ * @param dataBoxEdgeDeviceStatus The status of the Data Box Edge/Gateway device. Possible values include: 'ReadyToSetup', 'Online', 'Offline', 'NeedsAttention', 'Disconnected', 'PartiallyDisconnected', 'Maintenance'
+ * @return the next update stage
+ */
+ Update withDataBoxEdgeDeviceStatus(DataBoxEdgeDeviceStatus dataBoxEdgeDeviceStatus);
+ }
+
+ /**
+ * The stage of the databoxedgedevice update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description The Description of the Data Box Edge/Gateway device
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the databoxedgedevice update allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ * @param etag The etag for the devices
+ * @return the next update stage
+ */
+ Update withEtag(String etag);
+ }
+
+ /**
+ * The stage of the databoxedgedevice update allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName The Data Box Edge/Gateway device name
+ * @return the next update stage
+ */
+ Update withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * The stage of the databoxedgedevice update allowing to specify ModelDescription.
+ */
+ interface WithModelDescription {
+ /**
+ * Specifies modelDescription.
+ * @param modelDescription The description of the Data Box Edge/Gateway device model
+ * @return the next update stage
+ */
+ Update withModelDescription(String modelDescription);
+ }
+
+ /**
+ * The stage of the databoxedgedevice update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU type
+ * @return the next update stage
+ */
+ Update withSku(SkuInner sku);
+ }
+
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceExtendedInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceExtendedInfo.java
new file mode 100644
index 000000000000..ac33bf07a931
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceExtendedInfo.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeDeviceExtendedInfoInner;
+
+/**
+ * Type representing DataBoxEdgeDeviceExtendedInfo.
+ */
+public interface DataBoxEdgeDeviceExtendedInfo extends HasInner, HasManager {
+ /**
+ * @return the encryptionKey value.
+ */
+ String encryptionKey();
+
+ /**
+ * @return the encryptionKeyThumbprint value.
+ */
+ String encryptionKeyThumbprint();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resourceKey value.
+ */
+ String resourceKey();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceJob.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceJob.java
new file mode 100644
index 000000000000..d32c85191d7b
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceJob.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.JobInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing DataBoxEdgeDeviceJob.
+ */
+public interface DataBoxEdgeDeviceJob extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the currentStage value.
+ */
+ UpdateOperationStage currentStage();
+
+ /**
+ * @return the downloadProgress value.
+ */
+ UpdateDownloadProgress downloadProgress();
+
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the error value.
+ */
+ JobErrorDetails error();
+
+ /**
+ * @return the errorManifestFile value.
+ */
+ String errorManifestFile();
+
+ /**
+ * @return the folder value.
+ */
+ String folder();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the installProgress value.
+ */
+ UpdateInstallProgress installProgress();
+
+ /**
+ * @return the jobType value.
+ */
+ JobType jobType();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the percentComplete value.
+ */
+ Integer percentComplete();
+
+ /**
+ * @return the refreshedEntityId value.
+ */
+ String refreshedEntityId();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the status value.
+ */
+ JobStatus status();
+
+ /**
+ * @return the totalRefreshErrors value.
+ */
+ Integer totalRefreshErrors();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceJobModel.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceJobModel.java
new file mode 100644
index 000000000000..fbf4ef79670a
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceJobModel.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.JobInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing DataBoxEdgeDeviceJobModel.
+ */
+public interface DataBoxEdgeDeviceJobModel extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the currentStage value.
+ */
+ UpdateOperationStage currentStage();
+
+ /**
+ * @return the downloadProgress value.
+ */
+ UpdateDownloadProgress downloadProgress();
+
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the error value.
+ */
+ JobErrorDetails error();
+
+ /**
+ * @return the errorManifestFile value.
+ */
+ String errorManifestFile();
+
+ /**
+ * @return the folder value.
+ */
+ String folder();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the installProgress value.
+ */
+ UpdateInstallProgress installProgress();
+
+ /**
+ * @return the jobType value.
+ */
+ JobType jobType();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the percentComplete value.
+ */
+ Integer percentComplete();
+
+ /**
+ * @return the refreshedEntityId value.
+ */
+ String refreshedEntityId();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the status value.
+ */
+ JobStatus status();
+
+ /**
+ * @return the totalRefreshErrors value.
+ */
+ Integer totalRefreshErrors();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDevicePatch.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDevicePatch.java
new file mode 100644
index 000000000000..8433f56e1409
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDevicePatch.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Data Box Edge/Gateway device patch.
+ */
+public class DataBoxEdgeDevicePatch {
+ /**
+ * The tags attached to the Data Box Edge/Gateway resource.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get the tags attached to the Data Box Edge/Gateway resource.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags attached to the Data Box Edge/Gateway resource.
+ *
+ * @param tags the tags value to set
+ * @return the DataBoxEdgeDevicePatch object itself.
+ */
+ public DataBoxEdgeDevicePatch withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceStatus.java
new file mode 100644
index 000000000000..a9ed01000b2b
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeDeviceStatus.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DataBoxEdgeDeviceStatus.
+ */
+public final class DataBoxEdgeDeviceStatus extends ExpandableStringEnum {
+ /** Static value ReadyToSetup for DataBoxEdgeDeviceStatus. */
+ public static final DataBoxEdgeDeviceStatus READY_TO_SETUP = fromString("ReadyToSetup");
+
+ /** Static value Online for DataBoxEdgeDeviceStatus. */
+ public static final DataBoxEdgeDeviceStatus ONLINE = fromString("Online");
+
+ /** Static value Offline for DataBoxEdgeDeviceStatus. */
+ public static final DataBoxEdgeDeviceStatus OFFLINE = fromString("Offline");
+
+ /** Static value NeedsAttention for DataBoxEdgeDeviceStatus. */
+ public static final DataBoxEdgeDeviceStatus NEEDS_ATTENTION = fromString("NeedsAttention");
+
+ /** Static value Disconnected for DataBoxEdgeDeviceStatus. */
+ public static final DataBoxEdgeDeviceStatus DISCONNECTED = fromString("Disconnected");
+
+ /** Static value PartiallyDisconnected for DataBoxEdgeDeviceStatus. */
+ public static final DataBoxEdgeDeviceStatus PARTIALLY_DISCONNECTED = fromString("PartiallyDisconnected");
+
+ /** Static value Maintenance for DataBoxEdgeDeviceStatus. */
+ public static final DataBoxEdgeDeviceStatus MAINTENANCE = fromString("Maintenance");
+
+ /**
+ * Creates or finds a DataBoxEdgeDeviceStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DataBoxEdgeDeviceStatus
+ */
+ @JsonCreator
+ public static DataBoxEdgeDeviceStatus fromString(String name) {
+ return fromString(name, DataBoxEdgeDeviceStatus.class);
+ }
+
+ /**
+ * @return known DataBoxEdgeDeviceStatus values
+ */
+ public static Collection values() {
+ return values(DataBoxEdgeDeviceStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeSku.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeSku.java
new file mode 100644
index 000000000000..663ac9cd973c
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataBoxEdgeSku.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeSkuInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import java.util.List;
+
+/**
+ * Type representing DataBoxEdgeSku.
+ */
+public interface DataBoxEdgeSku extends HasInner, HasManager {
+ /**
+ * @return the apiVersions value.
+ */
+ List apiVersions();
+
+ /**
+ * @return the availability value.
+ */
+ SkuAvailability availability();
+
+ /**
+ * @return the costs value.
+ */
+ List costs();
+
+ /**
+ * @return the family value.
+ */
+ String family();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the locationInfo value.
+ */
+ List locationInfo();
+
+ /**
+ * @return the locations value.
+ */
+ List locations();
+
+ /**
+ * @return the name value.
+ */
+ SkuName name();
+
+ /**
+ * @return the resourceType value.
+ */
+ String resourceType();
+
+ /**
+ * @return the restrictions value.
+ */
+ List restrictions();
+
+ /**
+ * @return the signupOption value.
+ */
+ SkuSignupOption signupOption();
+
+ /**
+ * @return the size value.
+ */
+ String size();
+
+ /**
+ * @return the tier value.
+ */
+ SkuTier tier();
+
+ /**
+ * @return the version value.
+ */
+ SkuVersion version();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataPolicy.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataPolicy.java
new file mode 100644
index 000000000000..e911a63eba87
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DataPolicy.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DataPolicy.
+ */
+public final class DataPolicy extends ExpandableStringEnum {
+ /** Static value Cloud for DataPolicy. */
+ public static final DataPolicy CLOUD = fromString("Cloud");
+
+ /** Static value Local for DataPolicy. */
+ public static final DataPolicy LOCAL = fromString("Local");
+
+ /**
+ * Creates or finds a DataPolicy from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DataPolicy
+ */
+ @JsonCreator
+ public static DataPolicy fromString(String name) {
+ return fromString(name, DataPolicy.class);
+ }
+
+ /**
+ * @return known DataPolicy values
+ */
+ public static Collection values() {
+ return values(DataPolicy.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DayOfWeek.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DayOfWeek.java
new file mode 100644
index 000000000000..c50736e5d89e
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DayOfWeek.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DayOfWeek.
+ */
+public final class DayOfWeek extends ExpandableStringEnum {
+ /** Static value Sunday for DayOfWeek. */
+ public static final DayOfWeek SUNDAY = fromString("Sunday");
+
+ /** Static value Monday for DayOfWeek. */
+ public static final DayOfWeek MONDAY = fromString("Monday");
+
+ /** Static value Tuesday for DayOfWeek. */
+ public static final DayOfWeek TUESDAY = fromString("Tuesday");
+
+ /** Static value Wednesday for DayOfWeek. */
+ public static final DayOfWeek WEDNESDAY = fromString("Wednesday");
+
+ /** Static value Thursday for DayOfWeek. */
+ public static final DayOfWeek THURSDAY = fromString("Thursday");
+
+ /** Static value Friday for DayOfWeek. */
+ public static final DayOfWeek FRIDAY = fromString("Friday");
+
+ /** Static value Saturday for DayOfWeek. */
+ public static final DayOfWeek SATURDAY = fromString("Saturday");
+
+ /**
+ * Creates or finds a DayOfWeek from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DayOfWeek
+ */
+ @JsonCreator
+ public static DayOfWeek fromString(String name) {
+ return fromString(name, DayOfWeek.class);
+ }
+
+ /**
+ * @return known DayOfWeek values
+ */
+ public static Collection values() {
+ return values(DayOfWeek.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DeviceType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DeviceType.java
new file mode 100644
index 000000000000..59701e2ceb3b
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DeviceType.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DeviceType.
+ */
+public final class DeviceType extends ExpandableStringEnum {
+ /** Static value DataBoxEdgeDevice for DeviceType. */
+ public static final DeviceType DATA_BOX_EDGE_DEVICE = fromString("DataBoxEdgeDevice");
+
+ /**
+ * Creates or finds a DeviceType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DeviceType
+ */
+ @JsonCreator
+ public static DeviceType fromString(String name) {
+ return fromString(name, DeviceType.class);
+ }
+
+ /**
+ * @return known DeviceType values
+ */
+ public static Collection values() {
+ return values(DeviceType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Devices.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Devices.java
new file mode 100644
index 000000000000..dd688be32301
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Devices.java
@@ -0,0 +1,145 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.DataBoxEdgeDevice;
+import rx.Completable;
+
+/**
+ * Type representing Devices.
+ */
+public interface Devices {
+ /**
+ * Begins definition for a new DataBoxEdgeDevice resource.
+ * @param name resource name.
+ * @return the first stage of the new DataBoxEdgeDevice definition.
+ */
+ DataBoxEdgeDevice.DefinitionStages.Blank defineDataBoxEdgeDevice(String name);
+
+ /**
+ * Gets the properties of the Data Box Edge/Data Box Gateway device.
+ *
+ * @param resourceGroupName resource group name
+ * @param name resource name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByResourceGroupAsync(String resourceGroupName, String name);
+
+ /**
+ * Gets all the Data Box Edge/Data Box Gateway devices in a resource group.
+ *
+ * @param resourceGroupName resource group name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceGroupAsync(String resourceGroupName);
+
+ /**
+ * Gets all the Data Box Edge/Data Box Gateway devices in a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+ /**
+ * Deletes the Data Box Edge/Data Box Gateway device.
+ *
+ * @param resourceGroupName resource group name
+ * @param name resource name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String name);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable downloadUpdatesAsync(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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getExtendedInformationAsync(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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable installUpdatesAsync(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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable scanForUpdatesAsync(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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getUpdateSummaryAsync(String deviceName, String resourceGroupName);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable uploadCertificateAsync(String deviceName, String resourceGroupName, UploadCertificateRequest parameters);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable getNetworkSettingsAsync(String deviceName, String resourceGroupName);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable createOrUpdateSecuritySettingsAsync(String deviceName, String resourceGroupName, SecuritySettings securitySettings);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DownloadPhase.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DownloadPhase.java
new file mode 100644
index 000000000000..7d3b37fec3c8
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/DownloadPhase.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DownloadPhase.
+ */
+public final class DownloadPhase extends ExpandableStringEnum {
+ /** Static value Unknown for DownloadPhase. */
+ public static final DownloadPhase UNKNOWN = fromString("Unknown");
+
+ /** Static value Initializing for DownloadPhase. */
+ public static final DownloadPhase INITIALIZING = fromString("Initializing");
+
+ /** Static value Downloading for DownloadPhase. */
+ public static final DownloadPhase DOWNLOADING = fromString("Downloading");
+
+ /** Static value Verifying for DownloadPhase. */
+ public static final DownloadPhase VERIFYING = fromString("Verifying");
+
+ /**
+ * Creates or finds a DownloadPhase from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DownloadPhase
+ */
+ @JsonCreator
+ public static DownloadPhase fromString(String name) {
+ return fromString(name, DownloadPhase.class);
+ }
+
+ /**
+ * @return known DownloadPhase values
+ */
+ public static Collection values() {
+ return values(DownloadPhase.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/EncryptionAlgorithm.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/EncryptionAlgorithm.java
new file mode 100644
index 000000000000..7f25c5b52c21
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/EncryptionAlgorithm.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EncryptionAlgorithm.
+ */
+public final class EncryptionAlgorithm extends ExpandableStringEnum {
+ /** Static value None for EncryptionAlgorithm. */
+ public static final EncryptionAlgorithm NONE = fromString("None");
+
+ /** Static value AES256 for EncryptionAlgorithm. */
+ public static final EncryptionAlgorithm AES256 = fromString("AES256");
+
+ /** Static value RSAES_PKCS1_v_1_5 for EncryptionAlgorithm. */
+ public static final EncryptionAlgorithm RSAES_PKCS1_V_1_5 = fromString("RSAES_PKCS1_v_1_5");
+
+ /**
+ * Creates or finds a EncryptionAlgorithm from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EncryptionAlgorithm
+ */
+ @JsonCreator
+ public static EncryptionAlgorithm fromString(String name) {
+ return fromString(name, EncryptionAlgorithm.class);
+ }
+
+ /**
+ * @return known EncryptionAlgorithm values
+ */
+ public static Collection values() {
+ return values(EncryptionAlgorithm.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/FileEventTrigger.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/FileEventTrigger.java
new file mode 100644
index 000000000000..4a54491a0656
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/FileEventTrigger.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.TriggerInner;
+
+/**
+ * Trigger details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = FileEventTrigger.class)
+@JsonTypeName("FileEvent")
+@JsonFlatten
+public class FileEventTrigger extends TriggerInner {
+ /**
+ * File event source details.
+ */
+ @JsonProperty(value = "properties.sourceInfo", required = true)
+ private FileSourceInfo sourceInfo;
+
+ /**
+ * Role sink info.
+ */
+ @JsonProperty(value = "properties.sinkInfo", required = true)
+ private RoleSinkInfo sinkInfo;
+
+ /**
+ * A custom context tag typically used to correlate the trigger against its
+ * usage. For example, if a periodic timer trigger is intended for certain
+ * specific IoT modules in the device, the tag can be the name or the image
+ * URL of the module.
+ */
+ @JsonProperty(value = "properties.customContextTag")
+ private String customContextTag;
+
+ /**
+ * Get file event source details.
+ *
+ * @return the sourceInfo value
+ */
+ public FileSourceInfo sourceInfo() {
+ return this.sourceInfo;
+ }
+
+ /**
+ * Set file event source details.
+ *
+ * @param sourceInfo the sourceInfo value to set
+ * @return the FileEventTrigger object itself.
+ */
+ public FileEventTrigger withSourceInfo(FileSourceInfo sourceInfo) {
+ this.sourceInfo = sourceInfo;
+ return this;
+ }
+
+ /**
+ * Get role sink info.
+ *
+ * @return the sinkInfo value
+ */
+ public RoleSinkInfo sinkInfo() {
+ return this.sinkInfo;
+ }
+
+ /**
+ * Set role sink info.
+ *
+ * @param sinkInfo the sinkInfo value to set
+ * @return the FileEventTrigger object itself.
+ */
+ public FileEventTrigger withSinkInfo(RoleSinkInfo sinkInfo) {
+ this.sinkInfo = sinkInfo;
+ return this;
+ }
+
+ /**
+ * Get a custom context tag typically used to correlate the trigger against its usage. For example, if a periodic timer trigger is intended for certain specific IoT modules in the device, the tag can be the name or the image URL of the module.
+ *
+ * @return the customContextTag value
+ */
+ public String customContextTag() {
+ return this.customContextTag;
+ }
+
+ /**
+ * Set a custom context tag typically used to correlate the trigger against its usage. For example, if a periodic timer trigger is intended for certain specific IoT modules in the device, the tag can be the name or the image URL of the module.
+ *
+ * @param customContextTag the customContextTag value to set
+ * @return the FileEventTrigger object itself.
+ */
+ public FileEventTrigger withCustomContextTag(String customContextTag) {
+ this.customContextTag = customContextTag;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/FileSourceInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/FileSourceInfo.java
new file mode 100644
index 000000000000..9ebc0721afd3
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/FileSourceInfo.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * File source details.
+ */
+public class FileSourceInfo {
+ /**
+ * File share ID.
+ */
+ @JsonProperty(value = "shareId", required = true)
+ private String shareId;
+
+ /**
+ * Get file share ID.
+ *
+ * @return the shareId value
+ */
+ public String shareId() {
+ return this.shareId;
+ }
+
+ /**
+ * Set file share ID.
+ *
+ * @param shareId the shareId value to set
+ * @return the FileSourceInfo object itself.
+ */
+ public FileSourceInfo withShareId(String shareId) {
+ this.shareId = shareId;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/HostPlatformType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/HostPlatformType.java
new file mode 100644
index 000000000000..d4cbd041f7fa
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/HostPlatformType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for HostPlatformType.
+ */
+public final class HostPlatformType extends ExpandableStringEnum {
+ /** Static value KubernetesCluster for HostPlatformType. */
+ public static final HostPlatformType KUBERNETES_CLUSTER = fromString("KubernetesCluster");
+
+ /** Static value LinuxVM for HostPlatformType. */
+ public static final HostPlatformType LINUX_VM = fromString("LinuxVM");
+
+ /**
+ * Creates or finds a HostPlatformType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding HostPlatformType
+ */
+ @JsonCreator
+ public static HostPlatformType fromString(String name) {
+ return fromString(name, HostPlatformType.class);
+ }
+
+ /**
+ * @return known HostPlatformType values
+ */
+ public static Collection values() {
+ return values(HostPlatformType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ImageRepositoryCredential.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ImageRepositoryCredential.java
new file mode 100644
index 000000000000..f92a8f9d5855
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ImageRepositoryCredential.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Image repository credential.
+ */
+public class ImageRepositoryCredential {
+ /**
+ * Image repository url (e.g.: mcr.microsoft.com).
+ */
+ @JsonProperty(value = "imageRepositoryUrl", required = true)
+ private String imageRepositoryUrl;
+
+ /**
+ * Repository user name.
+ */
+ @JsonProperty(value = "userName", required = true)
+ private String userName;
+
+ /**
+ * Repository user password.
+ */
+ @JsonProperty(value = "password")
+ private AsymmetricEncryptedSecret password;
+
+ /**
+ * Get image repository url (e.g.: mcr.microsoft.com).
+ *
+ * @return the imageRepositoryUrl value
+ */
+ public String imageRepositoryUrl() {
+ return this.imageRepositoryUrl;
+ }
+
+ /**
+ * Set image repository url (e.g.: mcr.microsoft.com).
+ *
+ * @param imageRepositoryUrl the imageRepositoryUrl value to set
+ * @return the ImageRepositoryCredential object itself.
+ */
+ public ImageRepositoryCredential withImageRepositoryUrl(String imageRepositoryUrl) {
+ this.imageRepositoryUrl = imageRepositoryUrl;
+ return this;
+ }
+
+ /**
+ * Get repository user name.
+ *
+ * @return the userName value
+ */
+ public String userName() {
+ return this.userName;
+ }
+
+ /**
+ * Set repository user name.
+ *
+ * @param userName the userName value to set
+ * @return the ImageRepositoryCredential object itself.
+ */
+ public ImageRepositoryCredential withUserName(String userName) {
+ this.userName = userName;
+ return this;
+ }
+
+ /**
+ * Get repository user password.
+ *
+ * @return the password value
+ */
+ public AsymmetricEncryptedSecret password() {
+ return this.password;
+ }
+
+ /**
+ * Set repository user password.
+ *
+ * @param password the password value to set
+ * @return the ImageRepositoryCredential object itself.
+ */
+ public ImageRepositoryCredential withPassword(AsymmetricEncryptedSecret password) {
+ this.password = password;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/InstallRebootBehavior.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/InstallRebootBehavior.java
new file mode 100644
index 000000000000..a6bc8041d0bb
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/InstallRebootBehavior.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for InstallRebootBehavior.
+ */
+public final class InstallRebootBehavior extends ExpandableStringEnum {
+ /** Static value NeverReboots for InstallRebootBehavior. */
+ public static final InstallRebootBehavior NEVER_REBOOTS = fromString("NeverReboots");
+
+ /** Static value RequiresReboot for InstallRebootBehavior. */
+ public static final InstallRebootBehavior REQUIRES_REBOOT = fromString("RequiresReboot");
+
+ /** Static value RequestReboot for InstallRebootBehavior. */
+ public static final InstallRebootBehavior REQUEST_REBOOT = fromString("RequestReboot");
+
+ /**
+ * Creates or finds a InstallRebootBehavior from its string representation.
+ * @param name a name to look for
+ * @return the corresponding InstallRebootBehavior
+ */
+ @JsonCreator
+ public static InstallRebootBehavior fromString(String name) {
+ return fromString(name, InstallRebootBehavior.class);
+ }
+
+ /**
+ * @return known InstallRebootBehavior values
+ */
+ public static Collection values() {
+ return values(InstallRebootBehavior.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTDeviceInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTDeviceInfo.java
new file mode 100644
index 000000000000..8c191c4f329e
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTDeviceInfo.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Metadata of IoT device/IoT Edge device to be configured.
+ */
+public class IoTDeviceInfo {
+ /**
+ * ID of the IoT device/edge device.
+ */
+ @JsonProperty(value = "deviceId", required = true)
+ private String deviceId;
+
+ /**
+ * Host name for the IoT hub associated to the device.
+ */
+ @JsonProperty(value = "ioTHostHub", required = true)
+ private String ioTHostHub;
+
+ /**
+ * Id for the IoT hub associated to the device.
+ */
+ @JsonProperty(value = "ioTHostHubId")
+ private String ioTHostHubId;
+
+ /**
+ * Encrypted IoT device/IoT edge device connection string.
+ */
+ @JsonProperty(value = "authentication")
+ private Authentication authentication;
+
+ /**
+ * Get iD of the IoT device/edge device.
+ *
+ * @return the deviceId value
+ */
+ public String deviceId() {
+ return this.deviceId;
+ }
+
+ /**
+ * Set iD of the IoT device/edge device.
+ *
+ * @param deviceId the deviceId value to set
+ * @return the IoTDeviceInfo object itself.
+ */
+ public IoTDeviceInfo withDeviceId(String deviceId) {
+ this.deviceId = deviceId;
+ return this;
+ }
+
+ /**
+ * Get host name for the IoT hub associated to the device.
+ *
+ * @return the ioTHostHub value
+ */
+ public String ioTHostHub() {
+ return this.ioTHostHub;
+ }
+
+ /**
+ * Set host name for the IoT hub associated to the device.
+ *
+ * @param ioTHostHub the ioTHostHub value to set
+ * @return the IoTDeviceInfo object itself.
+ */
+ public IoTDeviceInfo withIoTHostHub(String ioTHostHub) {
+ this.ioTHostHub = ioTHostHub;
+ return this;
+ }
+
+ /**
+ * Get id for the IoT hub associated to the device.
+ *
+ * @return the ioTHostHubId value
+ */
+ public String ioTHostHubId() {
+ return this.ioTHostHubId;
+ }
+
+ /**
+ * Set id for the IoT hub associated to the device.
+ *
+ * @param ioTHostHubId the ioTHostHubId value to set
+ * @return the IoTDeviceInfo object itself.
+ */
+ public IoTDeviceInfo withIoTHostHubId(String ioTHostHubId) {
+ this.ioTHostHubId = ioTHostHubId;
+ return this;
+ }
+
+ /**
+ * Get encrypted IoT device/IoT edge device connection string.
+ *
+ * @return the authentication value
+ */
+ public Authentication authentication() {
+ return this.authentication;
+ }
+
+ /**
+ * Set encrypted IoT device/IoT edge device connection string.
+ *
+ * @param authentication the authentication value to set
+ * @return the IoTDeviceInfo object itself.
+ */
+ public IoTDeviceInfo withAuthentication(Authentication authentication) {
+ this.authentication = authentication;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTEdgeAgentInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTEdgeAgentInfo.java
new file mode 100644
index 000000000000..f50f03a5343a
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTEdgeAgentInfo.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * IoT edge agent details is optional, this will be used for download system
+ * Agent module while bootstrapping IoT Role if specified.
+ */
+public class IoTEdgeAgentInfo {
+ /**
+ * Name of the IoT edge agent image.
+ */
+ @JsonProperty(value = "imageName", required = true)
+ private String imageName;
+
+ /**
+ * Image Tag.
+ */
+ @JsonProperty(value = "tag", required = true)
+ private String tag;
+
+ /**
+ * Image repository details.
+ */
+ @JsonProperty(value = "imageRepository")
+ private ImageRepositoryCredential imageRepository;
+
+ /**
+ * Get name of the IoT edge agent image.
+ *
+ * @return the imageName value
+ */
+ public String imageName() {
+ return this.imageName;
+ }
+
+ /**
+ * Set name of the IoT edge agent image.
+ *
+ * @param imageName the imageName value to set
+ * @return the IoTEdgeAgentInfo object itself.
+ */
+ public IoTEdgeAgentInfo withImageName(String imageName) {
+ this.imageName = imageName;
+ return this;
+ }
+
+ /**
+ * Get image Tag.
+ *
+ * @return the tag value
+ */
+ public String tag() {
+ return this.tag;
+ }
+
+ /**
+ * Set image Tag.
+ *
+ * @param tag the tag value to set
+ * @return the IoTEdgeAgentInfo object itself.
+ */
+ public IoTEdgeAgentInfo withTag(String tag) {
+ this.tag = tag;
+ return this;
+ }
+
+ /**
+ * Get image repository details.
+ *
+ * @return the imageRepository value
+ */
+ public ImageRepositoryCredential imageRepository() {
+ return this.imageRepository;
+ }
+
+ /**
+ * Set image repository details.
+ *
+ * @param imageRepository the imageRepository value to set
+ * @return the IoTEdgeAgentInfo object itself.
+ */
+ public IoTEdgeAgentInfo withImageRepository(ImageRepositoryCredential imageRepository) {
+ this.imageRepository = imageRepository;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTRole.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTRole.java
new file mode 100644
index 000000000000..99fdaec54af1
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/IoTRole.java
@@ -0,0 +1,198 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.RoleInner;
+
+/**
+ * Compute role.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = IoTRole.class)
+@JsonTypeName("IOT")
+@JsonFlatten
+public class IoTRole extends RoleInner {
+ /**
+ * Host OS supported by the IoT role. Possible values include: 'Windows',
+ * 'Linux'.
+ */
+ @JsonProperty(value = "properties.hostPlatform", required = true)
+ private PlatformType hostPlatform;
+
+ /**
+ * IoT device metadata to which data box edge device needs to be connected.
+ */
+ @JsonProperty(value = "properties.ioTDeviceDetails", required = true)
+ private IoTDeviceInfo ioTDeviceDetails;
+
+ /**
+ * IoT edge device to which the IoT role needs to be configured.
+ */
+ @JsonProperty(value = "properties.ioTEdgeDeviceDetails", required = true)
+ private IoTDeviceInfo ioTEdgeDeviceDetails;
+
+ /**
+ * Mount points of shares in role(s).
+ */
+ @JsonProperty(value = "properties.shareMappings")
+ private List shareMappings;
+
+ /**
+ * Iot edge agent details to download the agent and bootstrap iot runtime.
+ */
+ @JsonProperty(value = "properties.ioTEdgeAgentInfo")
+ private IoTEdgeAgentInfo ioTEdgeAgentInfo;
+
+ /**
+ * Platform where the Iot runtime is hosted. Possible values include:
+ * 'KubernetesCluster', 'LinuxVM'.
+ */
+ @JsonProperty(value = "properties.hostPlatformType", access = JsonProperty.Access.WRITE_ONLY)
+ private HostPlatformType hostPlatformType;
+
+ /**
+ * Role status. Possible values include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.roleStatus", required = true)
+ private RoleStatus roleStatus;
+
+ /**
+ * Get host OS supported by the IoT role. Possible values include: 'Windows', 'Linux'.
+ *
+ * @return the hostPlatform value
+ */
+ public PlatformType hostPlatform() {
+ return this.hostPlatform;
+ }
+
+ /**
+ * Set host OS supported by the IoT role. Possible values include: 'Windows', 'Linux'.
+ *
+ * @param hostPlatform the hostPlatform value to set
+ * @return the IoTRole object itself.
+ */
+ public IoTRole withHostPlatform(PlatformType hostPlatform) {
+ this.hostPlatform = hostPlatform;
+ return this;
+ }
+
+ /**
+ * Get ioT device metadata to which data box edge device needs to be connected.
+ *
+ * @return the ioTDeviceDetails value
+ */
+ public IoTDeviceInfo ioTDeviceDetails() {
+ return this.ioTDeviceDetails;
+ }
+
+ /**
+ * Set ioT device metadata to which data box edge device needs to be connected.
+ *
+ * @param ioTDeviceDetails the ioTDeviceDetails value to set
+ * @return the IoTRole object itself.
+ */
+ public IoTRole withIoTDeviceDetails(IoTDeviceInfo ioTDeviceDetails) {
+ this.ioTDeviceDetails = ioTDeviceDetails;
+ return this;
+ }
+
+ /**
+ * Get ioT edge device to which the IoT role needs to be configured.
+ *
+ * @return the ioTEdgeDeviceDetails value
+ */
+ public IoTDeviceInfo ioTEdgeDeviceDetails() {
+ return this.ioTEdgeDeviceDetails;
+ }
+
+ /**
+ * Set ioT edge device to which the IoT role needs to be configured.
+ *
+ * @param ioTEdgeDeviceDetails the ioTEdgeDeviceDetails value to set
+ * @return the IoTRole object itself.
+ */
+ public IoTRole withIoTEdgeDeviceDetails(IoTDeviceInfo ioTEdgeDeviceDetails) {
+ this.ioTEdgeDeviceDetails = ioTEdgeDeviceDetails;
+ return this;
+ }
+
+ /**
+ * Get mount points of shares in role(s).
+ *
+ * @return the shareMappings value
+ */
+ public List shareMappings() {
+ return this.shareMappings;
+ }
+
+ /**
+ * Set mount points of shares in role(s).
+ *
+ * @param shareMappings the shareMappings value to set
+ * @return the IoTRole object itself.
+ */
+ public IoTRole withShareMappings(List shareMappings) {
+ this.shareMappings = shareMappings;
+ return this;
+ }
+
+ /**
+ * Get iot edge agent details to download the agent and bootstrap iot runtime.
+ *
+ * @return the ioTEdgeAgentInfo value
+ */
+ public IoTEdgeAgentInfo ioTEdgeAgentInfo() {
+ return this.ioTEdgeAgentInfo;
+ }
+
+ /**
+ * Set iot edge agent details to download the agent and bootstrap iot runtime.
+ *
+ * @param ioTEdgeAgentInfo the ioTEdgeAgentInfo value to set
+ * @return the IoTRole object itself.
+ */
+ public IoTRole withIoTEdgeAgentInfo(IoTEdgeAgentInfo ioTEdgeAgentInfo) {
+ this.ioTEdgeAgentInfo = ioTEdgeAgentInfo;
+ return this;
+ }
+
+ /**
+ * Get platform where the Iot runtime is hosted. Possible values include: 'KubernetesCluster', 'LinuxVM'.
+ *
+ * @return the hostPlatformType value
+ */
+ public HostPlatformType hostPlatformType() {
+ return this.hostPlatformType;
+ }
+
+ /**
+ * Get role status. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the roleStatus value
+ */
+ public RoleStatus roleStatus() {
+ return this.roleStatus;
+ }
+
+ /**
+ * Set role status. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param roleStatus the roleStatus value to set
+ * @return the IoTRole object itself.
+ */
+ public IoTRole withRoleStatus(RoleStatus roleStatus) {
+ this.roleStatus = roleStatus;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Ipv4Config.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Ipv4Config.java
new file mode 100644
index 000000000000..321762a4059e
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Ipv4Config.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details related to the IPv4 address configuration.
+ */
+public class Ipv4Config {
+ /**
+ * The IPv4 address of the network adapter.
+ */
+ @JsonProperty(value = "ipAddress", access = JsonProperty.Access.WRITE_ONLY)
+ private String ipAddress;
+
+ /**
+ * The IPv4 subnet of the network adapter.
+ */
+ @JsonProperty(value = "subnet", access = JsonProperty.Access.WRITE_ONLY)
+ private String subnet;
+
+ /**
+ * The IPv4 gateway of the network adapter.
+ */
+ @JsonProperty(value = "gateway", access = JsonProperty.Access.WRITE_ONLY)
+ private String gateway;
+
+ /**
+ * Get the IPv4 address of the network adapter.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Get the IPv4 subnet of the network adapter.
+ *
+ * @return the subnet value
+ */
+ public String subnet() {
+ return this.subnet;
+ }
+
+ /**
+ * Get the IPv4 gateway of the network adapter.
+ *
+ * @return the gateway value
+ */
+ public String gateway() {
+ return this.gateway;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Ipv6Config.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Ipv6Config.java
new file mode 100644
index 000000000000..c199aa66c504
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Ipv6Config.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details related to the IPv6 address configuration.
+ */
+public class Ipv6Config {
+ /**
+ * The IPv6 address of the network adapter.
+ */
+ @JsonProperty(value = "ipAddress", access = JsonProperty.Access.WRITE_ONLY)
+ private String ipAddress;
+
+ /**
+ * The IPv6 prefix of the network adapter.
+ */
+ @JsonProperty(value = "prefixLength", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer prefixLength;
+
+ /**
+ * The IPv6 gateway of the network adapter.
+ */
+ @JsonProperty(value = "gateway", access = JsonProperty.Access.WRITE_ONLY)
+ private String gateway;
+
+ /**
+ * Get the IPv6 address of the network adapter.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Get the IPv6 prefix of the network adapter.
+ *
+ * @return the prefixLength value
+ */
+ public Integer prefixLength() {
+ return this.prefixLength;
+ }
+
+ /**
+ * Get the IPv6 gateway of the network adapter.
+ *
+ * @return the gateway value
+ */
+ public String gateway() {
+ return this.gateway;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobErrorDetails.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobErrorDetails.java
new file mode 100644
index 000000000000..932ac6355c50
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobErrorDetails.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The job error information containing the list of job errors.
+ */
+public class JobErrorDetails {
+ /**
+ * The error details.
+ */
+ @JsonProperty(value = "errorDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private List errorDetails;
+
+ /**
+ * The code intended for programmatic access.
+ */
+ @JsonProperty(value = "code", access = JsonProperty.Access.WRITE_ONLY)
+ private String code;
+
+ /**
+ * The message that describes the error in detail.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Get the error details.
+ *
+ * @return the errorDetails value
+ */
+ public List errorDetails() {
+ return this.errorDetails;
+ }
+
+ /**
+ * Get the code intended for programmatic access.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Get the message that describes the error in detail.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobErrorItem.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobErrorItem.java
new file mode 100644
index 000000000000..f49666c089f7
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobErrorItem.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The job error items.
+ */
+public class JobErrorItem {
+ /**
+ * The recommended actions.
+ */
+ @JsonProperty(value = "recommendations", access = JsonProperty.Access.WRITE_ONLY)
+ private List recommendations;
+
+ /**
+ * The code intended for programmatic access.
+ */
+ @JsonProperty(value = "code", access = JsonProperty.Access.WRITE_ONLY)
+ private String code;
+
+ /**
+ * The message that describes the error in detail.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Get the recommended actions.
+ *
+ * @return the recommendations value
+ */
+ public List recommendations() {
+ return this.recommendations;
+ }
+
+ /**
+ * Get the code intended for programmatic access.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Get the message that describes the error in detail.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobStatus.java
new file mode 100644
index 000000000000..097676ff47f0
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobStatus.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for JobStatus.
+ */
+public final class JobStatus extends ExpandableStringEnum {
+ /** Static value Invalid for JobStatus. */
+ public static final JobStatus INVALID = fromString("Invalid");
+
+ /** Static value Running for JobStatus. */
+ public static final JobStatus RUNNING = fromString("Running");
+
+ /** Static value Succeeded for JobStatus. */
+ public static final JobStatus SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for JobStatus. */
+ public static final JobStatus FAILED = fromString("Failed");
+
+ /** Static value Canceled for JobStatus. */
+ public static final JobStatus CANCELED = fromString("Canceled");
+
+ /** Static value Paused for JobStatus. */
+ public static final JobStatus PAUSED = fromString("Paused");
+
+ /** Static value Scheduled for JobStatus. */
+ public static final JobStatus SCHEDULED = fromString("Scheduled");
+
+ /**
+ * Creates or finds a JobStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding JobStatus
+ */
+ @JsonCreator
+ public static JobStatus fromString(String name) {
+ return fromString(name, JobStatus.class);
+ }
+
+ /**
+ * @return known JobStatus values
+ */
+ public static Collection values() {
+ return values(JobStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobType.java
new file mode 100644
index 000000000000..c6f9d3312526
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/JobType.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for JobType.
+ */
+public final class JobType extends ExpandableStringEnum {
+ /** Static value Invalid for JobType. */
+ public static final JobType INVALID = fromString("Invalid");
+
+ /** Static value ScanForUpdates for JobType. */
+ public static final JobType SCAN_FOR_UPDATES = fromString("ScanForUpdates");
+
+ /** Static value DownloadUpdates for JobType. */
+ public static final JobType DOWNLOAD_UPDATES = fromString("DownloadUpdates");
+
+ /** Static value InstallUpdates for JobType. */
+ public static final JobType INSTALL_UPDATES = fromString("InstallUpdates");
+
+ /** Static value RefreshShare for JobType. */
+ public static final JobType REFRESH_SHARE = fromString("RefreshShare");
+
+ /** Static value RefreshContainer for JobType. */
+ public static final JobType REFRESH_CONTAINER = fromString("RefreshContainer");
+
+ /**
+ * Creates or finds a JobType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding JobType
+ */
+ @JsonCreator
+ public static JobType fromString(String name) {
+ return fromString(name, JobType.class);
+ }
+
+ /**
+ * @return known JobType values
+ */
+ public static Collection values() {
+ return values(JobType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Jobs.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Jobs.java
new file mode 100644
index 000000000000..8d65403bfeb3
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Jobs.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.JobsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Jobs.
+ */
+public interface Jobs extends HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String deviceName, String name, String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricAggregationType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricAggregationType.java
new file mode 100644
index 000000000000..58509d056f2c
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricAggregationType.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for MetricAggregationType.
+ */
+public final class MetricAggregationType extends ExpandableStringEnum {
+ /** Static value NotSpecified for MetricAggregationType. */
+ public static final MetricAggregationType NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value None for MetricAggregationType. */
+ public static final MetricAggregationType NONE = fromString("None");
+
+ /** Static value Average for MetricAggregationType. */
+ public static final MetricAggregationType AVERAGE = fromString("Average");
+
+ /** Static value Minimum for MetricAggregationType. */
+ public static final MetricAggregationType MINIMUM = fromString("Minimum");
+
+ /** Static value Maximum for MetricAggregationType. */
+ public static final MetricAggregationType MAXIMUM = fromString("Maximum");
+
+ /** Static value Total for MetricAggregationType. */
+ public static final MetricAggregationType TOTAL = fromString("Total");
+
+ /** Static value Count for MetricAggregationType. */
+ public static final MetricAggregationType COUNT = fromString("Count");
+
+ /**
+ * Creates or finds a MetricAggregationType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding MetricAggregationType
+ */
+ @JsonCreator
+ public static MetricAggregationType fromString(String name) {
+ return fromString(name, MetricAggregationType.class);
+ }
+
+ /**
+ * @return known MetricAggregationType values
+ */
+ public static Collection values() {
+ return values(MetricAggregationType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricCategory.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricCategory.java
new file mode 100644
index 000000000000..ed21df7ae147
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricCategory.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for MetricCategory.
+ */
+public final class MetricCategory extends ExpandableStringEnum {
+ /** Static value Capacity for MetricCategory. */
+ public static final MetricCategory CAPACITY = fromString("Capacity");
+
+ /** Static value Transaction for MetricCategory. */
+ public static final MetricCategory TRANSACTION = fromString("Transaction");
+
+ /**
+ * Creates or finds a MetricCategory from its string representation.
+ * @param name a name to look for
+ * @return the corresponding MetricCategory
+ */
+ @JsonCreator
+ public static MetricCategory fromString(String name) {
+ return fromString(name, MetricCategory.class);
+ }
+
+ /**
+ * @return known MetricCategory values
+ */
+ public static Collection values() {
+ return values(MetricCategory.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricDimensionV1.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricDimensionV1.java
new file mode 100644
index 000000000000..750775d9d514
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricDimensionV1.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Metric Dimension v1.
+ */
+public class MetricDimensionV1 {
+ /**
+ * Name of the metrics dimension.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display name of the metrics dimension.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * To be exported to shoe box.
+ */
+ @JsonProperty(value = "toBeExportedForShoebox")
+ private Boolean toBeExportedForShoebox;
+
+ /**
+ * Get name of the metrics dimension.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the metrics dimension.
+ *
+ * @param name the name value to set
+ * @return the MetricDimensionV1 object itself.
+ */
+ public MetricDimensionV1 withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display name of the metrics dimension.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of the metrics dimension.
+ *
+ * @param displayName the displayName value to set
+ * @return the MetricDimensionV1 object itself.
+ */
+ public MetricDimensionV1 withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get to be exported to shoe box.
+ *
+ * @return the toBeExportedForShoebox value
+ */
+ public Boolean toBeExportedForShoebox() {
+ return this.toBeExportedForShoebox;
+ }
+
+ /**
+ * Set to be exported to shoe box.
+ *
+ * @param toBeExportedForShoebox the toBeExportedForShoebox value to set
+ * @return the MetricDimensionV1 object itself.
+ */
+ public MetricDimensionV1 withToBeExportedForShoebox(Boolean toBeExportedForShoebox) {
+ this.toBeExportedForShoebox = toBeExportedForShoebox;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricSpecificationV1.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricSpecificationV1.java
new file mode 100644
index 000000000000..8f7c398d4cab
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricSpecificationV1.java
@@ -0,0 +1,307 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Metric specification version 1.
+ */
+public class MetricSpecificationV1 {
+ /**
+ * Name of the metric.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display name of the metric.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Description of the metric to be displayed.
+ */
+ @JsonProperty(value = "displayDescription")
+ private String displayDescription;
+
+ /**
+ * Metric units. Possible values include: 'NotSpecified', 'Percent',
+ * 'Count', 'Seconds', 'Milliseconds', 'Bytes', 'BytesPerSecond',
+ * 'CountPerSecond'.
+ */
+ @JsonProperty(value = "unit")
+ private MetricUnit unit;
+
+ /**
+ * Metric aggregation type. Possible values include: 'NotSpecified',
+ * 'None', 'Average', 'Minimum', 'Maximum', 'Total', 'Count'.
+ */
+ @JsonProperty(value = "aggregationType")
+ private MetricAggregationType aggregationType;
+
+ /**
+ * Metric dimensions, other than default dimension which is resource.
+ */
+ @JsonProperty(value = "dimensions")
+ private List dimensions;
+
+ /**
+ * Set true to fill the gaps with zero.
+ */
+ @JsonProperty(value = "fillGapWithZero")
+ private Boolean fillGapWithZero;
+
+ /**
+ * Metric category. Possible values include: 'Capacity', 'Transaction'.
+ */
+ @JsonProperty(value = "category")
+ private MetricCategory category;
+
+ /**
+ * Resource name override.
+ */
+ @JsonProperty(value = "resourceIdDimensionNameOverride")
+ private String resourceIdDimensionNameOverride;
+
+ /**
+ * Support granularity of metrics.
+ */
+ @JsonProperty(value = "supportedTimeGrainTypes")
+ private List supportedTimeGrainTypes;
+
+ /**
+ * Support metric aggregation type.
+ */
+ @JsonProperty(value = "supportedAggregationTypes")
+ private List supportedAggregationTypes;
+
+ /**
+ * Get name of the metric.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the metric.
+ *
+ * @param name the name value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display name of the metric.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of the metric.
+ *
+ * @param displayName the displayName value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get description of the metric to be displayed.
+ *
+ * @return the displayDescription value
+ */
+ public String displayDescription() {
+ return this.displayDescription;
+ }
+
+ /**
+ * Set description of the metric to be displayed.
+ *
+ * @param displayDescription the displayDescription value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withDisplayDescription(String displayDescription) {
+ this.displayDescription = displayDescription;
+ return this;
+ }
+
+ /**
+ * Get metric units. Possible values include: 'NotSpecified', 'Percent', 'Count', 'Seconds', 'Milliseconds', 'Bytes', 'BytesPerSecond', 'CountPerSecond'.
+ *
+ * @return the unit value
+ */
+ public MetricUnit unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set metric units. Possible values include: 'NotSpecified', 'Percent', 'Count', 'Seconds', 'Milliseconds', 'Bytes', 'BytesPerSecond', 'CountPerSecond'.
+ *
+ * @param unit the unit value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withUnit(MetricUnit unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get metric aggregation type. Possible values include: 'NotSpecified', 'None', 'Average', 'Minimum', 'Maximum', 'Total', 'Count'.
+ *
+ * @return the aggregationType value
+ */
+ public MetricAggregationType aggregationType() {
+ return this.aggregationType;
+ }
+
+ /**
+ * Set metric aggregation type. Possible values include: 'NotSpecified', 'None', 'Average', 'Minimum', 'Maximum', 'Total', 'Count'.
+ *
+ * @param aggregationType the aggregationType value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withAggregationType(MetricAggregationType aggregationType) {
+ this.aggregationType = aggregationType;
+ return this;
+ }
+
+ /**
+ * Get metric dimensions, other than default dimension which is resource.
+ *
+ * @return the dimensions value
+ */
+ public List dimensions() {
+ return this.dimensions;
+ }
+
+ /**
+ * Set metric dimensions, other than default dimension which is resource.
+ *
+ * @param dimensions the dimensions value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withDimensions(List dimensions) {
+ this.dimensions = dimensions;
+ return this;
+ }
+
+ /**
+ * Get set true to fill the gaps with zero.
+ *
+ * @return the fillGapWithZero value
+ */
+ public Boolean fillGapWithZero() {
+ return this.fillGapWithZero;
+ }
+
+ /**
+ * Set set true to fill the gaps with zero.
+ *
+ * @param fillGapWithZero the fillGapWithZero value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withFillGapWithZero(Boolean fillGapWithZero) {
+ this.fillGapWithZero = fillGapWithZero;
+ return this;
+ }
+
+ /**
+ * Get metric category. Possible values include: 'Capacity', 'Transaction'.
+ *
+ * @return the category value
+ */
+ public MetricCategory category() {
+ return this.category;
+ }
+
+ /**
+ * Set metric category. Possible values include: 'Capacity', 'Transaction'.
+ *
+ * @param category the category value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withCategory(MetricCategory category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get resource name override.
+ *
+ * @return the resourceIdDimensionNameOverride value
+ */
+ public String resourceIdDimensionNameOverride() {
+ return this.resourceIdDimensionNameOverride;
+ }
+
+ /**
+ * Set resource name override.
+ *
+ * @param resourceIdDimensionNameOverride the resourceIdDimensionNameOverride value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withResourceIdDimensionNameOverride(String resourceIdDimensionNameOverride) {
+ this.resourceIdDimensionNameOverride = resourceIdDimensionNameOverride;
+ return this;
+ }
+
+ /**
+ * Get support granularity of metrics.
+ *
+ * @return the supportedTimeGrainTypes value
+ */
+ public List supportedTimeGrainTypes() {
+ return this.supportedTimeGrainTypes;
+ }
+
+ /**
+ * Set support granularity of metrics.
+ *
+ * @param supportedTimeGrainTypes the supportedTimeGrainTypes value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withSupportedTimeGrainTypes(List supportedTimeGrainTypes) {
+ this.supportedTimeGrainTypes = supportedTimeGrainTypes;
+ return this;
+ }
+
+ /**
+ * Get support metric aggregation type.
+ *
+ * @return the supportedAggregationTypes value
+ */
+ public List supportedAggregationTypes() {
+ return this.supportedAggregationTypes;
+ }
+
+ /**
+ * Set support metric aggregation type.
+ *
+ * @param supportedAggregationTypes the supportedAggregationTypes value to set
+ * @return the MetricSpecificationV1 object itself.
+ */
+ public MetricSpecificationV1 withSupportedAggregationTypes(List supportedAggregationTypes) {
+ this.supportedAggregationTypes = supportedAggregationTypes;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricUnit.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricUnit.java
new file mode 100644
index 000000000000..b4b5ebd1711c
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MetricUnit.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for MetricUnit.
+ */
+public final class MetricUnit extends ExpandableStringEnum {
+ /** Static value NotSpecified for MetricUnit. */
+ public static final MetricUnit NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value Percent for MetricUnit. */
+ public static final MetricUnit PERCENT = fromString("Percent");
+
+ /** Static value Count for MetricUnit. */
+ public static final MetricUnit COUNT = fromString("Count");
+
+ /** Static value Seconds for MetricUnit. */
+ public static final MetricUnit SECONDS = fromString("Seconds");
+
+ /** Static value Milliseconds for MetricUnit. */
+ public static final MetricUnit MILLISECONDS = fromString("Milliseconds");
+
+ /** Static value Bytes for MetricUnit. */
+ public static final MetricUnit BYTES = fromString("Bytes");
+
+ /** Static value BytesPerSecond for MetricUnit. */
+ public static final MetricUnit BYTES_PER_SECOND = fromString("BytesPerSecond");
+
+ /** Static value CountPerSecond for MetricUnit. */
+ public static final MetricUnit COUNT_PER_SECOND = fromString("CountPerSecond");
+
+ /**
+ * Creates or finds a MetricUnit from its string representation.
+ * @param name a name to look for
+ * @return the corresponding MetricUnit
+ */
+ @JsonCreator
+ public static MetricUnit fromString(String name) {
+ return fromString(name, MetricUnit.class);
+ }
+
+ /**
+ * @return known MetricUnit values
+ */
+ public static Collection values() {
+ return values(MetricUnit.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MonitoringStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MonitoringStatus.java
new file mode 100644
index 000000000000..6a6e18416e00
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MonitoringStatus.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for MonitoringStatus.
+ */
+public final class MonitoringStatus extends ExpandableStringEnum {
+ /** Static value Enabled for MonitoringStatus. */
+ public static final MonitoringStatus ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for MonitoringStatus. */
+ public static final MonitoringStatus DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a MonitoringStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding MonitoringStatus
+ */
+ @JsonCreator
+ public static MonitoringStatus fromString(String name) {
+ return fromString(name, MonitoringStatus.class);
+ }
+
+ /**
+ * @return known MonitoringStatus values
+ */
+ public static Collection values() {
+ return values(MonitoringStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MountPointMap.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MountPointMap.java
new file mode 100644
index 000000000000..921591c9dc08
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MountPointMap.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The share mount point.
+ */
+public class MountPointMap {
+ /**
+ * ID of the share mounted to the role VM.
+ */
+ @JsonProperty(value = "shareId", required = true)
+ private String shareId;
+
+ /**
+ * ID of the role to which share is mounted.
+ */
+ @JsonProperty(value = "roleId", access = JsonProperty.Access.WRITE_ONLY)
+ private String roleId;
+
+ /**
+ * Mount point for the share.
+ */
+ @JsonProperty(value = "mountPoint", access = JsonProperty.Access.WRITE_ONLY)
+ private String mountPoint;
+
+ /**
+ * Mounting type. Possible values include: 'Volume', 'HostPath'.
+ */
+ @JsonProperty(value = "mountType", access = JsonProperty.Access.WRITE_ONLY)
+ private MountType mountType;
+
+ /**
+ * Role type. Possible values include: 'IOT', 'ASA', 'Functions',
+ * 'Cognitive'.
+ */
+ @JsonProperty(value = "roleType", access = JsonProperty.Access.WRITE_ONLY)
+ private RoleTypes roleType;
+
+ /**
+ * Get iD of the share mounted to the role VM.
+ *
+ * @return the shareId value
+ */
+ public String shareId() {
+ return this.shareId;
+ }
+
+ /**
+ * Set iD of the share mounted to the role VM.
+ *
+ * @param shareId the shareId value to set
+ * @return the MountPointMap object itself.
+ */
+ public MountPointMap withShareId(String shareId) {
+ this.shareId = shareId;
+ return this;
+ }
+
+ /**
+ * Get iD of the role to which share is mounted.
+ *
+ * @return the roleId value
+ */
+ public String roleId() {
+ return this.roleId;
+ }
+
+ /**
+ * Get mount point for the share.
+ *
+ * @return the mountPoint value
+ */
+ public String mountPoint() {
+ return this.mountPoint;
+ }
+
+ /**
+ * Get mounting type. Possible values include: 'Volume', 'HostPath'.
+ *
+ * @return the mountType value
+ */
+ public MountType mountType() {
+ return this.mountType;
+ }
+
+ /**
+ * Get role type. Possible values include: 'IOT', 'ASA', 'Functions', 'Cognitive'.
+ *
+ * @return the roleType value
+ */
+ public RoleTypes roleType() {
+ return this.roleType;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MountType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MountType.java
new file mode 100644
index 000000000000..3b7a7d51ffda
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/MountType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for MountType.
+ */
+public final class MountType extends ExpandableStringEnum {
+ /** Static value Volume for MountType. */
+ public static final MountType VOLUME = fromString("Volume");
+
+ /** Static value HostPath for MountType. */
+ public static final MountType HOST_PATH = fromString("HostPath");
+
+ /**
+ * Creates or finds a MountType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding MountType
+ */
+ @JsonCreator
+ public static MountType fromString(String name) {
+ return fromString(name, MountType.class);
+ }
+
+ /**
+ * @return known MountType values
+ */
+ public static Collection values() {
+ return values(MountType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapter.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapter.java
new file mode 100644
index 000000000000..85eb3c1511a1
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapter.java
@@ -0,0 +1,268 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents the networkAdapter on a device.
+ */
+public class NetworkAdapter {
+ /**
+ * Instance ID of network adapter.
+ */
+ @JsonProperty(value = "adapterId", access = JsonProperty.Access.WRITE_ONLY)
+ private String adapterId;
+
+ /**
+ * Hardware position of network adapter.
+ */
+ @JsonProperty(value = "adapterPosition", access = JsonProperty.Access.WRITE_ONLY)
+ private NetworkAdapterPosition adapterPosition;
+
+ /**
+ * Logical index of the adapter.
+ */
+ @JsonProperty(value = "index", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer index;
+
+ /**
+ * Node ID of the network adapter.
+ */
+ @JsonProperty(value = "nodeId", access = JsonProperty.Access.WRITE_ONLY)
+ private String nodeId;
+
+ /**
+ * Network adapter name.
+ */
+ @JsonProperty(value = "networkAdapterName", access = JsonProperty.Access.WRITE_ONLY)
+ private String networkAdapterName;
+
+ /**
+ * Hardware label for the adapter.
+ */
+ @JsonProperty(value = "label", access = JsonProperty.Access.WRITE_ONLY)
+ private String label;
+
+ /**
+ * MAC address.
+ */
+ @JsonProperty(value = "macAddress", access = JsonProperty.Access.WRITE_ONLY)
+ private String macAddress;
+
+ /**
+ * Link speed.
+ */
+ @JsonProperty(value = "linkSpeed", access = JsonProperty.Access.WRITE_ONLY)
+ private Long linkSpeed;
+
+ /**
+ * Value indicating whether this adapter is valid. Possible values include:
+ * 'Inactive', 'Active'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private NetworkAdapterStatus status;
+
+ /**
+ * Value indicating whether this adapter is RDMA capable. Possible values
+ * include: 'Incapable', 'Capable'.
+ */
+ @JsonProperty(value = "rdmaStatus")
+ private NetworkAdapterRDMAStatus rdmaStatus;
+
+ /**
+ * Value indicating whether this adapter has DHCP enabled. Possible values
+ * include: 'Disabled', 'Enabled'.
+ */
+ @JsonProperty(value = "dhcpStatus")
+ private NetworkAdapterDHCPStatus dhcpStatus;
+
+ /**
+ * The IPv4 configuration of the network adapter.
+ */
+ @JsonProperty(value = "ipv4Configuration", access = JsonProperty.Access.WRITE_ONLY)
+ private Ipv4Config ipv4Configuration;
+
+ /**
+ * The IPv6 configuration of the network adapter.
+ */
+ @JsonProperty(value = "ipv6Configuration", access = JsonProperty.Access.WRITE_ONLY)
+ private Ipv6Config ipv6Configuration;
+
+ /**
+ * The IPv6 local address.
+ */
+ @JsonProperty(value = "ipv6LinkLocalAddress", access = JsonProperty.Access.WRITE_ONLY)
+ private String ipv6LinkLocalAddress;
+
+ /**
+ * The list of DNS Servers of the device.
+ */
+ @JsonProperty(value = "dnsServers", access = JsonProperty.Access.WRITE_ONLY)
+ private List dnsServers;
+
+ /**
+ * Get instance ID of network adapter.
+ *
+ * @return the adapterId value
+ */
+ public String adapterId() {
+ return this.adapterId;
+ }
+
+ /**
+ * Get hardware position of network adapter.
+ *
+ * @return the adapterPosition value
+ */
+ public NetworkAdapterPosition adapterPosition() {
+ return this.adapterPosition;
+ }
+
+ /**
+ * Get logical index of the adapter.
+ *
+ * @return the index value
+ */
+ public Integer index() {
+ return this.index;
+ }
+
+ /**
+ * Get node ID of the network adapter.
+ *
+ * @return the nodeId value
+ */
+ public String nodeId() {
+ return this.nodeId;
+ }
+
+ /**
+ * Get network adapter name.
+ *
+ * @return the networkAdapterName value
+ */
+ public String networkAdapterName() {
+ return this.networkAdapterName;
+ }
+
+ /**
+ * Get hardware label for the adapter.
+ *
+ * @return the label value
+ */
+ public String label() {
+ return this.label;
+ }
+
+ /**
+ * Get mAC address.
+ *
+ * @return the macAddress value
+ */
+ public String macAddress() {
+ return this.macAddress;
+ }
+
+ /**
+ * Get link speed.
+ *
+ * @return the linkSpeed value
+ */
+ public Long linkSpeed() {
+ return this.linkSpeed;
+ }
+
+ /**
+ * Get value indicating whether this adapter is valid. Possible values include: 'Inactive', 'Active'.
+ *
+ * @return the status value
+ */
+ public NetworkAdapterStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get value indicating whether this adapter is RDMA capable. Possible values include: 'Incapable', 'Capable'.
+ *
+ * @return the rdmaStatus value
+ */
+ public NetworkAdapterRDMAStatus rdmaStatus() {
+ return this.rdmaStatus;
+ }
+
+ /**
+ * Set value indicating whether this adapter is RDMA capable. Possible values include: 'Incapable', 'Capable'.
+ *
+ * @param rdmaStatus the rdmaStatus value to set
+ * @return the NetworkAdapter object itself.
+ */
+ public NetworkAdapter withRdmaStatus(NetworkAdapterRDMAStatus rdmaStatus) {
+ this.rdmaStatus = rdmaStatus;
+ return this;
+ }
+
+ /**
+ * Get value indicating whether this adapter has DHCP enabled. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @return the dhcpStatus value
+ */
+ public NetworkAdapterDHCPStatus dhcpStatus() {
+ return this.dhcpStatus;
+ }
+
+ /**
+ * Set value indicating whether this adapter has DHCP enabled. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @param dhcpStatus the dhcpStatus value to set
+ * @return the NetworkAdapter object itself.
+ */
+ public NetworkAdapter withDhcpStatus(NetworkAdapterDHCPStatus dhcpStatus) {
+ this.dhcpStatus = dhcpStatus;
+ return this;
+ }
+
+ /**
+ * Get the IPv4 configuration of the network adapter.
+ *
+ * @return the ipv4Configuration value
+ */
+ public Ipv4Config ipv4Configuration() {
+ return this.ipv4Configuration;
+ }
+
+ /**
+ * Get the IPv6 configuration of the network adapter.
+ *
+ * @return the ipv6Configuration value
+ */
+ public Ipv6Config ipv6Configuration() {
+ return this.ipv6Configuration;
+ }
+
+ /**
+ * Get the IPv6 local address.
+ *
+ * @return the ipv6LinkLocalAddress value
+ */
+ public String ipv6LinkLocalAddress() {
+ return this.ipv6LinkLocalAddress;
+ }
+
+ /**
+ * Get the list of DNS Servers of the device.
+ *
+ * @return the dnsServers value
+ */
+ public List dnsServers() {
+ return this.dnsServers;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterDHCPStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterDHCPStatus.java
new file mode 100644
index 000000000000..137fa9f9f9f8
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterDHCPStatus.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NetworkAdapterDHCPStatus.
+ */
+public final class NetworkAdapterDHCPStatus extends ExpandableStringEnum {
+ /** Static value Disabled for NetworkAdapterDHCPStatus. */
+ public static final NetworkAdapterDHCPStatus DISABLED = fromString("Disabled");
+
+ /** Static value Enabled for NetworkAdapterDHCPStatus. */
+ public static final NetworkAdapterDHCPStatus ENABLED = fromString("Enabled");
+
+ /**
+ * Creates or finds a NetworkAdapterDHCPStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NetworkAdapterDHCPStatus
+ */
+ @JsonCreator
+ public static NetworkAdapterDHCPStatus fromString(String name) {
+ return fromString(name, NetworkAdapterDHCPStatus.class);
+ }
+
+ /**
+ * @return known NetworkAdapterDHCPStatus values
+ */
+ public static Collection values() {
+ return values(NetworkAdapterDHCPStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterPosition.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterPosition.java
new file mode 100644
index 000000000000..0ce35dfcf41d
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterPosition.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The network adapter position.
+ */
+public class NetworkAdapterPosition {
+ /**
+ * The network group. Possible values include: 'None', 'NonRDMA', 'RDMA'.
+ */
+ @JsonProperty(value = "networkGroup", access = JsonProperty.Access.WRITE_ONLY)
+ private NetworkGroup networkGroup;
+
+ /**
+ * The port.
+ */
+ @JsonProperty(value = "port", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer port;
+
+ /**
+ * Get the network group. Possible values include: 'None', 'NonRDMA', 'RDMA'.
+ *
+ * @return the networkGroup value
+ */
+ public NetworkGroup networkGroup() {
+ return this.networkGroup;
+ }
+
+ /**
+ * Get the port.
+ *
+ * @return the port value
+ */
+ public Integer port() {
+ return this.port;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterRDMAStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterRDMAStatus.java
new file mode 100644
index 000000000000..be5e3e36497b
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterRDMAStatus.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NetworkAdapterRDMAStatus.
+ */
+public final class NetworkAdapterRDMAStatus extends ExpandableStringEnum {
+ /** Static value Incapable for NetworkAdapterRDMAStatus. */
+ public static final NetworkAdapterRDMAStatus INCAPABLE = fromString("Incapable");
+
+ /** Static value Capable for NetworkAdapterRDMAStatus. */
+ public static final NetworkAdapterRDMAStatus CAPABLE = fromString("Capable");
+
+ /**
+ * Creates or finds a NetworkAdapterRDMAStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NetworkAdapterRDMAStatus
+ */
+ @JsonCreator
+ public static NetworkAdapterRDMAStatus fromString(String name) {
+ return fromString(name, NetworkAdapterRDMAStatus.class);
+ }
+
+ /**
+ * @return known NetworkAdapterRDMAStatus values
+ */
+ public static Collection values() {
+ return values(NetworkAdapterRDMAStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterStatus.java
new file mode 100644
index 000000000000..b7da238bba82
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkAdapterStatus.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NetworkAdapterStatus.
+ */
+public final class NetworkAdapterStatus extends ExpandableStringEnum {
+ /** Static value Inactive for NetworkAdapterStatus. */
+ public static final NetworkAdapterStatus INACTIVE = fromString("Inactive");
+
+ /** Static value Active for NetworkAdapterStatus. */
+ public static final NetworkAdapterStatus ACTIVE = fromString("Active");
+
+ /**
+ * Creates or finds a NetworkAdapterStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NetworkAdapterStatus
+ */
+ @JsonCreator
+ public static NetworkAdapterStatus fromString(String name) {
+ return fromString(name, NetworkAdapterStatus.class);
+ }
+
+ /**
+ * @return known NetworkAdapterStatus values
+ */
+ public static Collection values() {
+ return values(NetworkAdapterStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkGroup.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkGroup.java
new file mode 100644
index 000000000000..612cb01c4941
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkGroup.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NetworkGroup.
+ */
+public final class NetworkGroup extends ExpandableStringEnum {
+ /** Static value None for NetworkGroup. */
+ public static final NetworkGroup NONE = fromString("None");
+
+ /** Static value NonRDMA for NetworkGroup. */
+ public static final NetworkGroup NON_RDMA = fromString("NonRDMA");
+
+ /** Static value RDMA for NetworkGroup. */
+ public static final NetworkGroup RDMA = fromString("RDMA");
+
+ /**
+ * Creates or finds a NetworkGroup from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NetworkGroup
+ */
+ @JsonCreator
+ public static NetworkGroup fromString(String name) {
+ return fromString(name, NetworkGroup.class);
+ }
+
+ /**
+ * @return known NetworkGroup values
+ */
+ public static Collection values() {
+ return values(NetworkGroup.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkSettings.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkSettings.java
new file mode 100644
index 000000000000..0cbf91da2e2d
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NetworkSettings.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.NetworkSettingsInner;
+import java.util.List;
+
+/**
+ * Type representing NetworkSettings.
+ */
+public interface NetworkSettings extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the networkAdapters value.
+ */
+ List networkAdapters();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Node.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Node.java
new file mode 100644
index 000000000000..c856c963952c
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Node.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.NodeInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+
+/**
+ * Type representing Node.
+ */
+public interface Node extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the nodeChassisSerialNumber value.
+ */
+ String nodeChassisSerialNumber();
+
+ /**
+ * @return the nodeDisplayName value.
+ */
+ String nodeDisplayName();
+
+ /**
+ * @return the nodeFriendlySoftwareVersion value.
+ */
+ String nodeFriendlySoftwareVersion();
+
+ /**
+ * @return the nodeHcsVersion value.
+ */
+ String nodeHcsVersion();
+
+ /**
+ * @return the nodeInstanceId value.
+ */
+ String nodeInstanceId();
+
+ /**
+ * @return the nodeSerialNumber value.
+ */
+ String nodeSerialNumber();
+
+ /**
+ * @return the nodeStatus value.
+ */
+ NodeStatus nodeStatus();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NodeStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NodeStatus.java
new file mode 100644
index 000000000000..d5de1cb825c4
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/NodeStatus.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NodeStatus.
+ */
+public final class NodeStatus extends ExpandableStringEnum {
+ /** Static value Unknown for NodeStatus. */
+ public static final NodeStatus UNKNOWN = fromString("Unknown");
+
+ /** Static value Up for NodeStatus. */
+ public static final NodeStatus UP = fromString("Up");
+
+ /** Static value Down for NodeStatus. */
+ public static final NodeStatus DOWN = fromString("Down");
+
+ /** Static value Rebooting for NodeStatus. */
+ public static final NodeStatus REBOOTING = fromString("Rebooting");
+
+ /** Static value ShuttingDown for NodeStatus. */
+ public static final NodeStatus SHUTTING_DOWN = fromString("ShuttingDown");
+
+ /**
+ * Creates or finds a NodeStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NodeStatus
+ */
+ @JsonCreator
+ public static NodeStatus fromString(String name) {
+ return fromString(name, NodeStatus.class);
+ }
+
+ /**
+ * @return known NodeStatus values
+ */
+ public static Collection values() {
+ return values(NodeStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Nodes.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Nodes.java
new file mode 100644
index 000000000000..ffd0e7574bbc
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Nodes.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.NodesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Nodes.
+ */
+public interface Nodes extends HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable listByDataBoxEdgeDeviceAsync(String deviceName, String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Operation.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Operation.java
new file mode 100644
index 000000000000..8550ecc8fe97
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Operation.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the serviceSpecification value.
+ */
+ ServiceSpecification serviceSpecification();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OperationDisplay.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OperationDisplay.java
new file mode 100644
index 000000000000..d0dea2c7120d
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Operation display properties.
+ */
+public class OperationDisplay {
+ /**
+ * Provider name.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * The type of resource in which the operation is performed.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Operation to be performed on the resource.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Description of the operation to be performed.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get provider name.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set provider name.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get the type of resource in which the operation is performed.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the type of resource in which the operation is performed.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get operation to be performed on the resource.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set operation to be performed on the resource.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get description of the operation to be performed.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the operation to be performed.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Operations.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Operations.java
new file mode 100644
index 000000000000..1140eb030f0d
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * List all the supported operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OperationsStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OperationsStatus.java
new file mode 100644
index 000000000000..9964c5191af3
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OperationsStatus.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.OperationsStatusInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing OperationsStatus.
+ */
+public interface OperationsStatus extends HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String deviceName, String name, String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Order.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Order.java
new file mode 100644
index 000000000000..8c4c9f97fc36
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Order.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.OrderInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import java.util.List;
+
+/**
+ * Type representing Order.
+ */
+public interface Order extends HasInner, HasManager {
+ /**
+ * @return the contactInformation value.
+ */
+ ContactDetails contactInformation();
+
+ /**
+ * @return the currentStatus value.
+ */
+ OrderStatus currentStatus();
+
+ /**
+ * @return the deliveryTrackingInfo value.
+ */
+ List deliveryTrackingInfo();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the orderHistory value.
+ */
+ List orderHistory();
+
+ /**
+ * @return the returnTrackingInfo value.
+ */
+ List returnTrackingInfo();
+
+ /**
+ * @return the serialNumber value.
+ */
+ String serialNumber();
+
+ /**
+ * @return the shippingAddress value.
+ */
+ Address shippingAddress();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OrderState.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OrderState.java
new file mode 100644
index 000000000000..e660f80e5a65
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OrderState.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OrderState.
+ */
+public final class OrderState extends ExpandableStringEnum {
+ /** Static value Untracked for OrderState. */
+ public static final OrderState UNTRACKED = fromString("Untracked");
+
+ /** Static value AwaitingFulfilment for OrderState. */
+ public static final OrderState AWAITING_FULFILMENT = fromString("AwaitingFulfilment");
+
+ /** Static value AwaitingPreparation for OrderState. */
+ public static final OrderState AWAITING_PREPARATION = fromString("AwaitingPreparation");
+
+ /** Static value AwaitingShipment for OrderState. */
+ public static final OrderState AWAITING_SHIPMENT = fromString("AwaitingShipment");
+
+ /** Static value Shipped for OrderState. */
+ public static final OrderState SHIPPED = fromString("Shipped");
+
+ /** Static value Arriving for OrderState. */
+ public static final OrderState ARRIVING = fromString("Arriving");
+
+ /** Static value Delivered for OrderState. */
+ public static final OrderState DELIVERED = fromString("Delivered");
+
+ /** Static value ReplacementRequested for OrderState. */
+ public static final OrderState REPLACEMENT_REQUESTED = fromString("ReplacementRequested");
+
+ /** Static value LostDevice for OrderState. */
+ public static final OrderState LOST_DEVICE = fromString("LostDevice");
+
+ /** Static value Declined for OrderState. */
+ public static final OrderState DECLINED = fromString("Declined");
+
+ /** Static value ReturnInitiated for OrderState. */
+ public static final OrderState RETURN_INITIATED = fromString("ReturnInitiated");
+
+ /** Static value AwaitingReturnShipment for OrderState. */
+ public static final OrderState AWAITING_RETURN_SHIPMENT = fromString("AwaitingReturnShipment");
+
+ /** Static value ShippedBack for OrderState. */
+ public static final OrderState SHIPPED_BACK = fromString("ShippedBack");
+
+ /** Static value CollectedAtMicrosoft for OrderState. */
+ public static final OrderState COLLECTED_AT_MICROSOFT = fromString("CollectedAtMicrosoft");
+
+ /**
+ * Creates or finds a OrderState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OrderState
+ */
+ @JsonCreator
+ public static OrderState fromString(String name) {
+ return fromString(name, OrderState.class);
+ }
+
+ /**
+ * @return known OrderState values
+ */
+ public static Collection values() {
+ return values(OrderState.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OrderStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OrderStatus.java
new file mode 100644
index 000000000000..164c108612e4
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/OrderStatus.java
@@ -0,0 +1,107 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import org.joda.time.DateTime;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a single status change.
+ */
+public class OrderStatus {
+ /**
+ * Status of the order as per the allowed status types. Possible values
+ * include: 'Untracked', 'AwaitingFulfilment', 'AwaitingPreparation',
+ * 'AwaitingShipment', 'Shipped', 'Arriving', 'Delivered',
+ * 'ReplacementRequested', 'LostDevice', 'Declined', 'ReturnInitiated',
+ * 'AwaitingReturnShipment', 'ShippedBack', 'CollectedAtMicrosoft'.
+ */
+ @JsonProperty(value = "status", required = true)
+ private OrderState status;
+
+ /**
+ * Time of status update.
+ */
+ @JsonProperty(value = "updateDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime updateDateTime;
+
+ /**
+ * Comments related to this status change.
+ */
+ @JsonProperty(value = "comments")
+ private String comments;
+
+ /**
+ * Dictionary to hold generic information which is not stored
+ * by the already existing properties.
+ */
+ @JsonProperty(value = "additionalOrderDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private Map additionalOrderDetails;
+
+ /**
+ * Get status of the order as per the allowed status types. Possible values include: 'Untracked', 'AwaitingFulfilment', 'AwaitingPreparation', 'AwaitingShipment', 'Shipped', 'Arriving', 'Delivered', 'ReplacementRequested', 'LostDevice', 'Declined', 'ReturnInitiated', 'AwaitingReturnShipment', 'ShippedBack', 'CollectedAtMicrosoft'.
+ *
+ * @return the status value
+ */
+ public OrderState status() {
+ return this.status;
+ }
+
+ /**
+ * Set status of the order as per the allowed status types. Possible values include: 'Untracked', 'AwaitingFulfilment', 'AwaitingPreparation', 'AwaitingShipment', 'Shipped', 'Arriving', 'Delivered', 'ReplacementRequested', 'LostDevice', 'Declined', 'ReturnInitiated', 'AwaitingReturnShipment', 'ShippedBack', 'CollectedAtMicrosoft'.
+ *
+ * @param status the status value to set
+ * @return the OrderStatus object itself.
+ */
+ public OrderStatus withStatus(OrderState status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get time of status update.
+ *
+ * @return the updateDateTime value
+ */
+ public DateTime updateDateTime() {
+ return this.updateDateTime;
+ }
+
+ /**
+ * Get comments related to this status change.
+ *
+ * @return the comments value
+ */
+ public String comments() {
+ return this.comments;
+ }
+
+ /**
+ * Set comments related to this status change.
+ *
+ * @param comments the comments value to set
+ * @return the OrderStatus object itself.
+ */
+ public OrderStatus withComments(String comments) {
+ this.comments = comments;
+ return this;
+ }
+
+ /**
+ * Get dictionary to hold generic information which is not stored
+ by the already existing properties.
+ *
+ * @return the additionalOrderDetails value
+ */
+ public Map additionalOrderDetails() {
+ return this.additionalOrderDetails;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Orders.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Orders.java
new file mode 100644
index 000000000000..95a96a47fc0c
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Orders.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import rx.Observable;
+import rx.Completable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.OrderInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.OrdersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Orders.
+ */
+public interface Orders extends HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String deviceName, String resourceGroupName);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable createOrUpdateAsync(String deviceName, String resourceGroupName, OrderInner order);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDataBoxEdgeDeviceAsync(final String deviceName, final String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PeriodicTimerEventTrigger.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PeriodicTimerEventTrigger.java
new file mode 100644
index 000000000000..c8de060e24f4
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PeriodicTimerEventTrigger.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.TriggerInner;
+
+/**
+ * Trigger details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = PeriodicTimerEventTrigger.class)
+@JsonTypeName("PeriodicTimerEvent")
+@JsonFlatten
+public class PeriodicTimerEventTrigger extends TriggerInner {
+ /**
+ * Periodic timer details.
+ */
+ @JsonProperty(value = "properties.sourceInfo", required = true)
+ private PeriodicTimerSourceInfo sourceInfo;
+
+ /**
+ * Role Sink information.
+ */
+ @JsonProperty(value = "properties.sinkInfo", required = true)
+ private RoleSinkInfo sinkInfo;
+
+ /**
+ * A custom context tag typically used to correlate the trigger against its
+ * usage. For example, if a periodic timer trigger is intended for certain
+ * specific IoT modules in the device, the tag can be the name or the image
+ * URL of the module.
+ */
+ @JsonProperty(value = "properties.customContextTag")
+ private String customContextTag;
+
+ /**
+ * Get periodic timer details.
+ *
+ * @return the sourceInfo value
+ */
+ public PeriodicTimerSourceInfo sourceInfo() {
+ return this.sourceInfo;
+ }
+
+ /**
+ * Set periodic timer details.
+ *
+ * @param sourceInfo the sourceInfo value to set
+ * @return the PeriodicTimerEventTrigger object itself.
+ */
+ public PeriodicTimerEventTrigger withSourceInfo(PeriodicTimerSourceInfo sourceInfo) {
+ this.sourceInfo = sourceInfo;
+ return this;
+ }
+
+ /**
+ * Get role Sink information.
+ *
+ * @return the sinkInfo value
+ */
+ public RoleSinkInfo sinkInfo() {
+ return this.sinkInfo;
+ }
+
+ /**
+ * Set role Sink information.
+ *
+ * @param sinkInfo the sinkInfo value to set
+ * @return the PeriodicTimerEventTrigger object itself.
+ */
+ public PeriodicTimerEventTrigger withSinkInfo(RoleSinkInfo sinkInfo) {
+ this.sinkInfo = sinkInfo;
+ return this;
+ }
+
+ /**
+ * Get a custom context tag typically used to correlate the trigger against its usage. For example, if a periodic timer trigger is intended for certain specific IoT modules in the device, the tag can be the name or the image URL of the module.
+ *
+ * @return the customContextTag value
+ */
+ public String customContextTag() {
+ return this.customContextTag;
+ }
+
+ /**
+ * Set a custom context tag typically used to correlate the trigger against its usage. For example, if a periodic timer trigger is intended for certain specific IoT modules in the device, the tag can be the name or the image URL of the module.
+ *
+ * @param customContextTag the customContextTag value to set
+ * @return the PeriodicTimerEventTrigger object itself.
+ */
+ public PeriodicTimerEventTrigger withCustomContextTag(String customContextTag) {
+ this.customContextTag = customContextTag;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PeriodicTimerSourceInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PeriodicTimerSourceInfo.java
new file mode 100644
index 000000000000..5a91dc419790
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PeriodicTimerSourceInfo.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Periodic timer event source.
+ */
+public class PeriodicTimerSourceInfo {
+ /**
+ * The time of the day that results in a valid trigger. Schedule is
+ * computed with reference to the time specified upto seconds. If timezone
+ * is not specified the time will considered to be in device timezone. The
+ * value will always be returned as UTC time.
+ */
+ @JsonProperty(value = "startTime", required = true)
+ private DateTime startTime;
+
+ /**
+ * Periodic frequency at which timer event needs to be raised. Supports
+ * daily, hourly, minutes, and seconds.
+ */
+ @JsonProperty(value = "schedule", required = true)
+ private String schedule;
+
+ /**
+ * Topic where periodic events are published to IoT device.
+ */
+ @JsonProperty(value = "topic")
+ private String topic;
+
+ /**
+ * Get the time of the day that results in a valid trigger. Schedule is computed with reference to the time specified upto seconds. If timezone is not specified the time will considered to be in device timezone. The value will always be returned as UTC time.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the time of the day that results in a valid trigger. Schedule is computed with reference to the time specified upto seconds. If timezone is not specified the time will considered to be in device timezone. The value will always be returned as UTC time.
+ *
+ * @param startTime the startTime value to set
+ * @return the PeriodicTimerSourceInfo object itself.
+ */
+ public PeriodicTimerSourceInfo withStartTime(DateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get periodic frequency at which timer event needs to be raised. Supports daily, hourly, minutes, and seconds.
+ *
+ * @return the schedule value
+ */
+ public String schedule() {
+ return this.schedule;
+ }
+
+ /**
+ * Set periodic frequency at which timer event needs to be raised. Supports daily, hourly, minutes, and seconds.
+ *
+ * @param schedule the schedule value to set
+ * @return the PeriodicTimerSourceInfo object itself.
+ */
+ public PeriodicTimerSourceInfo withSchedule(String schedule) {
+ this.schedule = schedule;
+ return this;
+ }
+
+ /**
+ * Get topic where periodic events are published to IoT device.
+ *
+ * @return the topic value
+ */
+ public String topic() {
+ return this.topic;
+ }
+
+ /**
+ * Set topic where periodic events are published to IoT device.
+ *
+ * @param topic the topic value to set
+ * @return the PeriodicTimerSourceInfo object itself.
+ */
+ public PeriodicTimerSourceInfo withTopic(String topic) {
+ this.topic = topic;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PlatformType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PlatformType.java
new file mode 100644
index 000000000000..0c1e99c8b9d5
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/PlatformType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PlatformType.
+ */
+public final class PlatformType extends ExpandableStringEnum {
+ /** Static value Windows for PlatformType. */
+ public static final PlatformType WINDOWS = fromString("Windows");
+
+ /** Static value Linux for PlatformType. */
+ public static final PlatformType LINUX = fromString("Linux");
+
+ /**
+ * Creates or finds a PlatformType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PlatformType
+ */
+ @JsonCreator
+ public static PlatformType fromString(String name) {
+ return fromString(name, PlatformType.class);
+ }
+
+ /**
+ * @return known PlatformType values
+ */
+ public static Collection values() {
+ return values(PlatformType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RefreshDetails.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RefreshDetails.java
new file mode 100644
index 000000000000..3fa574b13339
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RefreshDetails.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Fields for tracking refresh job on the share or container.
+ */
+public class RefreshDetails {
+ /**
+ * If a refresh job is currently in progress on this share or container,
+ * this field indicates the ARM resource ID of that job. The field is empty
+ * if no job is in progress.
+ */
+ @JsonProperty(value = "inProgressRefreshJobId")
+ private String inProgressRefreshJobId;
+
+ /**
+ * Indicates the completed time for the last refresh job on this particular
+ * share or container, if any.This could be a failed job or a successful
+ * job.
+ */
+ @JsonProperty(value = "lastCompletedRefreshJobTimeInUTC")
+ private DateTime lastCompletedRefreshJobTimeInUTC;
+
+ /**
+ * Indicates the relative path of the error xml for the last refresh job on
+ * this particular share or container, if any. This could be a failed job
+ * or a successful job.
+ */
+ @JsonProperty(value = "errorManifestFile")
+ private String errorManifestFile;
+
+ /**
+ * Indicates the id of the last refresh job on this particular share or
+ * container,if any. This could be a failed job or a successful job.
+ */
+ @JsonProperty(value = "lastJob")
+ private String lastJob;
+
+ /**
+ * Get if a refresh job is currently in progress on this share or container, this field indicates the ARM resource ID of that job. The field is empty if no job is in progress.
+ *
+ * @return the inProgressRefreshJobId value
+ */
+ public String inProgressRefreshJobId() {
+ return this.inProgressRefreshJobId;
+ }
+
+ /**
+ * Set if a refresh job is currently in progress on this share or container, this field indicates the ARM resource ID of that job. The field is empty if no job is in progress.
+ *
+ * @param inProgressRefreshJobId the inProgressRefreshJobId value to set
+ * @return the RefreshDetails object itself.
+ */
+ public RefreshDetails withInProgressRefreshJobId(String inProgressRefreshJobId) {
+ this.inProgressRefreshJobId = inProgressRefreshJobId;
+ return this;
+ }
+
+ /**
+ * Get indicates the completed time for the last refresh job on this particular share or container, if any.This could be a failed job or a successful job.
+ *
+ * @return the lastCompletedRefreshJobTimeInUTC value
+ */
+ public DateTime lastCompletedRefreshJobTimeInUTC() {
+ return this.lastCompletedRefreshJobTimeInUTC;
+ }
+
+ /**
+ * Set indicates the completed time for the last refresh job on this particular share or container, if any.This could be a failed job or a successful job.
+ *
+ * @param lastCompletedRefreshJobTimeInUTC the lastCompletedRefreshJobTimeInUTC value to set
+ * @return the RefreshDetails object itself.
+ */
+ public RefreshDetails withLastCompletedRefreshJobTimeInUTC(DateTime lastCompletedRefreshJobTimeInUTC) {
+ this.lastCompletedRefreshJobTimeInUTC = lastCompletedRefreshJobTimeInUTC;
+ return this;
+ }
+
+ /**
+ * Get indicates the relative path of the error xml for the last refresh job on this particular share or container, if any. This could be a failed job or a successful job.
+ *
+ * @return the errorManifestFile value
+ */
+ public String errorManifestFile() {
+ return this.errorManifestFile;
+ }
+
+ /**
+ * Set indicates the relative path of the error xml for the last refresh job on this particular share or container, if any. This could be a failed job or a successful job.
+ *
+ * @param errorManifestFile the errorManifestFile value to set
+ * @return the RefreshDetails object itself.
+ */
+ public RefreshDetails withErrorManifestFile(String errorManifestFile) {
+ this.errorManifestFile = errorManifestFile;
+ return this;
+ }
+
+ /**
+ * Get indicates the id of the last refresh job on this particular share or container,if any. This could be a failed job or a successful job.
+ *
+ * @return the lastJob value
+ */
+ public String lastJob() {
+ return this.lastJob;
+ }
+
+ /**
+ * Set indicates the id of the last refresh job on this particular share or container,if any. This could be a failed job or a successful job.
+ *
+ * @param lastJob the lastJob value to set
+ * @return the RefreshDetails object itself.
+ */
+ public RefreshDetails withLastJob(String lastJob) {
+ this.lastJob = lastJob;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ResourceTypeSku.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ResourceTypeSku.java
new file mode 100644
index 000000000000..49ea2e3db583
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ResourceTypeSku.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.ResourceTypeSkuInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import java.util.List;
+
+/**
+ * Type representing ResourceTypeSku.
+ */
+public interface ResourceTypeSku extends HasInner, HasManager {
+ /**
+ * @return the apiVersions value.
+ */
+ List apiVersions();
+
+ /**
+ * @return the costs value.
+ */
+ List costs();
+
+ /**
+ * @return the family value.
+ */
+ String family();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the locationInfo value.
+ */
+ List locationInfo();
+
+ /**
+ * @return the locations value.
+ */
+ List locations();
+
+ /**
+ * @return the name value.
+ */
+ SkuName name();
+
+ /**
+ * @return the resourceType value.
+ */
+ String resourceType();
+
+ /**
+ * @return the restrictions value.
+ */
+ List restrictions();
+
+ /**
+ * @return the tier value.
+ */
+ SkuTier tier();
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Role.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Role.java
new file mode 100644
index 000000000000..df04867df89a
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Role.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.RoleInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+
+/**
+ * Type representing Role.
+ */
+public interface Role extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Role definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDataBoxEdgeDevice, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Role definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Role definition.
+ */
+ interface Blank extends WithDataBoxEdgeDevice {
+ }
+
+ /**
+ * The stage of the role definition allowing to specify DataBoxEdgeDevice.
+ */
+ interface WithDataBoxEdgeDevice {
+ /**
+ * Specifies deviceName, resourceGroupName.
+ * @param deviceName The device name
+ * @param resourceGroupName The resource group name
+ * @return the next definition stage
+ */
+ WithCreate withExistingDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a Role update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of Role update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleSinkInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleSinkInfo.java
new file mode 100644
index 000000000000..825bfbd2609d
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleSinkInfo.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Compute role against which events will be raised.
+ */
+public class RoleSinkInfo {
+ /**
+ * Compute role ID.
+ */
+ @JsonProperty(value = "roleId", required = true)
+ private String roleId;
+
+ /**
+ * Get compute role ID.
+ *
+ * @return the roleId value
+ */
+ public String roleId() {
+ return this.roleId;
+ }
+
+ /**
+ * Set compute role ID.
+ *
+ * @param roleId the roleId value to set
+ * @return the RoleSinkInfo object itself.
+ */
+ public RoleSinkInfo withRoleId(String roleId) {
+ this.roleId = roleId;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleStatus.java
new file mode 100644
index 000000000000..31d086310e3e
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleStatus.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for RoleStatus.
+ */
+public final class RoleStatus extends ExpandableStringEnum {
+ /** Static value Enabled for RoleStatus. */
+ public static final RoleStatus ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for RoleStatus. */
+ public static final RoleStatus DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a RoleStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding RoleStatus
+ */
+ @JsonCreator
+ public static RoleStatus fromString(String name) {
+ return fromString(name, RoleStatus.class);
+ }
+
+ /**
+ * @return known RoleStatus values
+ */
+ public static Collection values() {
+ return values(RoleStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleTypes.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleTypes.java
new file mode 100644
index 000000000000..ccd9f58f90fc
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/RoleTypes.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for RoleTypes.
+ */
+public final class RoleTypes extends ExpandableStringEnum {
+ /** Static value IOT for RoleTypes. */
+ public static final RoleTypes IOT = fromString("IOT");
+
+ /** Static value ASA for RoleTypes. */
+ public static final RoleTypes ASA = fromString("ASA");
+
+ /** Static value Functions for RoleTypes. */
+ public static final RoleTypes FUNCTIONS = fromString("Functions");
+
+ /** Static value Cognitive for RoleTypes. */
+ public static final RoleTypes COGNITIVE = fromString("Cognitive");
+
+ /**
+ * Creates or finds a RoleTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding RoleTypes
+ */
+ @JsonCreator
+ public static RoleTypes fromString(String name) {
+ return fromString(name, RoleTypes.class);
+ }
+
+ /**
+ * @return known RoleTypes values
+ */
+ public static Collection values() {
+ return values(RoleTypes.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Roles.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Roles.java
new file mode 100644
index 000000000000..4af4eb6989d6
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Roles.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.RolesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Roles.
+ */
+public interface Roles extends SupportsCreating, HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String deviceName, String name, 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDataBoxEdgeDeviceAsync(final String deviceName, final String resourceGroupName);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String deviceName, String name, String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SKUCapability.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SKUCapability.java
new file mode 100644
index 000000000000..a4ddeb9edd8f
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SKUCapability.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The capabilities of the SKU.
+ */
+public class SKUCapability {
+ /**
+ * The capability name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * The capability value.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private String value;
+
+ /**
+ * Get the capability name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the capability value.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SKUCost.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SKUCost.java
new file mode 100644
index 000000000000..68420b79eef5
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SKUCost.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The cost of the SKU.
+ */
+public class SKUCost {
+ /**
+ * The meter id.
+ */
+ @JsonProperty(value = "meterId", access = JsonProperty.Access.WRITE_ONLY)
+ private String meterId;
+
+ /**
+ * The quantity.
+ */
+ @JsonProperty(value = "quantity", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer quantity;
+
+ /**
+ * The extended unit.
+ */
+ @JsonProperty(value = "extendedUnit", access = JsonProperty.Access.WRITE_ONLY)
+ private String extendedUnit;
+
+ /**
+ * Get the meter id.
+ *
+ * @return the meterId value
+ */
+ public String meterId() {
+ return this.meterId;
+ }
+
+ /**
+ * Get the quantity.
+ *
+ * @return the quantity value
+ */
+ public Integer quantity() {
+ return this.quantity;
+ }
+
+ /**
+ * Get the extended unit.
+ *
+ * @return the extendedUnit value
+ */
+ public String extendedUnit() {
+ return this.extendedUnit;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SSLStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SSLStatus.java
new file mode 100644
index 000000000000..54afeb870e22
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SSLStatus.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SSLStatus.
+ */
+public final class SSLStatus extends ExpandableStringEnum {
+ /** Static value Enabled for SSLStatus. */
+ public static final SSLStatus ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for SSLStatus. */
+ public static final SSLStatus DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a SSLStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SSLStatus
+ */
+ @JsonCreator
+ public static SSLStatus fromString(String name) {
+ return fromString(name, SSLStatus.class);
+ }
+
+ /**
+ * @return known SSLStatus values
+ */
+ public static Collection values() {
+ return values(SSLStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SecuritySettings.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SecuritySettings.java
new file mode 100644
index 000000000000..5911dc3b7e3b
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SecuritySettings.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The security settings of a device.
+ */
+@JsonFlatten
+public class SecuritySettings extends ARMBaseModel {
+ /**
+ * Device administrator password as an encrypted string (encrypted using
+ * RSA PKCS #1) is used to sign into the local web UI of the device. The
+ * Actual password should have at least 8 characters that are a combination
+ * of uppercase, lowercase, numeric, and special characters.
+ */
+ @JsonProperty(value = "properties.deviceAdminPassword", required = true)
+ private AsymmetricEncryptedSecret deviceAdminPassword;
+
+ /**
+ * Get device administrator password as an encrypted string (encrypted using RSA PKCS #1) is used to sign into the local web UI of the device. The Actual password should have at least 8 characters that are a combination of uppercase, lowercase, numeric, and special characters.
+ *
+ * @return the deviceAdminPassword value
+ */
+ public AsymmetricEncryptedSecret deviceAdminPassword() {
+ return this.deviceAdminPassword;
+ }
+
+ /**
+ * Set device administrator password as an encrypted string (encrypted using RSA PKCS #1) is used to sign into the local web UI of the device. The Actual password should have at least 8 characters that are a combination of uppercase, lowercase, numeric, and special characters.
+ *
+ * @param deviceAdminPassword the deviceAdminPassword value to set
+ * @return the SecuritySettings object itself.
+ */
+ public SecuritySettings withDeviceAdminPassword(AsymmetricEncryptedSecret deviceAdminPassword) {
+ this.deviceAdminPassword = deviceAdminPassword;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ServiceSpecification.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ServiceSpecification.java
new file mode 100644
index 000000000000..7ad1c7d100c0
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ServiceSpecification.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Service specification.
+ */
+public class ServiceSpecification {
+ /**
+ * Metric specification as defined by shoebox.
+ */
+ @JsonProperty(value = "metricSpecifications")
+ private List metricSpecifications;
+
+ /**
+ * Get metric specification as defined by shoebox.
+ *
+ * @return the metricSpecifications value
+ */
+ public List metricSpecifications() {
+ return this.metricSpecifications;
+ }
+
+ /**
+ * Set metric specification as defined by shoebox.
+ *
+ * @param metricSpecifications the metricSpecifications value to set
+ * @return the ServiceSpecification object itself.
+ */
+ public ServiceSpecification withMetricSpecifications(List metricSpecifications) {
+ this.metricSpecifications = metricSpecifications;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Share.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Share.java
new file mode 100644
index 000000000000..4ec5d048f506
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Share.java
@@ -0,0 +1,319 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.ShareInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.DataBoxEdgeManager;
+import java.util.List;
+
+/**
+ * Type representing Share.
+ */
+public interface Share extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the accessProtocol value.
+ */
+ ShareAccessProtocol accessProtocol();
+
+ /**
+ * @return the azureContainerInfo value.
+ */
+ AzureContainerInfo azureContainerInfo();
+
+ /**
+ * @return the clientAccessRights value.
+ */
+ List clientAccessRights();
+
+ /**
+ * @return the dataPolicy value.
+ */
+ DataPolicy dataPolicy();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the monitoringStatus value.
+ */
+ MonitoringStatus monitoringStatus();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the refreshDetails value.
+ */
+ RefreshDetails refreshDetails();
+
+ /**
+ * @return the shareMappings value.
+ */
+ List shareMappings();
+
+ /**
+ * @return the shareStatus value.
+ */
+ ShareStatus shareStatus();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the userAccessRights value.
+ */
+ List userAccessRights();
+
+ /**
+ * The entirety of the Share definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDataBoxEdgeDevice, DefinitionStages.WithAccessProtocol, DefinitionStages.WithMonitoringStatus, DefinitionStages.WithShareStatus, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Share definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Share definition.
+ */
+ interface Blank extends WithDataBoxEdgeDevice {
+ }
+
+ /**
+ * The stage of the share definition allowing to specify DataBoxEdgeDevice.
+ */
+ interface WithDataBoxEdgeDevice {
+ /**
+ * Specifies deviceName, resourceGroupName.
+ * @param deviceName The device name
+ * @param resourceGroupName The resource group name
+ * @return the next definition stage
+ */
+ WithAccessProtocol withExistingDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify AccessProtocol.
+ */
+ interface WithAccessProtocol {
+ /**
+ * Specifies accessProtocol.
+ * @param accessProtocol Access protocol to be used by the share. Possible values include: 'SMB', 'NFS'
+ * @return the next definition stage
+ */
+ WithMonitoringStatus withAccessProtocol(ShareAccessProtocol accessProtocol);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify MonitoringStatus.
+ */
+ interface WithMonitoringStatus {
+ /**
+ * Specifies monitoringStatus.
+ * @param monitoringStatus Current monitoring status of the share. Possible values include: 'Enabled', 'Disabled'
+ * @return the next definition stage
+ */
+ WithShareStatus withMonitoringStatus(MonitoringStatus monitoringStatus);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify ShareStatus.
+ */
+ interface WithShareStatus {
+ /**
+ * Specifies shareStatus.
+ * @param shareStatus Current status of the share. Possible values include: 'Offline', 'Unknown', 'OK', 'Updating', 'NeedsAttention'
+ * @return the next definition stage
+ */
+ WithCreate withShareStatus(ShareStatus shareStatus);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify AzureContainerInfo.
+ */
+ interface WithAzureContainerInfo {
+ /**
+ * Specifies azureContainerInfo.
+ * @param azureContainerInfo Azure container mapping for the share
+ * @return the next definition stage
+ */
+ WithCreate withAzureContainerInfo(AzureContainerInfo azureContainerInfo);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify ClientAccessRights.
+ */
+ interface WithClientAccessRights {
+ /**
+ * Specifies clientAccessRights.
+ * @param clientAccessRights List of IP addresses and corresponding access rights on the share(required for NFS protocol)
+ * @return the next definition stage
+ */
+ WithCreate withClientAccessRights(List clientAccessRights);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify DataPolicy.
+ */
+ interface WithDataPolicy {
+ /**
+ * Specifies dataPolicy.
+ * @param dataPolicy Data policy of the share. Possible values include: 'Cloud', 'Local'
+ * @return the next definition stage
+ */
+ WithCreate withDataPolicy(DataPolicy dataPolicy);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description for the share
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify RefreshDetails.
+ */
+ interface WithRefreshDetails {
+ /**
+ * Specifies refreshDetails.
+ * @param refreshDetails Details of the refresh job on this share
+ * @return the next definition stage
+ */
+ WithCreate withRefreshDetails(RefreshDetails refreshDetails);
+ }
+
+ /**
+ * The stage of the share definition allowing to specify UserAccessRights.
+ */
+ interface WithUserAccessRights {
+ /**
+ * Specifies userAccessRights.
+ * @param userAccessRights Mapping of users and corresponding access rights on the share (required for SMB protocol)
+ * @return the next definition stage
+ */
+ WithCreate withUserAccessRights(List userAccessRights);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithAzureContainerInfo, DefinitionStages.WithClientAccessRights, DefinitionStages.WithDataPolicy, DefinitionStages.WithDescription, DefinitionStages.WithRefreshDetails, DefinitionStages.WithUserAccessRights {
+ }
+ }
+ /**
+ * The template for a Share update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAzureContainerInfo, UpdateStages.WithClientAccessRights, UpdateStages.WithDataPolicy, UpdateStages.WithDescription, UpdateStages.WithRefreshDetails, UpdateStages.WithUserAccessRights {
+ }
+
+ /**
+ * Grouping of Share update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the share update allowing to specify AzureContainerInfo.
+ */
+ interface WithAzureContainerInfo {
+ /**
+ * Specifies azureContainerInfo.
+ * @param azureContainerInfo Azure container mapping for the share
+ * @return the next update stage
+ */
+ Update withAzureContainerInfo(AzureContainerInfo azureContainerInfo);
+ }
+
+ /**
+ * The stage of the share update allowing to specify ClientAccessRights.
+ */
+ interface WithClientAccessRights {
+ /**
+ * Specifies clientAccessRights.
+ * @param clientAccessRights List of IP addresses and corresponding access rights on the share(required for NFS protocol)
+ * @return the next update stage
+ */
+ Update withClientAccessRights(List clientAccessRights);
+ }
+
+ /**
+ * The stage of the share update allowing to specify DataPolicy.
+ */
+ interface WithDataPolicy {
+ /**
+ * Specifies dataPolicy.
+ * @param dataPolicy Data policy of the share. Possible values include: 'Cloud', 'Local'
+ * @return the next update stage
+ */
+ Update withDataPolicy(DataPolicy dataPolicy);
+ }
+
+ /**
+ * The stage of the share update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description for the share
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the share update allowing to specify RefreshDetails.
+ */
+ interface WithRefreshDetails {
+ /**
+ * Specifies refreshDetails.
+ * @param refreshDetails Details of the refresh job on this share
+ * @return the next update stage
+ */
+ Update withRefreshDetails(RefreshDetails refreshDetails);
+ }
+
+ /**
+ * The stage of the share update allowing to specify UserAccessRights.
+ */
+ interface WithUserAccessRights {
+ /**
+ * Specifies userAccessRights.
+ * @param userAccessRights Mapping of users and corresponding access rights on the share (required for SMB protocol)
+ * @return the next update stage
+ */
+ Update withUserAccessRights(List userAccessRights);
+ }
+
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessProtocol.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessProtocol.java
new file mode 100644
index 000000000000..7a0af14cdd62
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessProtocol.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ShareAccessProtocol.
+ */
+public final class ShareAccessProtocol extends ExpandableStringEnum {
+ /** Static value SMB for ShareAccessProtocol. */
+ public static final ShareAccessProtocol SMB = fromString("SMB");
+
+ /** Static value NFS for ShareAccessProtocol. */
+ public static final ShareAccessProtocol NFS = fromString("NFS");
+
+ /**
+ * Creates or finds a ShareAccessProtocol from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ShareAccessProtocol
+ */
+ @JsonCreator
+ public static ShareAccessProtocol fromString(String name) {
+ return fromString(name, ShareAccessProtocol.class);
+ }
+
+ /**
+ * @return known ShareAccessProtocol values
+ */
+ public static Collection values() {
+ return values(ShareAccessProtocol.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessRight.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessRight.java
new file mode 100644
index 000000000000..5cdc340ad154
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessRight.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Specifies the mapping between this particular user and the type of access he
+ * has on shares on this device.
+ */
+public class ShareAccessRight {
+ /**
+ * The share ID.
+ */
+ @JsonProperty(value = "shareId", required = true)
+ private String shareId;
+
+ /**
+ * Type of access to be allowed on the share for this user. Possible values
+ * include: 'Change', 'Read', 'Custom'.
+ */
+ @JsonProperty(value = "accessType", required = true)
+ private ShareAccessType accessType;
+
+ /**
+ * Get the share ID.
+ *
+ * @return the shareId value
+ */
+ public String shareId() {
+ return this.shareId;
+ }
+
+ /**
+ * Set the share ID.
+ *
+ * @param shareId the shareId value to set
+ * @return the ShareAccessRight object itself.
+ */
+ public ShareAccessRight withShareId(String shareId) {
+ this.shareId = shareId;
+ return this;
+ }
+
+ /**
+ * Get type of access to be allowed on the share for this user. Possible values include: 'Change', 'Read', 'Custom'.
+ *
+ * @return the accessType value
+ */
+ public ShareAccessType accessType() {
+ return this.accessType;
+ }
+
+ /**
+ * Set type of access to be allowed on the share for this user. Possible values include: 'Change', 'Read', 'Custom'.
+ *
+ * @param accessType the accessType value to set
+ * @return the ShareAccessRight object itself.
+ */
+ public ShareAccessRight withAccessType(ShareAccessType accessType) {
+ this.accessType = accessType;
+ return this;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessType.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessType.java
new file mode 100644
index 000000000000..9d7a86b0d5e5
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareAccessType.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ShareAccessType.
+ */
+public final class ShareAccessType extends ExpandableStringEnum {
+ /** Static value Change for ShareAccessType. */
+ public static final ShareAccessType CHANGE = fromString("Change");
+
+ /** Static value Read for ShareAccessType. */
+ public static final ShareAccessType READ = fromString("Read");
+
+ /** Static value Custom for ShareAccessType. */
+ public static final ShareAccessType CUSTOM = fromString("Custom");
+
+ /**
+ * Creates or finds a ShareAccessType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ShareAccessType
+ */
+ @JsonCreator
+ public static ShareAccessType fromString(String name) {
+ return fromString(name, ShareAccessType.class);
+ }
+
+ /**
+ * @return known ShareAccessType values
+ */
+ public static Collection values() {
+ return values(ShareAccessType.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareStatus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareStatus.java
new file mode 100644
index 000000000000..adbe9d814265
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/ShareStatus.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ShareStatus.
+ */
+public final class ShareStatus extends ExpandableStringEnum {
+ /** Static value Offline for ShareStatus. */
+ public static final ShareStatus OFFLINE = fromString("Offline");
+
+ /** Static value Unknown for ShareStatus. */
+ public static final ShareStatus UNKNOWN = fromString("Unknown");
+
+ /** Static value OK for ShareStatus. */
+ public static final ShareStatus OK = fromString("OK");
+
+ /** Static value Updating for ShareStatus. */
+ public static final ShareStatus UPDATING = fromString("Updating");
+
+ /** Static value NeedsAttention for ShareStatus. */
+ public static final ShareStatus NEEDS_ATTENTION = fromString("NeedsAttention");
+
+ /**
+ * Creates or finds a ShareStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ShareStatus
+ */
+ @JsonCreator
+ public static ShareStatus fromString(String name) {
+ return fromString(name, ShareStatus.class);
+ }
+
+ /**
+ * @return known ShareStatus values
+ */
+ public static Collection values() {
+ return values(ShareStatus.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Shares.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Shares.java
new file mode 100644
index 000000000000..db07ed2f3559
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Shares.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.SharesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Shares.
+ */
+public interface Shares extends SupportsCreating, HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable refreshAsync(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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String deviceName, String name, 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDataBoxEdgeDeviceAsync(final String deviceName, final 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String deviceName, String name, String resourceGroupName);
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuAvailability.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuAvailability.java
new file mode 100644
index 000000000000..2aa4e46d9a5a
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuAvailability.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuAvailability.
+ */
+public final class SkuAvailability extends ExpandableStringEnum {
+ /** Static value Available for SkuAvailability. */
+ public static final SkuAvailability AVAILABLE = fromString("Available");
+
+ /** Static value Unavailable for SkuAvailability. */
+ public static final SkuAvailability UNAVAILABLE = fromString("Unavailable");
+
+ /**
+ * Creates or finds a SkuAvailability from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuAvailability
+ */
+ @JsonCreator
+ public static SkuAvailability fromString(String name) {
+ return fromString(name, SkuAvailability.class);
+ }
+
+ /**
+ * @return known SkuAvailability values
+ */
+ public static Collection values() {
+ return values(SkuAvailability.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuCost.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuCost.java
new file mode 100644
index 000000000000..5c2e76c85471
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuCost.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The metadata for retrieving price info.
+ */
+public class SkuCost {
+ /**
+ * Used for querying price from commerce.
+ */
+ @JsonProperty(value = "meterId", access = JsonProperty.Access.WRITE_ONLY)
+ private String meterId;
+
+ /**
+ * The cost quantity.
+ */
+ @JsonProperty(value = "quantity", access = JsonProperty.Access.WRITE_ONLY)
+ private Long quantity;
+
+ /**
+ * The extended unit.
+ */
+ @JsonProperty(value = "extendedUnit", access = JsonProperty.Access.WRITE_ONLY)
+ private String extendedUnit;
+
+ /**
+ * Get used for querying price from commerce.
+ *
+ * @return the meterId value
+ */
+ public String meterId() {
+ return this.meterId;
+ }
+
+ /**
+ * Get the cost quantity.
+ *
+ * @return the quantity value
+ */
+ public Long quantity() {
+ return this.quantity;
+ }
+
+ /**
+ * Get the extended unit.
+ *
+ * @return the extendedUnit value
+ */
+ public String extendedUnit() {
+ return this.extendedUnit;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuInformation.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuInformation.java
new file mode 100644
index 000000000000..938658201977
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuInformation.java
@@ -0,0 +1,198 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Sku information.
+ */
+public class SkuInformation {
+ /**
+ * The resource type.
+ */
+ @JsonProperty(value = "resourceType", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceType;
+
+ /**
+ * The sku name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * The sku tier.
+ */
+ @JsonProperty(value = "tier", access = JsonProperty.Access.WRITE_ONLY)
+ private String tier;
+
+ /**
+ * The sku kind.
+ */
+ @JsonProperty(value = "kind", access = JsonProperty.Access.WRITE_ONLY)
+ private String kind;
+
+ /**
+ * The sku size.
+ */
+ @JsonProperty(value = "size", access = JsonProperty.Access.WRITE_ONLY)
+ private String size;
+
+ /**
+ * The sku family.
+ */
+ @JsonProperty(value = "family", access = JsonProperty.Access.WRITE_ONLY)
+ private String family;
+
+ /**
+ * The locations where Sku is available.
+ */
+ @JsonProperty(value = "locations", access = JsonProperty.Access.WRITE_ONLY)
+ private List locations;
+
+ /**
+ * The locations where Sku is available with zones and sites info.
+ */
+ @JsonProperty(value = "locationInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private List locationInfo;
+
+ /**
+ * The required quotaIds for the sku to be available.
+ */
+ @JsonProperty(value = "requiredQuotaIds", access = JsonProperty.Access.WRITE_ONLY)
+ private List requiredQuotaIds;
+
+ /**
+ * The required features for the sku to be available.
+ */
+ @JsonProperty(value = "requiredFeatures", access = JsonProperty.Access.WRITE_ONLY)
+ private List requiredFeatures;
+
+ /**
+ * The cost of the SKU.
+ */
+ @JsonProperty(value = "costs", access = JsonProperty.Access.WRITE_ONLY)
+ private List costs;
+
+ /**
+ * The capabilities of the SKU.
+ */
+ @JsonProperty(value = "capabilities", access = JsonProperty.Access.WRITE_ONLY)
+ private List capabilities;
+
+ /**
+ * Get the resource type.
+ *
+ * @return the resourceType value
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Get the sku name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the sku tier.
+ *
+ * @return the tier value
+ */
+ public String tier() {
+ return this.tier;
+ }
+
+ /**
+ * Get the sku kind.
+ *
+ * @return the kind value
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Get the sku size.
+ *
+ * @return the size value
+ */
+ public String size() {
+ return this.size;
+ }
+
+ /**
+ * Get the sku family.
+ *
+ * @return the family value
+ */
+ public String family() {
+ return this.family;
+ }
+
+ /**
+ * Get the locations where Sku is available.
+ *
+ * @return the locations value
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Get the locations where Sku is available with zones and sites info.
+ *
+ * @return the locationInfo value
+ */
+ public List locationInfo() {
+ return this.locationInfo;
+ }
+
+ /**
+ * Get the required quotaIds for the sku to be available.
+ *
+ * @return the requiredQuotaIds value
+ */
+ public List requiredQuotaIds() {
+ return this.requiredQuotaIds;
+ }
+
+ /**
+ * Get the required features for the sku to be available.
+ *
+ * @return the requiredFeatures value
+ */
+ public List requiredFeatures() {
+ return this.requiredFeatures;
+ }
+
+ /**
+ * Get the cost of the SKU.
+ *
+ * @return the costs value
+ */
+ public List costs() {
+ return this.costs;
+ }
+
+ /**
+ * Get the capabilities of the SKU.
+ *
+ * @return the capabilities value
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuLocationInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuLocationInfo.java
new file mode 100644
index 000000000000..f390ff891fd2
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuLocationInfo.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The location info.
+ */
+public class SkuLocationInfo {
+ /**
+ * The location.
+ */
+ @JsonProperty(value = "location", access = JsonProperty.Access.WRITE_ONLY)
+ private String location;
+
+ /**
+ * The zones.
+ */
+ @JsonProperty(value = "zones", access = JsonProperty.Access.WRITE_ONLY)
+ private List zones;
+
+ /**
+ * The sites.
+ */
+ @JsonProperty(value = "sites", access = JsonProperty.Access.WRITE_ONLY)
+ private List sites;
+
+ /**
+ * Get the location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Get the zones.
+ *
+ * @return the zones value
+ */
+ public List zones() {
+ return this.zones;
+ }
+
+ /**
+ * Get the sites.
+ *
+ * @return the sites value
+ */
+ public List sites() {
+ return this.sites;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuName.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuName.java
new file mode 100644
index 000000000000..d1f3cd386048
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuName.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuName.
+ */
+public final class SkuName extends ExpandableStringEnum {
+ /** Static value Gateway for SkuName. */
+ public static final SkuName GATEWAY = fromString("Gateway");
+
+ /** Static value Edge for SkuName. */
+ public static final SkuName EDGE = fromString("Edge");
+
+ /** Static value TEA_1Node for SkuName. */
+ public static final SkuName TEA_1NODE = fromString("TEA_1Node");
+
+ /** Static value TEA_1Node_UPS for SkuName. */
+ public static final SkuName TEA_1NODE_UPS = fromString("TEA_1Node_UPS");
+
+ /** Static value TEA_1Node_Heater for SkuName. */
+ public static final SkuName TEA_1NODE_HEATER = fromString("TEA_1Node_Heater");
+
+ /** Static value TEA_1Node_UPS_Heater for SkuName. */
+ public static final SkuName TEA_1NODE_UPS_HEATER = fromString("TEA_1Node_UPS_Heater");
+
+ /** Static value TEA_4Node_Heater for SkuName. */
+ public static final SkuName TEA_4NODE_HEATER = fromString("TEA_4Node_Heater");
+
+ /** Static value TEA_4Node_UPS_Heater for SkuName. */
+ public static final SkuName TEA_4NODE_UPS_HEATER = fromString("TEA_4Node_UPS_Heater");
+
+ /** Static value TMA for SkuName. */
+ public static final SkuName TMA = fromString("TMA");
+
+ /** Static value TDC for SkuName. */
+ public static final SkuName TDC = fromString("TDC");
+
+ /** Static value TCA_Large for SkuName. */
+ public static final SkuName TCA_LARGE = fromString("TCA_Large");
+
+ /** Static value TCA_Small for SkuName. */
+ public static final SkuName TCA_SMALL = fromString("TCA_Small");
+
+ /** Static value GPU for SkuName. */
+ public static final SkuName GPU = fromString("GPU");
+
+ /**
+ * Creates or finds a SkuName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuName
+ */
+ @JsonCreator
+ public static SkuName fromString(String name) {
+ return fromString(name, SkuName.class);
+ }
+
+ /**
+ * @return known SkuName values
+ */
+ public static Collection values() {
+ return values(SkuName.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestriction.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestriction.java
new file mode 100644
index 000000000000..835c50dc1699
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestriction.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The restrictions because of which SKU cannot be used.
+ */
+public class SkuRestriction {
+ /**
+ * The type of the restriction.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * The locations where sku is restricted.
+ */
+ @JsonProperty(value = "values", access = JsonProperty.Access.WRITE_ONLY)
+ private List values;
+
+ /**
+ * The SKU restriction reason. Possible values include:
+ * 'NotAvailableForSubscription', 'QuotaId'.
+ */
+ @JsonProperty(value = "reasonCode", access = JsonProperty.Access.WRITE_ONLY)
+ private SkuRestrictionReasonCode reasonCode;
+
+ /**
+ * Restriction of the SKU for the location/zone.
+ */
+ @JsonProperty(value = "restrictionInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private SkuRestrictionInfo restrictionInfo;
+
+ /**
+ * Get the type of the restriction.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the locations where sku is restricted.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Get the SKU restriction reason. Possible values include: 'NotAvailableForSubscription', 'QuotaId'.
+ *
+ * @return the reasonCode value
+ */
+ public SkuRestrictionReasonCode reasonCode() {
+ return this.reasonCode;
+ }
+
+ /**
+ * Get restriction of the SKU for the location/zone.
+ *
+ * @return the restrictionInfo value
+ */
+ public SkuRestrictionInfo restrictionInfo() {
+ return this.restrictionInfo;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestrictionInfo.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestrictionInfo.java
new file mode 100644
index 000000000000..8b09dcad3838
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestrictionInfo.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The restriction info with locations and zones.
+ */
+public class SkuRestrictionInfo {
+ /**
+ * The locations.
+ */
+ @JsonProperty(value = "locations", access = JsonProperty.Access.WRITE_ONLY)
+ private List locations;
+
+ /**
+ * The zones.
+ */
+ @JsonProperty(value = "zones", access = JsonProperty.Access.WRITE_ONLY)
+ private List zones;
+
+ /**
+ * Get the locations.
+ *
+ * @return the locations value
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Get the zones.
+ *
+ * @return the zones value
+ */
+ public List zones() {
+ return this.zones;
+ }
+
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestrictionReasonCode.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestrictionReasonCode.java
new file mode 100644
index 000000000000..583f05223423
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuRestrictionReasonCode.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuRestrictionReasonCode.
+ */
+public final class SkuRestrictionReasonCode extends ExpandableStringEnum {
+ /** Static value NotAvailableForSubscription for SkuRestrictionReasonCode. */
+ public static final SkuRestrictionReasonCode NOT_AVAILABLE_FOR_SUBSCRIPTION = fromString("NotAvailableForSubscription");
+
+ /** Static value QuotaId for SkuRestrictionReasonCode. */
+ public static final SkuRestrictionReasonCode QUOTA_ID = fromString("QuotaId");
+
+ /**
+ * Creates or finds a SkuRestrictionReasonCode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuRestrictionReasonCode
+ */
+ @JsonCreator
+ public static SkuRestrictionReasonCode fromString(String name) {
+ return fromString(name, SkuRestrictionReasonCode.class);
+ }
+
+ /**
+ * @return known SkuRestrictionReasonCode values
+ */
+ public static Collection values() {
+ return values(SkuRestrictionReasonCode.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuSignupOption.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuSignupOption.java
new file mode 100644
index 000000000000..a242f533f389
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuSignupOption.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuSignupOption.
+ */
+public final class SkuSignupOption extends ExpandableStringEnum {
+ /** Static value None for SkuSignupOption. */
+ public static final SkuSignupOption NONE = fromString("None");
+
+ /** Static value Available for SkuSignupOption. */
+ public static final SkuSignupOption AVAILABLE = fromString("Available");
+
+ /**
+ * Creates or finds a SkuSignupOption from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuSignupOption
+ */
+ @JsonCreator
+ public static SkuSignupOption fromString(String name) {
+ return fromString(name, SkuSignupOption.class);
+ }
+
+ /**
+ * @return known SkuSignupOption values
+ */
+ public static Collection values() {
+ return values(SkuSignupOption.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuTier.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuTier.java
new file mode 100644
index 000000000000..a52f6b8f49cf
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuTier.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuTier.
+ */
+public final class SkuTier extends ExpandableStringEnum {
+ /** Static value Standard for SkuTier. */
+ public static final SkuTier STANDARD = fromString("Standard");
+
+ /**
+ * Creates or finds a SkuTier from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuTier
+ */
+ @JsonCreator
+ public static SkuTier fromString(String name) {
+ return fromString(name, SkuTier.class);
+ }
+
+ /**
+ * @return known SkuTier values
+ */
+ public static Collection values() {
+ return values(SkuTier.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuVersion.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuVersion.java
new file mode 100644
index 000000000000..9312462da230
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/SkuVersion.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuVersion.
+ */
+public final class SkuVersion extends ExpandableStringEnum {
+ /** Static value Stable for SkuVersion. */
+ public static final SkuVersion STABLE = fromString("Stable");
+
+ /** Static value Preview for SkuVersion. */
+ public static final SkuVersion PREVIEW = fromString("Preview");
+
+ /**
+ * Creates or finds a SkuVersion from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuVersion
+ */
+ @JsonCreator
+ public static SkuVersion fromString(String name) {
+ return fromString(name, SkuVersion.class);
+ }
+
+ /**
+ * @return known SkuVersion values
+ */
+ public static Collection values() {
+ return values(SkuVersion.class);
+ }
+}
diff --git a/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Skus.java b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Skus.java
new file mode 100644
index 000000000000..e6621c53e585
--- /dev/null
+++ b/sdk/databoxedge/mgmt-v2020_05_01_preview/src/main/java/com/microsoft/azure/management/databoxedge/v2020_05_01_preview/Skus.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.databoxedge.v2020_05_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.databoxedge.v2020_05_01_preview.implementation.SkusInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Skus.
+ */
+public interface Skus extends SupportsListing