diff --git a/azure-mgmt-edgegateway/pom.xml b/azure-mgmt-edgegateway/pom.xml
new file mode 100644
index 000000000000..02ac0bc33a2e
--- /dev/null
+++ b/azure-mgmt-edgegateway/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.edgegateway
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.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
+
+
+
+
+
+ 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ARMBaseModel.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ARMBaseModel.java
new file mode 100644
index 000000000000..f90524443422
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Represents the base class for all object models.
+ */
+public class ARMBaseModel extends ProxyResource {
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AccountType.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AccountType.java
new file mode 100644
index 000000000000..fd8e9483e8bb
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Address.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Address.java
new file mode 100644
index 000000000000..62fb52b24c43
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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", required = true)
+ private String addressLine2;
+
+ /**
+ * The address line3.
+ */
+ @JsonProperty(value = "addressLine3", required = true)
+ 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Alert.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Alert.java
new file mode 100644
index 000000000000..8a4499e0f2c4
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.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.edgegateway.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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AlertErrorDetails.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AlertErrorDetails.java
new file mode 100644
index 000000000000..188ddb7b83c6
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AlertSeverity.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AlertSeverity.java
new file mode 100644
index 000000000000..64d0ce66b065
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Alerts.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Alerts.java
new file mode 100644
index 000000000000..37a2a07915e3
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.AlertsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Alerts.
+ */
+public interface Alerts extends HasInner {
+ /**
+ * Returns an alert by name.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of the alert which needs to be retrieved.
+ * @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);
+
+ /**
+ * Retrieves all the alerts for a data box edge/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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AsymmetricEncryptedSecret.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AsymmetricEncryptedSecret.java
new file mode 100644
index 000000000000..4b7140292af0
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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 that was used to encrypt "Value". If the value in
+ * 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 that was used to encrypt "Value". If the value in unencrypted, it will be null.
+ *
+ * @return the encryptionCertThumbprint value
+ */
+ public String encryptionCertThumbprint() {
+ return this.encryptionCertThumbprint;
+ }
+
+ /**
+ * Set thumbprint certificate that was used to encrypt "Value". If the value in 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Authentication.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Authentication.java
new file mode 100644
index 000000000000..5096013481a7
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AuthenticationType.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AuthenticationType.java
new file mode 100644
index 000000000000..95b2fcdf7adb
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AzureContainerDataFormat.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AzureContainerDataFormat.java
new file mode 100644
index 000000000000..fb9ea9ff7b52
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AzureContainerInfo.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/AzureContainerInfo.java
new file mode 100644
index 000000000000..81d8e38b776f
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure container mapping of the endpoint.
+ */
+public class AzureContainerInfo {
+ /**
+ * ID of the Storage account credential to be used for accessing storage.
+ */
+ @JsonProperty(value = "storageAccountCredentialId", required = true)
+ private String storageAccountCredentialId;
+
+ /**
+ * Container name (Based on the data format specified, represents the name
+ * of Azure file/ 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 to be used for accessing storage.
+ *
+ * @return the storageAccountCredentialId value
+ */
+ public String storageAccountCredentialId() {
+ return this.storageAccountCredentialId;
+ }
+
+ /**
+ * Set iD of the Storage account credential to be used for accessing 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, represents the name of Azure file/ Page blob / Block blob).
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set container name (Based on the data format specified, represents the name of Azure file/ 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/BandwidthSchedule.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/BandwidthSchedule.java
new file mode 100644
index 000000000000..ef04fc3967ee
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.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.edgegateway.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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/BandwidthSchedules.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/BandwidthSchedules.java
new file mode 100644
index 000000000000..3428eb0b8da6
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.BandwidthSchedulesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BandwidthSchedules.
+ */
+public interface BandwidthSchedules extends SupportsCreating, HasInner {
+ /**
+ * Returns the properties of the specified bandwidth schedule name.
+ *
+ * @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);
+
+ /**
+ * Returns all the bandwidth Schedules for a data box edge/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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ClientAccessRight.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ClientAccessRight.java
new file mode 100644
index 000000000000..815e19b68010
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ClientPermissionType.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ClientPermissionType.java
new file mode 100644
index 000000000000..6bcfac826194
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ContactDetails.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ContactDetails.java
new file mode 100644
index 000000000000..f7d2a95f5bb0
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Contains all the contact details of the customer.
+ */
+public class ContactDetails {
+ /**
+ * Gets or sets the contact person.
+ */
+ @JsonProperty(value = "contactPerson", required = true)
+ private String contactPerson;
+
+ /**
+ * Gets or sets the name of the company.
+ */
+ @JsonProperty(value = "companyName", required = true)
+ private String companyName;
+
+ /**
+ * Gets or sets the phone number.
+ */
+ @JsonProperty(value = "phone", required = true)
+ private String phone;
+
+ /**
+ * Gets or sets the email list.
+ */
+ @JsonProperty(value = "emailList", required = true)
+ private List emailList;
+
+ /**
+ * Get gets or sets the contact person.
+ *
+ * @return the contactPerson value
+ */
+ public String contactPerson() {
+ return this.contactPerson;
+ }
+
+ /**
+ * Set gets or sets the contact person.
+ *
+ * @param contactPerson the contactPerson value to set
+ * @return the ContactDetails object itself.
+ */
+ public ContactDetails withContactPerson(String contactPerson) {
+ this.contactPerson = contactPerson;
+ return this;
+ }
+
+ /**
+ * Get gets or sets the name of the company.
+ *
+ * @return the companyName value
+ */
+ public String companyName() {
+ return this.companyName;
+ }
+
+ /**
+ * Set gets or sets 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 gets or sets the phone number.
+ *
+ * @return the phone value
+ */
+ public String phone() {
+ return this.phone;
+ }
+
+ /**
+ * Set gets or sets 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 gets or sets the email list.
+ *
+ * @return the emailList value
+ */
+ public List emailList() {
+ return this.emailList;
+ }
+
+ /**
+ * Set gets or sets 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDevice.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDevice.java
new file mode 100644
index 000000000000..0cf75d07ad5b
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDevice.java
@@ -0,0 +1,288 @@
+/**
+ * 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.edgegateway;
+
+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.edgegateway.implementation.DataBoxEdgeManager;
+import java.util.List;
+import com.microsoft.azure.management.edgegateway.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 serialNumber value.
+ */
+ String serialNumber();
+
+ /**
+ * @return the sku value.
+ */
+ Sku 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'
+ * @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 of 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(Sku 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'
+ * @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 of 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(Sku sku);
+ }
+
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDeviceExtendedInfo.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDeviceExtendedInfo.java
new file mode 100644
index 000000000000..229b82c32106
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDeviceExtendedInfo.java
@@ -0,0 +1,55 @@
+/**
+ * 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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.edgegateway.implementation.DataBoxEdgeManager;
+import com.microsoft.azure.management.edgegateway.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 integrityKey value.
+ */
+ String integrityKey();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resourceKey value.
+ */
+ String resourceKey();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDevicePatch.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDevicePatch.java
new file mode 100644
index 000000000000..f482f43cc8f1
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDeviceStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDeviceStatus.java
new file mode 100644
index 000000000000..25f18cd5e0f5
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataBoxEdgeDeviceStatus.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.edgegateway;
+
+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");
+
+ /**
+ * 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataPolicy.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DataPolicy.java
new file mode 100644
index 000000000000..4afd988faa27
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DayOfWeek.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DayOfWeek.java
new file mode 100644
index 000000000000..3c27c30ebb4a
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DeviceType.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DeviceType.java
new file mode 100644
index 000000000000..f6f06d454b44
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Devices.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Devices.java
new file mode 100644
index 000000000000..805801da49e3
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Devices.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.edgegateway;
+
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.DataBoxEdgeDevice;
+import rx.Completable;
+import com.microsoft.azure.management.edgegateway.implementation.DataBoxEdgeDeviceExtendedInfoInner;
+
+/**
+ * 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);
+
+ /**
+ * Returns the properties of the data box edge/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);
+
+ /**
+ * Retrieves all data box edge/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);
+
+ /**
+ * Retrieves all data box edge/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/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 the data box edge/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);
+
+ /**
+ * Creates or updates the extended info of the data box edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param parameters The device extended information.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createOrUpdateExtendedInfoAsync(String deviceName, String resourceGroupName, DataBoxEdgeDeviceExtendedInfoInner parameters);
+
+ /**
+ * Returns the extended information of the specified data box edge/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/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/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);
+
+ /**
+ * Returns information about the availability of updates as per the last scan done on the device. It also returns 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);
+
+ /**
+ * Returns the network settings of the specified data box edge/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/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param deviceAdminPassword Device administrator password as an encrypted string (encrypted using RSA PKCS #1) is used to log into the local web UI of the device. Actual password could have at least 8 characters that are a combination of uppercase, lowercase, numeric, and special characters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable createOrUpdateSecuritySettingsAsync(String deviceName, String resourceGroupName, AsymmetricEncryptedSecret deviceAdminPassword);
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DownloadPhase.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/DownloadPhase.java
new file mode 100644
index 000000000000..74ed07068c7b
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/EncryptionAlgorithm.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/EncryptionAlgorithm.java
new file mode 100644
index 000000000000..517a9829fcad
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/FileEventTrigger.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/FileEventTrigger.java
new file mode 100644
index 000000000000..4391c2e9b79f
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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.edgegateway.implementation.TriggerInner;
+
+/**
+ * Trigger details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind")
+@JsonTypeName("FileEvent")
+@JsonFlatten
+public class FileEventTrigger extends TriggerInner {
+ /**
+ * File event source details.
+ */
+ @JsonProperty(value = "properties.sourceInfo")
+ private FileSourceInfo sourceInfo;
+
+ /**
+ * Role Sink info.
+ */
+ @JsonProperty(value = "properties.sinkInfo")
+ private RoleSinkInfo sinkInfo;
+
+ /**
+ * Custom context tag, typically used to co-relate the trigger against its
+ * usage. Eg. If a PeriodicTimer trigger may be intended for certain
+ * specific IOT modules in device, the tag can be the name/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 custom context tag, typically used to co-relate the trigger against its usage. Eg. If a PeriodicTimer trigger may be intended for certain specific IOT modules in device, the tag can be the name/image url of the module.
+ *
+ * @return the customContextTag value
+ */
+ public String customContextTag() {
+ return this.customContextTag;
+ }
+
+ /**
+ * Set custom context tag, typically used to co-relate the trigger against its usage. Eg. If a PeriodicTimer trigger may be intended for certain specific IOT modules in device, the tag can be the name/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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/FileSourceInfo.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/FileSourceInfo.java
new file mode 100644
index 000000000000..48daafea6650
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/InstallRebootBehavior.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/InstallRebootBehavior.java
new file mode 100644
index 000000000000..540af2c8f863
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/IoTDeviceInfo.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/IoTDeviceInfo.java
new file mode 100644
index 000000000000..6e4f5fc111c0
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/IoTDeviceInfo.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.edgegateway;
+
+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 IoT hub which is associated to the device.
+ */
+ @JsonProperty(value = "ioTHostHub", required = true)
+ private String ioTHostHub;
+
+ /**
+ * IoT device authentication info.
+ */
+ @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 IoT hub which is associated to the device.
+ *
+ * @return the ioTHostHub value
+ */
+ public String ioTHostHub() {
+ return this.ioTHostHub;
+ }
+
+ /**
+ * Set host name for IoT hub which is 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 ioT device authentication info.
+ *
+ * @return the authentication value
+ */
+ public Authentication authentication() {
+ return this.authentication;
+ }
+
+ /**
+ * Set ioT device authentication info.
+ *
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/IoTRole.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/IoTRole.java
new file mode 100644
index 000000000000..ae0dcb4286f6
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/IoTRole.java
@@ -0,0 +1,156 @@
+/**
+ * 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.edgegateway;
+
+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.edgegateway.implementation.RoleInner;
+
+/**
+ * Compute role.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind")
+@JsonTypeName("IOT")
+@JsonFlatten
+public class IoTRole extends RoleInner {
+ /**
+ * Host OS which IoT role support. 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;
+
+ /**
+ * Role status. Possible values include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.roleStatus", required = true)
+ private RoleStatus roleStatus;
+
+ /**
+ * Get host OS which IoT role support. Possible values include: 'Windows', 'Linux'.
+ *
+ * @return the hostPlatform value
+ */
+ public PlatformType hostPlatform() {
+ return this.hostPlatform;
+ }
+
+ /**
+ * Set host OS which IoT role support. 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 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Ipv4Config.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Ipv4Config.java
new file mode 100644
index 000000000000..c5b3c0336b86
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Ipv6Config.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Ipv6Config.java
new file mode 100644
index 000000000000..7d5b5d16c291
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Job.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Job.java
new file mode 100644
index 000000000000..267f131476b7
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Job.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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.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.edgegateway.implementation.DataBoxEdgeManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing Job.
+ */
+public interface Job 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 shareId value.
+ */
+ String shareId();
+
+ /**
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobErrorDetails.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobErrorDetails.java
new file mode 100644
index 000000000000..29eac897e033
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The job error information containing List of JobErrorItem.
+ */
+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 intended to describe 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 intended to describe the error in detail.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobErrorItem.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobErrorItem.java
new file mode 100644
index 000000000000..cf25d73d9028
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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 intended to describe 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 intended to describe the error in detail.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobStatus.java
new file mode 100644
index 000000000000..32491bd9200b
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobType.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobType.java
new file mode 100644
index 000000000000..77fe489e6420
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/JobType.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.edgegateway;
+
+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");
+
+ /**
+ * 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricAggregationType.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricAggregationType.java
new file mode 100644
index 000000000000..ea51c52a966e
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricCategory.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricCategory.java
new file mode 100644
index 000000000000..63e705029d3a
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricDimensionV1.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricDimensionV1.java
new file mode 100644
index 000000000000..fe5b73d54c3a
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricSpecificationV1.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricSpecificationV1.java
new file mode 100644
index 000000000000..4560d9566193
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricUnit.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MetricUnit.java
new file mode 100644
index 000000000000..56089b1c1470
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MonitoringStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MonitoringStatus.java
new file mode 100644
index 000000000000..a3db64b767e2
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MountPointMap.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MountPointMap.java
new file mode 100644
index 000000000000..3bf62444949d
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/MountPointMap.java
@@ -0,0 +1,89 @@
+/**
+ * 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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The share mount point.
+ */
+public class MountPointMap {
+ /**
+ * ID of the share which is mounted to 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;
+
+ /**
+ * 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 which is mounted to role VM.
+ *
+ * @return the shareId value
+ */
+ public String shareId() {
+ return this.shareId;
+ }
+
+ /**
+ * Set iD of the share which is mounted to 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 role type. Possible values include: 'IOT', 'ASA', 'Functions', 'Cognitive'.
+ *
+ * @return the roleType value
+ */
+ public RoleTypes roleType() {
+ return this.roleType;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapter.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapter.java
new file mode 100644
index 000000000000..23d0fe542c79
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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 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 DNS Servers of the device.
+ *
+ * @return the dnsServers value
+ */
+ public List dnsServers() {
+ return this.dnsServers;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapterDHCPStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapterDHCPStatus.java
new file mode 100644
index 000000000000..6dc5babb89bc
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapterPosition.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapterPosition.java
new file mode 100644
index 000000000000..bd834d8be045
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapterRDMAStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapterRDMAStatus.java
new file mode 100644
index 000000000000..8a8dd1215475
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapterStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkAdapterStatus.java
new file mode 100644
index 000000000000..f0ead31274ca
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkGroup.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkGroup.java
new file mode 100644
index 000000000000..43b2c2958bff
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkSettings.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/NetworkSettings.java
new file mode 100644
index 000000000000..0b2fc5198d84
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.edgegateway.implementation.DataBoxEdgeManager;
+import com.microsoft.azure.management.edgegateway.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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Operation.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Operation.java
new file mode 100644
index 000000000000..00e3c967ccdc
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.edgegateway.implementation.DataBoxEdgeManager;
+import com.microsoft.azure.management.edgegateway.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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/OperationDisplay.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/OperationDisplay.java
new file mode 100644
index 000000000000..3b69835e6a20
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Operations.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Operations.java
new file mode 100644
index 000000000000..119150b63dcc
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all the operations supported.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/OperationsStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/OperationsStatus.java
new file mode 100644
index 000000000000..2fdb15207fae
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.OperationsStatusInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing OperationsStatus.
+ */
+public interface OperationsStatus extends HasInner {
+ /**
+ * Returns the job details of the specified job on a data box edge/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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Order.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Order.java
new file mode 100644
index 000000000000..d7925f03a5f1
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.implementation.OrderInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.edgegateway.implementation.DataBoxEdgeManager;
+import java.util.List;
+
+/**
+ * Type representing Order.
+ */
+public interface Order extends HasInner, HasManager {
+ /**
+ * @return the changeStatusTo value.
+ */
+ OrderStatus changeStatusTo();
+
+ /**
+ * @return the contactInformation value.
+ */
+ ContactDetails contactInformation();
+
+ /**
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/OrderStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/OrderStatus.java
new file mode 100644
index 000000000000..bea67ddceb0f
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/OrderStatus.java
@@ -0,0 +1,90 @@
+/**
+ * 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.edgegateway;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a single status change.
+ */
+public class OrderStatus {
+ /**
+ * Status of the order pertaining to the allowed StatusTypes. Possible
+ * values include: 'Untracked', 'AwaitingFulfilment',
+ * 'AwaitingPreparation', 'AwaitingShipment', 'Shipped', 'Arriving',
+ * 'Delivered', 'ReplacementRequested', 'LostDevice', 'Declined',
+ * 'ReturnInitiated', 'AwaitingReturnShipment', 'ShippedBack',
+ * 'CollectedAtMicrosoft'.
+ */
+ @JsonProperty(value = "status", required = true)
+ private StatusTypes 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;
+
+ /**
+ * Get status of the order pertaining to the allowed StatusTypes. Possible values include: 'Untracked', 'AwaitingFulfilment', 'AwaitingPreparation', 'AwaitingShipment', 'Shipped', 'Arriving', 'Delivered', 'ReplacementRequested', 'LostDevice', 'Declined', 'ReturnInitiated', 'AwaitingReturnShipment', 'ShippedBack', 'CollectedAtMicrosoft'.
+ *
+ * @return the status value
+ */
+ public StatusTypes status() {
+ return this.status;
+ }
+
+ /**
+ * Set status of the order pertaining to the allowed StatusTypes. 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(StatusTypes 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;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Orders.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Orders.java
new file mode 100644
index 000000000000..472a226baee6
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import rx.Observable;
+import rx.Completable;
+import com.microsoft.azure.management.edgegateway.implementation.OrderInner;
+import com.microsoft.azure.management.edgegateway.implementation.OrdersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Orders.
+ */
+public interface Orders extends HasInner {
+ /**
+ * Get a specific order by name.
+ *
+ * @param deviceName Name of the device.
+ * @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 Name of the edge device for which order needs to be added or updated.
+ * @param resourceGroupName The resource group name.
+ * @param order Order to be added.
+ * @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 Name of the device.
+ * @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);
+
+ /**
+ * List all the orders related to the device.
+ *
+ * @param deviceName Name of the device.
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/PeriodicTimerEventTrigger.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/PeriodicTimerEventTrigger.java
new file mode 100644
index 000000000000..900462473649
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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.edgegateway.implementation.TriggerInner;
+
+/**
+ * Trigger details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind")
+@JsonTypeName("PeriodicTimerEvent")
+@JsonFlatten
+public class PeriodicTimerEventTrigger extends TriggerInner {
+ /**
+ * Periodic timer details.
+ */
+ @JsonProperty(value = "properties.sourceInfo")
+ private PeriodicTimerSourceInfo sourceInfo;
+
+ /**
+ * Role Sink info.
+ */
+ @JsonProperty(value = "properties.sinkInfo")
+ private RoleSinkInfo sinkInfo;
+
+ /**
+ * Custom context tag, typically used to co-relate the trigger against its
+ * usage. Eg. If a PeriodicTimer trigger may be intended for certain
+ * specific IOT modules in device, the tag can be the name/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 info.
+ *
+ * @return the sinkInfo value
+ */
+ public RoleSinkInfo sinkInfo() {
+ return this.sinkInfo;
+ }
+
+ /**
+ * Set role Sink info.
+ *
+ * @param sinkInfo the sinkInfo value to set
+ * @return the PeriodicTimerEventTrigger object itself.
+ */
+ public PeriodicTimerEventTrigger withSinkInfo(RoleSinkInfo sinkInfo) {
+ this.sinkInfo = sinkInfo;
+ return this;
+ }
+
+ /**
+ * Get custom context tag, typically used to co-relate the trigger against its usage. Eg. If a PeriodicTimer trigger may be intended for certain specific IOT modules in device, the tag can be the name/image url of the module.
+ *
+ * @return the customContextTag value
+ */
+ public String customContextTag() {
+ return this.customContextTag;
+ }
+
+ /**
+ * Set custom context tag, typically used to co-relate the trigger against its usage. Eg. If a PeriodicTimer trigger may be intended for certain specific IOT modules in device, the tag can be the name/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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/PeriodicTimerSourceInfo.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/PeriodicTimerSourceInfo.java
new file mode 100644
index 000000000000..6783eabeb549
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/PeriodicTimerSourceInfo.java
@@ -0,0 +1,98 @@
+/**
+ * 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.edgegateway;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Periodic timer event source.
+ */
+public class PeriodicTimerSourceInfo {
+ /**
+ * Time time [UTC] of the day, from which the trigger will be valid.
+ * Schedule will be computed with reference to the time specified.
+ */
+ @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 with which periodic events needs to be published to IOT device.
+ */
+ @JsonProperty(value = "topic")
+ private String topic;
+
+ /**
+ * Get time time [UTC] of the day, from which the trigger will be valid. Schedule will be computed with reference to the time specified.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set time time [UTC] of the day, from which the trigger will be valid. Schedule will be computed with reference to the time specified.
+ *
+ * @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 with which periodic events needs to be published to IOT device.
+ *
+ * @return the topic value
+ */
+ public String topic() {
+ return this.topic;
+ }
+
+ /**
+ * Set topic with which periodic events needs to be 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/PlatformType.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/PlatformType.java
new file mode 100644
index 000000000000..2f3c02f64adb
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RefreshDetails.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RefreshDetails.java
new file mode 100644
index 000000000000..378c27737573
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RefreshDetails.java
@@ -0,0 +1,135 @@
+/**
+ * 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.edgegateway;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Fields for tracking refresh job on the share.
+ */
+public class RefreshDetails {
+ /**
+ * If a RefreshShare job is currently inprogress on this share - this field
+ * indicates the ArmId of that job. Empty otherwise.
+ */
+ @JsonProperty(value = "inProgressRefreshJobId")
+ private String inProgressRefreshJobId;
+
+ /**
+ * Indicates the job completed time of the last refresh job on this
+ * particular share, 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, 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,if
+ * any.
+ * This could be a failed job or a successful job.
+ */
+ @JsonProperty(value = "lastJob")
+ private String lastJob;
+
+ /**
+ * Get if a RefreshShare job is currently inprogress on this share - this field indicates the ArmId of that job. Empty otherwise.
+ *
+ * @return the inProgressRefreshJobId value
+ */
+ public String inProgressRefreshJobId() {
+ return this.inProgressRefreshJobId;
+ }
+
+ /**
+ * Set if a RefreshShare job is currently inprogress on this share - this field indicates the ArmId of that job. Empty otherwise.
+ *
+ * @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 job completed time of the last refresh job on this particular share, 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 job completed time of the last refresh job on this particular share, 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, 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, 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,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,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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Role.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Role.java
new file mode 100644
index 000000000000..171c3b88fce1
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.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.edgegateway.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 Name of the device in which the role needs to be added or updated
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RoleSinkInfo.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RoleSinkInfo.java
new file mode 100644
index 000000000000..9181883ecd5e
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RoleStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RoleStatus.java
new file mode 100644
index 000000000000..7801dd54e249
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RoleTypes.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/RoleTypes.java
new file mode 100644
index 000000000000..fe9d28e7f97d
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Roles.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Roles.java
new file mode 100644
index 000000000000..97fb9fd7bd94
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.RolesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Roles.
+ */
+public interface Roles extends SupportsCreating, HasInner {
+ /**
+ * Get a specific role by name.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of role to be fetched.
+ * @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/gateway device.
+ *
+ * @param deviceName Name of the device.
+ * @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 gateway device.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of the role which needs to be deleted.
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SSLStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SSLStatus.java
new file mode 100644
index 000000000000..ffaf954b3d0e
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SecuritySettings.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SecuritySettings.java
new file mode 100644
index 000000000000..14a8edcaa702
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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 log into the local web UI of the device. Actual
+ * password could 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 log into the local web UI of the device. Actual password could 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 log into the local web UI of the device. Actual password could 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ServiceSpecification.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ServiceSpecification.java
new file mode 100644
index 000000000000..48fe3aa11761
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Share.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Share.java
new file mode 100644
index 000000000000..1ca4d2463ef7
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.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.edgegateway.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 Name of the device
+ * @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: 'Online', 'Offline'
+ * @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(mandatory 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 (mandatory 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(mandatory 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 (mandatory for SMB protocol)
+ * @return the next update stage
+ */
+ Update withUserAccessRights(List userAccessRights);
+ }
+
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareAccessProtocol.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareAccessProtocol.java
new file mode 100644
index 000000000000..d159666eb02f
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareAccessRight.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareAccessRight.java
new file mode 100644
index 000000000000..a68e6b3152a1
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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 {
+ /**
+ * Id of the share.
+ */
+ @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 id of the share.
+ *
+ * @return the shareId value
+ */
+ public String shareId() {
+ return this.shareId;
+ }
+
+ /**
+ * Set id of the share.
+ *
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareAccessType.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareAccessType.java
new file mode 100644
index 000000000000..664539ccdf12
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareStatus.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareStatus.java
new file mode 100644
index 000000000000..ff0db37c67a3
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/ShareStatus.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.edgegateway;
+
+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 Online for ShareStatus. */
+ public static final ShareStatus ONLINE = fromString("Online");
+
+ /** Static value Offline for ShareStatus. */
+ public static final ShareStatus OFFLINE = fromString("Offline");
+
+ /**
+ * 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Shares.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Shares.java
new file mode 100644
index 000000000000..556e32aaaca1
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.SharesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Shares.
+ */
+public interface Shares extends SupportsCreating, HasInner {
+ /**
+ * Triggers a manual refresh of the share metadata with the actual cloud storage account.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of the share.
+ * @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);
+
+ /**
+ * Returns a particular share by name.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of the share.
+ * @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/gateway device.
+ *
+ * @param deviceName Name of the device.
+ * @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/gateway device.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of the share which needs to be deleted.
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Sku.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Sku.java
new file mode 100644
index 000000000000..e96c414c72d3
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Sku.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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The SKU type.
+ */
+public class Sku {
+ /**
+ * Sku name. Possible values include: 'Gateway', 'Edge'.
+ */
+ @JsonProperty(value = "name")
+ private SkuName name;
+
+ /**
+ * The SKU tier. This is based on the SKU name. Possible values include:
+ * 'Standard'.
+ */
+ @JsonProperty(value = "tier")
+ private SkuTier tier;
+
+ /**
+ * Get sku name. Possible values include: 'Gateway', 'Edge'.
+ *
+ * @return the name value
+ */
+ public SkuName name() {
+ return this.name;
+ }
+
+ /**
+ * Set sku name. Possible values include: 'Gateway', 'Edge'.
+ *
+ * @param name the name value to set
+ * @return the Sku object itself.
+ */
+ public Sku withName(SkuName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the SKU tier. This is based on the SKU name. Possible values include: 'Standard'.
+ *
+ * @return the tier value
+ */
+ public SkuTier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the SKU tier. This is based on the SKU name. Possible values include: 'Standard'.
+ *
+ * @param tier the tier value to set
+ * @return the Sku object itself.
+ */
+ public Sku withTier(SkuTier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SkuName.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SkuName.java
new file mode 100644
index 000000000000..46af25d12b74
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SkuName.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.edgegateway;
+
+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");
+
+ /**
+ * 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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SkuTier.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SkuTier.java
new file mode 100644
index 000000000000..676c7d3af6b2
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/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.edgegateway;
+
+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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StatusTypes.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StatusTypes.java
new file mode 100644
index 000000000000..9849f5fce087
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StatusTypes.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.edgegateway;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for StatusTypes.
+ */
+public final class StatusTypes extends ExpandableStringEnum {
+ /** Static value Untracked for StatusTypes. */
+ public static final StatusTypes UNTRACKED = fromString("Untracked");
+
+ /** Static value AwaitingFulfilment for StatusTypes. */
+ public static final StatusTypes AWAITING_FULFILMENT = fromString("AwaitingFulfilment");
+
+ /** Static value AwaitingPreparation for StatusTypes. */
+ public static final StatusTypes AWAITING_PREPARATION = fromString("AwaitingPreparation");
+
+ /** Static value AwaitingShipment for StatusTypes. */
+ public static final StatusTypes AWAITING_SHIPMENT = fromString("AwaitingShipment");
+
+ /** Static value Shipped for StatusTypes. */
+ public static final StatusTypes SHIPPED = fromString("Shipped");
+
+ /** Static value Arriving for StatusTypes. */
+ public static final StatusTypes ARRIVING = fromString("Arriving");
+
+ /** Static value Delivered for StatusTypes. */
+ public static final StatusTypes DELIVERED = fromString("Delivered");
+
+ /** Static value ReplacementRequested for StatusTypes. */
+ public static final StatusTypes REPLACEMENT_REQUESTED = fromString("ReplacementRequested");
+
+ /** Static value LostDevice for StatusTypes. */
+ public static final StatusTypes LOST_DEVICE = fromString("LostDevice");
+
+ /** Static value Declined for StatusTypes. */
+ public static final StatusTypes DECLINED = fromString("Declined");
+
+ /** Static value ReturnInitiated for StatusTypes. */
+ public static final StatusTypes RETURN_INITIATED = fromString("ReturnInitiated");
+
+ /** Static value AwaitingReturnShipment for StatusTypes. */
+ public static final StatusTypes AWAITING_RETURN_SHIPMENT = fromString("AwaitingReturnShipment");
+
+ /** Static value ShippedBack for StatusTypes. */
+ public static final StatusTypes SHIPPED_BACK = fromString("ShippedBack");
+
+ /** Static value CollectedAtMicrosoft for StatusTypes. */
+ public static final StatusTypes COLLECTED_AT_MICROSOFT = fromString("CollectedAtMicrosoft");
+
+ /**
+ * Creates or finds a StatusTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding StatusTypes
+ */
+ @JsonCreator
+ public static StatusTypes fromString(String name) {
+ return fromString(name, StatusTypes.class);
+ }
+
+ /**
+ * @return known StatusTypes values
+ */
+ public static Collection values() {
+ return values(StatusTypes.class);
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StorageAccountCredential.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StorageAccountCredential.java
new file mode 100644
index 000000000000..7ca86e9a405e
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StorageAccountCredential.java
@@ -0,0 +1,255 @@
+/**
+ * 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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.implementation.StorageAccountCredentialInner;
+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.edgegateway.implementation.DataBoxEdgeManager;
+
+/**
+ * Type representing StorageAccountCredential.
+ */
+public interface StorageAccountCredential extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the accountKey value.
+ */
+ AsymmetricEncryptedSecret accountKey();
+
+ /**
+ * @return the accountType value.
+ */
+ AccountType accountType();
+
+ /**
+ * @return the alias value.
+ */
+ String alias();
+
+ /**
+ * @return the blobDomainName value.
+ */
+ String blobDomainName();
+
+ /**
+ * @return the connectionString value.
+ */
+ String connectionString();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the sslStatus value.
+ */
+ SSLStatus sslStatus();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the userName value.
+ */
+ String userName();
+
+ /**
+ * The entirety of the StorageAccountCredential definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDataBoxEdgeDevice, DefinitionStages.WithAccountType, DefinitionStages.WithAlias, DefinitionStages.WithSslStatus, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of StorageAccountCredential definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a StorageAccountCredential definition.
+ */
+ interface Blank extends WithDataBoxEdgeDevice {
+ }
+
+ /**
+ * The stage of the storageaccountcredential definition allowing to specify DataBoxEdgeDevice.
+ */
+ interface WithDataBoxEdgeDevice {
+ /**
+ * Specifies deviceName, resourceGroupName.
+ * @param deviceName Name of the device
+ * @param resourceGroupName The resource group name
+ * @return the next definition stage
+ */
+ WithAccountType withExistingDataBoxEdgeDevice(String deviceName, String resourceGroupName);
+ }
+
+ /**
+ * The stage of the storageaccountcredential definition allowing to specify AccountType.
+ */
+ interface WithAccountType {
+ /**
+ * Specifies accountType.
+ * @param accountType Type of storage accessed on the storage account. Possible values include: 'GeneralPurposeStorage', 'BlobStorage'
+ * @return the next definition stage
+ */
+ WithAlias withAccountType(AccountType accountType);
+ }
+
+ /**
+ * The stage of the storageaccountcredential definition allowing to specify Alias.
+ */
+ interface WithAlias {
+ /**
+ * Specifies alias.
+ * @param alias Alias for the storage account
+ * @return the next definition stage
+ */
+ WithSslStatus withAlias(String alias);
+ }
+
+ /**
+ * The stage of the storageaccountcredential definition allowing to specify SslStatus.
+ */
+ interface WithSslStatus {
+ /**
+ * Specifies sslStatus.
+ * @param sslStatus Signifies whether SSL needs to be enabled or not. Possible values include: 'Enabled', 'Disabled'
+ * @return the next definition stage
+ */
+ WithCreate withSslStatus(SSLStatus sslStatus);
+ }
+
+ /**
+ * The stage of the storageaccountcredential definition allowing to specify AccountKey.
+ */
+ interface WithAccountKey {
+ /**
+ * Specifies accountKey.
+ * @param accountKey Encrypted storage key
+ * @return the next definition stage
+ */
+ WithCreate withAccountKey(AsymmetricEncryptedSecret accountKey);
+ }
+
+ /**
+ * The stage of the storageaccountcredential definition allowing to specify BlobDomainName.
+ */
+ interface WithBlobDomainName {
+ /**
+ * Specifies blobDomainName.
+ * @param blobDomainName Blob end point for private clouds
+ * @return the next definition stage
+ */
+ WithCreate withBlobDomainName(String blobDomainName);
+ }
+
+ /**
+ * The stage of the storageaccountcredential definition allowing to specify ConnectionString.
+ */
+ interface WithConnectionString {
+ /**
+ * Specifies connectionString.
+ * @param connectionString ConnectionString for the storage account. This needs to be specified if UserName/AccountKey are not specified
+ * @return the next definition stage
+ */
+ WithCreate withConnectionString(String connectionString);
+ }
+
+ /**
+ * The stage of the storageaccountcredential definition allowing to specify UserName.
+ */
+ interface WithUserName {
+ /**
+ * Specifies userName.
+ * @param userName UserName for the storage account
+ * @return the next definition stage
+ */
+ WithCreate withUserName(String userName);
+ }
+
+ /**
+ * 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.WithAccountKey, DefinitionStages.WithBlobDomainName, DefinitionStages.WithConnectionString, DefinitionStages.WithUserName {
+ }
+ }
+ /**
+ * The template for a StorageAccountCredential update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAccountKey, UpdateStages.WithBlobDomainName, UpdateStages.WithConnectionString, UpdateStages.WithUserName {
+ }
+
+ /**
+ * Grouping of StorageAccountCredential update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the storageaccountcredential update allowing to specify AccountKey.
+ */
+ interface WithAccountKey {
+ /**
+ * Specifies accountKey.
+ * @param accountKey Encrypted storage key
+ * @return the next update stage
+ */
+ Update withAccountKey(AsymmetricEncryptedSecret accountKey);
+ }
+
+ /**
+ * The stage of the storageaccountcredential update allowing to specify BlobDomainName.
+ */
+ interface WithBlobDomainName {
+ /**
+ * Specifies blobDomainName.
+ * @param blobDomainName Blob end point for private clouds
+ * @return the next update stage
+ */
+ Update withBlobDomainName(String blobDomainName);
+ }
+
+ /**
+ * The stage of the storageaccountcredential update allowing to specify ConnectionString.
+ */
+ interface WithConnectionString {
+ /**
+ * Specifies connectionString.
+ * @param connectionString ConnectionString for the storage account. This needs to be specified if UserName/AccountKey are not specified
+ * @return the next update stage
+ */
+ Update withConnectionString(String connectionString);
+ }
+
+ /**
+ * The stage of the storageaccountcredential update allowing to specify UserName.
+ */
+ interface WithUserName {
+ /**
+ * Specifies userName.
+ * @param userName UserName for the storage account
+ * @return the next update stage
+ */
+ Update withUserName(String userName);
+ }
+
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StorageAccountCredentials.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StorageAccountCredentials.java
new file mode 100644
index 000000000000..5123f8939d23
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/StorageAccountCredentials.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.edgegateway;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.StorageAccountCredentialsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing StorageAccountCredentials.
+ */
+public interface StorageAccountCredentials extends SupportsCreating, HasInner {
+ /**
+ * Gets the properties of the specified storage account credential.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of the storage account credential to be fetched.
+ * @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 storage account credentials in a data box edge/gateway device.
+ *
+ * @param deviceName Name of the device.
+ * @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 storage account credential.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of the storage account credential.
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SymmetricKey.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SymmetricKey.java
new file mode 100644
index 000000000000..aeb29d0f1bb0
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/SymmetricKey.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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Symmetric Key for authentication.
+ */
+public class SymmetricKey {
+ /**
+ * Connection string based on symmetric key.
+ */
+ @JsonProperty(value = "connectionString")
+ private AsymmetricEncryptedSecret connectionString;
+
+ /**
+ * Get connection string based on symmetric key.
+ *
+ * @return the connectionString value
+ */
+ public AsymmetricEncryptedSecret connectionString() {
+ return this.connectionString;
+ }
+
+ /**
+ * Set connection string based on symmetric key.
+ *
+ * @param connectionString the connectionString value to set
+ * @return the SymmetricKey object itself.
+ */
+ public SymmetricKey withConnectionString(AsymmetricEncryptedSecret connectionString) {
+ this.connectionString = connectionString;
+ return this;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/TimeGrain.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/TimeGrain.java
new file mode 100644
index 000000000000..4d23861504d5
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/TimeGrain.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.edgegateway;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for TimeGrain.
+ */
+public final class TimeGrain extends ExpandableStringEnum {
+ /** Static value PT1M for TimeGrain. */
+ public static final TimeGrain PT1M = fromString("PT1M");
+
+ /** Static value PT5M for TimeGrain. */
+ public static final TimeGrain PT5M = fromString("PT5M");
+
+ /** Static value PT15M for TimeGrain. */
+ public static final TimeGrain PT15M = fromString("PT15M");
+
+ /** Static value PT30M for TimeGrain. */
+ public static final TimeGrain PT30M = fromString("PT30M");
+
+ /** Static value PT1H for TimeGrain. */
+ public static final TimeGrain PT1H = fromString("PT1H");
+
+ /** Static value PT6H for TimeGrain. */
+ public static final TimeGrain PT6H = fromString("PT6H");
+
+ /** Static value PT12H for TimeGrain. */
+ public static final TimeGrain PT12H = fromString("PT12H");
+
+ /** Static value PT1D for TimeGrain. */
+ public static final TimeGrain PT1D = fromString("PT1D");
+
+ /**
+ * Creates or finds a TimeGrain from its string representation.
+ * @param name a name to look for
+ * @return the corresponding TimeGrain
+ */
+ @JsonCreator
+ public static TimeGrain fromString(String name) {
+ return fromString(name, TimeGrain.class);
+ }
+
+ /**
+ * @return known TimeGrain values
+ */
+ public static Collection values() {
+ return values(TimeGrain.class);
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/TrackingInfo.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/TrackingInfo.java
new file mode 100644
index 000000000000..a22974d79a55
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/TrackingInfo.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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Tracking courier information.
+ */
+public class TrackingInfo {
+ /**
+ * Serial number of the device being tracked.
+ */
+ @JsonProperty(value = "serialNumber")
+ private String serialNumber;
+
+ /**
+ * Name of the carrier used in the delivery.
+ */
+ @JsonProperty(value = "carrierName")
+ private String carrierName;
+
+ /**
+ * Tracking ID of the shipment.
+ */
+ @JsonProperty(value = "trackingId")
+ private String trackingId;
+
+ /**
+ * Tracking URL of the shipment.
+ */
+ @JsonProperty(value = "trackingUrl")
+ private String trackingUrl;
+
+ /**
+ * Get serial number of the device being tracked.
+ *
+ * @return the serialNumber value
+ */
+ public String serialNumber() {
+ return this.serialNumber;
+ }
+
+ /**
+ * Set serial number of the device being tracked.
+ *
+ * @param serialNumber the serialNumber value to set
+ * @return the TrackingInfo object itself.
+ */
+ public TrackingInfo withSerialNumber(String serialNumber) {
+ this.serialNumber = serialNumber;
+ return this;
+ }
+
+ /**
+ * Get name of the carrier used in the delivery.
+ *
+ * @return the carrierName value
+ */
+ public String carrierName() {
+ return this.carrierName;
+ }
+
+ /**
+ * Set name of the carrier used in the delivery.
+ *
+ * @param carrierName the carrierName value to set
+ * @return the TrackingInfo object itself.
+ */
+ public TrackingInfo withCarrierName(String carrierName) {
+ this.carrierName = carrierName;
+ return this;
+ }
+
+ /**
+ * Get tracking ID of the shipment.
+ *
+ * @return the trackingId value
+ */
+ public String trackingId() {
+ return this.trackingId;
+ }
+
+ /**
+ * Set tracking ID of the shipment.
+ *
+ * @param trackingId the trackingId value to set
+ * @return the TrackingInfo object itself.
+ */
+ public TrackingInfo withTrackingId(String trackingId) {
+ this.trackingId = trackingId;
+ return this;
+ }
+
+ /**
+ * Get tracking URL of the shipment.
+ *
+ * @return the trackingUrl value
+ */
+ public String trackingUrl() {
+ return this.trackingUrl;
+ }
+
+ /**
+ * Set tracking URL of the shipment.
+ *
+ * @param trackingUrl the trackingUrl value to set
+ * @return the TrackingInfo object itself.
+ */
+ public TrackingInfo withTrackingUrl(String trackingUrl) {
+ this.trackingUrl = trackingUrl;
+ return this;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Trigger.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Trigger.java
new file mode 100644
index 000000000000..1603e443bc58
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Trigger.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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.implementation.TriggerInner;
+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.edgegateway.implementation.DataBoxEdgeManager;
+
+/**
+ * Type representing Trigger.
+ */
+public interface Trigger 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 Trigger definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDataBoxEdgeDevice, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Trigger definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Trigger definition.
+ */
+ interface Blank extends WithDataBoxEdgeDevice {
+ }
+
+ /**
+ * The stage of the trigger definition allowing to specify DataBoxEdgeDevice.
+ */
+ interface WithDataBoxEdgeDevice {
+ /**
+ * Specifies deviceName, resourceGroupName.
+ * @param deviceName Name of the edge device in which trigger needs to be added or updated
+ * @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 Trigger update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of Trigger update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Triggers.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Triggers.java
new file mode 100644
index 000000000000..9f81769067eb
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Triggers.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.edgegateway;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.TriggersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Triggers.
+ */
+public interface Triggers extends SupportsCreating, HasInner {
+ /**
+ * Get a specific trigger by name.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of trigger to be fetched.
+ * @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);
+
+ /**
+ * List all the triggers configured in the device.
+ *
+ * @param deviceName Name of the device.
+ * @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 trigger on the gateway device.
+ *
+ * @param deviceName Name of the device.
+ * @param name Name of the trigger which needs to be deleted.
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateDownloadProgress.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateDownloadProgress.java
new file mode 100644
index 000000000000..bad3416f2d01
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateDownloadProgress.java
@@ -0,0 +1,108 @@
+/**
+ * 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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details about the download progress of update.
+ */
+public class UpdateDownloadProgress {
+ /**
+ * The download phase. Possible values include: 'Unknown', 'Initializing',
+ * 'Downloading', 'Verifying'.
+ */
+ @JsonProperty(value = "downloadPhase", access = JsonProperty.Access.WRITE_ONLY)
+ private DownloadPhase downloadPhase;
+
+ /**
+ * Percentage of completion.
+ */
+ @JsonProperty(value = "percentComplete", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer percentComplete;
+
+ /**
+ * Total bytes to download.
+ */
+ @JsonProperty(value = "totalBytesToDownload", access = JsonProperty.Access.WRITE_ONLY)
+ private Double totalBytesToDownload;
+
+ /**
+ * Total bytes downloaded.
+ */
+ @JsonProperty(value = "totalBytesDownloaded", access = JsonProperty.Access.WRITE_ONLY)
+ private Double totalBytesDownloaded;
+
+ /**
+ * Number of updates to download.
+ */
+ @JsonProperty(value = "numberOfUpdatesToDownload", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer numberOfUpdatesToDownload;
+
+ /**
+ * Number of updates downloaded.
+ */
+ @JsonProperty(value = "numberOfUpdatesDownloaded", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer numberOfUpdatesDownloaded;
+
+ /**
+ * Get the download phase. Possible values include: 'Unknown', 'Initializing', 'Downloading', 'Verifying'.
+ *
+ * @return the downloadPhase value
+ */
+ public DownloadPhase downloadPhase() {
+ return this.downloadPhase;
+ }
+
+ /**
+ * Get percentage of completion.
+ *
+ * @return the percentComplete value
+ */
+ public Integer percentComplete() {
+ return this.percentComplete;
+ }
+
+ /**
+ * Get total bytes to download.
+ *
+ * @return the totalBytesToDownload value
+ */
+ public Double totalBytesToDownload() {
+ return this.totalBytesToDownload;
+ }
+
+ /**
+ * Get total bytes downloaded.
+ *
+ * @return the totalBytesDownloaded value
+ */
+ public Double totalBytesDownloaded() {
+ return this.totalBytesDownloaded;
+ }
+
+ /**
+ * Get number of updates to download.
+ *
+ * @return the numberOfUpdatesToDownload value
+ */
+ public Integer numberOfUpdatesToDownload() {
+ return this.numberOfUpdatesToDownload;
+ }
+
+ /**
+ * Get number of updates downloaded.
+ *
+ * @return the numberOfUpdatesDownloaded value
+ */
+ public Integer numberOfUpdatesDownloaded() {
+ return this.numberOfUpdatesDownloaded;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateInstallProgress.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateInstallProgress.java
new file mode 100644
index 000000000000..dcea519d6d49
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateInstallProgress.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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details about the progress during installation of updates.
+ */
+public class UpdateInstallProgress {
+ /**
+ * Percentage of completion.
+ */
+ @JsonProperty(value = "percentComplete", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer percentComplete;
+
+ /**
+ * Number of updates to install.
+ */
+ @JsonProperty(value = "numberOfUpdatesToInstall", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer numberOfUpdatesToInstall;
+
+ /**
+ * Number of updates installed.
+ */
+ @JsonProperty(value = "numberOfUpdatesInstalled", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer numberOfUpdatesInstalled;
+
+ /**
+ * Get percentage of completion.
+ *
+ * @return the percentComplete value
+ */
+ public Integer percentComplete() {
+ return this.percentComplete;
+ }
+
+ /**
+ * Get number of updates to install.
+ *
+ * @return the numberOfUpdatesToInstall value
+ */
+ public Integer numberOfUpdatesToInstall() {
+ return this.numberOfUpdatesToInstall;
+ }
+
+ /**
+ * Get number of updates installed.
+ *
+ * @return the numberOfUpdatesInstalled value
+ */
+ public Integer numberOfUpdatesInstalled() {
+ return this.numberOfUpdatesInstalled;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateOperation.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateOperation.java
new file mode 100644
index 000000000000..7d1f327f74a2
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateOperation.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.edgegateway;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for UpdateOperation.
+ */
+public final class UpdateOperation extends ExpandableStringEnum {
+ /** Static value None for UpdateOperation. */
+ public static final UpdateOperation NONE = fromString("None");
+
+ /** Static value Scan for UpdateOperation. */
+ public static final UpdateOperation SCAN = fromString("Scan");
+
+ /** Static value Download for UpdateOperation. */
+ public static final UpdateOperation DOWNLOAD = fromString("Download");
+
+ /** Static value Install for UpdateOperation. */
+ public static final UpdateOperation INSTALL = fromString("Install");
+
+ /**
+ * Creates or finds a UpdateOperation from its string representation.
+ * @param name a name to look for
+ * @return the corresponding UpdateOperation
+ */
+ @JsonCreator
+ public static UpdateOperation fromString(String name) {
+ return fromString(name, UpdateOperation.class);
+ }
+
+ /**
+ * @return known UpdateOperation values
+ */
+ public static Collection values() {
+ return values(UpdateOperation.class);
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateOperationStage.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateOperationStage.java
new file mode 100644
index 000000000000..ccf102e4128d
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateOperationStage.java
@@ -0,0 +1,86 @@
+/**
+ * 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.edgegateway;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for UpdateOperationStage.
+ */
+public final class UpdateOperationStage extends ExpandableStringEnum {
+ /** Static value Unknown for UpdateOperationStage. */
+ public static final UpdateOperationStage UNKNOWN = fromString("Unknown");
+
+ /** Static value Initial for UpdateOperationStage. */
+ public static final UpdateOperationStage INITIAL = fromString("Initial");
+
+ /** Static value ScanStarted for UpdateOperationStage. */
+ public static final UpdateOperationStage SCAN_STARTED = fromString("ScanStarted");
+
+ /** Static value ScanComplete for UpdateOperationStage. */
+ public static final UpdateOperationStage SCAN_COMPLETE = fromString("ScanComplete");
+
+ /** Static value ScanFailed for UpdateOperationStage. */
+ public static final UpdateOperationStage SCAN_FAILED = fromString("ScanFailed");
+
+ /** Static value DownloadStarted for UpdateOperationStage. */
+ public static final UpdateOperationStage DOWNLOAD_STARTED = fromString("DownloadStarted");
+
+ /** Static value DownloadComplete for UpdateOperationStage. */
+ public static final UpdateOperationStage DOWNLOAD_COMPLETE = fromString("DownloadComplete");
+
+ /** Static value DownloadFailed for UpdateOperationStage. */
+ public static final UpdateOperationStage DOWNLOAD_FAILED = fromString("DownloadFailed");
+
+ /** Static value InstallStarted for UpdateOperationStage. */
+ public static final UpdateOperationStage INSTALL_STARTED = fromString("InstallStarted");
+
+ /** Static value InstallComplete for UpdateOperationStage. */
+ public static final UpdateOperationStage INSTALL_COMPLETE = fromString("InstallComplete");
+
+ /** Static value InstallFailed for UpdateOperationStage. */
+ public static final UpdateOperationStage INSTALL_FAILED = fromString("InstallFailed");
+
+ /** Static value RebootInitiated for UpdateOperationStage. */
+ public static final UpdateOperationStage REBOOT_INITIATED = fromString("RebootInitiated");
+
+ /** Static value Success for UpdateOperationStage. */
+ public static final UpdateOperationStage SUCCESS = fromString("Success");
+
+ /** Static value Failure for UpdateOperationStage. */
+ public static final UpdateOperationStage FAILURE = fromString("Failure");
+
+ /** Static value RescanStarted for UpdateOperationStage. */
+ public static final UpdateOperationStage RESCAN_STARTED = fromString("RescanStarted");
+
+ /** Static value RescanComplete for UpdateOperationStage. */
+ public static final UpdateOperationStage RESCAN_COMPLETE = fromString("RescanComplete");
+
+ /** Static value RescanFailed for UpdateOperationStage. */
+ public static final UpdateOperationStage RESCAN_FAILED = fromString("RescanFailed");
+
+ /**
+ * Creates or finds a UpdateOperationStage from its string representation.
+ * @param name a name to look for
+ * @return the corresponding UpdateOperationStage
+ */
+ @JsonCreator
+ public static UpdateOperationStage fromString(String name) {
+ return fromString(name, UpdateOperationStage.class);
+ }
+
+ /**
+ * @return known UpdateOperationStage values
+ */
+ public static Collection values() {
+ return values(UpdateOperationStage.class);
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateSummary.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateSummary.java
new file mode 100644
index 000000000000..f05654cce422
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UpdateSummary.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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.edgegateway.implementation.DataBoxEdgeManager;
+import com.microsoft.azure.management.edgegateway.implementation.UpdateSummaryInner;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing UpdateSummary.
+ */
+public interface UpdateSummary extends HasInner, HasManager {
+ /**
+ * @return the deviceLastScannedDateTime value.
+ */
+ DateTime deviceLastScannedDateTime();
+
+ /**
+ * @return the deviceVersionNumber value.
+ */
+ String deviceVersionNumber();
+
+ /**
+ * @return the friendlyDeviceVersionName value.
+ */
+ String friendlyDeviceVersionName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the inProgressDownloadJobId value.
+ */
+ String inProgressDownloadJobId();
+
+ /**
+ * @return the inProgressDownloadJobStartedDateTime value.
+ */
+ DateTime inProgressDownloadJobStartedDateTime();
+
+ /**
+ * @return the inProgressInstallJobId value.
+ */
+ String inProgressInstallJobId();
+
+ /**
+ * @return the inProgressInstallJobStartedDateTime value.
+ */
+ DateTime inProgressInstallJobStartedDateTime();
+
+ /**
+ * @return the lastCompletedDownloadJobDateTime value.
+ */
+ DateTime lastCompletedDownloadJobDateTime();
+
+ /**
+ * @return the lastCompletedInstallJobDateTime value.
+ */
+ DateTime lastCompletedInstallJobDateTime();
+
+ /**
+ * @return the lastCompletedScanJobDateTime value.
+ */
+ DateTime lastCompletedScanJobDateTime();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the ongoingUpdateOperation value.
+ */
+ UpdateOperation ongoingUpdateOperation();
+
+ /**
+ * @return the rebootBehavior value.
+ */
+ InstallRebootBehavior rebootBehavior();
+
+ /**
+ * @return the totalNumberOfUpdatesAvailable value.
+ */
+ Integer totalNumberOfUpdatesAvailable();
+
+ /**
+ * @return the totalNumberOfUpdatesPendingDownload value.
+ */
+ Integer totalNumberOfUpdatesPendingDownload();
+
+ /**
+ * @return the totalNumberOfUpdatesPendingInstall value.
+ */
+ Integer totalNumberOfUpdatesPendingInstall();
+
+ /**
+ * @return the totalUpdateSizeInBytes value.
+ */
+ Double totalUpdateSizeInBytes();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the updateTitles value.
+ */
+ List updateTitles();
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UploadCertificateRequest.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UploadCertificateRequest.java
new file mode 100644
index 000000000000..0ffa58575d9b
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UploadCertificateRequest.java
@@ -0,0 +1,72 @@
+/**
+ * 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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The Upload certificate request.
+ */
+@JsonFlatten
+public class UploadCertificateRequest {
+ /**
+ * The authentication type. Possible values include: 'Invalid',
+ * 'AzureActiveDirectory'.
+ */
+ @JsonProperty(value = "properties.authenticationType")
+ private AuthenticationType authenticationType;
+
+ /**
+ * The base64 encoded certificate raw data.
+ */
+ @JsonProperty(value = "properties.certificate", required = true)
+ private String certificate;
+
+ /**
+ * Get the authentication type. Possible values include: 'Invalid', 'AzureActiveDirectory'.
+ *
+ * @return the authenticationType value
+ */
+ public AuthenticationType authenticationType() {
+ return this.authenticationType;
+ }
+
+ /**
+ * Set the authentication type. Possible values include: 'Invalid', 'AzureActiveDirectory'.
+ *
+ * @param authenticationType the authenticationType value to set
+ * @return the UploadCertificateRequest object itself.
+ */
+ public UploadCertificateRequest withAuthenticationType(AuthenticationType authenticationType) {
+ this.authenticationType = authenticationType;
+ return this;
+ }
+
+ /**
+ * Get the base64 encoded certificate raw data.
+ *
+ * @return the certificate value
+ */
+ public String certificate() {
+ return this.certificate;
+ }
+
+ /**
+ * Set the base64 encoded certificate raw data.
+ *
+ * @param certificate the certificate value to set
+ * @return the UploadCertificateRequest object itself.
+ */
+ public UploadCertificateRequest withCertificate(String certificate) {
+ this.certificate = certificate;
+ return this;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UploadCertificateResponse.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UploadCertificateResponse.java
new file mode 100644
index 000000000000..13e26e25e792
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UploadCertificateResponse.java
@@ -0,0 +1,55 @@
+/**
+ * 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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.edgegateway.implementation.DataBoxEdgeManager;
+import com.microsoft.azure.management.edgegateway.implementation.UploadCertificateResponseInner;
+
+/**
+ * Type representing UploadCertificateResponse.
+ */
+public interface UploadCertificateResponse extends HasInner, HasManager {
+ /**
+ * @return the aadAuthority value.
+ */
+ String aadAuthority();
+
+ /**
+ * @return the aadTenantId value.
+ */
+ String aadTenantId();
+
+ /**
+ * @return the authType value.
+ */
+ AuthenticationType authType();
+
+ /**
+ * @return the azureManagementEndpointAudience value.
+ */
+ String azureManagementEndpointAudience();
+
+ /**
+ * @return the resourceId value.
+ */
+ String resourceId();
+
+ /**
+ * @return the servicePrincipalClientId value.
+ */
+ String servicePrincipalClientId();
+
+ /**
+ * @return the servicePrincipalObjectId value.
+ */
+ String servicePrincipalObjectId();
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/User.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/User.java
new file mode 100644
index 000000000000..3e41039ef6bb
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/User.java
@@ -0,0 +1,147 @@
+/**
+ * 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.edgegateway;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.edgegateway.implementation.UserInner;
+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.edgegateway.implementation.DataBoxEdgeManager;
+import java.util.List;
+
+/**
+ * Type representing User.
+ */
+public interface User extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the encryptedPassword value.
+ */
+ AsymmetricEncryptedSecret encryptedPassword();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the shareAccessRights value.
+ */
+ List shareAccessRights();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the User definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDataBoxEdgeDevice, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of User definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a User definition.
+ */
+ interface Blank extends WithDataBoxEdgeDevice {
+ }
+
+ /**
+ * The stage of the user 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 user definition allowing to specify EncryptedPassword.
+ */
+ interface WithEncryptedPassword {
+ /**
+ * Specifies encryptedPassword.
+ * @param encryptedPassword The details of the password specified for the user
+ * @return the next definition stage
+ */
+ WithCreate withEncryptedPassword(AsymmetricEncryptedSecret encryptedPassword);
+ }
+
+ /**
+ * The stage of the user definition allowing to specify ShareAccessRights.
+ */
+ interface WithShareAccessRights {
+ /**
+ * Specifies shareAccessRights.
+ * @param shareAccessRights List of shares that the user has rights on. This field should not be specified during user creation
+ * @return the next definition stage
+ */
+ WithCreate withShareAccessRights(List shareAccessRights);
+ }
+
+ /**
+ * 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.WithEncryptedPassword, DefinitionStages.WithShareAccessRights {
+ }
+ }
+ /**
+ * The template for a User update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithEncryptedPassword, UpdateStages.WithShareAccessRights {
+ }
+
+ /**
+ * Grouping of User update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the user update allowing to specify EncryptedPassword.
+ */
+ interface WithEncryptedPassword {
+ /**
+ * Specifies encryptedPassword.
+ * @param encryptedPassword The details of the password specified for the user
+ * @return the next update stage
+ */
+ Update withEncryptedPassword(AsymmetricEncryptedSecret encryptedPassword);
+ }
+
+ /**
+ * The stage of the user update allowing to specify ShareAccessRights.
+ */
+ interface WithShareAccessRights {
+ /**
+ * Specifies shareAccessRights.
+ * @param shareAccessRights List of shares that the user has rights on. This field should not be specified during user creation
+ * @return the next update stage
+ */
+ Update withShareAccessRights(List shareAccessRights);
+ }
+
+ }
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UserAccessRight.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UserAccessRight.java
new file mode 100644
index 000000000000..6c63484529bc
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/UserAccessRight.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.edgegateway;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The mapping between a particular user and the type of access they have on
+ * the SMB share.
+ */
+public class UserAccessRight {
+ /**
+ * Id of the user (already existing in the device).
+ */
+ @JsonProperty(value = "userId", required = true)
+ private String userId;
+
+ /**
+ * Type of access to be allowed for the user. Possible values include:
+ * 'Change', 'Read', 'Custom'.
+ */
+ @JsonProperty(value = "accessType", required = true)
+ private ShareAccessType accessType;
+
+ /**
+ * Get id of the user (already existing in the device).
+ *
+ * @return the userId value
+ */
+ public String userId() {
+ return this.userId;
+ }
+
+ /**
+ * Set id of the user (already existing in the device).
+ *
+ * @param userId the userId value to set
+ * @return the UserAccessRight object itself.
+ */
+ public UserAccessRight withUserId(String userId) {
+ this.userId = userId;
+ return this;
+ }
+
+ /**
+ * Get type of access to be allowed for the user. Possible values include: 'Change', 'Read', 'Custom'.
+ *
+ * @return the accessType value
+ */
+ public ShareAccessType accessType() {
+ return this.accessType;
+ }
+
+ /**
+ * Set type of access to be allowed for the user. Possible values include: 'Change', 'Read', 'Custom'.
+ *
+ * @param accessType the accessType value to set
+ * @return the UserAccessRight object itself.
+ */
+ public UserAccessRight withAccessType(ShareAccessType accessType) {
+ this.accessType = accessType;
+ return this;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Users.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Users.java
new file mode 100644
index 000000000000..46888dfaeadb
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/Users.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.edgegateway;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.edgegateway.implementation.UsersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Users.
+ */
+public interface Users extends SupportsCreating, HasInner {
+ /**
+ * Returns the properties of the specified user.
+ *
+ * @param deviceName The device name.
+ * @param name The name of the user who needs to be retrieved.
+ * @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);
+
+ /**
+ * Returns all the users registered in a data box edge/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 user on a databox edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param name The name of the user who needs to be deleted.
+ * @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/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertImpl.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertImpl.java
new file mode 100644
index 000000000000..31e1761f1916
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertImpl.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.edgegateway.implementation;
+
+import com.microsoft.azure.management.edgegateway.Alert;
+import com.microsoft.azure.arm.model.implementation.IndexableRefreshableWrapperImpl;
+import rx.Observable;
+import org.joda.time.DateTime;
+import java.util.Map;
+import com.microsoft.azure.management.edgegateway.AlertErrorDetails;
+import com.microsoft.azure.management.edgegateway.AlertSeverity;
+
+class AlertImpl extends IndexableRefreshableWrapperImpl implements Alert {
+ private final DataBoxEdgeManager manager;
+ private String deviceName;
+ private String name;
+ private String resourceGroupName;
+
+ AlertImpl(AlertInner inner, DataBoxEdgeManager manager) {
+ super(null, inner);
+ this.manager = manager;
+ // set resource ancestor and positional variables
+ this.deviceName = IdParsingUtils.getValueFromIdByName(inner.id(), "dataBoxEdgeDevices");
+ this.name = IdParsingUtils.getValueFromIdByName(inner.id(), "alerts");
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ }
+
+ @Override
+ public DataBoxEdgeManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ AlertsInner client = this.manager().inner().alerts();
+ return client.getAsync(this.deviceName, this.name, this.resourceGroupName);
+ }
+
+
+
+ @Override
+ public String alertType() {
+ return this.inner().alertType();
+ }
+
+ @Override
+ public DateTime appearedAtDateTime() {
+ return this.inner().appearedAtDateTime();
+ }
+
+ @Override
+ public Map detailedInformation() {
+ return this.inner().detailedInformation();
+ }
+
+ @Override
+ public AlertErrorDetails errorDetails() {
+ return this.inner().errorDetails();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String recommendation() {
+ return this.inner().recommendation();
+ }
+
+ @Override
+ public AlertSeverity severity() {
+ return this.inner().severity();
+ }
+
+ @Override
+ public String title() {
+ return this.inner().title();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertInner.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertInner.java
new file mode 100644
index 000000000000..ec9b9efc4dac
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertInner.java
@@ -0,0 +1,130 @@
+/**
+ * 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.edgegateway.implementation;
+
+import org.joda.time.DateTime;
+import com.microsoft.azure.management.edgegateway.AlertSeverity;
+import com.microsoft.azure.management.edgegateway.AlertErrorDetails;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.edgegateway.ARMBaseModel;
+
+/**
+ * Alert on the data box edge/gateway device.
+ */
+@JsonFlatten
+public class AlertInner extends ARMBaseModel {
+ /**
+ * Title of the alert.
+ */
+ @JsonProperty(value = "properties.title", access = JsonProperty.Access.WRITE_ONLY)
+ private String title;
+
+ /**
+ * Type of the alert.
+ */
+ @JsonProperty(value = "properties.alertType", access = JsonProperty.Access.WRITE_ONLY)
+ private String alertType;
+
+ /**
+ * UTC time at which the alert appeared.
+ */
+ @JsonProperty(value = "properties.appearedAtDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime appearedAtDateTime;
+
+ /**
+ * Recommendation for acting on the alert.
+ */
+ @JsonProperty(value = "properties.recommendation", access = JsonProperty.Access.WRITE_ONLY)
+ private String recommendation;
+
+ /**
+ * Severity of the alert. Possible values include: 'Informational',
+ * 'Warning', 'Critical'.
+ */
+ @JsonProperty(value = "properties.severity", access = JsonProperty.Access.WRITE_ONLY)
+ private AlertSeverity severity;
+
+ /**
+ * Error details of the alert.
+ */
+ @JsonProperty(value = "properties.errorDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private AlertErrorDetails errorDetails;
+
+ /**
+ * Detailed information about the alert.
+ */
+ @JsonProperty(value = "properties.detailedInformation", access = JsonProperty.Access.WRITE_ONLY)
+ private Map detailedInformation;
+
+ /**
+ * Get title of the alert.
+ *
+ * @return the title value
+ */
+ public String title() {
+ return this.title;
+ }
+
+ /**
+ * Get type of the alert.
+ *
+ * @return the alertType value
+ */
+ public String alertType() {
+ return this.alertType;
+ }
+
+ /**
+ * Get uTC time at which the alert appeared.
+ *
+ * @return the appearedAtDateTime value
+ */
+ public DateTime appearedAtDateTime() {
+ return this.appearedAtDateTime;
+ }
+
+ /**
+ * Get recommendation for acting on the alert.
+ *
+ * @return the recommendation value
+ */
+ public String recommendation() {
+ return this.recommendation;
+ }
+
+ /**
+ * Get severity of the alert. Possible values include: 'Informational', 'Warning', 'Critical'.
+ *
+ * @return the severity value
+ */
+ public AlertSeverity severity() {
+ return this.severity;
+ }
+
+ /**
+ * Get error details of the alert.
+ *
+ * @return the errorDetails value
+ */
+ public AlertErrorDetails errorDetails() {
+ return this.errorDetails;
+ }
+
+ /**
+ * Get detailed information about the alert.
+ *
+ * @return the detailedInformation value
+ */
+ public Map detailedInformation() {
+ return this.detailedInformation;
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertsImpl.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertsImpl.java
new file mode 100644
index 000000000000..268214c484b2
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertsImpl.java
@@ -0,0 +1,65 @@
+/**
+ * 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.edgegateway.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.edgegateway.Alerts;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.edgegateway.Alert;
+
+class AlertsImpl extends WrapperImpl implements Alerts {
+ private final DataBoxEdgeManager manager;
+
+ AlertsImpl(DataBoxEdgeManager manager) {
+ super(manager.inner().alerts());
+ this.manager = manager;
+ }
+
+ public DataBoxEdgeManager manager() {
+ return this.manager;
+ }
+
+ private AlertImpl wrapModel(AlertInner inner) {
+ return new AlertImpl(inner, manager());
+ }
+
+ @Override
+ public Observable listByDataBoxEdgeDeviceAsync(final String deviceName, final String resourceGroupName) {
+ AlertsInner client = this.inner();
+ return client.listByDataBoxEdgeDeviceAsync(deviceName, resourceGroupName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Alert call(AlertInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Observable getAsync(String deviceName, String name, String resourceGroupName) {
+ AlertsInner client = this.inner();
+ return client.getAsync(deviceName, name, resourceGroupName)
+ .map(new Func1() {
+ @Override
+ public Alert call(AlertInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+}
diff --git a/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertsInner.java b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertsInner.java
new file mode 100644
index 000000000000..7acee0e9e2e7
--- /dev/null
+++ b/azure-mgmt-edgegateway/src/main/java/com/microsoft/azure/management/edgegateway/implementation/AlertsInner.java
@@ -0,0 +1,401 @@
+/**
+ * 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.edgegateway.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Alerts.
+ */
+public class AlertsInner {
+ /** The Retrofit service to perform REST calls. */
+ private AlertsService service;
+ /** The service client containing this operation class. */
+ private DataBoxEdgeManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AlertsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public AlertsInner(Retrofit retrofit, DataBoxEdgeManagementClientImpl client) {
+ this.service = retrofit.create(AlertsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Alerts to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface AlertsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.edgegateway.Alerts listByDataBoxEdgeDevice" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/alerts")
+ Observable> listByDataBoxEdgeDevice(@Path("deviceName") String deviceName, @Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.edgegateway.Alerts get" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/alerts/{name}")
+ Observable> get(@Path("deviceName") String deviceName, @Path("name") String name, @Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.edgegateway.Alerts listByDataBoxEdgeDeviceNext" })
+ @GET
+ Observable> listByDataBoxEdgeDeviceNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Retrieves all the alerts for a data box edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<AlertInner> object if successful.
+ */
+ public PagedList listByDataBoxEdgeDevice(final String deviceName, final String resourceGroupName) {
+ ServiceResponse> response = listByDataBoxEdgeDeviceSinglePageAsync(deviceName, resourceGroupName).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listByDataBoxEdgeDeviceNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Retrieves all the alerts for a data box edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listByDataBoxEdgeDeviceAsync(final String deviceName, final String resourceGroupName, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listByDataBoxEdgeDeviceSinglePageAsync(deviceName, resourceGroupName),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listByDataBoxEdgeDeviceNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Retrieves all the alerts for a data box edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<AlertInner> object
+ */
+ public Observable> listByDataBoxEdgeDeviceAsync(final String deviceName, final String resourceGroupName) {
+ return listByDataBoxEdgeDeviceWithServiceResponseAsync(deviceName, resourceGroupName)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Retrieves all the alerts for a data box edge/gateway device.
+ *
+ * @param deviceName The device name.
+ * @param resourceGroupName The resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<AlertInner> object
+ */
+ public Observable