diff --git a/sdk/compute/mgmt-v2017_12_01/pom.xml b/sdk/compute/mgmt-v2017_12_01/pom.xml
index baae466750ce3..ee58e3ec1f8b2 100644
--- a/sdk/compute/mgmt-v2017_12_01/pom.xml
+++ b/sdk/compute/mgmt-v2017_12_01/pom.xml
@@ -11,15 +11,15 @@
     <parent>
         <groupId>com.microsoft.azure</groupId>
         <artifactId>azure-arm-parent</artifactId>
-        <version>1.3.0</version>
-        <relativePath>../../parents/azure-arm-parent</relativePath>
+        <version>1.1.0</version>
+        <relativePath>../../../pom.management.xml</relativePath>
     </parent>
     <artifactId>azure-mgmt-compute</artifactId>
-    <version>1.0.0-beta-1</version>
+    <version>1.0.0-beta</version>
     <packaging>jar</packaging>
     <name>Microsoft Azure SDK for Compute Management</name>
     <description>This package contains Microsoft Compute Management SDK.</description>
-    <url>https://github.com/Azure/azure-libraries-for-java</url>
+    <url>https://github.com/Azure/azure-sdk-for-java</url>
     <licenses>
         <license>
             <name>The MIT License (MIT)</name>
@@ -28,8 +28,8 @@
         </license>
     </licenses>
     <scm>
-        <url>scm:git:https://github.com/Azure/azure-libraries-for-java</url>
-        <connection>scm:git:git@github.com:Azure/azure-libraries-for-java.git</connection>
+        <url>scm:git:https://github.com/Azure/azure-sdk-for-java</url>
+        <connection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</connection>
         <tag>HEAD</tag>
     </scm>
     <properties>
@@ -71,6 +71,8 @@
             <artifactId>azure-arm-client-runtime</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
+            <!--Below version for test jar needs to be removed, this will be done as part of v1-runtime 1.6.7-->
+            <version>1.6.5</version>
         </dependency>
     </dependencies>
     <build>
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AdditionalUnattendContent.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AdditionalUnattendContent.java
index 749f7491712c4..bdd5f10b3a40a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AdditionalUnattendContent.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AdditionalUnattendContent.java
@@ -49,7 +49,7 @@ public class AdditionalUnattendContent {
     private String content;
 
     /**
-     * Get the passName value.
+     * Get the pass name. Currently, the only allowable value is OobeSystem. Possible values include: 'OobeSystem'.
      *
      * @return the passName value
      */
@@ -58,7 +58,7 @@ public PassNames passName() {
     }
 
     /**
-     * Set the passName value.
+     * Set the pass name. Currently, the only allowable value is OobeSystem. Possible values include: 'OobeSystem'.
      *
      * @param passName the passName value to set
      * @return the AdditionalUnattendContent object itself.
@@ -69,7 +69,7 @@ public AdditionalUnattendContent withPassName(PassNames passName) {
     }
 
     /**
-     * Get the componentName value.
+     * Get the component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup. Possible values include: 'Microsoft-Windows-Shell-Setup'.
      *
      * @return the componentName value
      */
@@ -78,7 +78,7 @@ public ComponentNames componentName() {
     }
 
     /**
-     * Set the componentName value.
+     * Set the component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup. Possible values include: 'Microsoft-Windows-Shell-Setup'.
      *
      * @param componentName the componentName value to set
      * @return the AdditionalUnattendContent object itself.
@@ -89,7 +89,7 @@ public AdditionalUnattendContent withComponentName(ComponentNames componentName)
     }
 
     /**
-     * Get the settingName value.
+     * Get specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon. Possible values include: 'AutoLogon', 'FirstLogonCommands'.
      *
      * @return the settingName value
      */
@@ -98,7 +98,7 @@ public SettingNames settingName() {
     }
 
     /**
-     * Set the settingName value.
+     * Set specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon. Possible values include: 'AutoLogon', 'FirstLogonCommands'.
      *
      * @param settingName the settingName value to set
      * @return the AdditionalUnattendContent object itself.
@@ -109,7 +109,7 @@ public AdditionalUnattendContent withSettingName(SettingNames settingName) {
     }
 
     /**
-     * Get the content value.
+     * Get specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
      *
      * @return the content value
      */
@@ -118,7 +118,7 @@ public String content() {
     }
 
     /**
-     * Set the content value.
+     * Set specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
      *
      * @param content the content value to set
      * @return the AdditionalUnattendContent object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiEntityReference.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiEntityReference.java
index 19bc4c49cf912..7dae304fada6f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiEntityReference.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiEntityReference.java
@@ -16,13 +16,13 @@
 public class ApiEntityReference {
     /**
      * The ARM resource id in the form of
-     * /subscriptions/{SubcriptionId}/resourceGroups/{ResourceGroupName}/...
+     * /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
      */
     @JsonProperty(value = "id")
     private String id;
 
     /**
-     * Get the id value.
+     * Get the ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
      *
      * @return the id value
      */
@@ -31,7 +31,7 @@ public String id() {
     }
 
     /**
-     * Set the id value.
+     * Set the ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
      *
      * @param id the id value to set
      * @return the ApiEntityReference object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiError.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiError.java
index e904db231ec61..44d455c8b0078 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiError.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiError.java
@@ -46,7 +46,7 @@ public class ApiError {
     private String message;
 
     /**
-     * Get the details value.
+     * Get the Api error details.
      *
      * @return the details value
      */
@@ -55,7 +55,7 @@ public List<ApiErrorBase> details() {
     }
 
     /**
-     * Set the details value.
+     * Set the Api error details.
      *
      * @param details the details value to set
      * @return the ApiError object itself.
@@ -66,7 +66,7 @@ public ApiError withDetails(List<ApiErrorBase> details) {
     }
 
     /**
-     * Get the innererror value.
+     * Get the Api inner error.
      *
      * @return the innererror value
      */
@@ -75,7 +75,7 @@ public InnerError innererror() {
     }
 
     /**
-     * Set the innererror value.
+     * Set the Api inner error.
      *
      * @param innererror the innererror value to set
      * @return the ApiError object itself.
@@ -86,7 +86,7 @@ public ApiError withInnererror(InnerError innererror) {
     }
 
     /**
-     * Get the code value.
+     * Get the error code.
      *
      * @return the code value
      */
@@ -95,7 +95,7 @@ public String code() {
     }
 
     /**
-     * Set the code value.
+     * Set the error code.
      *
      * @param code the code value to set
      * @return the ApiError object itself.
@@ -106,7 +106,7 @@ public ApiError withCode(String code) {
     }
 
     /**
-     * Get the target value.
+     * Get the target of the particular error.
      *
      * @return the target value
      */
@@ -115,7 +115,7 @@ public String target() {
     }
 
     /**
-     * Set the target value.
+     * Set the target of the particular error.
      *
      * @param target the target value to set
      * @return the ApiError object itself.
@@ -126,7 +126,7 @@ public ApiError withTarget(String target) {
     }
 
     /**
-     * Get the message value.
+     * Get the error message.
      *
      * @return the message value
      */
@@ -135,7 +135,7 @@ public String message() {
     }
 
     /**
-     * Set the message value.
+     * Set the error message.
      *
      * @param message the message value to set
      * @return the ApiError object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiErrorBase.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiErrorBase.java
index 006a9da8cd1bf..dc54be5513368 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiErrorBase.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ApiErrorBase.java
@@ -33,7 +33,7 @@ public class ApiErrorBase {
     private String message;
 
     /**
-     * Get the code value.
+     * Get the error code.
      *
      * @return the code value
      */
@@ -42,7 +42,7 @@ public String code() {
     }
 
     /**
-     * Set the code value.
+     * Set the error code.
      *
      * @param code the code value to set
      * @return the ApiErrorBase object itself.
@@ -53,7 +53,7 @@ public ApiErrorBase withCode(String code) {
     }
 
     /**
-     * Get the target value.
+     * Get the target of the particular error.
      *
      * @return the target value
      */
@@ -62,7 +62,7 @@ public String target() {
     }
 
     /**
-     * Set the target value.
+     * Set the target of the particular error.
      *
      * @param target the target value to set
      * @return the ApiErrorBase object itself.
@@ -73,7 +73,7 @@ public ApiErrorBase withTarget(String target) {
     }
 
     /**
-     * Get the message value.
+     * Get the error message.
      *
      * @return the message value
      */
@@ -82,7 +82,7 @@ public String message() {
     }
 
     /**
-     * Set the message value.
+     * Set the error message.
      *
      * @param message the message value to set
      * @return the ApiErrorBase object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AutoOSUpgradePolicy.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AutoOSUpgradePolicy.java
index 43aebfafe79cf..548ce0d970d42 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AutoOSUpgradePolicy.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AutoOSUpgradePolicy.java
@@ -22,7 +22,7 @@ public class AutoOSUpgradePolicy {
     private Boolean disableAutoRollback;
 
     /**
-     * Get the disableAutoRollback value.
+     * Get whether OS image rollback feature should be disabled. Default value is false.
      *
      * @return the disableAutoRollback value
      */
@@ -31,7 +31,7 @@ public Boolean disableAutoRollback() {
     }
 
     /**
-     * Set the disableAutoRollback value.
+     * Set whether OS image rollback feature should be disabled. Default value is false.
      *
      * @param disableAutoRollback the disableAutoRollback value to set
      * @return the AutoOSUpgradePolicy object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySet.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySet.java
index a00ca6b22d265..6b00b05b4db12 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySet.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySet.java
@@ -10,12 +10,12 @@
 
 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.GroupableResourceCore;
 import com.microsoft.azure.arm.resources.models.HasManager;
 import com.microsoft.azure.management.compute.v2017_12_01.implementation.ComputeManager;
 import java.util.List;
@@ -74,41 +74,49 @@ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup<Wit
         }
 
         /**
-         * The stage of the availabilityset update allowing to specify PlatformFaultDomainCount.
+         * The stage of the availabilityset definition allowing to specify PlatformFaultDomainCount.
          */
         interface WithPlatformFaultDomainCount {
             /**
              * Specifies platformFaultDomainCount.
+             * @param platformFaultDomainCount Fault Domain count
+             * @return the next definition stage
              */
             WithCreate withPlatformFaultDomainCount(Integer platformFaultDomainCount);
         }
 
         /**
-         * The stage of the availabilityset update allowing to specify PlatformUpdateDomainCount.
+         * The stage of the availabilityset definition allowing to specify PlatformUpdateDomainCount.
          */
         interface WithPlatformUpdateDomainCount {
             /**
              * Specifies platformUpdateDomainCount.
+             * @param platformUpdateDomainCount Update Domain count
+             * @return the next definition stage
              */
             WithCreate withPlatformUpdateDomainCount(Integer platformUpdateDomainCount);
         }
 
         /**
-         * The stage of the availabilityset update allowing to specify Sku.
+         * The stage of the availabilityset definition allowing to specify Sku.
          */
         interface WithSku {
             /**
              * Specifies sku.
+             * @param sku Sku of the availability set
+             * @return the next definition stage
              */
             WithCreate withSku(Sku sku);
         }
 
         /**
-         * The stage of the availabilityset update allowing to specify VirtualMachines.
+         * The stage of the availabilityset definition allowing to specify VirtualMachines.
          */
         interface WithVirtualMachines {
             /**
              * Specifies virtualMachines.
+             * @param virtualMachines A list of references to all virtual machines in the availability set
+             * @return the next definition stage
              */
             WithCreate withVirtualMachines(List<SubResource> virtualMachines);
         }
@@ -132,41 +140,49 @@ interface Update extends Appliable<AvailabilitySet>, Resource.UpdateWithTags<Upd
      */
     interface UpdateStages {
         /**
-         * The stage of the availabilityset {0} allowing to specify PlatformFaultDomainCount.
+         * The stage of the availabilityset update allowing to specify PlatformFaultDomainCount.
          */
         interface WithPlatformFaultDomainCount {
             /**
              * Specifies platformFaultDomainCount.
+             * @param platformFaultDomainCount Fault Domain count
+             * @return the next update stage
              */
             Update withPlatformFaultDomainCount(Integer platformFaultDomainCount);
         }
 
         /**
-         * The stage of the availabilityset {0} allowing to specify PlatformUpdateDomainCount.
+         * The stage of the availabilityset update allowing to specify PlatformUpdateDomainCount.
          */
         interface WithPlatformUpdateDomainCount {
             /**
              * Specifies platformUpdateDomainCount.
+             * @param platformUpdateDomainCount Update Domain count
+             * @return the next update stage
              */
             Update withPlatformUpdateDomainCount(Integer platformUpdateDomainCount);
         }
 
         /**
-         * The stage of the availabilityset {0} allowing to specify Sku.
+         * The stage of the availabilityset update allowing to specify Sku.
          */
         interface WithSku {
             /**
              * Specifies sku.
+             * @param sku Sku of the availability set
+             * @return the next update stage
              */
             Update withSku(Sku sku);
         }
 
         /**
-         * The stage of the availabilityset {0} allowing to specify VirtualMachines.
+         * The stage of the availabilityset update allowing to specify VirtualMachines.
          */
         interface WithVirtualMachines {
             /**
              * Specifies virtualMachines.
+             * @param virtualMachines A list of references to all virtual machines in the availability set
+             * @return the next update stage
              */
             Update withVirtualMachines(List<SubResource> virtualMachines);
         }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySetUpdate.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySetUpdate.java
index 0628498364ef9..246ef30bf0b52 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySetUpdate.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySetUpdate.java
@@ -50,7 +50,7 @@ public class AvailabilitySetUpdate extends UpdateResource {
     private Sku sku;
 
     /**
-     * Get the platformUpdateDomainCount value.
+     * Get update Domain count.
      *
      * @return the platformUpdateDomainCount value
      */
@@ -59,7 +59,7 @@ public Integer platformUpdateDomainCount() {
     }
 
     /**
-     * Set the platformUpdateDomainCount value.
+     * Set update Domain count.
      *
      * @param platformUpdateDomainCount the platformUpdateDomainCount value to set
      * @return the AvailabilitySetUpdate object itself.
@@ -70,7 +70,7 @@ public AvailabilitySetUpdate withPlatformUpdateDomainCount(Integer platformUpdat
     }
 
     /**
-     * Get the platformFaultDomainCount value.
+     * Get fault Domain count.
      *
      * @return the platformFaultDomainCount value
      */
@@ -79,7 +79,7 @@ public Integer platformFaultDomainCount() {
     }
 
     /**
-     * Set the platformFaultDomainCount value.
+     * Set fault Domain count.
      *
      * @param platformFaultDomainCount the platformFaultDomainCount value to set
      * @return the AvailabilitySetUpdate object itself.
@@ -90,7 +90,7 @@ public AvailabilitySetUpdate withPlatformFaultDomainCount(Integer platformFaultD
     }
 
     /**
-     * Get the virtualMachines value.
+     * Get a list of references to all virtual machines in the availability set.
      *
      * @return the virtualMachines value
      */
@@ -99,7 +99,7 @@ public List<SubResource> virtualMachines() {
     }
 
     /**
-     * Set the virtualMachines value.
+     * Set a list of references to all virtual machines in the availability set.
      *
      * @param virtualMachines the virtualMachines value to set
      * @return the AvailabilitySetUpdate object itself.
@@ -110,7 +110,7 @@ public AvailabilitySetUpdate withVirtualMachines(List<SubResource> virtualMachin
     }
 
     /**
-     * Get the statuses value.
+     * Get the resource status information.
      *
      * @return the statuses value
      */
@@ -119,7 +119,7 @@ public List<InstanceViewStatus> statuses() {
     }
 
     /**
-     * Get the sku value.
+     * Get sku of the availability set.
      *
      * @return the sku value
      */
@@ -128,7 +128,7 @@ public Sku sku() {
     }
 
     /**
-     * Set the sku value.
+     * Set sku of the availability set.
      *
      * @param sku the sku value to set
      * @return the AvailabilitySetUpdate object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySets.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySets.java
index fc354bbb5fb5c..3b77fc24a909e 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySets.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/AvailabilitySets.java
@@ -14,6 +14,7 @@
 import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
 import rx.Observable;
 import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
 import com.microsoft.azure.management.compute.v2017_12_01.implementation.AvailabilitySetsInner;
 import com.microsoft.azure.arm.model.HasInner;
 import com.microsoft.azure.management.compute.v2017_12_01.AvailabilitySetVirtualMachineSize;
@@ -21,7 +22,7 @@
 /**
  * Type representing AvailabilitySets.
  */
-public interface AvailabilitySets extends SupportsCreating<AvailabilitySet.DefinitionStages.Blank>, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup<AvailabilitySet>, SupportsListingByResourceGroup<AvailabilitySet>, HasInner<AvailabilitySetsInner> {
+public interface AvailabilitySets extends SupportsCreating<AvailabilitySet.DefinitionStages.Blank>, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup<AvailabilitySet>, SupportsListingByResourceGroup<AvailabilitySet>, SupportsListing<AvailabilitySet>, HasInner<AvailabilitySetsInner> {
     /**
      * Lists all available virtual machine sizes that can be used to create a new virtual machine in an existing availability set.
      *
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/BootDiagnostics.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/BootDiagnostics.java
index d59fd7c2fa03f..5c512f30c003f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/BootDiagnostics.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/BootDiagnostics.java
@@ -12,9 +12,8 @@
 
 /**
  * Boot Diagnostics is a debugging feature which allows you to view Console
- * Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; For Linux
- * Virtual Machines, you can easily view the output of your console log.
- * &lt;br&gt;&lt;br&gt; For both Windows and Linux virtual machines, Azure also
+ * Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You can
+ * easily view the output of your console log. &lt;br&gt;&lt;br&gt; Azure also
  * enables you to see a screenshot of the VM from the hypervisor.
  */
 public class BootDiagnostics {
@@ -32,7 +31,7 @@ public class BootDiagnostics {
     private String storageUri;
 
     /**
-     * Get the enabled value.
+     * Get whether boot diagnostics should be enabled on the Virtual Machine.
      *
      * @return the enabled value
      */
@@ -41,7 +40,7 @@ public Boolean enabled() {
     }
 
     /**
-     * Set the enabled value.
+     * Set whether boot diagnostics should be enabled on the Virtual Machine.
      *
      * @param enabled the enabled value to set
      * @return the BootDiagnostics object itself.
@@ -52,7 +51,7 @@ public BootDiagnostics withEnabled(Boolean enabled) {
     }
 
     /**
-     * Get the storageUri value.
+     * Get uri of the storage account to use for placing the console output and screenshot.
      *
      * @return the storageUri value
      */
@@ -61,7 +60,7 @@ public String storageUri() {
     }
 
     /**
-     * Set the storageUri value.
+     * Set uri of the storage account to use for placing the console output and screenshot.
      *
      * @param storageUri the storageUri value to set
      * @return the BootDiagnostics object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/BootDiagnosticsInstanceView.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/BootDiagnosticsInstanceView.java
index f374f86738204..c3c1c511e5e5b 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/BootDiagnosticsInstanceView.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/BootDiagnosticsInstanceView.java
@@ -17,17 +17,17 @@ public class BootDiagnosticsInstanceView {
     /**
      * The console screenshot blob URI.
      */
-    @JsonProperty(value = "consoleScreenshotBlobUri")
+    @JsonProperty(value = "consoleScreenshotBlobUri", access = JsonProperty.Access.WRITE_ONLY)
     private String consoleScreenshotBlobUri;
 
     /**
      * The Linux serial console log blob Uri.
      */
-    @JsonProperty(value = "serialConsoleLogBlobUri")
+    @JsonProperty(value = "serialConsoleLogBlobUri", access = JsonProperty.Access.WRITE_ONLY)
     private String serialConsoleLogBlobUri;
 
     /**
-     * Get the consoleScreenshotBlobUri value.
+     * Get the console screenshot blob URI.
      *
      * @return the consoleScreenshotBlobUri value
      */
@@ -36,18 +36,7 @@ public String consoleScreenshotBlobUri() {
     }
 
     /**
-     * Set the consoleScreenshotBlobUri value.
-     *
-     * @param consoleScreenshotBlobUri the consoleScreenshotBlobUri value to set
-     * @return the BootDiagnosticsInstanceView object itself.
-     */
-    public BootDiagnosticsInstanceView withConsoleScreenshotBlobUri(String consoleScreenshotBlobUri) {
-        this.consoleScreenshotBlobUri = consoleScreenshotBlobUri;
-        return this;
-    }
-
-    /**
-     * Get the serialConsoleLogBlobUri value.
+     * Get the Linux serial console log blob Uri.
      *
      * @return the serialConsoleLogBlobUri value
      */
@@ -55,15 +44,4 @@ public String serialConsoleLogBlobUri() {
         return this.serialConsoleLogBlobUri;
     }
 
-    /**
-     * Set the serialConsoleLogBlobUri value.
-     *
-     * @param serialConsoleLogBlobUri the serialConsoleLogBlobUri value to set
-     * @return the BootDiagnosticsInstanceView object itself.
-     */
-    public BootDiagnosticsInstanceView withSerialConsoleLogBlobUri(String serialConsoleLogBlobUri) {
-        this.serialConsoleLogBlobUri = serialConsoleLogBlobUri;
-        return this;
-    }
-
 }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ComputeLongRunningOperationProperties.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ComputeLongRunningOperationProperties.java
index b3871c2f9069f..d14498f6bc556 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ComputeLongRunningOperationProperties.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ComputeLongRunningOperationProperties.java
@@ -21,7 +21,7 @@ public class ComputeLongRunningOperationProperties {
     private Object output;
 
     /**
-     * Get the output value.
+     * Get operation output data (raw JSON).
      *
      * @return the output value
      */
@@ -30,7 +30,7 @@ public Object output() {
     }
 
     /**
-     * Set the output value.
+     * Set operation output data (raw JSON).
      *
      * @param output the output value to set
      * @return the ComputeLongRunningOperationProperties object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DataDisk.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DataDisk.java
index 3e61f8aa104a0..c77a7d280bb16 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DataDisk.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DataDisk.java
@@ -75,7 +75,7 @@ public class DataDisk {
 
     /**
      * Specifies the size of an empty data disk in gigabytes. This element can
-     * be used to overwrite the name of the disk in a virtual machine image.
+     * be used to overwrite the size of the disk in a virtual machine image.
      * &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      */
     @JsonProperty(value = "diskSizeGB")
@@ -88,7 +88,7 @@ public class DataDisk {
     private ManagedDiskParameters managedDisk;
 
     /**
-     * Get the lun value.
+     * Get specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
      *
      * @return the lun value
      */
@@ -97,7 +97,7 @@ public int lun() {
     }
 
     /**
-     * Set the lun value.
+     * Set specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
      *
      * @param lun the lun value to set
      * @return the DataDisk object itself.
@@ -108,7 +108,7 @@ public DataDisk withLun(int lun) {
     }
 
     /**
-     * Get the name value.
+     * Get the disk name.
      *
      * @return the name value
      */
@@ -117,7 +117,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the disk name.
      *
      * @param name the name value to set
      * @return the DataDisk object itself.
@@ -128,7 +128,7 @@ public DataDisk withName(String name) {
     }
 
     /**
-     * Get the vhd value.
+     * Get the virtual hard disk.
      *
      * @return the vhd value
      */
@@ -137,7 +137,7 @@ public VirtualHardDisk vhd() {
     }
 
     /**
-     * Set the vhd value.
+     * Set the virtual hard disk.
      *
      * @param vhd the vhd value to set
      * @return the DataDisk object itself.
@@ -148,7 +148,7 @@ public DataDisk withVhd(VirtualHardDisk vhd) {
     }
 
     /**
-     * Get the image value.
+     * Get the source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
      *
      * @return the image value
      */
@@ -157,7 +157,7 @@ public VirtualHardDisk image() {
     }
 
     /**
-     * Set the image value.
+     * Set the source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
      *
      * @param image the image value to set
      * @return the DataDisk object itself.
@@ -168,7 +168,7 @@ public DataDisk withImage(VirtualHardDisk image) {
     }
 
     /**
-     * Get the caching value.
+     * Get specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @return the caching value
      */
@@ -177,7 +177,7 @@ public CachingTypes caching() {
     }
 
     /**
-     * Set the caching value.
+     * Set specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @param caching the caching value to set
      * @return the DataDisk object itself.
@@ -188,7 +188,7 @@ public DataDisk withCaching(CachingTypes caching) {
     }
 
     /**
-     * Get the writeAcceleratorEnabled value.
+     * Get specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @return the writeAcceleratorEnabled value
      */
@@ -197,7 +197,7 @@ public Boolean writeAcceleratorEnabled() {
     }
 
     /**
-     * Set the writeAcceleratorEnabled value.
+     * Set specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @param writeAcceleratorEnabled the writeAcceleratorEnabled value to set
      * @return the DataDisk object itself.
@@ -208,7 +208,7 @@ public DataDisk withWriteAcceleratorEnabled(Boolean writeAcceleratorEnabled) {
     }
 
     /**
-     * Get the createOption value.
+     * Get specifies how the virtual machine should be created.&lt;br&gt;&lt;br&gt; Possible values are:&lt;br&gt;&lt;br&gt; **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.&lt;br&gt;&lt;br&gt; **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described. Possible values include: 'FromImage', 'Empty', 'Attach'.
      *
      * @return the createOption value
      */
@@ -217,7 +217,7 @@ public DiskCreateOptionTypes createOption() {
     }
 
     /**
-     * Set the createOption value.
+     * Set specifies how the virtual machine should be created.&lt;br&gt;&lt;br&gt; Possible values are:&lt;br&gt;&lt;br&gt; **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.&lt;br&gt;&lt;br&gt; **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described. Possible values include: 'FromImage', 'Empty', 'Attach'.
      *
      * @param createOption the createOption value to set
      * @return the DataDisk object itself.
@@ -228,7 +228,7 @@ public DataDisk withCreateOption(DiskCreateOptionTypes createOption) {
     }
 
     /**
-     * Get the diskSizeGB value.
+     * Get specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @return the diskSizeGB value
      */
@@ -237,7 +237,7 @@ public Integer diskSizeGB() {
     }
 
     /**
-     * Set the diskSizeGB value.
+     * Set specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @param diskSizeGB the diskSizeGB value to set
      * @return the DataDisk object itself.
@@ -248,7 +248,7 @@ public DataDisk withDiskSizeGB(Integer diskSizeGB) {
     }
 
     /**
-     * Get the managedDisk value.
+     * Get the managed disk parameters.
      *
      * @return the managedDisk value
      */
@@ -257,7 +257,7 @@ public ManagedDiskParameters managedDisk() {
     }
 
     /**
-     * Set the managedDisk value.
+     * Set the managed disk parameters.
      *
      * @param managedDisk the managedDisk value to set
      * @return the DataDisk object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DataDiskImage.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DataDiskImage.java
index a4641b82cb164..9bc924c3cd7a3 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DataDiskImage.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DataDiskImage.java
@@ -23,7 +23,7 @@ public class DataDiskImage {
     private Integer lun;
 
     /**
-     * Get the lun value.
+     * Get specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
      *
      * @return the lun value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiagnosticsProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiagnosticsProfile.java
index 485d4e5892b6b..f306a7c86ba8b 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiagnosticsProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiagnosticsProfile.java
@@ -17,9 +17,8 @@
 public class DiagnosticsProfile {
     /**
      * Boot Diagnostics is a debugging feature which allows you to view Console
-     * Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; For
-     * Linux Virtual Machines, you can easily view the output of your console
-     * log. &lt;br&gt;&lt;br&gt; For both Windows and Linux virtual machines,
+     * Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You
+     * can easily view the output of your console log. &lt;br&gt;&lt;br&gt;
      * Azure also enables you to see a screenshot of the VM from the
      * hypervisor.
      */
@@ -27,7 +26,7 @@ public class DiagnosticsProfile {
     private BootDiagnostics bootDiagnostics;
 
     /**
-     * Get the bootDiagnostics value.
+     * Get boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You can easily view the output of your console log. &lt;br&gt;&lt;br&gt; Azure also enables you to see a screenshot of the VM from the hypervisor.
      *
      * @return the bootDiagnostics value
      */
@@ -36,7 +35,7 @@ public BootDiagnostics bootDiagnostics() {
     }
 
     /**
-     * Set the bootDiagnostics value.
+     * Set boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You can easily view the output of your console log. &lt;br&gt;&lt;br&gt; Azure also enables you to see a screenshot of the VM from the hypervisor.
      *
      * @param bootDiagnostics the bootDiagnostics value to set
      * @return the DiagnosticsProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiskEncryptionSettings.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiskEncryptionSettings.java
index 6d8f1da0a575d..9112faee31c9c 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiskEncryptionSettings.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiskEncryptionSettings.java
@@ -35,7 +35,7 @@ public class DiskEncryptionSettings {
     private Boolean enabled;
 
     /**
-     * Get the diskEncryptionKey value.
+     * Get specifies the location of the disk encryption key, which is a Key Vault Secret.
      *
      * @return the diskEncryptionKey value
      */
@@ -44,7 +44,7 @@ public KeyVaultSecretReference diskEncryptionKey() {
     }
 
     /**
-     * Set the diskEncryptionKey value.
+     * Set specifies the location of the disk encryption key, which is a Key Vault Secret.
      *
      * @param diskEncryptionKey the diskEncryptionKey value to set
      * @return the DiskEncryptionSettings object itself.
@@ -55,7 +55,7 @@ public DiskEncryptionSettings withDiskEncryptionKey(KeyVaultSecretReference disk
     }
 
     /**
-     * Get the keyEncryptionKey value.
+     * Get specifies the location of the key encryption key in Key Vault.
      *
      * @return the keyEncryptionKey value
      */
@@ -64,7 +64,7 @@ public KeyVaultKeyReference keyEncryptionKey() {
     }
 
     /**
-     * Set the keyEncryptionKey value.
+     * Set specifies the location of the key encryption key in Key Vault.
      *
      * @param keyEncryptionKey the keyEncryptionKey value to set
      * @return the DiskEncryptionSettings object itself.
@@ -75,7 +75,7 @@ public DiskEncryptionSettings withKeyEncryptionKey(KeyVaultKeyReference keyEncry
     }
 
     /**
-     * Get the enabled value.
+     * Get specifies whether disk encryption should be enabled on the virtual machine.
      *
      * @return the enabled value
      */
@@ -84,7 +84,7 @@ public Boolean enabled() {
     }
 
     /**
-     * Set the enabled value.
+     * Set specifies whether disk encryption should be enabled on the virtual machine.
      *
      * @param enabled the enabled value to set
      * @return the DiskEncryptionSettings object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiskInstanceView.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiskInstanceView.java
index edcd01330973b..3f91db1d3b71f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiskInstanceView.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/DiskInstanceView.java
@@ -35,7 +35,7 @@ public class DiskInstanceView {
     private List<InstanceViewStatus> statuses;
 
     /**
-     * Get the name value.
+     * Get the disk name.
      *
      * @return the name value
      */
@@ -44,7 +44,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the disk name.
      *
      * @param name the name value to set
      * @return the DiskInstanceView object itself.
@@ -55,7 +55,7 @@ public DiskInstanceView withName(String name) {
     }
 
     /**
-     * Get the encryptionSettings value.
+     * Get specifies the encryption settings for the OS Disk. &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @return the encryptionSettings value
      */
@@ -64,7 +64,7 @@ public List<DiskEncryptionSettings> encryptionSettings() {
     }
 
     /**
-     * Set the encryptionSettings value.
+     * Set specifies the encryption settings for the OS Disk. &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @param encryptionSettings the encryptionSettings value to set
      * @return the DiskInstanceView object itself.
@@ -75,7 +75,7 @@ public DiskInstanceView withEncryptionSettings(List<DiskEncryptionSettings> encr
     }
 
     /**
-     * Get the statuses value.
+     * Get the resource status information.
      *
      * @return the statuses value
      */
@@ -84,7 +84,7 @@ public List<InstanceViewStatus> statuses() {
     }
 
     /**
-     * Set the statuses value.
+     * Set the resource status information.
      *
      * @param statuses the statuses value to set
      * @return the DiskInstanceView object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/HardwareProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/HardwareProfile.java
index 0de0d9e4a29bb..13dd315fb367e 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/HardwareProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/HardwareProfile.java
@@ -79,7 +79,7 @@ public class HardwareProfile {
     private VirtualMachineSizeTypes vmSize;
 
     /**
-     * Get the vmSize value.
+     * Get specifies the size of the virtual machine. For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-sizes?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; The available VM sizes depend on region and availability set. For a list of available sizes use these APIs:  &lt;br&gt;&lt;br&gt; [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes) &lt;br&gt;&lt;br&gt; [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/virtualmachinesizes/list) &lt;br&gt;&lt;br&gt; [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). Possible values include: 'Basic_A0', 'Basic_A1', 'Basic_A2', 'Basic_A3', 'Basic_A4', 'Standard_A0', 'Standard_A1', 'Standard_A2', 'Standard_A3', 'Standard_A4', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A9', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2_v2', 'Standard_A4_v2', 'Standard_A8_v2', 'Standard_A2m_v2', 'Standard_A4m_v2', 'Standard_A8m_v2', 'Standard_B1s', 'Standard_B1ms', 'Standard_B2s', 'Standard_B2ms', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D2', 'Standard_D3', 'Standard_D4', 'Standard_D11', 'Standard_D12', 'Standard_D13', 'Standard_D14', 'Standard_D1_v2', 'Standard_D2_v2', 'Standard_D3_v2', 'Standard_D4_v2', 'Standard_D5_v2', 'Standard_D2_v3', 'Standard_D4_v3', 'Standard_D8_v3', 'Standard_D16_v3', 'Standard_D32_v3', 'Standard_D64_v3', 'Standard_D2s_v3', 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3', 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_D11_v2', 'Standard_D12_v2', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_D15_v2', 'Standard_DS1', 'Standard_DS2', 'Standard_DS3', 'Standard_DS4', 'Standard_DS11', 'Standard_DS12', 'Standard_DS13', 'Standard_DS14', 'Standard_DS1_v2', 'Standard_DS2_v2', 'Standard_DS3_v2', 'Standard_DS4_v2', 'Standard_DS5_v2', 'Standard_DS11_v2', 'Standard_DS12_v2', 'Standard_DS13_v2', 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_DS13-4_v2', 'Standard_DS13-2_v2', 'Standard_DS14-8_v2', 'Standard_DS14-4_v2', 'Standard_E2_v3', 'Standard_E4_v3', 'Standard_E8_v3', 'Standard_E16_v3', 'Standard_E32_v3', 'Standard_E64_v3', 'Standard_E2s_v3', 'Standard_E4s_v3', 'Standard_E8s_v3', 'Standard_E16s_v3', 'Standard_E32s_v3', 'Standard_E64s_v3', 'Standard_E32-16_v3', 'Standard_E32-8s_v3', 'Standard_E64-32s_v3', 'Standard_E64-16s_v3', 'Standard_F1', 'Standard_F2', 'Standard_F4', 'Standard_F8', 'Standard_F16', 'Standard_F1s', 'Standard_F2s', 'Standard_F4s', 'Standard_F8s', 'Standard_F16s', 'Standard_F2s_v2', 'Standard_F4s_v2', 'Standard_F8s_v2', 'Standard_F16s_v2', 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5', 'Standard_GS4-8', 'Standard_GS4-4', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H8', 'Standard_H16', 'Standard_H8m', 'Standard_H16m', 'Standard_H16r', 'Standard_H16mr', 'Standard_L4s', 'Standard_L8s', 'Standard_L16s', 'Standard_L32s', 'Standard_M64s', 'Standard_M64ms', 'Standard_M128s', 'Standard_M128ms', 'Standard_M64-32ms', 'Standard_M64-16ms', 'Standard_M128-64ms', 'Standard_M128-32ms', 'Standard_NC6', 'Standard_NC12', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC6s_v2', 'Standard_NC12s_v2', 'Standard_NC24s_v2', 'Standard_NC24rs_v2', 'Standard_NC6s_v3', 'Standard_NC12s_v3', 'Standard_NC24s_v3', 'Standard_NC24rs_v3', 'Standard_ND6s', 'Standard_ND12s', 'Standard_ND24s', 'Standard_ND24rs', 'Standard_NV6', 'Standard_NV12', 'Standard_NV24'.
      *
      * @return the vmSize value
      */
@@ -88,7 +88,7 @@ public VirtualMachineSizeTypes vmSize() {
     }
 
     /**
-     * Set the vmSize value.
+     * Set specifies the size of the virtual machine. For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-sizes?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; The available VM sizes depend on region and availability set. For a list of available sizes use these APIs:  &lt;br&gt;&lt;br&gt; [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes) &lt;br&gt;&lt;br&gt; [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/virtualmachinesizes/list) &lt;br&gt;&lt;br&gt; [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). Possible values include: 'Basic_A0', 'Basic_A1', 'Basic_A2', 'Basic_A3', 'Basic_A4', 'Standard_A0', 'Standard_A1', 'Standard_A2', 'Standard_A3', 'Standard_A4', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A9', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2_v2', 'Standard_A4_v2', 'Standard_A8_v2', 'Standard_A2m_v2', 'Standard_A4m_v2', 'Standard_A8m_v2', 'Standard_B1s', 'Standard_B1ms', 'Standard_B2s', 'Standard_B2ms', 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D2', 'Standard_D3', 'Standard_D4', 'Standard_D11', 'Standard_D12', 'Standard_D13', 'Standard_D14', 'Standard_D1_v2', 'Standard_D2_v2', 'Standard_D3_v2', 'Standard_D4_v2', 'Standard_D5_v2', 'Standard_D2_v3', 'Standard_D4_v3', 'Standard_D8_v3', 'Standard_D16_v3', 'Standard_D32_v3', 'Standard_D64_v3', 'Standard_D2s_v3', 'Standard_D4s_v3', 'Standard_D8s_v3', 'Standard_D16s_v3', 'Standard_D32s_v3', 'Standard_D64s_v3', 'Standard_D11_v2', 'Standard_D12_v2', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_D15_v2', 'Standard_DS1', 'Standard_DS2', 'Standard_DS3', 'Standard_DS4', 'Standard_DS11', 'Standard_DS12', 'Standard_DS13', 'Standard_DS14', 'Standard_DS1_v2', 'Standard_DS2_v2', 'Standard_DS3_v2', 'Standard_DS4_v2', 'Standard_DS5_v2', 'Standard_DS11_v2', 'Standard_DS12_v2', 'Standard_DS13_v2', 'Standard_DS14_v2', 'Standard_DS15_v2', 'Standard_DS13-4_v2', 'Standard_DS13-2_v2', 'Standard_DS14-8_v2', 'Standard_DS14-4_v2', 'Standard_E2_v3', 'Standard_E4_v3', 'Standard_E8_v3', 'Standard_E16_v3', 'Standard_E32_v3', 'Standard_E64_v3', 'Standard_E2s_v3', 'Standard_E4s_v3', 'Standard_E8s_v3', 'Standard_E16s_v3', 'Standard_E32s_v3', 'Standard_E64s_v3', 'Standard_E32-16_v3', 'Standard_E32-8s_v3', 'Standard_E64-32s_v3', 'Standard_E64-16s_v3', 'Standard_F1', 'Standard_F2', 'Standard_F4', 'Standard_F8', 'Standard_F16', 'Standard_F1s', 'Standard_F2s', 'Standard_F4s', 'Standard_F8s', 'Standard_F16s', 'Standard_F2s_v2', 'Standard_F4s_v2', 'Standard_F8s_v2', 'Standard_F16s_v2', 'Standard_F32s_v2', 'Standard_F64s_v2', 'Standard_F72s_v2', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5', 'Standard_GS4-8', 'Standard_GS4-4', 'Standard_GS5-16', 'Standard_GS5-8', 'Standard_H8', 'Standard_H16', 'Standard_H8m', 'Standard_H16m', 'Standard_H16r', 'Standard_H16mr', 'Standard_L4s', 'Standard_L8s', 'Standard_L16s', 'Standard_L32s', 'Standard_M64s', 'Standard_M64ms', 'Standard_M128s', 'Standard_M128ms', 'Standard_M64-32ms', 'Standard_M64-16ms', 'Standard_M128-64ms', 'Standard_M128-32ms', 'Standard_NC6', 'Standard_NC12', 'Standard_NC24', 'Standard_NC24r', 'Standard_NC6s_v2', 'Standard_NC12s_v2', 'Standard_NC24s_v2', 'Standard_NC24rs_v2', 'Standard_NC6s_v3', 'Standard_NC12s_v3', 'Standard_NC24s_v3', 'Standard_NC24rs_v3', 'Standard_ND6s', 'Standard_ND12s', 'Standard_ND24s', 'Standard_ND24rs', 'Standard_NV6', 'Standard_NV12', 'Standard_NV24'.
      *
      * @param vmSize the vmSize value to set
      * @return the HardwareProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Image.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Image.java
index ebfaa9082c5fa..be7e09cabe343 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Image.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Image.java
@@ -10,12 +10,12 @@
 
 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.GroupableResourceCore;
 import com.microsoft.azure.arm.resources.models.HasManager;
 import com.microsoft.azure.management.compute.v2017_12_01.implementation.ComputeManager;
 import com.microsoft.azure.SubResource;
@@ -63,21 +63,25 @@ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup<Wit
         }
 
         /**
-         * The stage of the image update allowing to specify SourceVirtualMachine.
+         * The stage of the image definition allowing to specify SourceVirtualMachine.
          */
         interface WithSourceVirtualMachine {
             /**
              * Specifies sourceVirtualMachine.
+             * @param sourceVirtualMachine The source virtual machine from which Image is created
+             * @return the next definition stage
              */
             WithCreate withSourceVirtualMachine(SubResource sourceVirtualMachine);
         }
 
         /**
-         * The stage of the image update allowing to specify StorageProfile.
+         * The stage of the image definition allowing to specify StorageProfile.
          */
         interface WithStorageProfile {
             /**
              * Specifies storageProfile.
+             * @param storageProfile Specifies the storage settings for the virtual machine disks
+             * @return the next definition stage
              */
             WithCreate withStorageProfile(ImageStorageProfile storageProfile);
         }
@@ -101,21 +105,25 @@ interface Update extends Appliable<Image>, Resource.UpdateWithTags<Update>, Upda
      */
     interface UpdateStages {
         /**
-         * The stage of the image {0} allowing to specify SourceVirtualMachine.
+         * The stage of the image update allowing to specify SourceVirtualMachine.
          */
         interface WithSourceVirtualMachine {
             /**
              * Specifies sourceVirtualMachine.
+             * @param sourceVirtualMachine The source virtual machine from which Image is created
+             * @return the next update stage
              */
             Update withSourceVirtualMachine(SubResource sourceVirtualMachine);
         }
 
         /**
-         * The stage of the image {0} allowing to specify StorageProfile.
+         * The stage of the image update allowing to specify StorageProfile.
          */
         interface WithStorageProfile {
             /**
              * Specifies storageProfile.
+             * @param storageProfile Specifies the storage settings for the virtual machine disks
+             * @return the next update stage
              */
             Update withStorageProfile(ImageStorageProfile storageProfile);
         }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageDataDisk.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageDataDisk.java
index 2c479d174eeb6..b8b8fff74e98b 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageDataDisk.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageDataDisk.java
@@ -68,7 +68,7 @@ public class ImageDataDisk {
     private StorageAccountTypes storageAccountType;
 
     /**
-     * Get the lun value.
+     * Get specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
      *
      * @return the lun value
      */
@@ -77,7 +77,7 @@ public int lun() {
     }
 
     /**
-     * Set the lun value.
+     * Set specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
      *
      * @param lun the lun value to set
      * @return the ImageDataDisk object itself.
@@ -88,7 +88,7 @@ public ImageDataDisk withLun(int lun) {
     }
 
     /**
-     * Get the snapshot value.
+     * Get the snapshot.
      *
      * @return the snapshot value
      */
@@ -97,7 +97,7 @@ public SubResource snapshot() {
     }
 
     /**
-     * Set the snapshot value.
+     * Set the snapshot.
      *
      * @param snapshot the snapshot value to set
      * @return the ImageDataDisk object itself.
@@ -108,7 +108,7 @@ public ImageDataDisk withSnapshot(SubResource snapshot) {
     }
 
     /**
-     * Get the managedDisk value.
+     * Get the managedDisk.
      *
      * @return the managedDisk value
      */
@@ -117,7 +117,7 @@ public SubResource managedDisk() {
     }
 
     /**
-     * Set the managedDisk value.
+     * Set the managedDisk.
      *
      * @param managedDisk the managedDisk value to set
      * @return the ImageDataDisk object itself.
@@ -128,7 +128,7 @@ public ImageDataDisk withManagedDisk(SubResource managedDisk) {
     }
 
     /**
-     * Get the blobUri value.
+     * Get the Virtual Hard Disk.
      *
      * @return the blobUri value
      */
@@ -137,7 +137,7 @@ public String blobUri() {
     }
 
     /**
-     * Set the blobUri value.
+     * Set the Virtual Hard Disk.
      *
      * @param blobUri the blobUri value to set
      * @return the ImageDataDisk object itself.
@@ -148,7 +148,7 @@ public ImageDataDisk withBlobUri(String blobUri) {
     }
 
     /**
-     * Get the caching value.
+     * Get specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @return the caching value
      */
@@ -157,7 +157,7 @@ public CachingTypes caching() {
     }
 
     /**
-     * Set the caching value.
+     * Set specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @param caching the caching value to set
      * @return the ImageDataDisk object itself.
@@ -168,7 +168,7 @@ public ImageDataDisk withCaching(CachingTypes caching) {
     }
 
     /**
-     * Get the diskSizeGB value.
+     * Get specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @return the diskSizeGB value
      */
@@ -177,7 +177,7 @@ public Integer diskSizeGB() {
     }
 
     /**
-     * Set the diskSizeGB value.
+     * Set specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @param diskSizeGB the diskSizeGB value to set
      * @return the ImageDataDisk object itself.
@@ -188,7 +188,7 @@ public ImageDataDisk withDiskSizeGB(Integer diskSizeGB) {
     }
 
     /**
-     * Get the storageAccountType value.
+     * Get specifies the storage account type for the managed disk. Possible values are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', 'Premium_LRS'.
      *
      * @return the storageAccountType value
      */
@@ -197,7 +197,7 @@ public StorageAccountTypes storageAccountType() {
     }
 
     /**
-     * Set the storageAccountType value.
+     * Set specifies the storage account type for the managed disk. Possible values are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', 'Premium_LRS'.
      *
      * @param storageAccountType the storageAccountType value to set
      * @return the ImageDataDisk object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageOSDisk.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageOSDisk.java
index 4403e13000048..f56294fef1770 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageOSDisk.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageOSDisk.java
@@ -76,7 +76,7 @@ public class ImageOSDisk {
     private StorageAccountTypes storageAccountType;
 
     /**
-     * Get the osType value.
+     * Get this property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **Windows** &lt;br&gt;&lt;br&gt; **Linux**. Possible values include: 'Windows', 'Linux'.
      *
      * @return the osType value
      */
@@ -85,7 +85,7 @@ public OperatingSystemTypes osType() {
     }
 
     /**
-     * Set the osType value.
+     * Set this property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **Windows** &lt;br&gt;&lt;br&gt; **Linux**. Possible values include: 'Windows', 'Linux'.
      *
      * @param osType the osType value to set
      * @return the ImageOSDisk object itself.
@@ -96,7 +96,7 @@ public ImageOSDisk withOsType(OperatingSystemTypes osType) {
     }
 
     /**
-     * Get the osState value.
+     * Get the OS State. Possible values include: 'Generalized', 'Specialized'.
      *
      * @return the osState value
      */
@@ -105,7 +105,7 @@ public OperatingSystemStateTypes osState() {
     }
 
     /**
-     * Set the osState value.
+     * Set the OS State. Possible values include: 'Generalized', 'Specialized'.
      *
      * @param osState the osState value to set
      * @return the ImageOSDisk object itself.
@@ -116,7 +116,7 @@ public ImageOSDisk withOsState(OperatingSystemStateTypes osState) {
     }
 
     /**
-     * Get the snapshot value.
+     * Get the snapshot.
      *
      * @return the snapshot value
      */
@@ -125,7 +125,7 @@ public SubResource snapshot() {
     }
 
     /**
-     * Set the snapshot value.
+     * Set the snapshot.
      *
      * @param snapshot the snapshot value to set
      * @return the ImageOSDisk object itself.
@@ -136,7 +136,7 @@ public ImageOSDisk withSnapshot(SubResource snapshot) {
     }
 
     /**
-     * Get the managedDisk value.
+     * Get the managedDisk.
      *
      * @return the managedDisk value
      */
@@ -145,7 +145,7 @@ public SubResource managedDisk() {
     }
 
     /**
-     * Set the managedDisk value.
+     * Set the managedDisk.
      *
      * @param managedDisk the managedDisk value to set
      * @return the ImageOSDisk object itself.
@@ -156,7 +156,7 @@ public ImageOSDisk withManagedDisk(SubResource managedDisk) {
     }
 
     /**
-     * Get the blobUri value.
+     * Get the Virtual Hard Disk.
      *
      * @return the blobUri value
      */
@@ -165,7 +165,7 @@ public String blobUri() {
     }
 
     /**
-     * Set the blobUri value.
+     * Set the Virtual Hard Disk.
      *
      * @param blobUri the blobUri value to set
      * @return the ImageOSDisk object itself.
@@ -176,7 +176,7 @@ public ImageOSDisk withBlobUri(String blobUri) {
     }
 
     /**
-     * Get the caching value.
+     * Get specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @return the caching value
      */
@@ -185,7 +185,7 @@ public CachingTypes caching() {
     }
 
     /**
-     * Set the caching value.
+     * Set specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @param caching the caching value to set
      * @return the ImageOSDisk object itself.
@@ -196,7 +196,7 @@ public ImageOSDisk withCaching(CachingTypes caching) {
     }
 
     /**
-     * Get the diskSizeGB value.
+     * Get specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @return the diskSizeGB value
      */
@@ -205,7 +205,7 @@ public Integer diskSizeGB() {
     }
 
     /**
-     * Set the diskSizeGB value.
+     * Set specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @param diskSizeGB the diskSizeGB value to set
      * @return the ImageOSDisk object itself.
@@ -216,7 +216,7 @@ public ImageOSDisk withDiskSizeGB(Integer diskSizeGB) {
     }
 
     /**
-     * Get the storageAccountType value.
+     * Get specifies the storage account type for the managed disk. Possible values are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', 'Premium_LRS'.
      *
      * @return the storageAccountType value
      */
@@ -225,7 +225,7 @@ public StorageAccountTypes storageAccountType() {
     }
 
     /**
-     * Set the storageAccountType value.
+     * Set specifies the storage account type for the managed disk. Possible values are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', 'Premium_LRS'.
      *
      * @param storageAccountType the storageAccountType value to set
      * @return the ImageOSDisk object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageReference.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageReference.java
index 2dc2dcc9cc552..1bd007b4ee730 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageReference.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageReference.java
@@ -16,7 +16,8 @@
  * about platform images, marketplace images, or virtual machine images. This
  * element is required when you want to use a platform image, marketplace
  * image, or virtual machine image, but is not used in other creation
- * operations.
+ * operations. NOTE: Image reference publisher and offer can only be set when
+ * you create the scale set.
  */
 public class ImageReference extends SubResource {
     /**
@@ -50,7 +51,7 @@ public class ImageReference extends SubResource {
     private String version;
 
     /**
-     * Get the publisher value.
+     * Get the image publisher.
      *
      * @return the publisher value
      */
@@ -59,7 +60,7 @@ public String publisher() {
     }
 
     /**
-     * Set the publisher value.
+     * Set the image publisher.
      *
      * @param publisher the publisher value to set
      * @return the ImageReference object itself.
@@ -70,7 +71,7 @@ public ImageReference withPublisher(String publisher) {
     }
 
     /**
-     * Get the offer value.
+     * Get specifies the offer of the platform image or marketplace image used to create the virtual machine.
      *
      * @return the offer value
      */
@@ -79,7 +80,7 @@ public String offer() {
     }
 
     /**
-     * Set the offer value.
+     * Set specifies the offer of the platform image or marketplace image used to create the virtual machine.
      *
      * @param offer the offer value to set
      * @return the ImageReference object itself.
@@ -90,7 +91,7 @@ public ImageReference withOffer(String offer) {
     }
 
     /**
-     * Get the sku value.
+     * Get the image SKU.
      *
      * @return the sku value
      */
@@ -99,7 +100,7 @@ public String sku() {
     }
 
     /**
-     * Set the sku value.
+     * Set the image SKU.
      *
      * @param sku the sku value to set
      * @return the ImageReference object itself.
@@ -110,7 +111,7 @@ public ImageReference withSku(String sku) {
     }
 
     /**
-     * Get the version value.
+     * Get specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available.
      *
      * @return the version value
      */
@@ -119,7 +120,7 @@ public String version() {
     }
 
     /**
-     * Set the version value.
+     * Set specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available.
      *
      * @param version the version value to set
      * @return the ImageReference object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageStorageProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageStorageProfile.java
index 175d97c41ec58..d6d17915afdf7 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageStorageProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageStorageProfile.java
@@ -42,7 +42,7 @@ public class ImageStorageProfile {
     private Boolean zoneResilient;
 
     /**
-     * Get the osDisk value.
+     * Get specifies information about the operating system disk used by the virtual machine. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @return the osDisk value
      */
@@ -51,7 +51,7 @@ public ImageOSDisk osDisk() {
     }
 
     /**
-     * Set the osDisk value.
+     * Set specifies information about the operating system disk used by the virtual machine. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @param osDisk the osDisk value to set
      * @return the ImageStorageProfile object itself.
@@ -62,7 +62,7 @@ public ImageStorageProfile withOsDisk(ImageOSDisk osDisk) {
     }
 
     /**
-     * Get the dataDisks value.
+     * Get specifies the parameters that are used to add a data disk to a virtual machine. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @return the dataDisks value
      */
@@ -71,7 +71,7 @@ public List<ImageDataDisk> dataDisks() {
     }
 
     /**
-     * Set the dataDisks value.
+     * Set specifies the parameters that are used to add a data disk to a virtual machine. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @param dataDisks the dataDisks value to set
      * @return the ImageStorageProfile object itself.
@@ -82,7 +82,7 @@ public ImageStorageProfile withDataDisks(List<ImageDataDisk> dataDisks) {
     }
 
     /**
-     * Get the zoneResilient value.
+     * Get specifies whether an image is zone resilient or not. Default is false. Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS).
      *
      * @return the zoneResilient value
      */
@@ -91,7 +91,7 @@ public Boolean zoneResilient() {
     }
 
     /**
-     * Set the zoneResilient value.
+     * Set specifies whether an image is zone resilient or not. Default is false. Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS).
      *
      * @param zoneResilient the zoneResilient value to set
      * @return the ImageStorageProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageUpdate.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageUpdate.java
index f365e080bb14f..a618273c6fbdb 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageUpdate.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ImageUpdate.java
@@ -36,7 +36,7 @@ public class ImageUpdate extends UpdateResource {
     private String provisioningState;
 
     /**
-     * Get the sourceVirtualMachine value.
+     * Get the source virtual machine from which Image is created.
      *
      * @return the sourceVirtualMachine value
      */
@@ -45,7 +45,7 @@ public SubResource sourceVirtualMachine() {
     }
 
     /**
-     * Set the sourceVirtualMachine value.
+     * Set the source virtual machine from which Image is created.
      *
      * @param sourceVirtualMachine the sourceVirtualMachine value to set
      * @return the ImageUpdate object itself.
@@ -56,7 +56,7 @@ public ImageUpdate withSourceVirtualMachine(SubResource sourceVirtualMachine) {
     }
 
     /**
-     * Get the storageProfile value.
+     * Get specifies the storage settings for the virtual machine disks.
      *
      * @return the storageProfile value
      */
@@ -65,7 +65,7 @@ public ImageStorageProfile storageProfile() {
     }
 
     /**
-     * Set the storageProfile value.
+     * Set specifies the storage settings for the virtual machine disks.
      *
      * @param storageProfile the storageProfile value to set
      * @return the ImageUpdate object itself.
@@ -76,7 +76,7 @@ public ImageUpdate withStorageProfile(ImageStorageProfile storageProfile) {
     }
 
     /**
-     * Get the provisioningState value.
+     * Get the provisioning state.
      *
      * @return the provisioningState value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/InnerError.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/InnerError.java
index f6eb66554eed8..05fc927e8af52 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/InnerError.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/InnerError.java
@@ -27,7 +27,7 @@ public class InnerError {
     private String errordetail;
 
     /**
-     * Get the exceptiontype value.
+     * Get the exception type.
      *
      * @return the exceptiontype value
      */
@@ -36,7 +36,7 @@ public String exceptiontype() {
     }
 
     /**
-     * Set the exceptiontype value.
+     * Set the exception type.
      *
      * @param exceptiontype the exceptiontype value to set
      * @return the InnerError object itself.
@@ -47,7 +47,7 @@ public InnerError withExceptiontype(String exceptiontype) {
     }
 
     /**
-     * Get the errordetail value.
+     * Get the internal error message or exception dump.
      *
      * @return the errordetail value
      */
@@ -56,7 +56,7 @@ public String errordetail() {
     }
 
     /**
-     * Set the errordetail value.
+     * Set the internal error message or exception dump.
      *
      * @param errordetail the errordetail value to set
      * @return the InnerError object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/InstanceViewStatus.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/InstanceViewStatus.java
index 44231fbbfb281..b9c74cb5d4747 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/InstanceViewStatus.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/InstanceViewStatus.java
@@ -46,7 +46,7 @@ public class InstanceViewStatus {
     private DateTime time;
 
     /**
-     * Get the code value.
+     * Get the status code.
      *
      * @return the code value
      */
@@ -55,7 +55,7 @@ public String code() {
     }
 
     /**
-     * Set the code value.
+     * Set the status code.
      *
      * @param code the code value to set
      * @return the InstanceViewStatus object itself.
@@ -66,7 +66,7 @@ public InstanceViewStatus withCode(String code) {
     }
 
     /**
-     * Get the level value.
+     * Get the level code. Possible values include: 'Info', 'Warning', 'Error'.
      *
      * @return the level value
      */
@@ -75,7 +75,7 @@ public StatusLevelTypes level() {
     }
 
     /**
-     * Set the level value.
+     * Set the level code. Possible values include: 'Info', 'Warning', 'Error'.
      *
      * @param level the level value to set
      * @return the InstanceViewStatus object itself.
@@ -86,7 +86,7 @@ public InstanceViewStatus withLevel(StatusLevelTypes level) {
     }
 
     /**
-     * Get the displayStatus value.
+     * Get the short localizable label for the status.
      *
      * @return the displayStatus value
      */
@@ -95,7 +95,7 @@ public String displayStatus() {
     }
 
     /**
-     * Set the displayStatus value.
+     * Set the short localizable label for the status.
      *
      * @param displayStatus the displayStatus value to set
      * @return the InstanceViewStatus object itself.
@@ -106,7 +106,7 @@ public InstanceViewStatus withDisplayStatus(String displayStatus) {
     }
 
     /**
-     * Get the message value.
+     * Get the detailed status message, including for alerts and error messages.
      *
      * @return the message value
      */
@@ -115,7 +115,7 @@ public String message() {
     }
 
     /**
-     * Set the message value.
+     * Set the detailed status message, including for alerts and error messages.
      *
      * @param message the message value to set
      * @return the InstanceViewStatus object itself.
@@ -126,7 +126,7 @@ public InstanceViewStatus withMessage(String message) {
     }
 
     /**
-     * Get the time value.
+     * Get the time of the status.
      *
      * @return the time value
      */
@@ -135,7 +135,7 @@ public DateTime time() {
     }
 
     /**
-     * Set the time value.
+     * Set the time of the status.
      *
      * @param time the time value to set
      * @return the InstanceViewStatus object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/KeyVaultKeyReference.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/KeyVaultKeyReference.java
index 660eedd02e020..5a4b54244b16a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/KeyVaultKeyReference.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/KeyVaultKeyReference.java
@@ -28,7 +28,7 @@ public class KeyVaultKeyReference {
     private SubResource sourceVault;
 
     /**
-     * Get the keyUrl value.
+     * Get the URL referencing a key encryption key in Key Vault.
      *
      * @return the keyUrl value
      */
@@ -37,7 +37,7 @@ public String keyUrl() {
     }
 
     /**
-     * Set the keyUrl value.
+     * Set the URL referencing a key encryption key in Key Vault.
      *
      * @param keyUrl the keyUrl value to set
      * @return the KeyVaultKeyReference object itself.
@@ -48,7 +48,7 @@ public KeyVaultKeyReference withKeyUrl(String keyUrl) {
     }
 
     /**
-     * Get the sourceVault value.
+     * Get the relative URL of the Key Vault containing the key.
      *
      * @return the sourceVault value
      */
@@ -57,7 +57,7 @@ public SubResource sourceVault() {
     }
 
     /**
-     * Set the sourceVault value.
+     * Set the relative URL of the Key Vault containing the key.
      *
      * @param sourceVault the sourceVault value to set
      * @return the KeyVaultKeyReference object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/KeyVaultSecretReference.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/KeyVaultSecretReference.java
index c64fffff70d31..d950e13de31e9 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/KeyVaultSecretReference.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/KeyVaultSecretReference.java
@@ -28,7 +28,7 @@ public class KeyVaultSecretReference {
     private SubResource sourceVault;
 
     /**
-     * Get the secretUrl value.
+     * Get the URL referencing a secret in a Key Vault.
      *
      * @return the secretUrl value
      */
@@ -37,7 +37,7 @@ public String secretUrl() {
     }
 
     /**
-     * Set the secretUrl value.
+     * Set the URL referencing a secret in a Key Vault.
      *
      * @param secretUrl the secretUrl value to set
      * @return the KeyVaultSecretReference object itself.
@@ -48,7 +48,7 @@ public KeyVaultSecretReference withSecretUrl(String secretUrl) {
     }
 
     /**
-     * Get the sourceVault value.
+     * Get the relative URL of the Key Vault containing the secret.
      *
      * @return the sourceVault value
      */
@@ -57,7 +57,7 @@ public SubResource sourceVault() {
     }
 
     /**
-     * Set the sourceVault value.
+     * Set the relative URL of the Key Vault containing the secret.
      *
      * @param sourceVault the sourceVault value to set
      * @return the KeyVaultSecretReference object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LinuxConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LinuxConfiguration.java
index dd065115e9266..1583ee4dc3dd8 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LinuxConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LinuxConfiguration.java
@@ -33,7 +33,7 @@ public class LinuxConfiguration {
     private SshConfiguration ssh;
 
     /**
-     * Get the disablePasswordAuthentication value.
+     * Get specifies whether password authentication should be disabled.
      *
      * @return the disablePasswordAuthentication value
      */
@@ -42,7 +42,7 @@ public Boolean disablePasswordAuthentication() {
     }
 
     /**
-     * Set the disablePasswordAuthentication value.
+     * Set specifies whether password authentication should be disabled.
      *
      * @param disablePasswordAuthentication the disablePasswordAuthentication value to set
      * @return the LinuxConfiguration object itself.
@@ -53,7 +53,7 @@ public LinuxConfiguration withDisablePasswordAuthentication(Boolean disablePassw
     }
 
     /**
-     * Get the ssh value.
+     * Get specifies the ssh key configuration for a Linux OS.
      *
      * @return the ssh value
      */
@@ -62,7 +62,7 @@ public SshConfiguration ssh() {
     }
 
     /**
-     * Set the ssh value.
+     * Set specifies the ssh key configuration for a Linux OS.
      *
      * @param ssh the ssh value to set
      * @return the LinuxConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LogAnalyticsInputBase.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LogAnalyticsInputBase.java
index 32315ac3bf96e..51e9e772184ec 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LogAnalyticsInputBase.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LogAnalyticsInputBase.java
@@ -41,7 +41,7 @@ public class LogAnalyticsInputBase {
     private Boolean groupByThrottlePolicy;
 
     /**
-     * Group query result by  by Operation Name.
+     * Group query result by Operation Name.
      */
     @JsonProperty(value = "groupByOperationName")
     private Boolean groupByOperationName;
@@ -53,7 +53,7 @@ public class LogAnalyticsInputBase {
     private Boolean groupByResourceName;
 
     /**
-     * Get the blobContainerSasUri value.
+     * Get sAS Uri of the logging blob container to which LogAnalytics Api writes output logs to.
      *
      * @return the blobContainerSasUri value
      */
@@ -62,7 +62,7 @@ public String blobContainerSasUri() {
     }
 
     /**
-     * Set the blobContainerSasUri value.
+     * Set sAS Uri of the logging blob container to which LogAnalytics Api writes output logs to.
      *
      * @param blobContainerSasUri the blobContainerSasUri value to set
      * @return the LogAnalyticsInputBase object itself.
@@ -73,7 +73,7 @@ public LogAnalyticsInputBase withBlobContainerSasUri(String blobContainerSasUri)
     }
 
     /**
-     * Get the fromTime value.
+     * Get from time of the query.
      *
      * @return the fromTime value
      */
@@ -82,7 +82,7 @@ public DateTime fromTime() {
     }
 
     /**
-     * Set the fromTime value.
+     * Set from time of the query.
      *
      * @param fromTime the fromTime value to set
      * @return the LogAnalyticsInputBase object itself.
@@ -93,7 +93,7 @@ public LogAnalyticsInputBase withFromTime(DateTime fromTime) {
     }
 
     /**
-     * Get the toTime value.
+     * Get to time of the query.
      *
      * @return the toTime value
      */
@@ -102,7 +102,7 @@ public DateTime toTime() {
     }
 
     /**
-     * Set the toTime value.
+     * Set to time of the query.
      *
      * @param toTime the toTime value to set
      * @return the LogAnalyticsInputBase object itself.
@@ -113,7 +113,7 @@ public LogAnalyticsInputBase withToTime(DateTime toTime) {
     }
 
     /**
-     * Get the groupByThrottlePolicy value.
+     * Get group query result by Throttle Policy applied.
      *
      * @return the groupByThrottlePolicy value
      */
@@ -122,7 +122,7 @@ public Boolean groupByThrottlePolicy() {
     }
 
     /**
-     * Set the groupByThrottlePolicy value.
+     * Set group query result by Throttle Policy applied.
      *
      * @param groupByThrottlePolicy the groupByThrottlePolicy value to set
      * @return the LogAnalyticsInputBase object itself.
@@ -133,7 +133,7 @@ public LogAnalyticsInputBase withGroupByThrottlePolicy(Boolean groupByThrottlePo
     }
 
     /**
-     * Get the groupByOperationName value.
+     * Get group query result by Operation Name.
      *
      * @return the groupByOperationName value
      */
@@ -142,7 +142,7 @@ public Boolean groupByOperationName() {
     }
 
     /**
-     * Set the groupByOperationName value.
+     * Set group query result by Operation Name.
      *
      * @param groupByOperationName the groupByOperationName value to set
      * @return the LogAnalyticsInputBase object itself.
@@ -153,7 +153,7 @@ public LogAnalyticsInputBase withGroupByOperationName(Boolean groupByOperationNa
     }
 
     /**
-     * Get the groupByResourceName value.
+     * Get group query result by Resource Name.
      *
      * @return the groupByResourceName value
      */
@@ -162,7 +162,7 @@ public Boolean groupByResourceName() {
     }
 
     /**
-     * Set the groupByResourceName value.
+     * Set group query result by Resource Name.
      *
      * @param groupByResourceName the groupByResourceName value to set
      * @return the LogAnalyticsInputBase object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LogAnalyticsOutput.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LogAnalyticsOutput.java
index ffadc4edb9bc1..be24b5f7aae9e 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LogAnalyticsOutput.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/LogAnalyticsOutput.java
@@ -21,7 +21,7 @@ public class LogAnalyticsOutput {
     private String output;
 
     /**
-     * Get the output value.
+     * Get output file Uri path to blob container.
      *
      * @return the output value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/MaintenanceRedeployStatus.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/MaintenanceRedeployStatus.java
index b0f8b898bff74..96357e6bcf37a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/MaintenanceRedeployStatus.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/MaintenanceRedeployStatus.java
@@ -59,7 +59,7 @@ public class MaintenanceRedeployStatus {
     private String lastOperationMessage;
 
     /**
-     * Get the isCustomerInitiatedMaintenanceAllowed value.
+     * Get true, if customer is allowed to perform Maintenance.
      *
      * @return the isCustomerInitiatedMaintenanceAllowed value
      */
@@ -68,7 +68,7 @@ public Boolean isCustomerInitiatedMaintenanceAllowed() {
     }
 
     /**
-     * Set the isCustomerInitiatedMaintenanceAllowed value.
+     * Set true, if customer is allowed to perform Maintenance.
      *
      * @param isCustomerInitiatedMaintenanceAllowed the isCustomerInitiatedMaintenanceAllowed value to set
      * @return the MaintenanceRedeployStatus object itself.
@@ -79,7 +79,7 @@ public MaintenanceRedeployStatus withIsCustomerInitiatedMaintenanceAllowed(Boole
     }
 
     /**
-     * Get the preMaintenanceWindowStartTime value.
+     * Get start Time for the Pre Maintenance Window.
      *
      * @return the preMaintenanceWindowStartTime value
      */
@@ -88,7 +88,7 @@ public DateTime preMaintenanceWindowStartTime() {
     }
 
     /**
-     * Set the preMaintenanceWindowStartTime value.
+     * Set start Time for the Pre Maintenance Window.
      *
      * @param preMaintenanceWindowStartTime the preMaintenanceWindowStartTime value to set
      * @return the MaintenanceRedeployStatus object itself.
@@ -99,7 +99,7 @@ public MaintenanceRedeployStatus withPreMaintenanceWindowStartTime(DateTime preM
     }
 
     /**
-     * Get the preMaintenanceWindowEndTime value.
+     * Get end Time for the Pre Maintenance Window.
      *
      * @return the preMaintenanceWindowEndTime value
      */
@@ -108,7 +108,7 @@ public DateTime preMaintenanceWindowEndTime() {
     }
 
     /**
-     * Set the preMaintenanceWindowEndTime value.
+     * Set end Time for the Pre Maintenance Window.
      *
      * @param preMaintenanceWindowEndTime the preMaintenanceWindowEndTime value to set
      * @return the MaintenanceRedeployStatus object itself.
@@ -119,7 +119,7 @@ public MaintenanceRedeployStatus withPreMaintenanceWindowEndTime(DateTime preMai
     }
 
     /**
-     * Get the maintenanceWindowStartTime value.
+     * Get start Time for the Maintenance Window.
      *
      * @return the maintenanceWindowStartTime value
      */
@@ -128,7 +128,7 @@ public DateTime maintenanceWindowStartTime() {
     }
 
     /**
-     * Set the maintenanceWindowStartTime value.
+     * Set start Time for the Maintenance Window.
      *
      * @param maintenanceWindowStartTime the maintenanceWindowStartTime value to set
      * @return the MaintenanceRedeployStatus object itself.
@@ -139,7 +139,7 @@ public MaintenanceRedeployStatus withMaintenanceWindowStartTime(DateTime mainten
     }
 
     /**
-     * Get the maintenanceWindowEndTime value.
+     * Get end Time for the Maintenance Window.
      *
      * @return the maintenanceWindowEndTime value
      */
@@ -148,7 +148,7 @@ public DateTime maintenanceWindowEndTime() {
     }
 
     /**
-     * Set the maintenanceWindowEndTime value.
+     * Set end Time for the Maintenance Window.
      *
      * @param maintenanceWindowEndTime the maintenanceWindowEndTime value to set
      * @return the MaintenanceRedeployStatus object itself.
@@ -159,7 +159,7 @@ public MaintenanceRedeployStatus withMaintenanceWindowEndTime(DateTime maintenan
     }
 
     /**
-     * Get the lastOperationResultCode value.
+     * Get the Last Maintenance Operation Result Code. Possible values include: 'None', 'RetryLater', 'MaintenanceAborted', 'MaintenanceCompleted'.
      *
      * @return the lastOperationResultCode value
      */
@@ -168,7 +168,7 @@ public MaintenanceOperationResultCodeTypes lastOperationResultCode() {
     }
 
     /**
-     * Set the lastOperationResultCode value.
+     * Set the Last Maintenance Operation Result Code. Possible values include: 'None', 'RetryLater', 'MaintenanceAborted', 'MaintenanceCompleted'.
      *
      * @param lastOperationResultCode the lastOperationResultCode value to set
      * @return the MaintenanceRedeployStatus object itself.
@@ -179,7 +179,7 @@ public MaintenanceRedeployStatus withLastOperationResultCode(MaintenanceOperatio
     }
 
     /**
-     * Get the lastOperationMessage value.
+     * Get message returned for the last Maintenance Operation.
      *
      * @return the lastOperationMessage value
      */
@@ -188,7 +188,7 @@ public String lastOperationMessage() {
     }
 
     /**
-     * Set the lastOperationMessage value.
+     * Set message returned for the last Maintenance Operation.
      *
      * @param lastOperationMessage the lastOperationMessage value to set
      * @return the MaintenanceRedeployStatus object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ManagedDiskParameters.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ManagedDiskParameters.java
index f0a64bfd5b712..cc9c9e2120736 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ManagedDiskParameters.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/ManagedDiskParameters.java
@@ -24,7 +24,7 @@ public class ManagedDiskParameters extends SubResource {
     private StorageAccountTypes storageAccountType;
 
     /**
-     * Get the storageAccountType value.
+     * Get specifies the storage account type for the managed disk. Possible values are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', 'Premium_LRS'.
      *
      * @return the storageAccountType value
      */
@@ -33,7 +33,7 @@ public StorageAccountTypes storageAccountType() {
     }
 
     /**
-     * Set the storageAccountType value.
+     * Set specifies the storage account type for the managed disk. Possible values are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', 'Premium_LRS'.
      *
      * @param storageAccountType the storageAccountType value to set
      * @return the ManagedDiskParameters object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/NetworkInterfaceReference.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/NetworkInterfaceReference.java
index f2e1554a46642..04a43568b56c9 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/NetworkInterfaceReference.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/NetworkInterfaceReference.java
@@ -25,7 +25,7 @@ public class NetworkInterfaceReference extends SubResource {
     private Boolean primary;
 
     /**
-     * Get the primary value.
+     * Get specifies the primary network interface in case the virtual machine has more than 1 network interface.
      *
      * @return the primary value
      */
@@ -34,7 +34,7 @@ public Boolean primary() {
     }
 
     /**
-     * Set the primary value.
+     * Set specifies the primary network interface in case the virtual machine has more than 1 network interface.
      *
      * @param primary the primary value to set
      * @return the NetworkInterfaceReference object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/NetworkProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/NetworkProfile.java
index 4df59c458a679..a5b70bffd93fd 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/NetworkProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/NetworkProfile.java
@@ -23,7 +23,7 @@ public class NetworkProfile {
     private List<NetworkInterfaceReference> networkInterfaces;
 
     /**
-     * Get the networkInterfaces value.
+     * Get specifies the list of resource Ids for the network interfaces associated with the virtual machine.
      *
      * @return the networkInterfaces value
      */
@@ -32,7 +32,7 @@ public List<NetworkInterfaceReference> networkInterfaces() {
     }
 
     /**
-     * Set the networkInterfaces value.
+     * Set specifies the list of resource Ids for the network interfaces associated with the virtual machine.
      *
      * @param networkInterfaces the networkInterfaces value to set
      * @return the NetworkProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSDisk.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSDisk.java
index 08aaf14028c60..b4e79eaccb22c 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSDisk.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSDisk.java
@@ -87,7 +87,7 @@ public class OSDisk {
 
     /**
      * Specifies the size of an empty data disk in gigabytes. This element can
-     * be used to overwrite the name of the disk in a virtual machine image.
+     * be used to overwrite the size of the disk in a virtual machine image.
      * &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      */
     @JsonProperty(value = "diskSizeGB")
@@ -100,7 +100,7 @@ public class OSDisk {
     private ManagedDiskParameters managedDisk;
 
     /**
-     * Get the osType value.
+     * Get this property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **Windows** &lt;br&gt;&lt;br&gt; **Linux**. Possible values include: 'Windows', 'Linux'.
      *
      * @return the osType value
      */
@@ -109,7 +109,7 @@ public OperatingSystemTypes osType() {
     }
 
     /**
-     * Set the osType value.
+     * Set this property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **Windows** &lt;br&gt;&lt;br&gt; **Linux**. Possible values include: 'Windows', 'Linux'.
      *
      * @param osType the osType value to set
      * @return the OSDisk object itself.
@@ -120,7 +120,7 @@ public OSDisk withOsType(OperatingSystemTypes osType) {
     }
 
     /**
-     * Get the encryptionSettings value.
+     * Get specifies the encryption settings for the OS Disk. &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @return the encryptionSettings value
      */
@@ -129,7 +129,7 @@ public DiskEncryptionSettings encryptionSettings() {
     }
 
     /**
-     * Set the encryptionSettings value.
+     * Set specifies the encryption settings for the OS Disk. &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @param encryptionSettings the encryptionSettings value to set
      * @return the OSDisk object itself.
@@ -140,7 +140,7 @@ public OSDisk withEncryptionSettings(DiskEncryptionSettings encryptionSettings)
     }
 
     /**
-     * Get the name value.
+     * Get the disk name.
      *
      * @return the name value
      */
@@ -149,7 +149,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the disk name.
      *
      * @param name the name value to set
      * @return the OSDisk object itself.
@@ -160,7 +160,7 @@ public OSDisk withName(String name) {
     }
 
     /**
-     * Get the vhd value.
+     * Get the virtual hard disk.
      *
      * @return the vhd value
      */
@@ -169,7 +169,7 @@ public VirtualHardDisk vhd() {
     }
 
     /**
-     * Set the vhd value.
+     * Set the virtual hard disk.
      *
      * @param vhd the vhd value to set
      * @return the OSDisk object itself.
@@ -180,7 +180,7 @@ public OSDisk withVhd(VirtualHardDisk vhd) {
     }
 
     /**
-     * Get the image value.
+     * Get the source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
      *
      * @return the image value
      */
@@ -189,7 +189,7 @@ public VirtualHardDisk image() {
     }
 
     /**
-     * Set the image value.
+     * Set the source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
      *
      * @param image the image value to set
      * @return the OSDisk object itself.
@@ -200,7 +200,7 @@ public OSDisk withImage(VirtualHardDisk image) {
     }
 
     /**
-     * Get the caching value.
+     * Get specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @return the caching value
      */
@@ -209,7 +209,7 @@ public CachingTypes caching() {
     }
 
     /**
-     * Set the caching value.
+     * Set specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @param caching the caching value to set
      * @return the OSDisk object itself.
@@ -220,7 +220,7 @@ public OSDisk withCaching(CachingTypes caching) {
     }
 
     /**
-     * Get the writeAcceleratorEnabled value.
+     * Get specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @return the writeAcceleratorEnabled value
      */
@@ -229,7 +229,7 @@ public Boolean writeAcceleratorEnabled() {
     }
 
     /**
-     * Set the writeAcceleratorEnabled value.
+     * Set specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @param writeAcceleratorEnabled the writeAcceleratorEnabled value to set
      * @return the OSDisk object itself.
@@ -240,7 +240,7 @@ public OSDisk withWriteAcceleratorEnabled(Boolean writeAcceleratorEnabled) {
     }
 
     /**
-     * Get the createOption value.
+     * Get specifies how the virtual machine should be created.&lt;br&gt;&lt;br&gt; Possible values are:&lt;br&gt;&lt;br&gt; **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.&lt;br&gt;&lt;br&gt; **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described. Possible values include: 'FromImage', 'Empty', 'Attach'.
      *
      * @return the createOption value
      */
@@ -249,7 +249,7 @@ public DiskCreateOptionTypes createOption() {
     }
 
     /**
-     * Set the createOption value.
+     * Set specifies how the virtual machine should be created.&lt;br&gt;&lt;br&gt; Possible values are:&lt;br&gt;&lt;br&gt; **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.&lt;br&gt;&lt;br&gt; **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described. Possible values include: 'FromImage', 'Empty', 'Attach'.
      *
      * @param createOption the createOption value to set
      * @return the OSDisk object itself.
@@ -260,7 +260,7 @@ public OSDisk withCreateOption(DiskCreateOptionTypes createOption) {
     }
 
     /**
-     * Get the diskSizeGB value.
+     * Get specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @return the diskSizeGB value
      */
@@ -269,7 +269,7 @@ public Integer diskSizeGB() {
     }
 
     /**
-     * Set the diskSizeGB value.
+     * Set specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @param diskSizeGB the diskSizeGB value to set
      * @return the OSDisk object itself.
@@ -280,7 +280,7 @@ public OSDisk withDiskSizeGB(Integer diskSizeGB) {
     }
 
     /**
-     * Get the managedDisk value.
+     * Get the managed disk parameters.
      *
      * @return the managedDisk value
      */
@@ -289,7 +289,7 @@ public ManagedDiskParameters managedDisk() {
     }
 
     /**
-     * Set the managedDisk value.
+     * Set the managed disk parameters.
      *
      * @param managedDisk the managedDisk value to set
      * @return the OSDisk object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSDiskImage.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSDiskImage.java
index 38d51530f40ca..bf17d019ec67c 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSDiskImage.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSDiskImage.java
@@ -22,7 +22,7 @@ public class OSDiskImage {
     private OperatingSystemTypes operatingSystem;
 
     /**
-     * Get the operatingSystem value.
+     * Get the operating system of the osDiskImage. Possible values include: 'Windows', 'Linux'.
      *
      * @return the operatingSystem value
      */
@@ -31,7 +31,7 @@ public OperatingSystemTypes operatingSystem() {
     }
 
     /**
-     * Set the operatingSystem value.
+     * Set the operating system of the osDiskImage. Possible values include: 'Windows', 'Linux'.
      *
      * @param operatingSystem the operatingSystem value to set
      * @return the OSDiskImage object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSProfile.java
index f4489702f4f10..d6bc28279111f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/OSProfile.java
@@ -17,10 +17,11 @@
 public class OSProfile {
     /**
      * Specifies the host OS name of the virtual machine. &lt;br&gt;&lt;br&gt;
-     * **Max-length (Windows):** 15 characters &lt;br&gt;&lt;br&gt;
-     * **Max-length (Linux):** 64 characters. &lt;br&gt;&lt;br&gt; For naming
-     * conventions and restrictions see [Azure infrastructure services
-     * implementation
+     * This name cannot be updated after the VM is created.
+     * &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 15 characters
+     * &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 64 characters.
+     * &lt;br&gt;&lt;br&gt; For naming conventions and restrictions see [Azure
+     * infrastructure services implementation
      * guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions).
      */
     @JsonProperty(value = "computerName")
@@ -106,7 +107,7 @@ public class OSProfile {
     private List<VaultSecretGroup> secrets;
 
     /**
-     * Get the computerName value.
+     * Get specifies the host OS name of the virtual machine. &lt;br&gt;&lt;br&gt; This name cannot be updated after the VM is created. &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 15 characters &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 64 characters. &lt;br&gt;&lt;br&gt; For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions).
      *
      * @return the computerName value
      */
@@ -115,7 +116,7 @@ public String computerName() {
     }
 
     /**
-     * Set the computerName value.
+     * Set specifies the host OS name of the virtual machine. &lt;br&gt;&lt;br&gt; This name cannot be updated after the VM is created. &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 15 characters &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 64 characters. &lt;br&gt;&lt;br&gt; For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions).
      *
      * @param computerName the computerName value to set
      * @return the OSProfile object itself.
@@ -126,7 +127,7 @@ public OSProfile withComputerName(String computerName) {
     }
 
     /**
-     * Get the adminUsername value.
+     * Get specifies the name of the administrator account. &lt;br&gt;&lt;br&gt; **Windows-only restriction:** Cannot end in "." &lt;br&gt;&lt;br&gt; **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". &lt;br&gt;&lt;br&gt; **Minimum-length (Linux):** 1  character &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 64 characters &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 20 characters  &lt;br&gt;&lt;br&gt;&lt;li&gt; For root access to the Linux VM, see [Using root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)&lt;br&gt;&lt;li&gt; For a list of built-in system users on Linux that should not be used in this field, see [Selecting User Names for Linux on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @return the adminUsername value
      */
@@ -135,7 +136,7 @@ public String adminUsername() {
     }
 
     /**
-     * Set the adminUsername value.
+     * Set specifies the name of the administrator account. &lt;br&gt;&lt;br&gt; **Windows-only restriction:** Cannot end in "." &lt;br&gt;&lt;br&gt; **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". &lt;br&gt;&lt;br&gt; **Minimum-length (Linux):** 1  character &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 64 characters &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 20 characters  &lt;br&gt;&lt;br&gt;&lt;li&gt; For root access to the Linux VM, see [Using root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)&lt;br&gt;&lt;li&gt; For a list of built-in system users on Linux that should not be used in this field, see [Selecting User Names for Linux on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @param adminUsername the adminUsername value to set
      * @return the OSProfile object itself.
@@ -146,7 +147,7 @@ public OSProfile withAdminUsername(String adminUsername) {
     }
 
     /**
-     * Get the adminPassword value.
+     * Get specifies the password of the administrator account. &lt;br&gt;&lt;br&gt; **Minimum-length (Windows):** 8 characters &lt;br&gt;&lt;br&gt; **Minimum-length (Linux):** 6 characters &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 123 characters &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 72 characters &lt;br&gt;&lt;br&gt; **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled &lt;br&gt; Has lower characters &lt;br&gt;Has upper characters &lt;br&gt; Has a digit &lt;br&gt; Has a special character (Regex match [\W_]) &lt;br&gt;&lt;br&gt; **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" &lt;br&gt;&lt;br&gt; For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password).
      *
      * @return the adminPassword value
      */
@@ -155,7 +156,7 @@ public String adminPassword() {
     }
 
     /**
-     * Set the adminPassword value.
+     * Set specifies the password of the administrator account. &lt;br&gt;&lt;br&gt; **Minimum-length (Windows):** 8 characters &lt;br&gt;&lt;br&gt; **Minimum-length (Linux):** 6 characters &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 123 characters &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 72 characters &lt;br&gt;&lt;br&gt; **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled &lt;br&gt; Has lower characters &lt;br&gt;Has upper characters &lt;br&gt; Has a digit &lt;br&gt; Has a special character (Regex match [\W_]) &lt;br&gt;&lt;br&gt; **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" &lt;br&gt;&lt;br&gt; For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password).
      *
      * @param adminPassword the adminPassword value to set
      * @return the OSProfile object itself.
@@ -166,7 +167,7 @@ public OSProfile withAdminPassword(String adminPassword) {
     }
 
     /**
-     * Get the customData value.
+     * Get specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. &lt;br&gt;&lt;br&gt; For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @return the customData value
      */
@@ -175,7 +176,7 @@ public String customData() {
     }
 
     /**
-     * Set the customData value.
+     * Set specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. &lt;br&gt;&lt;br&gt; For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @param customData the customData value to set
      * @return the OSProfile object itself.
@@ -186,7 +187,7 @@ public OSProfile withCustomData(String customData) {
     }
 
     /**
-     * Get the windowsConfiguration value.
+     * Get specifies Windows operating system settings on the virtual machine.
      *
      * @return the windowsConfiguration value
      */
@@ -195,7 +196,7 @@ public WindowsConfiguration windowsConfiguration() {
     }
 
     /**
-     * Set the windowsConfiguration value.
+     * Set specifies Windows operating system settings on the virtual machine.
      *
      * @param windowsConfiguration the windowsConfiguration value to set
      * @return the OSProfile object itself.
@@ -206,7 +207,7 @@ public OSProfile withWindowsConfiguration(WindowsConfiguration windowsConfigurat
     }
 
     /**
-     * Get the linuxConfiguration value.
+     * Get specifies the Linux operating system settings on the virtual machine. &lt;br&gt;&lt;br&gt;For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) &lt;br&gt;&lt;br&gt; For running non-endorsed distributions, see [Information for Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @return the linuxConfiguration value
      */
@@ -215,7 +216,7 @@ public LinuxConfiguration linuxConfiguration() {
     }
 
     /**
-     * Set the linuxConfiguration value.
+     * Set specifies the Linux operating system settings on the virtual machine. &lt;br&gt;&lt;br&gt;For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) &lt;br&gt;&lt;br&gt; For running non-endorsed distributions, see [Information for Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @param linuxConfiguration the linuxConfiguration value to set
      * @return the OSProfile object itself.
@@ -226,7 +227,7 @@ public OSProfile withLinuxConfiguration(LinuxConfiguration linuxConfiguration) {
     }
 
     /**
-     * Get the secrets value.
+     * Get specifies set of certificates that should be installed onto the virtual machine.
      *
      * @return the secrets value
      */
@@ -235,7 +236,7 @@ public List<VaultSecretGroup> secrets() {
     }
 
     /**
-     * Set the secrets value.
+     * Set specifies set of certificates that should be installed onto the virtual machine.
      *
      * @param secrets the secrets value to set
      * @return the OSProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Plan.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Plan.java
index 706959e783f64..c558718b558e1 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Plan.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Plan.java
@@ -45,7 +45,7 @@ public class Plan {
     private String promotionCode;
 
     /**
-     * Get the name value.
+     * Get the plan ID.
      *
      * @return the name value
      */
@@ -54,7 +54,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the plan ID.
      *
      * @param name the name value to set
      * @return the Plan object itself.
@@ -65,7 +65,7 @@ public Plan withName(String name) {
     }
 
     /**
-     * Get the publisher value.
+     * Get the publisher ID.
      *
      * @return the publisher value
      */
@@ -74,7 +74,7 @@ public String publisher() {
     }
 
     /**
-     * Set the publisher value.
+     * Set the publisher ID.
      *
      * @param publisher the publisher value to set
      * @return the Plan object itself.
@@ -85,7 +85,7 @@ public Plan withPublisher(String publisher) {
     }
 
     /**
-     * Get the product value.
+     * Get specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
      *
      * @return the product value
      */
@@ -94,7 +94,7 @@ public String product() {
     }
 
     /**
-     * Set the product value.
+     * Set specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
      *
      * @param product the product value to set
      * @return the Plan object itself.
@@ -105,7 +105,7 @@ public Plan withProduct(String product) {
     }
 
     /**
-     * Get the promotionCode value.
+     * Get the promotion code.
      *
      * @return the promotionCode value
      */
@@ -114,7 +114,7 @@ public String promotionCode() {
     }
 
     /**
-     * Set the promotionCode value.
+     * Set the promotion code.
      *
      * @param promotionCode the promotionCode value to set
      * @return the Plan object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/PurchasePlan.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/PurchasePlan.java
index 2c35d99d844d9..07ecdb4dff25b 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/PurchasePlan.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/PurchasePlan.java
@@ -35,7 +35,7 @@ public class PurchasePlan {
     private String product;
 
     /**
-     * Get the publisher value.
+     * Get the publisher ID.
      *
      * @return the publisher value
      */
@@ -44,7 +44,7 @@ public String publisher() {
     }
 
     /**
-     * Set the publisher value.
+     * Set the publisher ID.
      *
      * @param publisher the publisher value to set
      * @return the PurchasePlan object itself.
@@ -55,7 +55,7 @@ public PurchasePlan withPublisher(String publisher) {
     }
 
     /**
-     * Get the name value.
+     * Get the plan ID.
      *
      * @return the name value
      */
@@ -64,7 +64,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the plan ID.
      *
      * @param name the name value to set
      * @return the PurchasePlan object itself.
@@ -75,7 +75,7 @@ public PurchasePlan withName(String name) {
     }
 
     /**
-     * Get the product value.
+     * Get specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
      *
      * @return the product value
      */
@@ -84,7 +84,7 @@ public String product() {
     }
 
     /**
-     * Set the product value.
+     * Set specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
      *
      * @param product the product value to set
      * @return the PurchasePlan object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RequestRateByIntervalInput.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RequestRateByIntervalInput.java
index bf1a991b190e9..d1511a067772f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RequestRateByIntervalInput.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RequestRateByIntervalInput.java
@@ -23,7 +23,7 @@ public class RequestRateByIntervalInput extends LogAnalyticsInputBase {
     private IntervalInMins intervalLength;
 
     /**
-     * Get the intervalLength value.
+     * Get interval value in minutes used to create LogAnalytics call rate logs. Possible values include: 'ThreeMins', 'FiveMins', 'ThirtyMins', 'SixtyMins'.
      *
      * @return the intervalLength value
      */
@@ -32,7 +32,7 @@ public IntervalInMins intervalLength() {
     }
 
     /**
-     * Set the intervalLength value.
+     * Set interval value in minutes used to create LogAnalytics call rate logs. Possible values include: 'ThreeMins', 'FiveMins', 'ThirtyMins', 'SixtyMins'.
      *
      * @param intervalLength the intervalLength value to set
      * @return the RequestRateByIntervalInput object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollbackStatusInfo.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollbackStatusInfo.java
index 8207a42eda110..db0955bfd4d4a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollbackStatusInfo.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollbackStatusInfo.java
@@ -34,7 +34,7 @@ public class RollbackStatusInfo {
     private ApiError rollbackError;
 
     /**
-     * Get the successfullyRolledbackInstanceCount value.
+     * Get the number of instances which have been successfully rolled back.
      *
      * @return the successfullyRolledbackInstanceCount value
      */
@@ -43,7 +43,7 @@ public Integer successfullyRolledbackInstanceCount() {
     }
 
     /**
-     * Get the failedRolledbackInstanceCount value.
+     * Get the number of instances which failed to rollback.
      *
      * @return the failedRolledbackInstanceCount value
      */
@@ -52,7 +52,7 @@ public Integer failedRolledbackInstanceCount() {
     }
 
     /**
-     * Get the rollbackError value.
+     * Get error details if OS rollback failed.
      *
      * @return the rollbackError value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradePolicy.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradePolicy.java
index 999b0e8ea431a..359050d4bde2f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradePolicy.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradePolicy.java
@@ -53,7 +53,7 @@ public class RollingUpgradePolicy {
     private String pauseTimeBetweenBatches;
 
     /**
-     * Get the maxBatchInstancePercent value.
+     * Get the maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
      *
      * @return the maxBatchInstancePercent value
      */
@@ -62,7 +62,7 @@ public Integer maxBatchInstancePercent() {
     }
 
     /**
-     * Set the maxBatchInstancePercent value.
+     * Set the maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
      *
      * @param maxBatchInstancePercent the maxBatchInstancePercent value to set
      * @return the RollingUpgradePolicy object itself.
@@ -73,7 +73,7 @@ public RollingUpgradePolicy withMaxBatchInstancePercent(Integer maxBatchInstance
     }
 
     /**
-     * Get the maxUnhealthyInstancePercent value.
+     * Get the maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
      *
      * @return the maxUnhealthyInstancePercent value
      */
@@ -82,7 +82,7 @@ public Integer maxUnhealthyInstancePercent() {
     }
 
     /**
-     * Set the maxUnhealthyInstancePercent value.
+     * Set the maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
      *
      * @param maxUnhealthyInstancePercent the maxUnhealthyInstancePercent value to set
      * @return the RollingUpgradePolicy object itself.
@@ -93,7 +93,7 @@ public RollingUpgradePolicy withMaxUnhealthyInstancePercent(Integer maxUnhealthy
     }
 
     /**
-     * Get the maxUnhealthyUpgradedInstancePercent value.
+     * Get the maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
      *
      * @return the maxUnhealthyUpgradedInstancePercent value
      */
@@ -102,7 +102,7 @@ public Integer maxUnhealthyUpgradedInstancePercent() {
     }
 
     /**
-     * Set the maxUnhealthyUpgradedInstancePercent value.
+     * Set the maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
      *
      * @param maxUnhealthyUpgradedInstancePercent the maxUnhealthyUpgradedInstancePercent value to set
      * @return the RollingUpgradePolicy object itself.
@@ -113,7 +113,7 @@ public RollingUpgradePolicy withMaxUnhealthyUpgradedInstancePercent(Integer maxU
     }
 
     /**
-     * Get the pauseTimeBetweenBatches value.
+     * Get the wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
      *
      * @return the pauseTimeBetweenBatches value
      */
@@ -122,7 +122,7 @@ public String pauseTimeBetweenBatches() {
     }
 
     /**
-     * Set the pauseTimeBetweenBatches value.
+     * Set the wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
      *
      * @param pauseTimeBetweenBatches the pauseTimeBetweenBatches value to set
      * @return the RollingUpgradePolicy object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradeProgressInfo.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradeProgressInfo.java
index fe594d70d731d..d683e53001f6d 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradeProgressInfo.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradeProgressInfo.java
@@ -40,7 +40,7 @@ public class RollingUpgradeProgressInfo {
     private Integer pendingInstanceCount;
 
     /**
-     * Get the successfulInstanceCount value.
+     * Get the number of instances that have been successfully upgraded.
      *
      * @return the successfulInstanceCount value
      */
@@ -49,7 +49,7 @@ public Integer successfulInstanceCount() {
     }
 
     /**
-     * Get the failedInstanceCount value.
+     * Get the number of instances that have failed to be upgraded successfully.
      *
      * @return the failedInstanceCount value
      */
@@ -58,7 +58,7 @@ public Integer failedInstanceCount() {
     }
 
     /**
-     * Get the inProgressInstanceCount value.
+     * Get the number of instances that are currently being upgraded.
      *
      * @return the inProgressInstanceCount value
      */
@@ -67,7 +67,7 @@ public Integer inProgressInstanceCount() {
     }
 
     /**
-     * Get the pendingInstanceCount value.
+     * Get the number of instances that have not yet begun to be upgraded.
      *
      * @return the pendingInstanceCount value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradeRunningStatus.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradeRunningStatus.java
index d54aa47da1b8a..e1b9cf54f0e2a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradeRunningStatus.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RollingUpgradeRunningStatus.java
@@ -42,7 +42,7 @@ public class RollingUpgradeRunningStatus {
     private DateTime lastActionTime;
 
     /**
-     * Get the code value.
+     * Get code indicating the current status of the upgrade. Possible values include: 'RollingForward', 'Cancelled', 'Completed', 'Faulted'.
      *
      * @return the code value
      */
@@ -51,7 +51,7 @@ public RollingUpgradeStatusCode code() {
     }
 
     /**
-     * Get the startTime value.
+     * Get start time of the upgrade.
      *
      * @return the startTime value
      */
@@ -60,7 +60,7 @@ public DateTime startTime() {
     }
 
     /**
-     * Get the lastAction value.
+     * Get the last action performed on the rolling upgrade. Possible values include: 'Start', 'Cancel'.
      *
      * @return the lastAction value
      */
@@ -69,7 +69,7 @@ public RollingUpgradeActionType lastAction() {
     }
 
     /**
-     * Get the lastActionTime value.
+     * Get last action time of the upgrade.
      *
      * @return the lastActionTime value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandInput.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandInput.java
index 5c66fe6db1336..d0bdd3cc2471f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandInput.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandInput.java
@@ -35,7 +35,7 @@ public class RunCommandInput {
     private List<RunCommandInputParameter> parameters;
 
     /**
-     * Get the commandId value.
+     * Get the run command id.
      *
      * @return the commandId value
      */
@@ -44,7 +44,7 @@ public String commandId() {
     }
 
     /**
-     * Set the commandId value.
+     * Set the run command id.
      *
      * @param commandId the commandId value to set
      * @return the RunCommandInput object itself.
@@ -55,7 +55,7 @@ public RunCommandInput withCommandId(String commandId) {
     }
 
     /**
-     * Get the script value.
+     * Get optional. The script to be executed.  When this value is given, the given script will override the default script of the command.
      *
      * @return the script value
      */
@@ -64,7 +64,7 @@ public List<String> script() {
     }
 
     /**
-     * Set the script value.
+     * Set optional. The script to be executed.  When this value is given, the given script will override the default script of the command.
      *
      * @param script the script value to set
      * @return the RunCommandInput object itself.
@@ -75,7 +75,7 @@ public RunCommandInput withScript(List<String> script) {
     }
 
     /**
-     * Get the parameters value.
+     * Get the run command parameters.
      *
      * @return the parameters value
      */
@@ -84,7 +84,7 @@ public List<RunCommandInputParameter> parameters() {
     }
 
     /**
-     * Set the parameters value.
+     * Set the run command parameters.
      *
      * @param parameters the parameters value to set
      * @return the RunCommandInput object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandInputParameter.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandInputParameter.java
index 7e18c716d015e..6027c09677540 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandInputParameter.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandInputParameter.java
@@ -27,7 +27,7 @@ public class RunCommandInputParameter {
     private String value;
 
     /**
-     * Get the name value.
+     * Get the run command parameter name.
      *
      * @return the name value
      */
@@ -36,7 +36,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the run command parameter name.
      *
      * @param name the name value to set
      * @return the RunCommandInputParameter object itself.
@@ -47,7 +47,7 @@ public RunCommandInputParameter withName(String name) {
     }
 
     /**
-     * Get the value value.
+     * Get the run command parameter value.
      *
      * @return the value value
      */
@@ -56,7 +56,7 @@ public String value() {
     }
 
     /**
-     * Set the value value.
+     * Set the run command parameter value.
      *
      * @param value the value value to set
      * @return the RunCommandInputParameter object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandParameterDefinition.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandParameterDefinition.java
index 902143de1f2ab..2a363b3103d63 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandParameterDefinition.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/RunCommandParameterDefinition.java
@@ -39,7 +39,7 @@ public class RunCommandParameterDefinition {
     private Boolean required;
 
     /**
-     * Get the name value.
+     * Get the run command parameter name.
      *
      * @return the name value
      */
@@ -48,7 +48,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the run command parameter name.
      *
      * @param name the name value to set
      * @return the RunCommandParameterDefinition object itself.
@@ -59,7 +59,7 @@ public RunCommandParameterDefinition withName(String name) {
     }
 
     /**
-     * Get the type value.
+     * Get the run command parameter type.
      *
      * @return the type value
      */
@@ -68,7 +68,7 @@ public String type() {
     }
 
     /**
-     * Set the type value.
+     * Set the run command parameter type.
      *
      * @param type the type value to set
      * @return the RunCommandParameterDefinition object itself.
@@ -79,7 +79,7 @@ public RunCommandParameterDefinition withType(String type) {
     }
 
     /**
-     * Get the defaultValue value.
+     * Get the run command parameter default value.
      *
      * @return the defaultValue value
      */
@@ -88,7 +88,7 @@ public String defaultValue() {
     }
 
     /**
-     * Set the defaultValue value.
+     * Set the run command parameter default value.
      *
      * @param defaultValue the defaultValue value to set
      * @return the RunCommandParameterDefinition object itself.
@@ -99,7 +99,7 @@ public RunCommandParameterDefinition withDefaultValue(String defaultValue) {
     }
 
     /**
-     * Get the required value.
+     * Get the run command parameter required.
      *
      * @return the required value
      */
@@ -108,7 +108,7 @@ public Boolean required() {
     }
 
     /**
-     * Set the required value.
+     * Set the run command parameter required.
      *
      * @param required the required value to set
      * @return the RunCommandParameterDefinition object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Sku.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Sku.java
index 35f2570273dcf..21bf24ccf00bb 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Sku.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/Sku.java
@@ -11,7 +11,9 @@
 import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
- * Describes a virtual machine scale set sku.
+ * Describes a virtual machine scale set sku. NOTE: If the new VM SKU is not
+ * supported on the hardware the scale set is currently on, you need to
+ * deallocate the VMs in the scale set before you modify the SKU name.
  */
 public class Sku {
     /**
@@ -35,7 +37,7 @@ public class Sku {
     private Long capacity;
 
     /**
-     * Get the name value.
+     * Get the sku name.
      *
      * @return the name value
      */
@@ -44,7 +46,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the sku name.
      *
      * @param name the name value to set
      * @return the Sku object itself.
@@ -55,7 +57,7 @@ public Sku withName(String name) {
     }
 
     /**
-     * Get the tier value.
+     * Get specifies the tier of virtual machines in a scale set.&lt;br /&gt;&lt;br /&gt; Possible Values:&lt;br /&gt;&lt;br /&gt; **Standard**&lt;br /&gt;&lt;br /&gt; **Basic**.
      *
      * @return the tier value
      */
@@ -64,7 +66,7 @@ public String tier() {
     }
 
     /**
-     * Set the tier value.
+     * Set specifies the tier of virtual machines in a scale set.&lt;br /&gt;&lt;br /&gt; Possible Values:&lt;br /&gt;&lt;br /&gt; **Standard**&lt;br /&gt;&lt;br /&gt; **Basic**.
      *
      * @param tier the tier value to set
      * @return the Sku object itself.
@@ -75,7 +77,7 @@ public Sku withTier(String tier) {
     }
 
     /**
-     * Get the capacity value.
+     * Get specifies the number of virtual machines in the scale set.
      *
      * @return the capacity value
      */
@@ -84,7 +86,7 @@ public Long capacity() {
     }
 
     /**
-     * Set the capacity value.
+     * Set specifies the number of virtual machines in the scale set.
      *
      * @param capacity the capacity value to set
      * @return the Sku object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SshConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SshConfiguration.java
index be0ba2e5a8090..62efd514bf07a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SshConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SshConfiguration.java
@@ -22,7 +22,7 @@ public class SshConfiguration {
     private List<SshPublicKey> publicKeys;
 
     /**
-     * Get the publicKeys value.
+     * Get the list of SSH public keys used to authenticate with linux based VMs.
      *
      * @return the publicKeys value
      */
@@ -31,7 +31,7 @@ public List<SshPublicKey> publicKeys() {
     }
 
     /**
-     * Set the publicKeys value.
+     * Set the list of SSH public keys used to authenticate with linux based VMs.
      *
      * @param publicKeys the publicKeys value to set
      * @return the SshConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SshPublicKey.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SshPublicKey.java
index 974bab7868b00..50b9a336e3ec1 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SshPublicKey.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SshPublicKey.java
@@ -34,7 +34,7 @@ public class SshPublicKey {
     private String keyData;
 
     /**
-     * Get the path value.
+     * Get specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys.
      *
      * @return the path value
      */
@@ -43,7 +43,7 @@ public String path() {
     }
 
     /**
-     * Set the path value.
+     * Set specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys.
      *
      * @param path the path value to set
      * @return the SshPublicKey object itself.
@@ -54,7 +54,7 @@ public SshPublicKey withPath(String path) {
     }
 
     /**
-     * Get the keyData value.
+     * Get sSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. &lt;br&gt;&lt;br&gt; For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @return the keyData value
      */
@@ -63,7 +63,7 @@ public String keyData() {
     }
 
     /**
-     * Set the keyData value.
+     * Set sSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. &lt;br&gt;&lt;br&gt; For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @param keyData the keyData value to set
      * @return the SshPublicKey object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/StorageProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/StorageProfile.java
index 7ec35f671971f..336f5dbe3f484 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/StorageProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/StorageProfile.java
@@ -44,7 +44,7 @@ public class StorageProfile {
     private List<DataDisk> dataDisks;
 
     /**
-     * Get the imageReference value.
+     * Get specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
      *
      * @return the imageReference value
      */
@@ -53,7 +53,7 @@ public ImageReference imageReference() {
     }
 
     /**
-     * Set the imageReference value.
+     * Set specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
      *
      * @param imageReference the imageReference value to set
      * @return the StorageProfile object itself.
@@ -64,7 +64,7 @@ public StorageProfile withImageReference(ImageReference imageReference) {
     }
 
     /**
-     * Get the osDisk value.
+     * Get specifies information about the operating system disk used by the virtual machine. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @return the osDisk value
      */
@@ -73,7 +73,7 @@ public OSDisk osDisk() {
     }
 
     /**
-     * Set the osDisk value.
+     * Set specifies information about the operating system disk used by the virtual machine. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @param osDisk the osDisk value to set
      * @return the StorageProfile object itself.
@@ -84,7 +84,7 @@ public StorageProfile withOsDisk(OSDisk osDisk) {
     }
 
     /**
-     * Get the dataDisks value.
+     * Get specifies the parameters that are used to add a data disk to a virtual machine. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @return the dataDisks value
      */
@@ -93,7 +93,7 @@ public List<DataDisk> dataDisks() {
     }
 
     /**
-     * Set the dataDisks value.
+     * Set specifies the parameters that are used to add a data disk to a virtual machine. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @param dataDisks the dataDisks value to set
      * @return the StorageProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SubResourceReadOnly.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SubResourceReadOnly.java
index e66fe0e581ee5..80a1765517e90 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SubResourceReadOnly.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/SubResourceReadOnly.java
@@ -21,7 +21,7 @@ public class SubResourceReadOnly {
     private String id;
 
     /**
-     * Get the id value.
+     * Get resource Id.
      *
      * @return the id value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpdateResource.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpdateResource.java
index 8808b169e2ce6..1fb55920f6900 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpdateResource.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpdateResource.java
@@ -22,7 +22,7 @@ public class UpdateResource {
     private Map<String, String> tags;
 
     /**
-     * Get the tags value.
+     * Get resource tags.
      *
      * @return the tags value
      */
@@ -31,7 +31,7 @@ public Map<String, String> tags() {
     }
 
     /**
-     * Set the tags value.
+     * Set resource tags.
      *
      * @param tags the tags value to set
      * @return the UpdateResource object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradeOperationHistoricalStatusInfoProperties.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradeOperationHistoricalStatusInfoProperties.java
index 096b287640d6d..6730722003ad3 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradeOperationHistoricalStatusInfoProperties.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradeOperationHistoricalStatusInfoProperties.java
@@ -21,7 +21,7 @@ public class UpgradeOperationHistoricalStatusInfoProperties {
     private UpgradeOperationHistoryStatus runningStatus;
 
     /**
-     * Counts of the VM's in each state.
+     * Counts of the VMs in each state.
      */
     @JsonProperty(value = "progress", access = JsonProperty.Access.WRITE_ONLY)
     private RollingUpgradeProgressInfo progress;
@@ -52,7 +52,7 @@ public class UpgradeOperationHistoricalStatusInfoProperties {
     private RollbackStatusInfo rollbackInfo;
 
     /**
-     * Get the runningStatus value.
+     * Get information about the overall status of the upgrade operation.
      *
      * @return the runningStatus value
      */
@@ -61,7 +61,7 @@ public UpgradeOperationHistoryStatus runningStatus() {
     }
 
     /**
-     * Get the progress value.
+     * Get counts of the VMs in each state.
      *
      * @return the progress value
      */
@@ -70,7 +70,7 @@ public RollingUpgradeProgressInfo progress() {
     }
 
     /**
-     * Get the error value.
+     * Get error Details for this upgrade if there are any.
      *
      * @return the error value
      */
@@ -79,7 +79,7 @@ public ApiError error() {
     }
 
     /**
-     * Get the startedBy value.
+     * Get invoker of the Upgrade Operation. Possible values include: 'Unknown', 'User', 'Platform'.
      *
      * @return the startedBy value
      */
@@ -88,7 +88,7 @@ public UpgradeOperationInvoker startedBy() {
     }
 
     /**
-     * Get the targetImageReference value.
+     * Get image Reference details.
      *
      * @return the targetImageReference value
      */
@@ -97,7 +97,7 @@ public ImageReference targetImageReference() {
     }
 
     /**
-     * Get the rollbackInfo value.
+     * Get information about OS rollback if performed.
      *
      * @return the rollbackInfo value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradeOperationHistoryStatus.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradeOperationHistoryStatus.java
index c013fe0b73dec..8eead01d55063 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradeOperationHistoryStatus.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradeOperationHistoryStatus.java
@@ -35,7 +35,7 @@ public class UpgradeOperationHistoryStatus {
     private DateTime endTime;
 
     /**
-     * Get the code value.
+     * Get code indicating the current status of the upgrade. Possible values include: 'RollingForward', 'Cancelled', 'Completed', 'Faulted'.
      *
      * @return the code value
      */
@@ -44,7 +44,7 @@ public UpgradeState code() {
     }
 
     /**
-     * Get the startTime value.
+     * Get start time of the upgrade.
      *
      * @return the startTime value
      */
@@ -53,7 +53,7 @@ public DateTime startTime() {
     }
 
     /**
-     * Get the endTime value.
+     * Get end time of the upgrade.
      *
      * @return the endTime value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradePolicy.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradePolicy.java
index 3072edd998ab6..9509b264727ff 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradePolicy.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UpgradePolicy.java
@@ -47,7 +47,7 @@ public class UpgradePolicy {
     private AutoOSUpgradePolicy autoOSUpgradePolicy;
 
     /**
-     * Get the mode value.
+     * Get specifies the mode of an upgrade to virtual machines in the scale set.&lt;br /&gt;&lt;br /&gt; Possible values are:&lt;br /&gt;&lt;br /&gt; **Manual** - You  control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.&lt;br /&gt;&lt;br /&gt; **Automatic** - All virtual machines in the scale set are  automatically updated at the same time. Possible values include: 'Automatic', 'Manual', 'Rolling'.
      *
      * @return the mode value
      */
@@ -56,7 +56,7 @@ public UpgradeMode mode() {
     }
 
     /**
-     * Set the mode value.
+     * Set specifies the mode of an upgrade to virtual machines in the scale set.&lt;br /&gt;&lt;br /&gt; Possible values are:&lt;br /&gt;&lt;br /&gt; **Manual** - You  control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.&lt;br /&gt;&lt;br /&gt; **Automatic** - All virtual machines in the scale set are  automatically updated at the same time. Possible values include: 'Automatic', 'Manual', 'Rolling'.
      *
      * @param mode the mode value to set
      * @return the UpgradePolicy object itself.
@@ -67,7 +67,7 @@ public UpgradePolicy withMode(UpgradeMode mode) {
     }
 
     /**
-     * Get the rollingUpgradePolicy value.
+     * Get the configuration parameters used while performing a rolling upgrade.
      *
      * @return the rollingUpgradePolicy value
      */
@@ -76,7 +76,7 @@ public RollingUpgradePolicy rollingUpgradePolicy() {
     }
 
     /**
-     * Set the rollingUpgradePolicy value.
+     * Set the configuration parameters used while performing a rolling upgrade.
      *
      * @param rollingUpgradePolicy the rollingUpgradePolicy value to set
      * @return the UpgradePolicy object itself.
@@ -87,7 +87,7 @@ public UpgradePolicy withRollingUpgradePolicy(RollingUpgradePolicy rollingUpgrad
     }
 
     /**
-     * Get the automaticOSUpgrade value.
+     * Get whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the image becomes available.
      *
      * @return the automaticOSUpgrade value
      */
@@ -96,7 +96,7 @@ public Boolean automaticOSUpgrade() {
     }
 
     /**
-     * Set the automaticOSUpgrade value.
+     * Set whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the image becomes available.
      *
      * @param automaticOSUpgrade the automaticOSUpgrade value to set
      * @return the UpgradePolicy object itself.
@@ -107,7 +107,7 @@ public UpgradePolicy withAutomaticOSUpgrade(Boolean automaticOSUpgrade) {
     }
 
     /**
-     * Get the autoOSUpgradePolicy value.
+     * Get configuration parameters used for performing automatic OS Upgrade.
      *
      * @return the autoOSUpgradePolicy value
      */
@@ -116,7 +116,7 @@ public AutoOSUpgradePolicy autoOSUpgradePolicy() {
     }
 
     /**
-     * Set the autoOSUpgradePolicy value.
+     * Set configuration parameters used for performing automatic OS Upgrade.
      *
      * @param autoOSUpgradePolicy the autoOSUpgradePolicy value to set
      * @return the UpgradePolicy object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UsageName.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UsageName.java
index 3e4ae08bcd7a3..a357996d22952 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UsageName.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/UsageName.java
@@ -27,7 +27,7 @@ public class UsageName {
     private String localizedValue;
 
     /**
-     * Get the value value.
+     * Get the name of the resource.
      *
      * @return the value value
      */
@@ -36,7 +36,7 @@ public String value() {
     }
 
     /**
-     * Set the value value.
+     * Set the name of the resource.
      *
      * @param value the value value to set
      * @return the UsageName object itself.
@@ -47,7 +47,7 @@ public UsageName withValue(String value) {
     }
 
     /**
-     * Get the localizedValue value.
+     * Get the localized name of the resource.
      *
      * @return the localizedValue value
      */
@@ -56,7 +56,7 @@ public String localizedValue() {
     }
 
     /**
-     * Set the localizedValue value.
+     * Set the localized name of the resource.
      *
      * @param localizedValue the localizedValue value to set
      * @return the UsageName object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VaultCertificate.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VaultCertificate.java
index 59e13305a5e5d..b79661420c2d6 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VaultCertificate.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VaultCertificate.java
@@ -35,15 +35,16 @@ public class VaultCertificate {
      * to which the certificate should be added. The specified certificate
      * store is implicitly in the LocalMachine account. &lt;br&gt;&lt;br&gt;For
      * Linux VMs, the certificate file is placed under the /var/lib/waagent
-     * directory, with the file name &lt;UppercaseThumbprint&gt;.crt for the
-     * X509 certificate file and &lt;UppercaseThumbpring&gt;.prv for private
-     * key. Both of these files are .pem formatted.
+     * directory, with the file name &amp;lt;UppercaseThumbprint&amp;gt;.crt
+     * for the X509 certificate file and
+     * &amp;lt;UppercaseThumbprint&amp;gt;.prv for private key. Both of these
+     * files are .pem formatted.
      */
     @JsonProperty(value = "certificateStore")
     private String certificateStore;
 
     /**
-     * Get the certificateUrl value.
+     * Get this is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: &lt;br&gt;&lt;br&gt; {&lt;br&gt;  "data":"&lt;Base64-encoded-certificate&gt;",&lt;br&gt;  "dataType":"pfx",&lt;br&gt;  "password":"&lt;pfx-file-password&gt;"&lt;br&gt;}.
      *
      * @return the certificateUrl value
      */
@@ -52,7 +53,7 @@ public String certificateUrl() {
     }
 
     /**
-     * Set the certificateUrl value.
+     * Set this is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: &lt;br&gt;&lt;br&gt; {&lt;br&gt;  "data":"&lt;Base64-encoded-certificate&gt;",&lt;br&gt;  "dataType":"pfx",&lt;br&gt;  "password":"&lt;pfx-file-password&gt;"&lt;br&gt;}.
      *
      * @param certificateUrl the certificateUrl value to set
      * @return the VaultCertificate object itself.
@@ -63,7 +64,7 @@ public VaultCertificate withCertificateUrl(String certificateUrl) {
     }
 
     /**
-     * Get the certificateStore value.
+     * Get for Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. &lt;br&gt;&lt;br&gt;For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name &amp;lt;UppercaseThumbprint&amp;gt;.crt for the X509 certificate file and &amp;lt;UppercaseThumbprint&amp;gt;.prv for private key. Both of these files are .pem formatted.
      *
      * @return the certificateStore value
      */
@@ -72,7 +73,7 @@ public String certificateStore() {
     }
 
     /**
-     * Set the certificateStore value.
+     * Set for Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. &lt;br&gt;&lt;br&gt;For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name &amp;lt;UppercaseThumbprint&amp;gt;.crt for the X509 certificate file and &amp;lt;UppercaseThumbprint&amp;gt;.prv for private key. Both of these files are .pem formatted.
      *
      * @param certificateStore the certificateStore value to set
      * @return the VaultCertificate object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VaultSecretGroup.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VaultSecretGroup.java
index d335a0a37e0cd..1a133a55dc81f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VaultSecretGroup.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VaultSecretGroup.java
@@ -31,7 +31,7 @@ public class VaultSecretGroup {
     private List<VaultCertificate> vaultCertificates;
 
     /**
-     * Get the sourceVault value.
+     * Get the relative URL of the Key Vault containing all of the certificates in VaultCertificates.
      *
      * @return the sourceVault value
      */
@@ -40,7 +40,7 @@ public SubResource sourceVault() {
     }
 
     /**
-     * Set the sourceVault value.
+     * Set the relative URL of the Key Vault containing all of the certificates in VaultCertificates.
      *
      * @param sourceVault the sourceVault value to set
      * @return the VaultSecretGroup object itself.
@@ -51,7 +51,7 @@ public VaultSecretGroup withSourceVault(SubResource sourceVault) {
     }
 
     /**
-     * Get the vaultCertificates value.
+     * Get the list of key vault references in SourceVault which contain certificates.
      *
      * @return the vaultCertificates value
      */
@@ -60,7 +60,7 @@ public List<VaultCertificate> vaultCertificates() {
     }
 
     /**
-     * Set the vaultCertificates value.
+     * Set the list of key vault references in SourceVault which contain certificates.
      *
      * @param vaultCertificates the vaultCertificates value to set
      * @return the VaultSecretGroup object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualHardDisk.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualHardDisk.java
index 6e765d76372ce..268869d60c128 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualHardDisk.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualHardDisk.java
@@ -21,7 +21,7 @@ public class VirtualHardDisk {
     private String uri;
 
     /**
-     * Get the uri value.
+     * Get specifies the virtual hard disk's uri.
      *
      * @return the uri value
      */
@@ -30,7 +30,7 @@ public String uri() {
     }
 
     /**
-     * Set the uri value.
+     * Set specifies the virtual hard disk's uri.
      *
      * @param uri the uri value to set
      * @return the VirtualHardDisk object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachine.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachine.java
index 83f99f4007e26..8285339e0a0ec 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachine.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachine.java
@@ -9,24 +9,22 @@
 package com.microsoft.azure.management.compute.v2017_12_01;
 
 import com.microsoft.azure.arm.model.HasInner;
-import com.microsoft.azure.arm.resources.models.Resource;
-import com.microsoft.azure.arm.resources.models.HasResourceGroup;
-import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.management.compute.v2017_12_01.implementation.VirtualMachineInner;
+import com.microsoft.azure.arm.model.Indexable;
 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.GroupableResourceCore;
 import com.microsoft.azure.arm.resources.models.HasManager;
 import com.microsoft.azure.management.compute.v2017_12_01.implementation.ComputeManager;
+import java.util.Map;
 import com.microsoft.azure.SubResource;
 import com.microsoft.azure.management.compute.v2017_12_01.implementation.VirtualMachineInstanceViewInner;
 import java.util.List;
-import com.microsoft.azure.management.compute.v2017_12_01.implementation.VirtualMachineInner;
 
 /**
  * Type representing VirtualMachine.
  */
-public interface VirtualMachine extends HasInner<VirtualMachineInner>, Resource, GroupableResourceCore<ComputeManager, VirtualMachineInner>, HasResourceGroup, Refreshable<VirtualMachine>, Updatable<VirtualMachine.Update>, HasManager<ComputeManager> {
+public interface VirtualMachine extends HasInner<VirtualMachineInner>, Indexable, Updatable<VirtualMachine.Update>, HasManager<ComputeManager> {
     /**
      * @return the availabilitySet value.
      */
@@ -42,6 +40,11 @@ public interface VirtualMachine extends HasInner<VirtualMachineInner>, Resource,
      */
     HardwareProfile hardwareProfile();
 
+    /**
+     * @return the id value.
+     */
+    String id();
+
     /**
      * @return the identity value.
      */
@@ -57,6 +60,16 @@ public interface VirtualMachine extends HasInner<VirtualMachineInner>, Resource,
      */
     String licenseType();
 
+    /**
+     * @return the location value.
+     */
+    String location();
+
+    /**
+     * @return the name value.
+     */
+    String name();
+
     /**
      * @return the networkProfile value.
      */
@@ -87,6 +100,16 @@ public interface VirtualMachine extends HasInner<VirtualMachineInner>, Resource,
      */
     StorageProfile storageProfile();
 
+    /**
+     * @return the tags value.
+     */
+    Map<String, String> tags();
+
+    /**
+     * @return the type value.
+     */
+    String type();
+
     /**
      * @return the vmId value.
      */
@@ -100,7 +123,7 @@ public interface VirtualMachine extends HasInner<VirtualMachineInner>, Resource,
     /**
      * The entirety of the VirtualMachine definition.
      */
-    interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+    interface Definition extends DefinitionStages.Blank, DefinitionStages.WithLocation, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
     }
 
     /**
@@ -110,111 +133,161 @@ interface DefinitionStages {
         /**
          * The first stage of a VirtualMachine definition.
          */
-        interface Blank extends GroupableResourceCore.DefinitionWithRegion<WithGroup> {
+        interface Blank extends WithLocation {
         }
 
         /**
-         * The stage of the VirtualMachine definition allowing to specify the resource group.
+         * The stage of the virtualmachine definition allowing to specify Location.
          */
-        interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup<WithCreate> {
+        interface WithLocation {
+           /**
+            * Specifies resourceGroupName.
+            * @param resourceGroupName The name of the resource group
+            * @return the next definition stage
+            */
+            WithLocation withExistingLocation(String resourceGroupName);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify AvailabilitySet.
+         * The stage of the virtualmachine definition allowing to specify Location.
+         */
+        interface WithLocation {
+           /**
+            * Specifies location.
+            * @param location Resource location
+            * @return the next definition stage
+            */
+            WithCreate withLocation(String location);
+        }
+
+        /**
+         * The stage of the virtualmachine definition allowing to specify AvailabilitySet.
          */
         interface WithAvailabilitySet {
             /**
              * Specifies availabilitySet.
+             * @param availabilitySet Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set
+             * @return the next definition stage
              */
             WithCreate withAvailabilitySet(SubResource availabilitySet);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify DiagnosticsProfile.
+         * The stage of the virtualmachine definition allowing to specify DiagnosticsProfile.
          */
         interface WithDiagnosticsProfile {
             /**
              * Specifies diagnosticsProfile.
+             * @param diagnosticsProfile Specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15
+             * @return the next definition stage
              */
             WithCreate withDiagnosticsProfile(DiagnosticsProfile diagnosticsProfile);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify HardwareProfile.
+         * The stage of the virtualmachine definition allowing to specify HardwareProfile.
          */
         interface WithHardwareProfile {
             /**
              * Specifies hardwareProfile.
+             * @param hardwareProfile Specifies the hardware settings for the virtual machine
+             * @return the next definition stage
              */
             WithCreate withHardwareProfile(HardwareProfile hardwareProfile);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify Identity.
+         * The stage of the virtualmachine definition allowing to specify Identity.
          */
         interface WithIdentity {
             /**
              * Specifies identity.
+             * @param identity The identity of the virtual machine, if configured
+             * @return the next definition stage
              */
             WithCreate withIdentity(VirtualMachineIdentity identity);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify LicenseType.
+         * The stage of the virtualmachine definition allowing to specify LicenseType.
          */
         interface WithLicenseType {
             /**
              * Specifies licenseType.
+             * @param licenseType Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15
+             * @return the next definition stage
              */
             WithCreate withLicenseType(String licenseType);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify NetworkProfile.
+         * The stage of the virtualmachine definition allowing to specify NetworkProfile.
          */
         interface WithNetworkProfile {
             /**
              * Specifies networkProfile.
+             * @param networkProfile Specifies the network interfaces of the virtual machine
+             * @return the next definition stage
              */
             WithCreate withNetworkProfile(NetworkProfile networkProfile);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify OsProfile.
+         * The stage of the virtualmachine definition allowing to specify OsProfile.
          */
         interface WithOsProfile {
             /**
              * Specifies osProfile.
+             * @param osProfile Specifies the operating system settings for the virtual machine
+             * @return the next definition stage
              */
             WithCreate withOsProfile(OSProfile osProfile);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify Plan.
+         * The stage of the virtualmachine definition allowing to specify Plan.
          */
         interface WithPlan {
             /**
              * Specifies plan.
+             * @param plan Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**
+             * @return the next definition stage
              */
             WithCreate withPlan(Plan plan);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify StorageProfile.
+         * The stage of the virtualmachine definition allowing to specify StorageProfile.
          */
         interface WithStorageProfile {
             /**
              * Specifies storageProfile.
+             * @param storageProfile Specifies the storage settings for the virtual machine disks
+             * @return the next definition stage
              */
             WithCreate withStorageProfile(StorageProfile storageProfile);
         }
 
         /**
-         * The stage of the virtualmachine update allowing to specify Zones.
+         * The stage of the virtualmachine definition allowing to specify Tags.
+         */
+        interface WithTags {
+            /**
+             * Specifies tags.
+             * @param tags Resource tags
+             * @return the next definition stage
+             */
+            WithCreate withTags(Map<String, String> tags);
+        }
+
+        /**
+         * The stage of the virtualmachine definition allowing to specify Zones.
          */
         interface WithZones {
             /**
              * Specifies zones.
+             * @param zones The virtual machine zones
+             * @return the next definition stage
              */
             WithCreate withZones(List<String> zones);
         }
@@ -224,13 +297,13 @@ interface WithZones {
          * the resource to be created (via {@link WithCreate#create()}), but also allows
          * for any other optional settings to be specified.
          */
-        interface WithCreate extends Creatable<VirtualMachine>, Resource.DefinitionWithTags<WithCreate>, DefinitionStages.WithAvailabilitySet, DefinitionStages.WithDiagnosticsProfile, DefinitionStages.WithHardwareProfile, DefinitionStages.WithIdentity, DefinitionStages.WithLicenseType, DefinitionStages.WithNetworkProfile, DefinitionStages.WithOsProfile, DefinitionStages.WithPlan, DefinitionStages.WithStorageProfile, DefinitionStages.WithZones {
+        interface WithCreate extends Creatable<VirtualMachine>, DefinitionStages.WithAvailabilitySet, DefinitionStages.WithDiagnosticsProfile, DefinitionStages.WithHardwareProfile, DefinitionStages.WithIdentity, DefinitionStages.WithLicenseType, DefinitionStages.WithNetworkProfile, DefinitionStages.WithOsProfile, DefinitionStages.WithPlan, DefinitionStages.WithStorageProfile, DefinitionStages.WithTags, DefinitionStages.WithZones {
         }
     }
     /**
      * The template for a VirtualMachine update operation, containing all the settings that can be modified.
      */
-    interface Update extends Appliable<VirtualMachine>, Resource.UpdateWithTags<Update>, UpdateStages.WithAvailabilitySet, UpdateStages.WithDiagnosticsProfile, UpdateStages.WithHardwareProfile, UpdateStages.WithIdentity, UpdateStages.WithLicenseType, UpdateStages.WithNetworkProfile, UpdateStages.WithOsProfile, UpdateStages.WithPlan, UpdateStages.WithStorageProfile, UpdateStages.WithZones {
+    interface Update extends Appliable<VirtualMachine>, UpdateStages.WithAvailabilitySet, UpdateStages.WithDiagnosticsProfile, UpdateStages.WithHardwareProfile, UpdateStages.WithIdentity, UpdateStages.WithLicenseType, UpdateStages.WithNetworkProfile, UpdateStages.WithOsProfile, UpdateStages.WithPlan, UpdateStages.WithStorageProfile, UpdateStages.WithTags, UpdateStages.WithZones {
     }
 
     /**
@@ -238,101 +311,133 @@ interface Update extends Appliable<VirtualMachine>, Resource.UpdateWithTags<Upda
      */
     interface UpdateStages {
         /**
-         * The stage of the virtualmachine {0} allowing to specify AvailabilitySet.
+         * The stage of the virtualmachine update allowing to specify AvailabilitySet.
          */
         interface WithAvailabilitySet {
             /**
              * Specifies availabilitySet.
+             * @param availabilitySet Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set
+             * @return the next update stage
              */
             Update withAvailabilitySet(SubResource availabilitySet);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify DiagnosticsProfile.
+         * The stage of the virtualmachine update allowing to specify DiagnosticsProfile.
          */
         interface WithDiagnosticsProfile {
             /**
              * Specifies diagnosticsProfile.
+             * @param diagnosticsProfile Specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15
+             * @return the next update stage
              */
             Update withDiagnosticsProfile(DiagnosticsProfile diagnosticsProfile);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify HardwareProfile.
+         * The stage of the virtualmachine update allowing to specify HardwareProfile.
          */
         interface WithHardwareProfile {
             /**
              * Specifies hardwareProfile.
+             * @param hardwareProfile Specifies the hardware settings for the virtual machine
+             * @return the next update stage
              */
             Update withHardwareProfile(HardwareProfile hardwareProfile);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify Identity.
+         * The stage of the virtualmachine update allowing to specify Identity.
          */
         interface WithIdentity {
             /**
              * Specifies identity.
+             * @param identity The identity of the virtual machine, if configured
+             * @return the next update stage
              */
             Update withIdentity(VirtualMachineIdentity identity);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify LicenseType.
+         * The stage of the virtualmachine update allowing to specify LicenseType.
          */
         interface WithLicenseType {
             /**
              * Specifies licenseType.
+             * @param licenseType Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15
+             * @return the next update stage
              */
             Update withLicenseType(String licenseType);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify NetworkProfile.
+         * The stage of the virtualmachine update allowing to specify NetworkProfile.
          */
         interface WithNetworkProfile {
             /**
              * Specifies networkProfile.
+             * @param networkProfile Specifies the network interfaces of the virtual machine
+             * @return the next update stage
              */
             Update withNetworkProfile(NetworkProfile networkProfile);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify OsProfile.
+         * The stage of the virtualmachine update allowing to specify OsProfile.
          */
         interface WithOsProfile {
             /**
              * Specifies osProfile.
+             * @param osProfile Specifies the operating system settings for the virtual machine
+             * @return the next update stage
              */
             Update withOsProfile(OSProfile osProfile);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify Plan.
+         * The stage of the virtualmachine update allowing to specify Plan.
          */
         interface WithPlan {
             /**
              * Specifies plan.
+             * @param plan Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**
+             * @return the next update stage
              */
             Update withPlan(Plan plan);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify StorageProfile.
+         * The stage of the virtualmachine update allowing to specify StorageProfile.
          */
         interface WithStorageProfile {
             /**
              * Specifies storageProfile.
+             * @param storageProfile Specifies the storage settings for the virtual machine disks
+             * @return the next update stage
              */
             Update withStorageProfile(StorageProfile storageProfile);
         }
 
         /**
-         * The stage of the virtualmachine {0} allowing to specify Zones.
+         * The stage of the virtualmachine update allowing to specify Tags.
+         */
+        interface WithTags {
+            /**
+             * Specifies tags.
+             * @param tags Resource tags
+             * @return the next update stage
+             */
+            Update withTags(Map<String, String> tags);
+        }
+
+        /**
+         * The stage of the virtualmachine update allowing to specify Zones.
          */
         interface WithZones {
             /**
              * Specifies zones.
+             * @param zones The virtual machine zones
+             * @return the next update stage
              */
             Update withZones(List<String> zones);
         }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineAgentInstanceView.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineAgentInstanceView.java
index 156da0dfb1831..30ffe785bc130 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineAgentInstanceView.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineAgentInstanceView.java
@@ -34,7 +34,7 @@ public class VirtualMachineAgentInstanceView {
     private List<InstanceViewStatus> statuses;
 
     /**
-     * Get the vmAgentVersion value.
+     * Get the VM Agent full version.
      *
      * @return the vmAgentVersion value
      */
@@ -43,7 +43,7 @@ public String vmAgentVersion() {
     }
 
     /**
-     * Set the vmAgentVersion value.
+     * Set the VM Agent full version.
      *
      * @param vmAgentVersion the vmAgentVersion value to set
      * @return the VirtualMachineAgentInstanceView object itself.
@@ -54,7 +54,7 @@ public VirtualMachineAgentInstanceView withVmAgentVersion(String vmAgentVersion)
     }
 
     /**
-     * Get the extensionHandlers value.
+     * Get the virtual machine extension handler instance view.
      *
      * @return the extensionHandlers value
      */
@@ -63,7 +63,7 @@ public List<VirtualMachineExtensionHandlerInstanceView> extensionHandlers() {
     }
 
     /**
-     * Set the extensionHandlers value.
+     * Set the virtual machine extension handler instance view.
      *
      * @param extensionHandlers the extensionHandlers value to set
      * @return the VirtualMachineAgentInstanceView object itself.
@@ -74,7 +74,7 @@ public VirtualMachineAgentInstanceView withExtensionHandlers(List<VirtualMachine
     }
 
     /**
-     * Get the statuses value.
+     * Get the resource status information.
      *
      * @return the statuses value
      */
@@ -83,7 +83,7 @@ public List<InstanceViewStatus> statuses() {
     }
 
     /**
-     * Set the statuses value.
+     * Set the resource status information.
      *
      * @param statuses the statuses value to set
      * @return the VirtualMachineAgentInstanceView object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineCaptureParameters.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineCaptureParameters.java
index 50c5085317121..4fe94993e26b6 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineCaptureParameters.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineCaptureParameters.java
@@ -34,7 +34,7 @@ public class VirtualMachineCaptureParameters {
     private boolean overwriteVhds;
 
     /**
-     * Get the vhdPrefix value.
+     * Get the captured virtual hard disk's name prefix.
      *
      * @return the vhdPrefix value
      */
@@ -43,7 +43,7 @@ public String vhdPrefix() {
     }
 
     /**
-     * Set the vhdPrefix value.
+     * Set the captured virtual hard disk's name prefix.
      *
      * @param vhdPrefix the vhdPrefix value to set
      * @return the VirtualMachineCaptureParameters object itself.
@@ -54,7 +54,7 @@ public VirtualMachineCaptureParameters withVhdPrefix(String vhdPrefix) {
     }
 
     /**
-     * Get the destinationContainerName value.
+     * Get the destination container name.
      *
      * @return the destinationContainerName value
      */
@@ -63,7 +63,7 @@ public String destinationContainerName() {
     }
 
     /**
-     * Set the destinationContainerName value.
+     * Set the destination container name.
      *
      * @param destinationContainerName the destinationContainerName value to set
      * @return the VirtualMachineCaptureParameters object itself.
@@ -74,7 +74,7 @@ public VirtualMachineCaptureParameters withDestinationContainerName(String desti
     }
 
     /**
-     * Get the overwriteVhds value.
+     * Get specifies whether to overwrite the destination virtual hard disk, in case of conflict.
      *
      * @return the overwriteVhds value
      */
@@ -83,7 +83,7 @@ public boolean overwriteVhds() {
     }
 
     /**
-     * Set the overwriteVhds value.
+     * Set specifies whether to overwrite the destination virtual hard disk, in case of conflict.
      *
      * @param overwriteVhds the overwriteVhds value to set
      * @return the VirtualMachineCaptureParameters object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtension.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtension.java
index 79db947c044d2..6a030a6ab9dd0 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtension.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtension.java
@@ -115,6 +115,9 @@ interface Blank extends WithVirtualMachine {
         interface WithVirtualMachine {
            /**
             * Specifies resourceGroupName, vmName.
+            * @param resourceGroupName The name of the resource group
+            * @param vmName The name of the virtual machine where the extension should be created or updated
+            * @return the next definition stage
             */
             WithLocation withExistingVirtualMachine(String resourceGroupName, String vmName);
         }
@@ -125,6 +128,8 @@ interface WithVirtualMachine {
         interface WithLocation {
            /**
             * Specifies location.
+            * @param location Resource location
+            * @return the next definition stage
             */
             WithCreate withLocation(String location);
         }
@@ -135,6 +140,8 @@ interface WithLocation {
         interface WithAutoUpgradeMinorVersion {
             /**
              * Specifies autoUpgradeMinorVersion.
+             * @param autoUpgradeMinorVersion Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true
+             * @return the next definition stage
              */
             WithCreate withAutoUpgradeMinorVersion(Boolean autoUpgradeMinorVersion);
         }
@@ -145,6 +152,8 @@ interface WithAutoUpgradeMinorVersion {
         interface WithForceUpdateTag {
             /**
              * Specifies forceUpdateTag.
+             * @param forceUpdateTag How the extension handler should be forced to update even if the extension configuration has not changed
+             * @return the next definition stage
              */
             WithCreate withForceUpdateTag(String forceUpdateTag);
         }
@@ -155,6 +164,8 @@ interface WithForceUpdateTag {
         interface WithInstanceView {
             /**
              * Specifies instanceView.
+             * @param instanceView The virtual machine extension instance view
+             * @return the next definition stage
              */
             WithCreate withInstanceView(VirtualMachineExtensionInstanceView instanceView);
         }
@@ -165,6 +176,8 @@ interface WithInstanceView {
         interface WithProtectedSettings {
             /**
              * Specifies protectedSettings.
+             * @param protectedSettings The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all
+             * @return the next definition stage
              */
             WithCreate withProtectedSettings(Object protectedSettings);
         }
@@ -175,6 +188,8 @@ interface WithProtectedSettings {
         interface WithPublisher {
             /**
              * Specifies publisher.
+             * @param publisher The name of the extension handler publisher
+             * @return the next definition stage
              */
             WithCreate withPublisher(String publisher);
         }
@@ -185,6 +200,8 @@ interface WithPublisher {
         interface WithSettings {
             /**
              * Specifies settings.
+             * @param settings Json formatted public settings for the extension
+             * @return the next definition stage
              */
             WithCreate withSettings(Object settings);
         }
@@ -195,6 +212,8 @@ interface WithSettings {
         interface WithTags {
             /**
              * Specifies tags.
+             * @param tags Resource tags
+             * @return the next definition stage
              */
             WithCreate withTags(Map<String, String> tags);
         }
@@ -205,6 +224,8 @@ interface WithTags {
         interface WithTypeHandlerVersion {
             /**
              * Specifies typeHandlerVersion.
+             * @param typeHandlerVersion Specifies the version of the script handler
+             * @return the next definition stage
              */
             WithCreate withTypeHandlerVersion(String typeHandlerVersion);
         }
@@ -215,6 +236,8 @@ interface WithTypeHandlerVersion {
         interface WithVirtualMachineExtensionType {
             /**
              * Specifies virtualMachineExtensionType.
+             * @param virtualMachineExtensionType Specifies the type of the extension; an example is "CustomScriptExtension"
+             * @return the next definition stage
              */
             WithCreate withVirtualMachineExtensionType(String virtualMachineExtensionType);
         }
@@ -243,6 +266,8 @@ interface UpdateStages {
         interface WithAutoUpgradeMinorVersion {
             /**
              * Specifies autoUpgradeMinorVersion.
+             * @param autoUpgradeMinorVersion Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true
+             * @return the next update stage
              */
             Update withAutoUpgradeMinorVersion(Boolean autoUpgradeMinorVersion);
         }
@@ -253,6 +278,8 @@ interface WithAutoUpgradeMinorVersion {
         interface WithForceUpdateTag {
             /**
              * Specifies forceUpdateTag.
+             * @param forceUpdateTag How the extension handler should be forced to update even if the extension configuration has not changed
+             * @return the next update stage
              */
             Update withForceUpdateTag(String forceUpdateTag);
         }
@@ -263,6 +290,8 @@ interface WithForceUpdateTag {
         interface WithProtectedSettings {
             /**
              * Specifies protectedSettings.
+             * @param protectedSettings The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all
+             * @return the next update stage
              */
             Update withProtectedSettings(Object protectedSettings);
         }
@@ -273,6 +302,8 @@ interface WithProtectedSettings {
         interface WithPublisher {
             /**
              * Specifies publisher.
+             * @param publisher The name of the extension handler publisher
+             * @return the next update stage
              */
             Update withPublisher(String publisher);
         }
@@ -283,6 +314,8 @@ interface WithPublisher {
         interface WithSettings {
             /**
              * Specifies settings.
+             * @param settings Json formatted public settings for the extension
+             * @return the next update stage
              */
             Update withSettings(Object settings);
         }
@@ -293,6 +326,8 @@ interface WithSettings {
         interface WithTags {
             /**
              * Specifies tags.
+             * @param tags Resource tags
+             * @return the next update stage
              */
             Update withTags(Map<String, String> tags);
         }
@@ -303,6 +338,8 @@ interface WithTags {
         interface WithType {
             /**
              * Specifies type.
+             * @param type Specifies the type of the extension; an example is "CustomScriptExtension"
+             * @return the next update stage
              */
             Update withType(String type);
         }
@@ -313,6 +350,8 @@ interface WithType {
         interface WithTypeHandlerVersion {
             /**
              * Specifies typeHandlerVersion.
+             * @param typeHandlerVersion Specifies the version of the script handler
+             * @return the next update stage
              */
             Update withTypeHandlerVersion(String typeHandlerVersion);
         }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionHandlerInstanceView.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionHandlerInstanceView.java
index 3f556377c748d..9d07f64defed8 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionHandlerInstanceView.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionHandlerInstanceView.java
@@ -34,7 +34,7 @@ public class VirtualMachineExtensionHandlerInstanceView {
     private InstanceViewStatus status;
 
     /**
-     * Get the type value.
+     * Get specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @return the type value
      */
@@ -43,7 +43,7 @@ public String type() {
     }
 
     /**
-     * Set the type value.
+     * Set specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @param type the type value to set
      * @return the VirtualMachineExtensionHandlerInstanceView object itself.
@@ -54,7 +54,7 @@ public VirtualMachineExtensionHandlerInstanceView withType(String type) {
     }
 
     /**
-     * Get the typeHandlerVersion value.
+     * Get specifies the version of the script handler.
      *
      * @return the typeHandlerVersion value
      */
@@ -63,7 +63,7 @@ public String typeHandlerVersion() {
     }
 
     /**
-     * Set the typeHandlerVersion value.
+     * Set specifies the version of the script handler.
      *
      * @param typeHandlerVersion the typeHandlerVersion value to set
      * @return the VirtualMachineExtensionHandlerInstanceView object itself.
@@ -74,7 +74,7 @@ public VirtualMachineExtensionHandlerInstanceView withTypeHandlerVersion(String
     }
 
     /**
-     * Get the status value.
+     * Get the extension handler status.
      *
      * @return the status value
      */
@@ -83,7 +83,7 @@ public InstanceViewStatus status() {
     }
 
     /**
-     * Set the status value.
+     * Set the extension handler status.
      *
      * @param status the status value to set
      * @return the VirtualMachineExtensionHandlerInstanceView object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionInstanceView.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionInstanceView.java
index fb61f04c3eb77..d52e0ea12b1f1 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionInstanceView.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionInstanceView.java
@@ -47,7 +47,7 @@ public class VirtualMachineExtensionInstanceView {
     private List<InstanceViewStatus> statuses;
 
     /**
-     * Get the name value.
+     * Get the virtual machine extension name.
      *
      * @return the name value
      */
@@ -56,7 +56,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the virtual machine extension name.
      *
      * @param name the name value to set
      * @return the VirtualMachineExtensionInstanceView object itself.
@@ -67,7 +67,7 @@ public VirtualMachineExtensionInstanceView withName(String name) {
     }
 
     /**
-     * Get the type value.
+     * Get specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @return the type value
      */
@@ -76,7 +76,7 @@ public String type() {
     }
 
     /**
-     * Set the type value.
+     * Set specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @param type the type value to set
      * @return the VirtualMachineExtensionInstanceView object itself.
@@ -87,7 +87,7 @@ public VirtualMachineExtensionInstanceView withType(String type) {
     }
 
     /**
-     * Get the typeHandlerVersion value.
+     * Get specifies the version of the script handler.
      *
      * @return the typeHandlerVersion value
      */
@@ -96,7 +96,7 @@ public String typeHandlerVersion() {
     }
 
     /**
-     * Set the typeHandlerVersion value.
+     * Set specifies the version of the script handler.
      *
      * @param typeHandlerVersion the typeHandlerVersion value to set
      * @return the VirtualMachineExtensionInstanceView object itself.
@@ -107,7 +107,7 @@ public VirtualMachineExtensionInstanceView withTypeHandlerVersion(String typeHan
     }
 
     /**
-     * Get the substatuses value.
+     * Get the resource status information.
      *
      * @return the substatuses value
      */
@@ -116,7 +116,7 @@ public List<InstanceViewStatus> substatuses() {
     }
 
     /**
-     * Set the substatuses value.
+     * Set the resource status information.
      *
      * @param substatuses the substatuses value to set
      * @return the VirtualMachineExtensionInstanceView object itself.
@@ -127,7 +127,7 @@ public VirtualMachineExtensionInstanceView withSubstatuses(List<InstanceViewStat
     }
 
     /**
-     * Get the statuses value.
+     * Get the resource status information.
      *
      * @return the statuses value
      */
@@ -136,7 +136,7 @@ public List<InstanceViewStatus> statuses() {
     }
 
     /**
-     * Set the statuses value.
+     * Set the resource status information.
      *
      * @param statuses the statuses value to set
      * @return the VirtualMachineExtensionInstanceView object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionUpdate.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionUpdate.java
index e13c73f1e495a..0e7ee520fb03a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionUpdate.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensionUpdate.java
@@ -65,7 +65,7 @@ public class VirtualMachineExtensionUpdate extends UpdateResource {
     private Object protectedSettings;
 
     /**
-     * Get the forceUpdateTag value.
+     * Get how the extension handler should be forced to update even if the extension configuration has not changed.
      *
      * @return the forceUpdateTag value
      */
@@ -74,7 +74,7 @@ public String forceUpdateTag() {
     }
 
     /**
-     * Set the forceUpdateTag value.
+     * Set how the extension handler should be forced to update even if the extension configuration has not changed.
      *
      * @param forceUpdateTag the forceUpdateTag value to set
      * @return the VirtualMachineExtensionUpdate object itself.
@@ -85,7 +85,7 @@ public VirtualMachineExtensionUpdate withForceUpdateTag(String forceUpdateTag) {
     }
 
     /**
-     * Get the publisher value.
+     * Get the name of the extension handler publisher.
      *
      * @return the publisher value
      */
@@ -94,7 +94,7 @@ public String publisher() {
     }
 
     /**
-     * Set the publisher value.
+     * Set the name of the extension handler publisher.
      *
      * @param publisher the publisher value to set
      * @return the VirtualMachineExtensionUpdate object itself.
@@ -105,7 +105,7 @@ public VirtualMachineExtensionUpdate withPublisher(String publisher) {
     }
 
     /**
-     * Get the type value.
+     * Get specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @return the type value
      */
@@ -114,7 +114,7 @@ public String type() {
     }
 
     /**
-     * Set the type value.
+     * Set specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @param type the type value to set
      * @return the VirtualMachineExtensionUpdate object itself.
@@ -125,7 +125,7 @@ public VirtualMachineExtensionUpdate withType(String type) {
     }
 
     /**
-     * Get the typeHandlerVersion value.
+     * Get specifies the version of the script handler.
      *
      * @return the typeHandlerVersion value
      */
@@ -134,7 +134,7 @@ public String typeHandlerVersion() {
     }
 
     /**
-     * Set the typeHandlerVersion value.
+     * Set specifies the version of the script handler.
      *
      * @param typeHandlerVersion the typeHandlerVersion value to set
      * @return the VirtualMachineExtensionUpdate object itself.
@@ -145,7 +145,7 @@ public VirtualMachineExtensionUpdate withTypeHandlerVersion(String typeHandlerVe
     }
 
     /**
-     * Get the autoUpgradeMinorVersion value.
+     * Get indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
      *
      * @return the autoUpgradeMinorVersion value
      */
@@ -154,7 +154,7 @@ public Boolean autoUpgradeMinorVersion() {
     }
 
     /**
-     * Set the autoUpgradeMinorVersion value.
+     * Set indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
      *
      * @param autoUpgradeMinorVersion the autoUpgradeMinorVersion value to set
      * @return the VirtualMachineExtensionUpdate object itself.
@@ -165,7 +165,7 @@ public VirtualMachineExtensionUpdate withAutoUpgradeMinorVersion(Boolean autoUpg
     }
 
     /**
-     * Get the settings value.
+     * Get json formatted public settings for the extension.
      *
      * @return the settings value
      */
@@ -174,7 +174,7 @@ public Object settings() {
     }
 
     /**
-     * Set the settings value.
+     * Set json formatted public settings for the extension.
      *
      * @param settings the settings value to set
      * @return the VirtualMachineExtensionUpdate object itself.
@@ -185,7 +185,7 @@ public VirtualMachineExtensionUpdate withSettings(Object settings) {
     }
 
     /**
-     * Get the protectedSettings value.
+     * Get the extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
      *
      * @return the protectedSettings value
      */
@@ -194,7 +194,7 @@ public Object protectedSettings() {
     }
 
     /**
-     * Set the protectedSettings value.
+     * Set the extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
      *
      * @param protectedSettings the protectedSettings value to set
      * @return the VirtualMachineExtensionUpdate object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensions.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensions.java
index 11df68b648683..18bb37df8f297 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensions.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineExtensions.java
@@ -8,16 +8,20 @@
 
 package com.microsoft.azure.management.compute.v2017_12_01;
 
-import com.microsoft.azure.arm.collection.SupportsCreating;
-import rx.Completable;
 import rx.Observable;
-import com.microsoft.azure.management.compute.v2017_12_01.implementation.VirtualMachineExtensionsInner;
-import com.microsoft.azure.arm.model.HasInner;
+import rx.Completable;
 
 /**
  * Type representing VirtualMachineExtensions.
  */
-public interface VirtualMachineExtensions extends SupportsCreating<VirtualMachineExtension.DefinitionStages.Blank>, HasInner<VirtualMachineExtensionsInner> {
+public interface VirtualMachineExtensions {
+    /**
+     * Begins definition for a new Extension resource.
+     * @param name resource name.
+     * @return the first stage of the new Extension definition.
+     */
+    VirtualMachineExtension.DefinitionStages.Blank defineExtension(String name);
+
     /**
      * The operation to get the extension.
      *
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineHealthStatus.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineHealthStatus.java
index b9c7c6b1fe994..7b90804322367 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineHealthStatus.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineHealthStatus.java
@@ -21,7 +21,7 @@ public class VirtualMachineHealthStatus {
     private InstanceViewStatus status;
 
     /**
-     * Get the status value.
+     * Get the health status information for the VM.
      *
      * @return the status value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineIdentity.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineIdentity.java
index 04e0d23f7d4b3..1fa8534a402e3 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineIdentity.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineIdentity.java
@@ -49,7 +49,7 @@ public class VirtualMachineIdentity {
     private List<String> identityIds;
 
     /**
-     * Get the principalId value.
+     * Get the principal id of virtual machine identity. This property will only be provided for a system assigned identity.
      *
      * @return the principalId value
      */
@@ -58,7 +58,7 @@ public String principalId() {
     }
 
     /**
-     * Get the tenantId value.
+     * Get the tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
      *
      * @return the tenantId value
      */
@@ -67,7 +67,7 @@ public String tenantId() {
     }
 
     /**
-     * Get the type value.
+     * Get the type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
      *
      * @return the type value
      */
@@ -76,7 +76,7 @@ public ResourceIdentityType type() {
     }
 
     /**
-     * Set the type value.
+     * Set the type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
      *
      * @param type the type value to set
      * @return the VirtualMachineIdentity object itself.
@@ -87,7 +87,7 @@ public VirtualMachineIdentity withType(ResourceIdentityType type) {
     }
 
     /**
-     * Get the identityIds value.
+     * Get the list of user identities associated with the Virtual Machine. The user identity references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'.
      *
      * @return the identityIds value
      */
@@ -96,7 +96,7 @@ public List<String> identityIds() {
     }
 
     /**
-     * Set the identityIds value.
+     * Set the list of user identities associated with the Virtual Machine. The user identity references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'.
      *
      * @param identityIds the identityIds value to set
      * @return the VirtualMachineIdentity object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSet.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSet.java
index 953bad5b6f468..f9b6500adf970 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSet.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSet.java
@@ -10,12 +10,12 @@
 
 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.GroupableResourceCore;
 import com.microsoft.azure.arm.resources.models.HasManager;
 import com.microsoft.azure.management.compute.v2017_12_01.implementation.ComputeManager;
 import java.util.List;
@@ -108,101 +108,121 @@ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup<Wit
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify Identity.
+         * The stage of the virtualmachinescaleset definition allowing to specify Identity.
          */
         interface WithIdentity {
             /**
              * Specifies identity.
+             * @param identity The identity of the virtual machine scale set, if configured
+             * @return the next definition stage
              */
             WithCreate withIdentity(VirtualMachineScaleSetIdentity identity);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify Overprovision.
+         * The stage of the virtualmachinescaleset definition allowing to specify Overprovision.
          */
         interface WithOverprovision {
             /**
              * Specifies overprovision.
+             * @param overprovision Specifies whether the Virtual Machine Scale Set should be overprovisioned
+             * @return the next definition stage
              */
             WithCreate withOverprovision(Boolean overprovision);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify Plan.
+         * The stage of the virtualmachinescaleset definition allowing to specify Plan.
          */
         interface WithPlan {
             /**
              * Specifies plan.
+             * @param plan Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**
+             * @return the next definition stage
              */
             WithCreate withPlan(Plan plan);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify PlatformFaultDomainCount.
+         * The stage of the virtualmachinescaleset definition allowing to specify PlatformFaultDomainCount.
          */
         interface WithPlatformFaultDomainCount {
             /**
              * Specifies platformFaultDomainCount.
+             * @param platformFaultDomainCount Fault Domain count for each placement group
+             * @return the next definition stage
              */
             WithCreate withPlatformFaultDomainCount(Integer platformFaultDomainCount);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify SinglePlacementGroup.
+         * The stage of the virtualmachinescaleset definition allowing to specify SinglePlacementGroup.
          */
         interface WithSinglePlacementGroup {
             /**
              * Specifies singlePlacementGroup.
+             * @param singlePlacementGroup When true this limits the scale set to a single placement group, of max size 100 virtual machines
+             * @return the next definition stage
              */
             WithCreate withSinglePlacementGroup(Boolean singlePlacementGroup);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify Sku.
+         * The stage of the virtualmachinescaleset definition allowing to specify Sku.
          */
         interface WithSku {
             /**
              * Specifies sku.
+             * @param sku The virtual machine scale set sku
+             * @return the next definition stage
              */
             WithCreate withSku(Sku sku);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify UpgradePolicy.
+         * The stage of the virtualmachinescaleset definition allowing to specify UpgradePolicy.
          */
         interface WithUpgradePolicy {
             /**
              * Specifies upgradePolicy.
+             * @param upgradePolicy The upgrade policy
+             * @return the next definition stage
              */
             WithCreate withUpgradePolicy(UpgradePolicy upgradePolicy);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify VirtualMachineProfile.
+         * The stage of the virtualmachinescaleset definition allowing to specify VirtualMachineProfile.
          */
         interface WithVirtualMachineProfile {
             /**
              * Specifies virtualMachineProfile.
+             * @param virtualMachineProfile The virtual machine profile
+             * @return the next definition stage
              */
             WithCreate withVirtualMachineProfile(VirtualMachineScaleSetVMProfile virtualMachineProfile);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify ZoneBalance.
+         * The stage of the virtualmachinescaleset definition allowing to specify ZoneBalance.
          */
         interface WithZoneBalance {
             /**
              * Specifies zoneBalance.
+             * @param zoneBalance Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage
+             * @return the next definition stage
              */
             WithCreate withZoneBalance(Boolean zoneBalance);
         }
 
         /**
-         * The stage of the virtualmachinescaleset update allowing to specify Zones.
+         * The stage of the virtualmachinescaleset definition allowing to specify Zones.
          */
         interface WithZones {
             /**
              * Specifies zones.
+             * @param zones The virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set
+             * @return the next definition stage
              */
             WithCreate withZones(List<String> zones);
         }
@@ -226,71 +246,85 @@ interface Update extends Appliable<VirtualMachineScaleSet>, Resource.UpdateWithT
      */
     interface UpdateStages {
         /**
-         * The stage of the virtualmachinescaleset {0} allowing to specify Identity.
+         * The stage of the virtualmachinescaleset update allowing to specify Identity.
          */
         interface WithIdentity {
             /**
              * Specifies identity.
+             * @param identity The identity of the virtual machine scale set, if configured
+             * @return the next update stage
              */
             Update withIdentity(VirtualMachineScaleSetIdentity identity);
         }
 
         /**
-         * The stage of the virtualmachinescaleset {0} allowing to specify Overprovision.
+         * The stage of the virtualmachinescaleset update allowing to specify Overprovision.
          */
         interface WithOverprovision {
             /**
              * Specifies overprovision.
+             * @param overprovision Specifies whether the Virtual Machine Scale Set should be overprovisioned
+             * @return the next update stage
              */
             Update withOverprovision(Boolean overprovision);
         }
 
         /**
-         * The stage of the virtualmachinescaleset {0} allowing to specify Plan.
+         * The stage of the virtualmachinescaleset update allowing to specify Plan.
          */
         interface WithPlan {
             /**
              * Specifies plan.
+             * @param plan The purchase plan when deploying a virtual machine scale set from VM Marketplace images
+             * @return the next update stage
              */
             Update withPlan(Plan plan);
         }
 
         /**
-         * The stage of the virtualmachinescaleset {0} allowing to specify SinglePlacementGroup.
+         * The stage of the virtualmachinescaleset update allowing to specify SinglePlacementGroup.
          */
         interface WithSinglePlacementGroup {
             /**
              * Specifies singlePlacementGroup.
+             * @param singlePlacementGroup When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true
+             * @return the next update stage
              */
             Update withSinglePlacementGroup(Boolean singlePlacementGroup);
         }
 
         /**
-         * The stage of the virtualmachinescaleset {0} allowing to specify Sku.
+         * The stage of the virtualmachinescaleset update allowing to specify Sku.
          */
         interface WithSku {
             /**
              * Specifies sku.
+             * @param sku The virtual machine scale set sku
+             * @return the next update stage
              */
             Update withSku(Sku sku);
         }
 
         /**
-         * The stage of the virtualmachinescaleset {0} allowing to specify UpgradePolicy.
+         * The stage of the virtualmachinescaleset update allowing to specify UpgradePolicy.
          */
         interface WithUpgradePolicy {
             /**
              * Specifies upgradePolicy.
+             * @param upgradePolicy The upgrade policy
+             * @return the next update stage
              */
             Update withUpgradePolicy(UpgradePolicy upgradePolicy);
         }
 
         /**
-         * The stage of the virtualmachinescaleset {0} allowing to specify VirtualMachineProfile.
+         * The stage of the virtualmachinescaleset update allowing to specify VirtualMachineProfile.
          */
         interface WithVirtualMachineProfile {
             /**
              * Specifies virtualMachineProfile.
+             * @param virtualMachineProfile The virtual machine profile
+             * @return the next update stage
              */
             Update withVirtualMachineProfile(VirtualMachineScaleSetUpdateVMProfile virtualMachineProfile);
         }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetDataDisk.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetDataDisk.java
index 6a89052b6d82c..f4af16f1e8dd4 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetDataDisk.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetDataDisk.java
@@ -54,7 +54,7 @@ public class VirtualMachineScaleSetDataDisk {
 
     /**
      * Specifies the size of an empty data disk in gigabytes. This element can
-     * be used to overwrite the name of the disk in a virtual machine image.
+     * be used to overwrite the size of the disk in a virtual machine image.
      * &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      */
     @JsonProperty(value = "diskSizeGB")
@@ -67,7 +67,7 @@ public class VirtualMachineScaleSetDataDisk {
     private VirtualMachineScaleSetManagedDiskParameters managedDisk;
 
     /**
-     * Get the name value.
+     * Get the disk name.
      *
      * @return the name value
      */
@@ -76,7 +76,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the disk name.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetDataDisk object itself.
@@ -87,7 +87,7 @@ public VirtualMachineScaleSetDataDisk withName(String name) {
     }
 
     /**
-     * Get the lun value.
+     * Get specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
      *
      * @return the lun value
      */
@@ -96,7 +96,7 @@ public int lun() {
     }
 
     /**
-     * Set the lun value.
+     * Set specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
      *
      * @param lun the lun value to set
      * @return the VirtualMachineScaleSetDataDisk object itself.
@@ -107,7 +107,7 @@ public VirtualMachineScaleSetDataDisk withLun(int lun) {
     }
 
     /**
-     * Get the caching value.
+     * Get specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @return the caching value
      */
@@ -116,7 +116,7 @@ public CachingTypes caching() {
     }
 
     /**
-     * Set the caching value.
+     * Set specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @param caching the caching value to set
      * @return the VirtualMachineScaleSetDataDisk object itself.
@@ -127,7 +127,7 @@ public VirtualMachineScaleSetDataDisk withCaching(CachingTypes caching) {
     }
 
     /**
-     * Get the writeAcceleratorEnabled value.
+     * Get specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @return the writeAcceleratorEnabled value
      */
@@ -136,7 +136,7 @@ public Boolean writeAcceleratorEnabled() {
     }
 
     /**
-     * Set the writeAcceleratorEnabled value.
+     * Set specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @param writeAcceleratorEnabled the writeAcceleratorEnabled value to set
      * @return the VirtualMachineScaleSetDataDisk object itself.
@@ -147,7 +147,7 @@ public VirtualMachineScaleSetDataDisk withWriteAcceleratorEnabled(Boolean writeA
     }
 
     /**
-     * Get the createOption value.
+     * Get the create option. Possible values include: 'FromImage', 'Empty', 'Attach'.
      *
      * @return the createOption value
      */
@@ -156,7 +156,7 @@ public DiskCreateOptionTypes createOption() {
     }
 
     /**
-     * Set the createOption value.
+     * Set the create option. Possible values include: 'FromImage', 'Empty', 'Attach'.
      *
      * @param createOption the createOption value to set
      * @return the VirtualMachineScaleSetDataDisk object itself.
@@ -167,7 +167,7 @@ public VirtualMachineScaleSetDataDisk withCreateOption(DiskCreateOptionTypes cre
     }
 
     /**
-     * Get the diskSizeGB value.
+     * Get specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @return the diskSizeGB value
      */
@@ -176,7 +176,7 @@ public Integer diskSizeGB() {
     }
 
     /**
-     * Set the diskSizeGB value.
+     * Set specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. &lt;br&gt;&lt;br&gt; This value cannot be larger than 1023 GB.
      *
      * @param diskSizeGB the diskSizeGB value to set
      * @return the VirtualMachineScaleSetDataDisk object itself.
@@ -187,7 +187,7 @@ public VirtualMachineScaleSetDataDisk withDiskSizeGB(Integer diskSizeGB) {
     }
 
     /**
-     * Get the managedDisk value.
+     * Get the managed disk parameters.
      *
      * @return the managedDisk value
      */
@@ -196,7 +196,7 @@ public VirtualMachineScaleSetManagedDiskParameters managedDisk() {
     }
 
     /**
-     * Set the managedDisk value.
+     * Set the managed disk parameters.
      *
      * @param managedDisk the managedDisk value to set
      * @return the VirtualMachineScaleSetDataDisk object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetExtension.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetExtension.java
index 0f8e48148dcf3..39610b72dcfb7 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetExtension.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetExtension.java
@@ -94,6 +94,9 @@ interface Blank extends WithVirtualMachineScaleSet {
         interface WithVirtualMachineScaleSet {
            /**
             * Specifies resourceGroupName, vmScaleSetName.
+            * @param resourceGroupName The name of the resource group
+            * @param vmScaleSetName The name of the VM scale set where the extension should be create or updated
+            * @return the next definition stage
             */
             WithCreate withExistingVirtualMachineScaleSet(String resourceGroupName, String vmScaleSetName);
         }
@@ -104,6 +107,8 @@ interface WithVirtualMachineScaleSet {
         interface WithAutoUpgradeMinorVersion {
             /**
              * Specifies autoUpgradeMinorVersion.
+             * @param autoUpgradeMinorVersion Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true
+             * @return the next definition stage
              */
             WithCreate withAutoUpgradeMinorVersion(Boolean autoUpgradeMinorVersion);
         }
@@ -114,6 +119,8 @@ interface WithAutoUpgradeMinorVersion {
         interface WithForceUpdateTag {
             /**
              * Specifies forceUpdateTag.
+             * @param forceUpdateTag If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed
+             * @return the next definition stage
              */
             WithCreate withForceUpdateTag(String forceUpdateTag);
         }
@@ -124,6 +131,8 @@ interface WithForceUpdateTag {
         interface WithName {
             /**
              * Specifies name.
+             * @param name The name of the extension
+             * @return the next definition stage
              */
             WithCreate withName(String name);
         }
@@ -134,6 +143,8 @@ interface WithName {
         interface WithProtectedSettings {
             /**
              * Specifies protectedSettings.
+             * @param protectedSettings The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all
+             * @return the next definition stage
              */
             WithCreate withProtectedSettings(Object protectedSettings);
         }
@@ -144,6 +155,8 @@ interface WithProtectedSettings {
         interface WithPublisher {
             /**
              * Specifies publisher.
+             * @param publisher The name of the extension handler publisher
+             * @return the next definition stage
              */
             WithCreate withPublisher(String publisher);
         }
@@ -154,6 +167,8 @@ interface WithPublisher {
         interface WithSettings {
             /**
              * Specifies settings.
+             * @param settings Json formatted public settings for the extension
+             * @return the next definition stage
              */
             WithCreate withSettings(Object settings);
         }
@@ -164,6 +179,8 @@ interface WithSettings {
         interface WithType {
             /**
              * Specifies type.
+             * @param type Specifies the type of the extension; an example is "CustomScriptExtension"
+             * @return the next definition stage
              */
             WithCreate withType(String type);
         }
@@ -174,6 +191,8 @@ interface WithType {
         interface WithTypeHandlerVersion {
             /**
              * Specifies typeHandlerVersion.
+             * @param typeHandlerVersion Specifies the version of the script handler
+             * @return the next definition stage
              */
             WithCreate withTypeHandlerVersion(String typeHandlerVersion);
         }
@@ -202,6 +221,8 @@ interface UpdateStages {
         interface WithAutoUpgradeMinorVersion {
             /**
              * Specifies autoUpgradeMinorVersion.
+             * @param autoUpgradeMinorVersion Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true
+             * @return the next update stage
              */
             Update withAutoUpgradeMinorVersion(Boolean autoUpgradeMinorVersion);
         }
@@ -212,6 +233,8 @@ interface WithAutoUpgradeMinorVersion {
         interface WithForceUpdateTag {
             /**
              * Specifies forceUpdateTag.
+             * @param forceUpdateTag If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed
+             * @return the next update stage
              */
             Update withForceUpdateTag(String forceUpdateTag);
         }
@@ -222,6 +245,8 @@ interface WithForceUpdateTag {
         interface WithName {
             /**
              * Specifies name.
+             * @param name The name of the extension
+             * @return the next update stage
              */
             Update withName(String name);
         }
@@ -232,6 +257,8 @@ interface WithName {
         interface WithProtectedSettings {
             /**
              * Specifies protectedSettings.
+             * @param protectedSettings The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all
+             * @return the next update stage
              */
             Update withProtectedSettings(Object protectedSettings);
         }
@@ -242,6 +269,8 @@ interface WithProtectedSettings {
         interface WithPublisher {
             /**
              * Specifies publisher.
+             * @param publisher The name of the extension handler publisher
+             * @return the next update stage
              */
             Update withPublisher(String publisher);
         }
@@ -252,6 +281,8 @@ interface WithPublisher {
         interface WithSettings {
             /**
              * Specifies settings.
+             * @param settings Json formatted public settings for the extension
+             * @return the next update stage
              */
             Update withSettings(Object settings);
         }
@@ -262,6 +293,8 @@ interface WithSettings {
         interface WithType {
             /**
              * Specifies type.
+             * @param type Specifies the type of the extension; an example is "CustomScriptExtension"
+             * @return the next update stage
              */
             Update withType(String type);
         }
@@ -272,6 +305,8 @@ interface WithType {
         interface WithTypeHandlerVersion {
             /**
              * Specifies typeHandlerVersion.
+             * @param typeHandlerVersion Specifies the version of the script handler
+             * @return the next update stage
              */
             Update withTypeHandlerVersion(String typeHandlerVersion);
         }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetExtensionProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetExtensionProfile.java
index 4ae80e5e54a8e..4ee5c605bd157 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetExtensionProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetExtensionProfile.java
@@ -23,7 +23,7 @@ public class VirtualMachineScaleSetExtensionProfile {
     private List<VirtualMachineScaleSetExtensionInner> extensions;
 
     /**
-     * Get the extensions value.
+     * Get the virtual machine scale set child extension resources.
      *
      * @return the extensions value
      */
@@ -32,7 +32,7 @@ public List<VirtualMachineScaleSetExtensionInner> extensions() {
     }
 
     /**
-     * Set the extensions value.
+     * Set the virtual machine scale set child extension resources.
      *
      * @param extensions the extensions value to set
      * @return the VirtualMachineScaleSetExtensionProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetIPConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetIPConfiguration.java
index e900b48a195f6..c2eb7449e57a5 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetIPConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetIPConfiguration.java
@@ -80,7 +80,7 @@ public class VirtualMachineScaleSetIPConfiguration extends SubResource {
     private List<SubResource> loadBalancerInboundNatPools;
 
     /**
-     * Get the name value.
+     * Get the IP configuration name.
      *
      * @return the name value
      */
@@ -89,7 +89,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the IP configuration name.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetIPConfiguration object itself.
@@ -100,7 +100,7 @@ public VirtualMachineScaleSetIPConfiguration withName(String name) {
     }
 
     /**
-     * Get the subnet value.
+     * Get specifies the identifier of the subnet.
      *
      * @return the subnet value
      */
@@ -109,7 +109,7 @@ public ApiEntityReference subnet() {
     }
 
     /**
-     * Set the subnet value.
+     * Set specifies the identifier of the subnet.
      *
      * @param subnet the subnet value to set
      * @return the VirtualMachineScaleSetIPConfiguration object itself.
@@ -120,7 +120,7 @@ public VirtualMachineScaleSetIPConfiguration withSubnet(ApiEntityReference subne
     }
 
     /**
-     * Get the primary value.
+     * Get specifies the primary network interface in case the virtual machine has more than 1 network interface.
      *
      * @return the primary value
      */
@@ -129,7 +129,7 @@ public Boolean primary() {
     }
 
     /**
-     * Set the primary value.
+     * Set specifies the primary network interface in case the virtual machine has more than 1 network interface.
      *
      * @param primary the primary value to set
      * @return the VirtualMachineScaleSetIPConfiguration object itself.
@@ -140,7 +140,7 @@ public VirtualMachineScaleSetIPConfiguration withPrimary(Boolean primary) {
     }
 
     /**
-     * Get the publicIPAddressConfiguration value.
+     * Get the publicIPAddressConfiguration.
      *
      * @return the publicIPAddressConfiguration value
      */
@@ -149,7 +149,7 @@ public VirtualMachineScaleSetPublicIPAddressConfiguration publicIPAddressConfigu
     }
 
     /**
-     * Set the publicIPAddressConfiguration value.
+     * Set the publicIPAddressConfiguration.
      *
      * @param publicIPAddressConfiguration the publicIPAddressConfiguration value to set
      * @return the VirtualMachineScaleSetIPConfiguration object itself.
@@ -160,7 +160,7 @@ public VirtualMachineScaleSetIPConfiguration withPublicIPAddressConfiguration(Vi
     }
 
     /**
-     * Get the privateIPAddressVersion value.
+     * Get available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'. Possible values include: 'IPv4', 'IPv6'.
      *
      * @return the privateIPAddressVersion value
      */
@@ -169,7 +169,7 @@ public IPVersion privateIPAddressVersion() {
     }
 
     /**
-     * Set the privateIPAddressVersion value.
+     * Set available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'. Possible values include: 'IPv4', 'IPv6'.
      *
      * @param privateIPAddressVersion the privateIPAddressVersion value to set
      * @return the VirtualMachineScaleSetIPConfiguration object itself.
@@ -180,7 +180,7 @@ public VirtualMachineScaleSetIPConfiguration withPrivateIPAddressVersion(IPVersi
     }
 
     /**
-     * Get the applicationGatewayBackendAddressPools value.
+     * Get specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
      *
      * @return the applicationGatewayBackendAddressPools value
      */
@@ -189,7 +189,7 @@ public List<SubResource> applicationGatewayBackendAddressPools() {
     }
 
     /**
-     * Set the applicationGatewayBackendAddressPools value.
+     * Set specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
      *
      * @param applicationGatewayBackendAddressPools the applicationGatewayBackendAddressPools value to set
      * @return the VirtualMachineScaleSetIPConfiguration object itself.
@@ -200,7 +200,7 @@ public VirtualMachineScaleSetIPConfiguration withApplicationGatewayBackendAddres
     }
 
     /**
-     * Get the loadBalancerBackendAddressPools value.
+     * Get specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
      *
      * @return the loadBalancerBackendAddressPools value
      */
@@ -209,7 +209,7 @@ public List<SubResource> loadBalancerBackendAddressPools() {
     }
 
     /**
-     * Set the loadBalancerBackendAddressPools value.
+     * Set specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
      *
      * @param loadBalancerBackendAddressPools the loadBalancerBackendAddressPools value to set
      * @return the VirtualMachineScaleSetIPConfiguration object itself.
@@ -220,7 +220,7 @@ public VirtualMachineScaleSetIPConfiguration withLoadBalancerBackendAddressPools
     }
 
     /**
-     * Get the loadBalancerInboundNatPools value.
+     * Get specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
      *
      * @return the loadBalancerInboundNatPools value
      */
@@ -229,7 +229,7 @@ public List<SubResource> loadBalancerInboundNatPools() {
     }
 
     /**
-     * Set the loadBalancerInboundNatPools value.
+     * Set specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
      *
      * @param loadBalancerInboundNatPools the loadBalancerInboundNatPools value to set
      * @return the VirtualMachineScaleSetIPConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetIdentity.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetIdentity.java
index ae3f99507ab39..c9dfba41d0c8a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetIdentity.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetIdentity.java
@@ -49,7 +49,7 @@ public class VirtualMachineScaleSetIdentity {
     private List<String> identityIds;
 
     /**
-     * Get the principalId value.
+     * Get the principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity.
      *
      * @return the principalId value
      */
@@ -58,7 +58,7 @@ public String principalId() {
     }
 
     /**
-     * Get the tenantId value.
+     * Get the tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity.
      *
      * @return the tenantId value
      */
@@ -67,7 +67,7 @@ public String tenantId() {
     }
 
     /**
-     * Get the type value.
+     * Get the type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
      *
      * @return the type value
      */
@@ -76,7 +76,7 @@ public ResourceIdentityType type() {
     }
 
     /**
-     * Set the type value.
+     * Set the type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
      *
      * @param type the type value to set
      * @return the VirtualMachineScaleSetIdentity object itself.
@@ -87,7 +87,7 @@ public VirtualMachineScaleSetIdentity withType(ResourceIdentityType type) {
     }
 
     /**
-     * Get the identityIds value.
+     * Get the list of user identities associated with the virtual machine scale set. The user identity references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'.
      *
      * @return the identityIds value
      */
@@ -96,7 +96,7 @@ public List<String> identityIds() {
     }
 
     /**
-     * Set the identityIds value.
+     * Set the list of user identities associated with the virtual machine scale set. The user identity references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'.
      *
      * @param identityIds the identityIds value to set
      * @return the VirtualMachineScaleSetIdentity object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetInstanceViewStatusesSummary.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetInstanceViewStatusesSummary.java
index 89a115546d2f5..c41e5a3cd64ff 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetInstanceViewStatusesSummary.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetInstanceViewStatusesSummary.java
@@ -23,7 +23,7 @@ public class VirtualMachineScaleSetInstanceViewStatusesSummary {
     private List<VirtualMachineStatusCodeCount> statusesSummary;
 
     /**
-     * Get the statusesSummary value.
+     * Get the extensions information.
      *
      * @return the statusesSummary value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetManagedDiskParameters.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetManagedDiskParameters.java
index 46d2bd0badf36..dca60d3e05b65 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetManagedDiskParameters.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetManagedDiskParameters.java
@@ -23,7 +23,7 @@ public class VirtualMachineScaleSetManagedDiskParameters {
     private StorageAccountTypes storageAccountType;
 
     /**
-     * Get the storageAccountType value.
+     * Get specifies the storage account type for the managed disk. Possible values are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', 'Premium_LRS'.
      *
      * @return the storageAccountType value
      */
@@ -32,7 +32,7 @@ public StorageAccountTypes storageAccountType() {
     }
 
     /**
-     * Set the storageAccountType value.
+     * Set specifies the storage account type for the managed disk. Possible values are: Standard_LRS or Premium_LRS. Possible values include: 'Standard_LRS', 'Premium_LRS'.
      *
      * @param storageAccountType the storageAccountType value to set
      * @return the VirtualMachineScaleSetManagedDiskParameters object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkConfiguration.java
index da9b073625940..988099e1d668d 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkConfiguration.java
@@ -64,7 +64,7 @@ public class VirtualMachineScaleSetNetworkConfiguration extends SubResource {
     private Boolean enableIPForwarding;
 
     /**
-     * Get the name value.
+     * Get the network configuration name.
      *
      * @return the name value
      */
@@ -73,7 +73,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the network configuration name.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetNetworkConfiguration object itself.
@@ -84,7 +84,7 @@ public VirtualMachineScaleSetNetworkConfiguration withName(String name) {
     }
 
     /**
-     * Get the primary value.
+     * Get specifies the primary network interface in case the virtual machine has more than 1 network interface.
      *
      * @return the primary value
      */
@@ -93,7 +93,7 @@ public Boolean primary() {
     }
 
     /**
-     * Set the primary value.
+     * Set specifies the primary network interface in case the virtual machine has more than 1 network interface.
      *
      * @param primary the primary value to set
      * @return the VirtualMachineScaleSetNetworkConfiguration object itself.
@@ -104,7 +104,7 @@ public VirtualMachineScaleSetNetworkConfiguration withPrimary(Boolean primary) {
     }
 
     /**
-     * Get the enableAcceleratedNetworking value.
+     * Get specifies whether the network interface is accelerated networking-enabled.
      *
      * @return the enableAcceleratedNetworking value
      */
@@ -113,7 +113,7 @@ public Boolean enableAcceleratedNetworking() {
     }
 
     /**
-     * Set the enableAcceleratedNetworking value.
+     * Set specifies whether the network interface is accelerated networking-enabled.
      *
      * @param enableAcceleratedNetworking the enableAcceleratedNetworking value to set
      * @return the VirtualMachineScaleSetNetworkConfiguration object itself.
@@ -124,7 +124,7 @@ public VirtualMachineScaleSetNetworkConfiguration withEnableAcceleratedNetworkin
     }
 
     /**
-     * Get the networkSecurityGroup value.
+     * Get the network security group.
      *
      * @return the networkSecurityGroup value
      */
@@ -133,7 +133,7 @@ public SubResource networkSecurityGroup() {
     }
 
     /**
-     * Set the networkSecurityGroup value.
+     * Set the network security group.
      *
      * @param networkSecurityGroup the networkSecurityGroup value to set
      * @return the VirtualMachineScaleSetNetworkConfiguration object itself.
@@ -144,7 +144,7 @@ public VirtualMachineScaleSetNetworkConfiguration withNetworkSecurityGroup(SubRe
     }
 
     /**
-     * Get the dnsSettings value.
+     * Get the dns settings to be applied on the network interfaces.
      *
      * @return the dnsSettings value
      */
@@ -153,7 +153,7 @@ public VirtualMachineScaleSetNetworkConfigurationDnsSettings dnsSettings() {
     }
 
     /**
-     * Set the dnsSettings value.
+     * Set the dns settings to be applied on the network interfaces.
      *
      * @param dnsSettings the dnsSettings value to set
      * @return the VirtualMachineScaleSetNetworkConfiguration object itself.
@@ -164,7 +164,7 @@ public VirtualMachineScaleSetNetworkConfiguration withDnsSettings(VirtualMachine
     }
 
     /**
-     * Get the ipConfigurations value.
+     * Get specifies the IP configurations of the network interface.
      *
      * @return the ipConfigurations value
      */
@@ -173,7 +173,7 @@ public List<VirtualMachineScaleSetIPConfiguration> ipConfigurations() {
     }
 
     /**
-     * Set the ipConfigurations value.
+     * Set specifies the IP configurations of the network interface.
      *
      * @param ipConfigurations the ipConfigurations value to set
      * @return the VirtualMachineScaleSetNetworkConfiguration object itself.
@@ -184,7 +184,7 @@ public VirtualMachineScaleSetNetworkConfiguration withIpConfigurations(List<Virt
     }
 
     /**
-     * Get the enableIPForwarding value.
+     * Get whether IP forwarding enabled on this NIC.
      *
      * @return the enableIPForwarding value
      */
@@ -193,7 +193,7 @@ public Boolean enableIPForwarding() {
     }
 
     /**
-     * Set the enableIPForwarding value.
+     * Set whether IP forwarding enabled on this NIC.
      *
      * @param enableIPForwarding the enableIPForwarding value to set
      * @return the VirtualMachineScaleSetNetworkConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkConfigurationDnsSettings.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkConfigurationDnsSettings.java
index 11d72e97be776..1367222d7b86c 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkConfigurationDnsSettings.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkConfigurationDnsSettings.java
@@ -23,7 +23,7 @@ public class VirtualMachineScaleSetNetworkConfigurationDnsSettings {
     private List<String> dnsServers;
 
     /**
-     * Get the dnsServers value.
+     * Get list of DNS servers IP addresses.
      *
      * @return the dnsServers value
      */
@@ -32,7 +32,7 @@ public List<String> dnsServers() {
     }
 
     /**
-     * Set the dnsServers value.
+     * Set list of DNS servers IP addresses.
      *
      * @param dnsServers the dnsServers value to set
      * @return the VirtualMachineScaleSetNetworkConfigurationDnsSettings object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkProfile.java
index 20a4f21334b9b..5846717bccc2b 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetNetworkProfile.java
@@ -31,7 +31,7 @@ public class VirtualMachineScaleSetNetworkProfile {
     private List<VirtualMachineScaleSetNetworkConfiguration> networkInterfaceConfigurations;
 
     /**
-     * Get the healthProbe value.
+     * Get a reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
      *
      * @return the healthProbe value
      */
@@ -40,7 +40,7 @@ public ApiEntityReference healthProbe() {
     }
 
     /**
-     * Set the healthProbe value.
+     * Set a reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
      *
      * @param healthProbe the healthProbe value to set
      * @return the VirtualMachineScaleSetNetworkProfile object itself.
@@ -51,7 +51,7 @@ public VirtualMachineScaleSetNetworkProfile withHealthProbe(ApiEntityReference h
     }
 
     /**
-     * Get the networkInterfaceConfigurations value.
+     * Get the list of network configurations.
      *
      * @return the networkInterfaceConfigurations value
      */
@@ -60,7 +60,7 @@ public List<VirtualMachineScaleSetNetworkConfiguration> networkInterfaceConfigur
     }
 
     /**
-     * Set the networkInterfaceConfigurations value.
+     * Set the list of network configurations.
      *
      * @param networkInterfaceConfigurations the networkInterfaceConfigurations value to set
      * @return the VirtualMachineScaleSetNetworkProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetOSDisk.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetOSDisk.java
index 2fa8376826053..3e7faba4dc5b4 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetOSDisk.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetOSDisk.java
@@ -81,7 +81,7 @@ public class VirtualMachineScaleSetOSDisk {
     private VirtualMachineScaleSetManagedDiskParameters managedDisk;
 
     /**
-     * Get the name value.
+     * Get the disk name.
      *
      * @return the name value
      */
@@ -90,7 +90,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the disk name.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetOSDisk object itself.
@@ -101,7 +101,7 @@ public VirtualMachineScaleSetOSDisk withName(String name) {
     }
 
     /**
-     * Get the caching value.
+     * Get specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @return the caching value
      */
@@ -110,7 +110,7 @@ public CachingTypes caching() {
     }
 
     /**
-     * Set the caching value.
+     * Set specifies the caching requirements. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **None** &lt;br&gt;&lt;br&gt; **ReadOnly** &lt;br&gt;&lt;br&gt; **ReadWrite** &lt;br&gt;&lt;br&gt; Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @param caching the caching value to set
      * @return the VirtualMachineScaleSetOSDisk object itself.
@@ -121,7 +121,7 @@ public VirtualMachineScaleSetOSDisk withCaching(CachingTypes caching) {
     }
 
     /**
-     * Get the writeAcceleratorEnabled value.
+     * Get specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @return the writeAcceleratorEnabled value
      */
@@ -130,7 +130,7 @@ public Boolean writeAcceleratorEnabled() {
     }
 
     /**
-     * Set the writeAcceleratorEnabled value.
+     * Set specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @param writeAcceleratorEnabled the writeAcceleratorEnabled value to set
      * @return the VirtualMachineScaleSetOSDisk object itself.
@@ -141,7 +141,7 @@ public VirtualMachineScaleSetOSDisk withWriteAcceleratorEnabled(Boolean writeAcc
     }
 
     /**
-     * Get the createOption value.
+     * Get specifies how the virtual machines in the scale set should be created.&lt;br&gt;&lt;br&gt; The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described. Possible values include: 'FromImage', 'Empty', 'Attach'.
      *
      * @return the createOption value
      */
@@ -150,7 +150,7 @@ public DiskCreateOptionTypes createOption() {
     }
 
     /**
-     * Set the createOption value.
+     * Set specifies how the virtual machines in the scale set should be created.&lt;br&gt;&lt;br&gt; The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described. Possible values include: 'FromImage', 'Empty', 'Attach'.
      *
      * @param createOption the createOption value to set
      * @return the VirtualMachineScaleSetOSDisk object itself.
@@ -161,7 +161,7 @@ public VirtualMachineScaleSetOSDisk withCreateOption(DiskCreateOptionTypes creat
     }
 
     /**
-     * Get the osType value.
+     * Get this property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **Windows** &lt;br&gt;&lt;br&gt; **Linux**. Possible values include: 'Windows', 'Linux'.
      *
      * @return the osType value
      */
@@ -170,7 +170,7 @@ public OperatingSystemTypes osType() {
     }
 
     /**
-     * Set the osType value.
+     * Set this property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; **Windows** &lt;br&gt;&lt;br&gt; **Linux**. Possible values include: 'Windows', 'Linux'.
      *
      * @param osType the osType value to set
      * @return the VirtualMachineScaleSetOSDisk object itself.
@@ -181,7 +181,7 @@ public VirtualMachineScaleSetOSDisk withOsType(OperatingSystemTypes osType) {
     }
 
     /**
-     * Get the image value.
+     * Get specifies information about the unmanaged user image to base the scale set on.
      *
      * @return the image value
      */
@@ -190,7 +190,7 @@ public VirtualHardDisk image() {
     }
 
     /**
-     * Set the image value.
+     * Set specifies information about the unmanaged user image to base the scale set on.
      *
      * @param image the image value to set
      * @return the VirtualMachineScaleSetOSDisk object itself.
@@ -201,7 +201,7 @@ public VirtualMachineScaleSetOSDisk withImage(VirtualHardDisk image) {
     }
 
     /**
-     * Get the vhdContainers value.
+     * Get specifies the container urls that are used to store operating system disks for the scale set.
      *
      * @return the vhdContainers value
      */
@@ -210,7 +210,7 @@ public List<String> vhdContainers() {
     }
 
     /**
-     * Set the vhdContainers value.
+     * Set specifies the container urls that are used to store operating system disks for the scale set.
      *
      * @param vhdContainers the vhdContainers value to set
      * @return the VirtualMachineScaleSetOSDisk object itself.
@@ -221,7 +221,7 @@ public VirtualMachineScaleSetOSDisk withVhdContainers(List<String> vhdContainers
     }
 
     /**
-     * Get the managedDisk value.
+     * Get the managed disk parameters.
      *
      * @return the managedDisk value
      */
@@ -230,7 +230,7 @@ public VirtualMachineScaleSetManagedDiskParameters managedDisk() {
     }
 
     /**
-     * Set the managedDisk value.
+     * Set the managed disk parameters.
      *
      * @param managedDisk the managedDisk value to set
      * @return the VirtualMachineScaleSetOSDisk object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetOSProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetOSProfile.java
index 2ba8f8865d1f1..18636b79d422e 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetOSProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetOSProfile.java
@@ -102,7 +102,7 @@ public class VirtualMachineScaleSetOSProfile {
     private List<VaultSecretGroup> secrets;
 
     /**
-     * Get the computerNamePrefix value.
+     * Get specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
      *
      * @return the computerNamePrefix value
      */
@@ -111,7 +111,7 @@ public String computerNamePrefix() {
     }
 
     /**
-     * Set the computerNamePrefix value.
+     * Set specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
      *
      * @param computerNamePrefix the computerNamePrefix value to set
      * @return the VirtualMachineScaleSetOSProfile object itself.
@@ -122,7 +122,7 @@ public VirtualMachineScaleSetOSProfile withComputerNamePrefix(String computerNam
     }
 
     /**
-     * Get the adminUsername value.
+     * Get specifies the name of the administrator account. &lt;br&gt;&lt;br&gt; **Windows-only restriction:** Cannot end in "." &lt;br&gt;&lt;br&gt; **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". &lt;br&gt;&lt;br&gt; **Minimum-length (Linux):** 1  character &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 64 characters &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 20 characters  &lt;br&gt;&lt;br&gt;&lt;li&gt; For root access to the Linux VM, see [Using root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)&lt;br&gt;&lt;li&gt; For a list of built-in system users on Linux that should not be used in this field, see [Selecting User Names for Linux on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @return the adminUsername value
      */
@@ -131,7 +131,7 @@ public String adminUsername() {
     }
 
     /**
-     * Set the adminUsername value.
+     * Set specifies the name of the administrator account. &lt;br&gt;&lt;br&gt; **Windows-only restriction:** Cannot end in "." &lt;br&gt;&lt;br&gt; **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". &lt;br&gt;&lt;br&gt; **Minimum-length (Linux):** 1  character &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 64 characters &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 20 characters  &lt;br&gt;&lt;br&gt;&lt;li&gt; For root access to the Linux VM, see [Using root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)&lt;br&gt;&lt;li&gt; For a list of built-in system users on Linux that should not be used in this field, see [Selecting User Names for Linux on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @param adminUsername the adminUsername value to set
      * @return the VirtualMachineScaleSetOSProfile object itself.
@@ -142,7 +142,7 @@ public VirtualMachineScaleSetOSProfile withAdminUsername(String adminUsername) {
     }
 
     /**
-     * Get the adminPassword value.
+     * Get specifies the password of the administrator account. &lt;br&gt;&lt;br&gt; **Minimum-length (Windows):** 8 characters &lt;br&gt;&lt;br&gt; **Minimum-length (Linux):** 6 characters &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 123 characters &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 72 characters &lt;br&gt;&lt;br&gt; **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled &lt;br&gt; Has lower characters &lt;br&gt;Has upper characters &lt;br&gt; Has a digit &lt;br&gt; Has a special character (Regex match [\W_]) &lt;br&gt;&lt;br&gt; **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" &lt;br&gt;&lt;br&gt; For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password).
      *
      * @return the adminPassword value
      */
@@ -151,7 +151,7 @@ public String adminPassword() {
     }
 
     /**
-     * Set the adminPassword value.
+     * Set specifies the password of the administrator account. &lt;br&gt;&lt;br&gt; **Minimum-length (Windows):** 8 characters &lt;br&gt;&lt;br&gt; **Minimum-length (Linux):** 6 characters &lt;br&gt;&lt;br&gt; **Max-length (Windows):** 123 characters &lt;br&gt;&lt;br&gt; **Max-length (Linux):** 72 characters &lt;br&gt;&lt;br&gt; **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled &lt;br&gt; Has lower characters &lt;br&gt;Has upper characters &lt;br&gt; Has a digit &lt;br&gt; Has a special character (Regex match [\W_]) &lt;br&gt;&lt;br&gt; **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" &lt;br&gt;&lt;br&gt; For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password).
      *
      * @param adminPassword the adminPassword value to set
      * @return the VirtualMachineScaleSetOSProfile object itself.
@@ -162,7 +162,7 @@ public VirtualMachineScaleSetOSProfile withAdminPassword(String adminPassword) {
     }
 
     /**
-     * Get the customData value.
+     * Get specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. &lt;br&gt;&lt;br&gt; For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @return the customData value
      */
@@ -171,7 +171,7 @@ public String customData() {
     }
 
     /**
-     * Set the customData value.
+     * Set specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. &lt;br&gt;&lt;br&gt; For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @param customData the customData value to set
      * @return the VirtualMachineScaleSetOSProfile object itself.
@@ -182,7 +182,7 @@ public VirtualMachineScaleSetOSProfile withCustomData(String customData) {
     }
 
     /**
-     * Get the windowsConfiguration value.
+     * Get specifies Windows operating system settings on the virtual machine.
      *
      * @return the windowsConfiguration value
      */
@@ -191,7 +191,7 @@ public WindowsConfiguration windowsConfiguration() {
     }
 
     /**
-     * Set the windowsConfiguration value.
+     * Set specifies Windows operating system settings on the virtual machine.
      *
      * @param windowsConfiguration the windowsConfiguration value to set
      * @return the VirtualMachineScaleSetOSProfile object itself.
@@ -202,7 +202,7 @@ public VirtualMachineScaleSetOSProfile withWindowsConfiguration(WindowsConfigura
     }
 
     /**
-     * Get the linuxConfiguration value.
+     * Get specifies the Linux operating system settings on the virtual machine. &lt;br&gt;&lt;br&gt;For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) &lt;br&gt;&lt;br&gt; For running non-endorsed distributions, see [Information for Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @return the linuxConfiguration value
      */
@@ -211,7 +211,7 @@ public LinuxConfiguration linuxConfiguration() {
     }
 
     /**
-     * Set the linuxConfiguration value.
+     * Set specifies the Linux operating system settings on the virtual machine. &lt;br&gt;&lt;br&gt;For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) &lt;br&gt;&lt;br&gt; For running non-endorsed distributions, see [Information for Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      *
      * @param linuxConfiguration the linuxConfiguration value to set
      * @return the VirtualMachineScaleSetOSProfile object itself.
@@ -222,7 +222,7 @@ public VirtualMachineScaleSetOSProfile withLinuxConfiguration(LinuxConfiguration
     }
 
     /**
-     * Get the secrets value.
+     * Get specifies set of certificates that should be installed onto the virtual machines in the scale set.
      *
      * @return the secrets value
      */
@@ -231,7 +231,7 @@ public List<VaultSecretGroup> secrets() {
     }
 
     /**
-     * Set the secrets value.
+     * Set specifies set of certificates that should be installed onto the virtual machines in the scale set.
      *
      * @param secrets the secrets value to set
      * @return the VirtualMachineScaleSetOSProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetPublicIPAddressConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetPublicIPAddressConfiguration.java
index e4fe35588ea01..1b29e8281cc36 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetPublicIPAddressConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetPublicIPAddressConfiguration.java
@@ -36,7 +36,7 @@ public class VirtualMachineScaleSetPublicIPAddressConfiguration {
     private VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings dnsSettings;
 
     /**
-     * Get the name value.
+     * Get the publicIP address configuration name.
      *
      * @return the name value
      */
@@ -45,7 +45,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the publicIP address configuration name.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetPublicIPAddressConfiguration object itself.
@@ -56,7 +56,7 @@ public VirtualMachineScaleSetPublicIPAddressConfiguration withName(String name)
     }
 
     /**
-     * Get the idleTimeoutInMinutes value.
+     * Get the idle timeout of the public IP address.
      *
      * @return the idleTimeoutInMinutes value
      */
@@ -65,7 +65,7 @@ public Integer idleTimeoutInMinutes() {
     }
 
     /**
-     * Set the idleTimeoutInMinutes value.
+     * Set the idle timeout of the public IP address.
      *
      * @param idleTimeoutInMinutes the idleTimeoutInMinutes value to set
      * @return the VirtualMachineScaleSetPublicIPAddressConfiguration object itself.
@@ -76,7 +76,7 @@ public VirtualMachineScaleSetPublicIPAddressConfiguration withIdleTimeoutInMinut
     }
 
     /**
-     * Get the dnsSettings value.
+     * Get the dns settings to be applied on the publicIP addresses .
      *
      * @return the dnsSettings value
      */
@@ -85,7 +85,7 @@ public VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings dnsSettings
     }
 
     /**
-     * Set the dnsSettings value.
+     * Set the dns settings to be applied on the publicIP addresses .
      *
      * @param dnsSettings the dnsSettings value to set
      * @return the VirtualMachineScaleSetPublicIPAddressConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings.java
index f0639265059f2..c44a35870b2e3 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings.java
@@ -24,7 +24,7 @@ public class VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings {
     private String domainNameLabel;
 
     /**
-     * Get the domainNameLabel value.
+     * Get the Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created.
      *
      * @return the domainNameLabel value
      */
@@ -33,7 +33,7 @@ public String domainNameLabel() {
     }
 
     /**
-     * Set the domainNameLabel value.
+     * Set the Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created.
      *
      * @param domainNameLabel the domainNameLabel value to set
      * @return the VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetSkuCapacity.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetSkuCapacity.java
index c7c6b826cd1a3..73cbebc94db15 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetSkuCapacity.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetSkuCapacity.java
@@ -40,7 +40,7 @@ public class VirtualMachineScaleSetSkuCapacity {
     private VirtualMachineScaleSetSkuScaleType scaleType;
 
     /**
-     * Get the minimum value.
+     * Get the minimum capacity.
      *
      * @return the minimum value
      */
@@ -49,7 +49,7 @@ public Long minimum() {
     }
 
     /**
-     * Get the maximum value.
+     * Get the maximum capacity that can be set.
      *
      * @return the maximum value
      */
@@ -58,7 +58,7 @@ public Long maximum() {
     }
 
     /**
-     * Get the defaultCapacity value.
+     * Get the default capacity.
      *
      * @return the defaultCapacity value
      */
@@ -67,7 +67,7 @@ public Long defaultCapacity() {
     }
 
     /**
-     * Get the scaleType value.
+     * Get the scale type applicable to the sku. Possible values include: 'Automatic', 'None'.
      *
      * @return the scaleType value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetStorageProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetStorageProfile.java
index 19029de8ae064..83c6b538596e2 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetStorageProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetStorageProfile.java
@@ -44,7 +44,7 @@ public class VirtualMachineScaleSetStorageProfile {
     private List<VirtualMachineScaleSetDataDisk> dataDisks;
 
     /**
-     * Get the imageReference value.
+     * Get specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
      *
      * @return the imageReference value
      */
@@ -53,7 +53,7 @@ public ImageReference imageReference() {
     }
 
     /**
-     * Set the imageReference value.
+     * Set specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
      *
      * @param imageReference the imageReference value to set
      * @return the VirtualMachineScaleSetStorageProfile object itself.
@@ -64,7 +64,7 @@ public VirtualMachineScaleSetStorageProfile withImageReference(ImageReference im
     }
 
     /**
-     * Get the osDisk value.
+     * Get specifies information about the operating system disk used by the virtual machines in the scale set. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @return the osDisk value
      */
@@ -73,7 +73,7 @@ public VirtualMachineScaleSetOSDisk osDisk() {
     }
 
     /**
-     * Set the osDisk value.
+     * Set specifies information about the operating system disk used by the virtual machines in the scale set. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @param osDisk the osDisk value to set
      * @return the VirtualMachineScaleSetStorageProfile object itself.
@@ -84,7 +84,7 @@ public VirtualMachineScaleSetStorageProfile withOsDisk(VirtualMachineScaleSetOSD
     }
 
     /**
-     * Get the dataDisks value.
+     * Get specifies the parameters that are used to add data disks to the virtual machines in the scale set. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @return the dataDisks value
      */
@@ -93,7 +93,7 @@ public List<VirtualMachineScaleSetDataDisk> dataDisks() {
     }
 
     /**
-     * Set the dataDisks value.
+     * Set specifies the parameters that are used to add data disks to the virtual machines in the scale set. &lt;br&gt;&lt;br&gt; For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      *
      * @param dataDisks the dataDisks value to set
      * @return the VirtualMachineScaleSetStorageProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdate.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdate.java
index c2fee99f9fbe0..766b0d36c4b75 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdate.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdate.java
@@ -50,7 +50,9 @@ public class VirtualMachineScaleSetUpdate extends UpdateResource {
 
     /**
      * When true this limits the scale set to a single placement group, of max
-     * size 100 virtual machines.
+     * size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may
+     * be modified to false. However, if singlePlacementGroup is false, it may
+     * not be modified to true.
      */
     @JsonProperty(value = "properties.singlePlacementGroup")
     private Boolean singlePlacementGroup;
@@ -62,7 +64,7 @@ public class VirtualMachineScaleSetUpdate extends UpdateResource {
     private VirtualMachineScaleSetIdentity identity;
 
     /**
-     * Get the sku value.
+     * Get the virtual machine scale set sku.
      *
      * @return the sku value
      */
@@ -71,7 +73,7 @@ public Sku sku() {
     }
 
     /**
-     * Set the sku value.
+     * Set the virtual machine scale set sku.
      *
      * @param sku the sku value to set
      * @return the VirtualMachineScaleSetUpdate object itself.
@@ -82,7 +84,7 @@ public VirtualMachineScaleSetUpdate withSku(Sku sku) {
     }
 
     /**
-     * Get the plan value.
+     * Get the purchase plan when deploying a virtual machine scale set from VM Marketplace images.
      *
      * @return the plan value
      */
@@ -91,7 +93,7 @@ public Plan plan() {
     }
 
     /**
-     * Set the plan value.
+     * Set the purchase plan when deploying a virtual machine scale set from VM Marketplace images.
      *
      * @param plan the plan value to set
      * @return the VirtualMachineScaleSetUpdate object itself.
@@ -102,7 +104,7 @@ public VirtualMachineScaleSetUpdate withPlan(Plan plan) {
     }
 
     /**
-     * Get the upgradePolicy value.
+     * Get the upgrade policy.
      *
      * @return the upgradePolicy value
      */
@@ -111,7 +113,7 @@ public UpgradePolicy upgradePolicy() {
     }
 
     /**
-     * Set the upgradePolicy value.
+     * Set the upgrade policy.
      *
      * @param upgradePolicy the upgradePolicy value to set
      * @return the VirtualMachineScaleSetUpdate object itself.
@@ -122,7 +124,7 @@ public VirtualMachineScaleSetUpdate withUpgradePolicy(UpgradePolicy upgradePolic
     }
 
     /**
-     * Get the virtualMachineProfile value.
+     * Get the virtual machine profile.
      *
      * @return the virtualMachineProfile value
      */
@@ -131,7 +133,7 @@ public VirtualMachineScaleSetUpdateVMProfile virtualMachineProfile() {
     }
 
     /**
-     * Set the virtualMachineProfile value.
+     * Set the virtual machine profile.
      *
      * @param virtualMachineProfile the virtualMachineProfile value to set
      * @return the VirtualMachineScaleSetUpdate object itself.
@@ -142,7 +144,7 @@ public VirtualMachineScaleSetUpdate withVirtualMachineProfile(VirtualMachineScal
     }
 
     /**
-     * Get the overprovision value.
+     * Get specifies whether the Virtual Machine Scale Set should be overprovisioned.
      *
      * @return the overprovision value
      */
@@ -151,7 +153,7 @@ public Boolean overprovision() {
     }
 
     /**
-     * Set the overprovision value.
+     * Set specifies whether the Virtual Machine Scale Set should be overprovisioned.
      *
      * @param overprovision the overprovision value to set
      * @return the VirtualMachineScaleSetUpdate object itself.
@@ -162,7 +164,7 @@ public VirtualMachineScaleSetUpdate withOverprovision(Boolean overprovision) {
     }
 
     /**
-     * Get the singlePlacementGroup value.
+     * Get when true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
      *
      * @return the singlePlacementGroup value
      */
@@ -171,7 +173,7 @@ public Boolean singlePlacementGroup() {
     }
 
     /**
-     * Set the singlePlacementGroup value.
+     * Set when true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
      *
      * @param singlePlacementGroup the singlePlacementGroup value to set
      * @return the VirtualMachineScaleSetUpdate object itself.
@@ -182,7 +184,7 @@ public VirtualMachineScaleSetUpdate withSinglePlacementGroup(Boolean singlePlace
     }
 
     /**
-     * Get the identity value.
+     * Get the identity of the virtual machine scale set, if configured.
      *
      * @return the identity value
      */
@@ -191,7 +193,7 @@ public VirtualMachineScaleSetIdentity identity() {
     }
 
     /**
-     * Set the identity value.
+     * Set the identity of the virtual machine scale set, if configured.
      *
      * @param identity the identity value to set
      * @return the VirtualMachineScaleSetUpdate object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateIPConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateIPConfiguration.java
index be15c1aa49e84..338714c1be228 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateIPConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateIPConfiguration.java
@@ -71,7 +71,7 @@ public class VirtualMachineScaleSetUpdateIPConfiguration extends SubResource {
     private List<SubResource> loadBalancerInboundNatPools;
 
     /**
-     * Get the name value.
+     * Get the IP configuration name.
      *
      * @return the name value
      */
@@ -80,7 +80,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the IP configuration name.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetUpdateIPConfiguration object itself.
@@ -91,7 +91,7 @@ public VirtualMachineScaleSetUpdateIPConfiguration withName(String name) {
     }
 
     /**
-     * Get the subnet value.
+     * Get the subnet.
      *
      * @return the subnet value
      */
@@ -100,7 +100,7 @@ public ApiEntityReference subnet() {
     }
 
     /**
-     * Set the subnet value.
+     * Set the subnet.
      *
      * @param subnet the subnet value to set
      * @return the VirtualMachineScaleSetUpdateIPConfiguration object itself.
@@ -111,7 +111,7 @@ public VirtualMachineScaleSetUpdateIPConfiguration withSubnet(ApiEntityReference
     }
 
     /**
-     * Get the primary value.
+     * Get specifies the primary IP Configuration in case the network interface has more than one IP Configuration.
      *
      * @return the primary value
      */
@@ -120,7 +120,7 @@ public Boolean primary() {
     }
 
     /**
-     * Set the primary value.
+     * Set specifies the primary IP Configuration in case the network interface has more than one IP Configuration.
      *
      * @param primary the primary value to set
      * @return the VirtualMachineScaleSetUpdateIPConfiguration object itself.
@@ -131,7 +131,7 @@ public VirtualMachineScaleSetUpdateIPConfiguration withPrimary(Boolean primary)
     }
 
     /**
-     * Get the publicIPAddressConfiguration value.
+     * Get the publicIPAddressConfiguration.
      *
      * @return the publicIPAddressConfiguration value
      */
@@ -140,7 +140,7 @@ public VirtualMachineScaleSetUpdatePublicIPAddressConfiguration publicIPAddressC
     }
 
     /**
-     * Set the publicIPAddressConfiguration value.
+     * Set the publicIPAddressConfiguration.
      *
      * @param publicIPAddressConfiguration the publicIPAddressConfiguration value to set
      * @return the VirtualMachineScaleSetUpdateIPConfiguration object itself.
@@ -151,7 +151,7 @@ public VirtualMachineScaleSetUpdateIPConfiguration withPublicIPAddressConfigurat
     }
 
     /**
-     * Get the privateIPAddressVersion value.
+     * Get available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'. Possible values include: 'IPv4', 'IPv6'.
      *
      * @return the privateIPAddressVersion value
      */
@@ -160,7 +160,7 @@ public IPVersion privateIPAddressVersion() {
     }
 
     /**
-     * Set the privateIPAddressVersion value.
+     * Set available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'. Possible values include: 'IPv4', 'IPv6'.
      *
      * @param privateIPAddressVersion the privateIPAddressVersion value to set
      * @return the VirtualMachineScaleSetUpdateIPConfiguration object itself.
@@ -171,7 +171,7 @@ public VirtualMachineScaleSetUpdateIPConfiguration withPrivateIPAddressVersion(I
     }
 
     /**
-     * Get the applicationGatewayBackendAddressPools value.
+     * Get the application gateway backend address pools.
      *
      * @return the applicationGatewayBackendAddressPools value
      */
@@ -180,7 +180,7 @@ public List<SubResource> applicationGatewayBackendAddressPools() {
     }
 
     /**
-     * Set the applicationGatewayBackendAddressPools value.
+     * Set the application gateway backend address pools.
      *
      * @param applicationGatewayBackendAddressPools the applicationGatewayBackendAddressPools value to set
      * @return the VirtualMachineScaleSetUpdateIPConfiguration object itself.
@@ -191,7 +191,7 @@ public VirtualMachineScaleSetUpdateIPConfiguration withApplicationGatewayBackend
     }
 
     /**
-     * Get the loadBalancerBackendAddressPools value.
+     * Get the load balancer backend address pools.
      *
      * @return the loadBalancerBackendAddressPools value
      */
@@ -200,7 +200,7 @@ public List<SubResource> loadBalancerBackendAddressPools() {
     }
 
     /**
-     * Set the loadBalancerBackendAddressPools value.
+     * Set the load balancer backend address pools.
      *
      * @param loadBalancerBackendAddressPools the loadBalancerBackendAddressPools value to set
      * @return the VirtualMachineScaleSetUpdateIPConfiguration object itself.
@@ -211,7 +211,7 @@ public VirtualMachineScaleSetUpdateIPConfiguration withLoadBalancerBackendAddres
     }
 
     /**
-     * Get the loadBalancerInboundNatPools value.
+     * Get the load balancer inbound nat pools.
      *
      * @return the loadBalancerInboundNatPools value
      */
@@ -220,7 +220,7 @@ public List<SubResource> loadBalancerInboundNatPools() {
     }
 
     /**
-     * Set the loadBalancerInboundNatPools value.
+     * Set the load balancer inbound nat pools.
      *
      * @param loadBalancerInboundNatPools the loadBalancerInboundNatPools value to set
      * @return the VirtualMachineScaleSetUpdateIPConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateNetworkConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateNetworkConfiguration.java
index 65cf928769b8a..164e5ff3a3b9a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateNetworkConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateNetworkConfiguration.java
@@ -63,7 +63,7 @@ public class VirtualMachineScaleSetUpdateNetworkConfiguration extends SubResourc
     private Boolean enableIPForwarding;
 
     /**
-     * Get the name value.
+     * Get the network configuration name.
      *
      * @return the name value
      */
@@ -72,7 +72,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the network configuration name.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetUpdateNetworkConfiguration object itself.
@@ -83,7 +83,7 @@ public VirtualMachineScaleSetUpdateNetworkConfiguration withName(String name) {
     }
 
     /**
-     * Get the primary value.
+     * Get whether this is a primary NIC on a virtual machine.
      *
      * @return the primary value
      */
@@ -92,7 +92,7 @@ public Boolean primary() {
     }
 
     /**
-     * Set the primary value.
+     * Set whether this is a primary NIC on a virtual machine.
      *
      * @param primary the primary value to set
      * @return the VirtualMachineScaleSetUpdateNetworkConfiguration object itself.
@@ -103,7 +103,7 @@ public VirtualMachineScaleSetUpdateNetworkConfiguration withPrimary(Boolean prim
     }
 
     /**
-     * Get the enableAcceleratedNetworking value.
+     * Get specifies whether the network interface is accelerated networking-enabled.
      *
      * @return the enableAcceleratedNetworking value
      */
@@ -112,7 +112,7 @@ public Boolean enableAcceleratedNetworking() {
     }
 
     /**
-     * Set the enableAcceleratedNetworking value.
+     * Set specifies whether the network interface is accelerated networking-enabled.
      *
      * @param enableAcceleratedNetworking the enableAcceleratedNetworking value to set
      * @return the VirtualMachineScaleSetUpdateNetworkConfiguration object itself.
@@ -123,7 +123,7 @@ public VirtualMachineScaleSetUpdateNetworkConfiguration withEnableAcceleratedNet
     }
 
     /**
-     * Get the networkSecurityGroup value.
+     * Get the network security group.
      *
      * @return the networkSecurityGroup value
      */
@@ -132,7 +132,7 @@ public SubResource networkSecurityGroup() {
     }
 
     /**
-     * Set the networkSecurityGroup value.
+     * Set the network security group.
      *
      * @param networkSecurityGroup the networkSecurityGroup value to set
      * @return the VirtualMachineScaleSetUpdateNetworkConfiguration object itself.
@@ -143,7 +143,7 @@ public VirtualMachineScaleSetUpdateNetworkConfiguration withNetworkSecurityGroup
     }
 
     /**
-     * Get the dnsSettings value.
+     * Get the dns settings to be applied on the network interfaces.
      *
      * @return the dnsSettings value
      */
@@ -152,7 +152,7 @@ public VirtualMachineScaleSetNetworkConfigurationDnsSettings dnsSettings() {
     }
 
     /**
-     * Set the dnsSettings value.
+     * Set the dns settings to be applied on the network interfaces.
      *
      * @param dnsSettings the dnsSettings value to set
      * @return the VirtualMachineScaleSetUpdateNetworkConfiguration object itself.
@@ -163,7 +163,7 @@ public VirtualMachineScaleSetUpdateNetworkConfiguration withDnsSettings(VirtualM
     }
 
     /**
-     * Get the ipConfigurations value.
+     * Get the virtual machine scale set IP Configuration.
      *
      * @return the ipConfigurations value
      */
@@ -172,7 +172,7 @@ public List<VirtualMachineScaleSetUpdateIPConfiguration> ipConfigurations() {
     }
 
     /**
-     * Set the ipConfigurations value.
+     * Set the virtual machine scale set IP Configuration.
      *
      * @param ipConfigurations the ipConfigurations value to set
      * @return the VirtualMachineScaleSetUpdateNetworkConfiguration object itself.
@@ -183,7 +183,7 @@ public VirtualMachineScaleSetUpdateNetworkConfiguration withIpConfigurations(Lis
     }
 
     /**
-     * Get the enableIPForwarding value.
+     * Get whether IP forwarding enabled on this NIC.
      *
      * @return the enableIPForwarding value
      */
@@ -192,7 +192,7 @@ public Boolean enableIPForwarding() {
     }
 
     /**
-     * Set the enableIPForwarding value.
+     * Set whether IP forwarding enabled on this NIC.
      *
      * @param enableIPForwarding the enableIPForwarding value to set
      * @return the VirtualMachineScaleSetUpdateNetworkConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateNetworkProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateNetworkProfile.java
index cc84e6a723dfc..baa850b4f8753 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateNetworkProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateNetworkProfile.java
@@ -22,7 +22,7 @@ public class VirtualMachineScaleSetUpdateNetworkProfile {
     private List<VirtualMachineScaleSetUpdateNetworkConfiguration> networkInterfaceConfigurations;
 
     /**
-     * Get the networkInterfaceConfigurations value.
+     * Get the list of network configurations.
      *
      * @return the networkInterfaceConfigurations value
      */
@@ -31,7 +31,7 @@ public List<VirtualMachineScaleSetUpdateNetworkConfiguration> networkInterfaceCo
     }
 
     /**
-     * Set the networkInterfaceConfigurations value.
+     * Set the list of network configurations.
      *
      * @param networkInterfaceConfigurations the networkInterfaceConfigurations value to set
      * @return the VirtualMachineScaleSetUpdateNetworkProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateOSDisk.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateOSDisk.java
index bed53718e5ec2..74acab75698e9 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateOSDisk.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateOSDisk.java
@@ -51,7 +51,7 @@ public class VirtualMachineScaleSetUpdateOSDisk {
     private VirtualMachineScaleSetManagedDiskParameters managedDisk;
 
     /**
-     * Get the caching value.
+     * Get the caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @return the caching value
      */
@@ -60,7 +60,7 @@ public CachingTypes caching() {
     }
 
     /**
-     * Set the caching value.
+     * Set the caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'.
      *
      * @param caching the caching value to set
      * @return the VirtualMachineScaleSetUpdateOSDisk object itself.
@@ -71,7 +71,7 @@ public VirtualMachineScaleSetUpdateOSDisk withCaching(CachingTypes caching) {
     }
 
     /**
-     * Get the writeAcceleratorEnabled value.
+     * Get specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @return the writeAcceleratorEnabled value
      */
@@ -80,7 +80,7 @@ public Boolean writeAcceleratorEnabled() {
     }
 
     /**
-     * Set the writeAcceleratorEnabled value.
+     * Set specifies whether writeAccelerator should be enabled or disabled on the disk.
      *
      * @param writeAcceleratorEnabled the writeAcceleratorEnabled value to set
      * @return the VirtualMachineScaleSetUpdateOSDisk object itself.
@@ -91,7 +91,7 @@ public VirtualMachineScaleSetUpdateOSDisk withWriteAcceleratorEnabled(Boolean wr
     }
 
     /**
-     * Get the image value.
+     * Get the Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine. If SourceImage is provided, the destination VirtualHardDisk should not exist.
      *
      * @return the image value
      */
@@ -100,7 +100,7 @@ public VirtualHardDisk image() {
     }
 
     /**
-     * Set the image value.
+     * Set the Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine. If SourceImage is provided, the destination VirtualHardDisk should not exist.
      *
      * @param image the image value to set
      * @return the VirtualMachineScaleSetUpdateOSDisk object itself.
@@ -111,7 +111,7 @@ public VirtualMachineScaleSetUpdateOSDisk withImage(VirtualHardDisk image) {
     }
 
     /**
-     * Get the vhdContainers value.
+     * Get the list of virtual hard disk container uris.
      *
      * @return the vhdContainers value
      */
@@ -120,7 +120,7 @@ public List<String> vhdContainers() {
     }
 
     /**
-     * Set the vhdContainers value.
+     * Set the list of virtual hard disk container uris.
      *
      * @param vhdContainers the vhdContainers value to set
      * @return the VirtualMachineScaleSetUpdateOSDisk object itself.
@@ -131,7 +131,7 @@ public VirtualMachineScaleSetUpdateOSDisk withVhdContainers(List<String> vhdCont
     }
 
     /**
-     * Get the managedDisk value.
+     * Get the managed disk parameters.
      *
      * @return the managedDisk value
      */
@@ -140,7 +140,7 @@ public VirtualMachineScaleSetManagedDiskParameters managedDisk() {
     }
 
     /**
-     * Set the managedDisk value.
+     * Set the managed disk parameters.
      *
      * @param managedDisk the managedDisk value to set
      * @return the VirtualMachineScaleSetUpdateOSDisk object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateOSProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateOSProfile.java
index 11839825f71a5..49374b9ce9759 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateOSProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateOSProfile.java
@@ -40,7 +40,7 @@ public class VirtualMachineScaleSetUpdateOSProfile {
     private List<VaultSecretGroup> secrets;
 
     /**
-     * Get the customData value.
+     * Get a base-64 encoded string of custom data.
      *
      * @return the customData value
      */
@@ -49,7 +49,7 @@ public String customData() {
     }
 
     /**
-     * Set the customData value.
+     * Set a base-64 encoded string of custom data.
      *
      * @param customData the customData value to set
      * @return the VirtualMachineScaleSetUpdateOSProfile object itself.
@@ -60,7 +60,7 @@ public VirtualMachineScaleSetUpdateOSProfile withCustomData(String customData) {
     }
 
     /**
-     * Get the windowsConfiguration value.
+     * Get the Windows Configuration of the OS profile.
      *
      * @return the windowsConfiguration value
      */
@@ -69,7 +69,7 @@ public WindowsConfiguration windowsConfiguration() {
     }
 
     /**
-     * Set the windowsConfiguration value.
+     * Set the Windows Configuration of the OS profile.
      *
      * @param windowsConfiguration the windowsConfiguration value to set
      * @return the VirtualMachineScaleSetUpdateOSProfile object itself.
@@ -80,7 +80,7 @@ public VirtualMachineScaleSetUpdateOSProfile withWindowsConfiguration(WindowsCon
     }
 
     /**
-     * Get the linuxConfiguration value.
+     * Get the Linux Configuration of the OS profile.
      *
      * @return the linuxConfiguration value
      */
@@ -89,7 +89,7 @@ public LinuxConfiguration linuxConfiguration() {
     }
 
     /**
-     * Set the linuxConfiguration value.
+     * Set the Linux Configuration of the OS profile.
      *
      * @param linuxConfiguration the linuxConfiguration value to set
      * @return the VirtualMachineScaleSetUpdateOSProfile object itself.
@@ -100,7 +100,7 @@ public VirtualMachineScaleSetUpdateOSProfile withLinuxConfiguration(LinuxConfigu
     }
 
     /**
-     * Get the secrets value.
+     * Get the List of certificates for addition to the VM.
      *
      * @return the secrets value
      */
@@ -109,7 +109,7 @@ public List<VaultSecretGroup> secrets() {
     }
 
     /**
-     * Set the secrets value.
+     * Set the List of certificates for addition to the VM.
      *
      * @param secrets the secrets value to set
      * @return the VirtualMachineScaleSetUpdateOSProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdatePublicIPAddressConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdatePublicIPAddressConfiguration.java
index b5b4109990867..bd011b083f93e 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdatePublicIPAddressConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdatePublicIPAddressConfiguration.java
@@ -36,7 +36,7 @@ public class VirtualMachineScaleSetUpdatePublicIPAddressConfiguration {
     private VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings dnsSettings;
 
     /**
-     * Get the name value.
+     * Get the publicIP address configuration name.
      *
      * @return the name value
      */
@@ -45,7 +45,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the publicIP address configuration name.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetUpdatePublicIPAddressConfiguration object itself.
@@ -56,7 +56,7 @@ public VirtualMachineScaleSetUpdatePublicIPAddressConfiguration withName(String
     }
 
     /**
-     * Get the idleTimeoutInMinutes value.
+     * Get the idle timeout of the public IP address.
      *
      * @return the idleTimeoutInMinutes value
      */
@@ -65,7 +65,7 @@ public Integer idleTimeoutInMinutes() {
     }
 
     /**
-     * Set the idleTimeoutInMinutes value.
+     * Set the idle timeout of the public IP address.
      *
      * @param idleTimeoutInMinutes the idleTimeoutInMinutes value to set
      * @return the VirtualMachineScaleSetUpdatePublicIPAddressConfiguration object itself.
@@ -76,7 +76,7 @@ public VirtualMachineScaleSetUpdatePublicIPAddressConfiguration withIdleTimeoutI
     }
 
     /**
-     * Get the dnsSettings value.
+     * Get the dns settings to be applied on the publicIP addresses .
      *
      * @return the dnsSettings value
      */
@@ -85,7 +85,7 @@ public VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings dnsSettings
     }
 
     /**
-     * Set the dnsSettings value.
+     * Set the dns settings to be applied on the publicIP addresses .
      *
      * @param dnsSettings the dnsSettings value to set
      * @return the VirtualMachineScaleSetUpdatePublicIPAddressConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateStorageProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateStorageProfile.java
index c631fca0fbce9..9ca0f7b2f2b24 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateStorageProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateStorageProfile.java
@@ -34,7 +34,7 @@ public class VirtualMachineScaleSetUpdateStorageProfile {
     private List<VirtualMachineScaleSetDataDisk> dataDisks;
 
     /**
-     * Get the imageReference value.
+     * Get the image reference.
      *
      * @return the imageReference value
      */
@@ -43,7 +43,7 @@ public ImageReference imageReference() {
     }
 
     /**
-     * Set the imageReference value.
+     * Set the image reference.
      *
      * @param imageReference the imageReference value to set
      * @return the VirtualMachineScaleSetUpdateStorageProfile object itself.
@@ -54,7 +54,7 @@ public VirtualMachineScaleSetUpdateStorageProfile withImageReference(ImageRefere
     }
 
     /**
-     * Get the osDisk value.
+     * Get the OS disk.
      *
      * @return the osDisk value
      */
@@ -63,7 +63,7 @@ public VirtualMachineScaleSetUpdateOSDisk osDisk() {
     }
 
     /**
-     * Set the osDisk value.
+     * Set the OS disk.
      *
      * @param osDisk the osDisk value to set
      * @return the VirtualMachineScaleSetUpdateStorageProfile object itself.
@@ -74,7 +74,7 @@ public VirtualMachineScaleSetUpdateStorageProfile withOsDisk(VirtualMachineScale
     }
 
     /**
-     * Get the dataDisks value.
+     * Get the data disks.
      *
      * @return the dataDisks value
      */
@@ -83,7 +83,7 @@ public List<VirtualMachineScaleSetDataDisk> dataDisks() {
     }
 
     /**
-     * Set the dataDisks value.
+     * Set the data disks.
      *
      * @param dataDisks the dataDisks value to set
      * @return the VirtualMachineScaleSetUpdateStorageProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateVMProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateVMProfile.java
index 0e4083a5c1f08..2eee2eee5abe5 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateVMProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetUpdateVMProfile.java
@@ -51,7 +51,7 @@ public class VirtualMachineScaleSetUpdateVMProfile {
     private String licenseType;
 
     /**
-     * Get the osProfile value.
+     * Get the virtual machine scale set OS profile.
      *
      * @return the osProfile value
      */
@@ -60,7 +60,7 @@ public VirtualMachineScaleSetUpdateOSProfile osProfile() {
     }
 
     /**
-     * Set the osProfile value.
+     * Set the virtual machine scale set OS profile.
      *
      * @param osProfile the osProfile value to set
      * @return the VirtualMachineScaleSetUpdateVMProfile object itself.
@@ -71,7 +71,7 @@ public VirtualMachineScaleSetUpdateVMProfile withOsProfile(VirtualMachineScaleSe
     }
 
     /**
-     * Get the storageProfile value.
+     * Get the virtual machine scale set storage profile.
      *
      * @return the storageProfile value
      */
@@ -80,7 +80,7 @@ public VirtualMachineScaleSetUpdateStorageProfile storageProfile() {
     }
 
     /**
-     * Set the storageProfile value.
+     * Set the virtual machine scale set storage profile.
      *
      * @param storageProfile the storageProfile value to set
      * @return the VirtualMachineScaleSetUpdateVMProfile object itself.
@@ -91,7 +91,7 @@ public VirtualMachineScaleSetUpdateVMProfile withStorageProfile(VirtualMachineSc
     }
 
     /**
-     * Get the networkProfile value.
+     * Get the virtual machine scale set network profile.
      *
      * @return the networkProfile value
      */
@@ -100,7 +100,7 @@ public VirtualMachineScaleSetUpdateNetworkProfile networkProfile() {
     }
 
     /**
-     * Set the networkProfile value.
+     * Set the virtual machine scale set network profile.
      *
      * @param networkProfile the networkProfile value to set
      * @return the VirtualMachineScaleSetUpdateVMProfile object itself.
@@ -111,7 +111,7 @@ public VirtualMachineScaleSetUpdateVMProfile withNetworkProfile(VirtualMachineSc
     }
 
     /**
-     * Get the diagnosticsProfile value.
+     * Get the virtual machine scale set diagnostics profile.
      *
      * @return the diagnosticsProfile value
      */
@@ -120,7 +120,7 @@ public DiagnosticsProfile diagnosticsProfile() {
     }
 
     /**
-     * Set the diagnosticsProfile value.
+     * Set the virtual machine scale set diagnostics profile.
      *
      * @param diagnosticsProfile the diagnosticsProfile value to set
      * @return the VirtualMachineScaleSetUpdateVMProfile object itself.
@@ -131,7 +131,7 @@ public VirtualMachineScaleSetUpdateVMProfile withDiagnosticsProfile(DiagnosticsP
     }
 
     /**
-     * Get the extensionProfile value.
+     * Get the virtual machine scale set extension profile.
      *
      * @return the extensionProfile value
      */
@@ -140,7 +140,7 @@ public VirtualMachineScaleSetExtensionProfile extensionProfile() {
     }
 
     /**
-     * Set the extensionProfile value.
+     * Set the virtual machine scale set extension profile.
      *
      * @param extensionProfile the extensionProfile value to set
      * @return the VirtualMachineScaleSetUpdateVMProfile object itself.
@@ -151,7 +151,7 @@ public VirtualMachineScaleSetUpdateVMProfile withExtensionProfile(VirtualMachine
     }
 
     /**
-     * Get the licenseType value.
+     * Get the license type, which is for bring your own license scenario.
      *
      * @return the licenseType value
      */
@@ -160,7 +160,7 @@ public String licenseType() {
     }
 
     /**
-     * Set the licenseType value.
+     * Set the license type, which is for bring your own license scenario.
      *
      * @param licenseType the licenseType value to set
      * @return the VirtualMachineScaleSetUpdateVMProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVM.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVM.java
index 54fae114dfa8a..bc9b114a32833 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVM.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVM.java
@@ -52,7 +52,7 @@ public interface VirtualMachineScaleSetVM extends HasInner<VirtualMachineScaleSe
     /**
      * @return the instanceView value.
      */
-    VirtualMachineInstanceView instanceView();
+    VirtualMachineScaleSetVMInstanceView instanceView();
 
     /**
      * @return the latestModelApplied value.
@@ -140,6 +140,8 @@ interface UpdateStages {
         interface WithAvailabilitySet {
             /**
              * Specifies availabilitySet.
+             * @param availabilitySet Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set
+             * @return the next update stage
              */
             Update withAvailabilitySet(SubResource availabilitySet);
         }
@@ -150,6 +152,8 @@ interface WithAvailabilitySet {
         interface WithDiagnosticsProfile {
             /**
              * Specifies diagnosticsProfile.
+             * @param diagnosticsProfile Specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15
+             * @return the next update stage
              */
             Update withDiagnosticsProfile(DiagnosticsProfile diagnosticsProfile);
         }
@@ -160,6 +164,8 @@ interface WithDiagnosticsProfile {
         interface WithHardwareProfile {
             /**
              * Specifies hardwareProfile.
+             * @param hardwareProfile Specifies the hardware settings for the virtual machine
+             * @return the next update stage
              */
             Update withHardwareProfile(HardwareProfile hardwareProfile);
         }
@@ -170,6 +176,8 @@ interface WithHardwareProfile {
         interface WithLicenseType {
             /**
              * Specifies licenseType.
+             * @param licenseType Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15
+             * @return the next update stage
              */
             Update withLicenseType(String licenseType);
         }
@@ -180,6 +188,8 @@ interface WithLicenseType {
         interface WithNetworkProfile {
             /**
              * Specifies networkProfile.
+             * @param networkProfile Specifies the network interfaces of the virtual machine
+             * @return the next update stage
              */
             Update withNetworkProfile(NetworkProfile networkProfile);
         }
@@ -190,6 +200,8 @@ interface WithNetworkProfile {
         interface WithOsProfile {
             /**
              * Specifies osProfile.
+             * @param osProfile Specifies the operating system settings for the virtual machine
+             * @return the next update stage
              */
             Update withOsProfile(OSProfile osProfile);
         }
@@ -200,6 +212,8 @@ interface WithOsProfile {
         interface WithPlan {
             /**
              * Specifies plan.
+             * @param plan Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**
+             * @return the next update stage
              */
             Update withPlan(Plan plan);
         }
@@ -210,6 +224,8 @@ interface WithPlan {
         interface WithStorageProfile {
             /**
              * Specifies storageProfile.
+             * @param storageProfile Specifies the storage settings for the virtual machine disks
+             * @return the next update stage
              */
             Update withStorageProfile(StorageProfile storageProfile);
         }
@@ -220,6 +236,8 @@ interface WithStorageProfile {
         interface WithTags {
             /**
              * Specifies tags.
+             * @param tags Resource tags
+             * @return the next update stage
              */
             Update withTags(Map<String, String> tags);
         }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMExtensionsSummary.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMExtensionsSummary.java
index 3cc0b1117e514..726e86547d25a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMExtensionsSummary.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMExtensionsSummary.java
@@ -28,7 +28,7 @@ public class VirtualMachineScaleSetVMExtensionsSummary {
     private List<VirtualMachineStatusCodeCount> statusesSummary;
 
     /**
-     * Get the name value.
+     * Get the extension name.
      *
      * @return the name value
      */
@@ -37,7 +37,7 @@ public String name() {
     }
 
     /**
-     * Get the statusesSummary value.
+     * Get the extensions information.
      *
      * @return the statusesSummary value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMInstanceIDs.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMInstanceIDs.java
index ea1977fc1ae0d..6c2b2d9c19e3a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMInstanceIDs.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMInstanceIDs.java
@@ -24,7 +24,7 @@ public class VirtualMachineScaleSetVMInstanceIDs {
     private List<String> instanceIds;
 
     /**
-     * Get the instanceIds value.
+     * Get the virtual machine scale set instance ids. Omitting the virtual machine scale set instance ids will result in the operation being performed on all virtual machines in the virtual machine scale set.
      *
      * @return the instanceIds value
      */
@@ -33,7 +33,7 @@ public List<String> instanceIds() {
     }
 
     /**
-     * Set the instanceIds value.
+     * Set the virtual machine scale set instance ids. Omitting the virtual machine scale set instance ids will result in the operation being performed on all virtual machines in the virtual machine scale set.
      *
      * @param instanceIds the instanceIds value to set
      * @return the VirtualMachineScaleSetVMInstanceIDs object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMInstanceRequiredIDs.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMInstanceRequiredIDs.java
index 21a2329dcbac1..a80417dda49c6 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMInstanceRequiredIDs.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMInstanceRequiredIDs.java
@@ -22,7 +22,7 @@ public class VirtualMachineScaleSetVMInstanceRequiredIDs {
     private List<String> instanceIds;
 
     /**
-     * Get the instanceIds value.
+     * Get the virtual machine scale set instance ids.
      *
      * @return the instanceIds value
      */
@@ -31,7 +31,7 @@ public List<String> instanceIds() {
     }
 
     /**
-     * Set the instanceIds value.
+     * Set the virtual machine scale set instance ids.
      *
      * @param instanceIds the instanceIds value to set
      * @return the VirtualMachineScaleSetVMInstanceRequiredIDs object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMProfile.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMProfile.java
index 875ae1de688b7..821e6e66e0b75 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMProfile.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMProfile.java
@@ -80,7 +80,7 @@ public class VirtualMachineScaleSetVMProfile {
     private VirtualMachineEvictionPolicyTypes evictionPolicy;
 
     /**
-     * Get the osProfile value.
+     * Get specifies the operating system settings for the virtual machines in the scale set.
      *
      * @return the osProfile value
      */
@@ -89,7 +89,7 @@ public VirtualMachineScaleSetOSProfile osProfile() {
     }
 
     /**
-     * Set the osProfile value.
+     * Set specifies the operating system settings for the virtual machines in the scale set.
      *
      * @param osProfile the osProfile value to set
      * @return the VirtualMachineScaleSetVMProfile object itself.
@@ -100,7 +100,7 @@ public VirtualMachineScaleSetVMProfile withOsProfile(VirtualMachineScaleSetOSPro
     }
 
     /**
-     * Get the storageProfile value.
+     * Get specifies the storage settings for the virtual machine disks.
      *
      * @return the storageProfile value
      */
@@ -109,7 +109,7 @@ public VirtualMachineScaleSetStorageProfile storageProfile() {
     }
 
     /**
-     * Set the storageProfile value.
+     * Set specifies the storage settings for the virtual machine disks.
      *
      * @param storageProfile the storageProfile value to set
      * @return the VirtualMachineScaleSetVMProfile object itself.
@@ -120,7 +120,7 @@ public VirtualMachineScaleSetVMProfile withStorageProfile(VirtualMachineScaleSet
     }
 
     /**
-     * Get the networkProfile value.
+     * Get specifies properties of the network interfaces of the virtual machines in the scale set.
      *
      * @return the networkProfile value
      */
@@ -129,7 +129,7 @@ public VirtualMachineScaleSetNetworkProfile networkProfile() {
     }
 
     /**
-     * Set the networkProfile value.
+     * Set specifies properties of the network interfaces of the virtual machines in the scale set.
      *
      * @param networkProfile the networkProfile value to set
      * @return the VirtualMachineScaleSetVMProfile object itself.
@@ -140,7 +140,7 @@ public VirtualMachineScaleSetVMProfile withNetworkProfile(VirtualMachineScaleSet
     }
 
     /**
-     * Get the diagnosticsProfile value.
+     * Get specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15.
      *
      * @return the diagnosticsProfile value
      */
@@ -149,7 +149,7 @@ public DiagnosticsProfile diagnosticsProfile() {
     }
 
     /**
-     * Set the diagnosticsProfile value.
+     * Set specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15.
      *
      * @param diagnosticsProfile the diagnosticsProfile value to set
      * @return the VirtualMachineScaleSetVMProfile object itself.
@@ -160,7 +160,7 @@ public VirtualMachineScaleSetVMProfile withDiagnosticsProfile(DiagnosticsProfile
     }
 
     /**
-     * Get the extensionProfile value.
+     * Get specifies a collection of settings for extensions installed on virtual machines in the scale set.
      *
      * @return the extensionProfile value
      */
@@ -169,7 +169,7 @@ public VirtualMachineScaleSetExtensionProfile extensionProfile() {
     }
 
     /**
-     * Set the extensionProfile value.
+     * Set specifies a collection of settings for extensions installed on virtual machines in the scale set.
      *
      * @param extensionProfile the extensionProfile value to set
      * @return the VirtualMachineScaleSetVMProfile object itself.
@@ -180,7 +180,7 @@ public VirtualMachineScaleSetVMProfile withExtensionProfile(VirtualMachineScaleS
     }
 
     /**
-     * Get the licenseType value.
+     * Get specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @return the licenseType value
      */
@@ -189,7 +189,7 @@ public String licenseType() {
     }
 
     /**
-     * Set the licenseType value.
+     * Set specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @param licenseType the licenseType value to set
      * @return the VirtualMachineScaleSetVMProfile object itself.
@@ -200,7 +200,7 @@ public VirtualMachineScaleSetVMProfile withLicenseType(String licenseType) {
     }
 
     /**
-     * Get the priority value.
+     * Get specifies the priority for the virtual machines in the scale set. &lt;br&gt;&lt;br&gt;Minimum api-version: 2017-10-30-preview. Possible values include: 'Regular', 'Low'.
      *
      * @return the priority value
      */
@@ -209,7 +209,7 @@ public VirtualMachinePriorityTypes priority() {
     }
 
     /**
-     * Set the priority value.
+     * Set specifies the priority for the virtual machines in the scale set. &lt;br&gt;&lt;br&gt;Minimum api-version: 2017-10-30-preview. Possible values include: 'Regular', 'Low'.
      *
      * @param priority the priority value to set
      * @return the VirtualMachineScaleSetVMProfile object itself.
@@ -220,7 +220,7 @@ public VirtualMachineScaleSetVMProfile withPriority(VirtualMachinePriorityTypes
     }
 
     /**
-     * Get the evictionPolicy value.
+     * Get specifies the eviction policy for virtual machines in a low priority scale set. &lt;br&gt;&lt;br&gt;Minimum api-version: 2017-10-30-preview. Possible values include: 'Deallocate', 'Delete'.
      *
      * @return the evictionPolicy value
      */
@@ -229,7 +229,7 @@ public VirtualMachineEvictionPolicyTypes evictionPolicy() {
     }
 
     /**
-     * Set the evictionPolicy value.
+     * Set specifies the eviction policy for virtual machines in a low priority scale set. &lt;br&gt;&lt;br&gt;Minimum api-version: 2017-10-30-preview. Possible values include: 'Deallocate', 'Delete'.
      *
      * @param evictionPolicy the evictionPolicy value to set
      * @return the VirtualMachineScaleSetVMProfile object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMs.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMs.java
index 76ece157e7e71..2cca3c40df78a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMs.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSetVMs.java
@@ -95,7 +95,7 @@ public interface VirtualMachineScaleSetVMs extends HasInner<VirtualMachineScaleS
     Observable<OperationStatusResponse> startAsync(String resourceGroupName, String vmScaleSetName, String instanceId);
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSets.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSets.java
index 678ae9efeef9d..8ffb7fb58ebb4 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSets.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineScaleSets.java
@@ -96,7 +96,7 @@ public interface VirtualMachineScaleSets extends SupportsCreating<VirtualMachine
     Observable<OperationStatusResponse> startAsync(String resourceGroupName, String vmScaleSetName);
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -106,7 +106,7 @@ public interface VirtualMachineScaleSets extends SupportsCreating<VirtualMachine
     Observable<OperationStatusResponse> redeployAsync(String resourceGroupName, String vmScaleSetName);
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineStatusCodeCount.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineStatusCodeCount.java
index 018f8c719e760..9ea79047103c7 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineStatusCodeCount.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineStatusCodeCount.java
@@ -28,7 +28,7 @@ public class VirtualMachineStatusCodeCount {
     private Integer count;
 
     /**
-     * Get the code value.
+     * Get the instance view status code.
      *
      * @return the code value
      */
@@ -37,7 +37,7 @@ public String code() {
     }
 
     /**
-     * Get the count value.
+     * Get the number of instances having a particular status code.
      *
      * @return the count value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineUpdate.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineUpdate.java
index e1ccbb507cd9b..b15d895bebb9a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineUpdate.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachineUpdate.java
@@ -69,7 +69,7 @@ public class VirtualMachineUpdate extends UpdateResource {
      * availability. For more information about availability sets, see [Manage
      * the availability of virtual
      * machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
-     * &lt;br&gt;&lt;br&gt; For more information on Azure planned maintainance,
+     * &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance,
      * see [Planned maintenance for virtual machines in
      * Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
      * &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability
@@ -127,7 +127,7 @@ public class VirtualMachineUpdate extends UpdateResource {
     private List<String> zones;
 
     /**
-     * Get the plan value.
+     * Get specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**.
      *
      * @return the plan value
      */
@@ -136,7 +136,7 @@ public Plan plan() {
     }
 
     /**
-     * Set the plan value.
+     * Set specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**.
      *
      * @param plan the plan value to set
      * @return the VirtualMachineUpdate object itself.
@@ -147,7 +147,7 @@ public VirtualMachineUpdate withPlan(Plan plan) {
     }
 
     /**
-     * Get the hardwareProfile value.
+     * Get specifies the hardware settings for the virtual machine.
      *
      * @return the hardwareProfile value
      */
@@ -156,7 +156,7 @@ public HardwareProfile hardwareProfile() {
     }
 
     /**
-     * Set the hardwareProfile value.
+     * Set specifies the hardware settings for the virtual machine.
      *
      * @param hardwareProfile the hardwareProfile value to set
      * @return the VirtualMachineUpdate object itself.
@@ -167,7 +167,7 @@ public VirtualMachineUpdate withHardwareProfile(HardwareProfile hardwareProfile)
     }
 
     /**
-     * Get the storageProfile value.
+     * Get specifies the storage settings for the virtual machine disks.
      *
      * @return the storageProfile value
      */
@@ -176,7 +176,7 @@ public StorageProfile storageProfile() {
     }
 
     /**
-     * Set the storageProfile value.
+     * Set specifies the storage settings for the virtual machine disks.
      *
      * @param storageProfile the storageProfile value to set
      * @return the VirtualMachineUpdate object itself.
@@ -187,7 +187,7 @@ public VirtualMachineUpdate withStorageProfile(StorageProfile storageProfile) {
     }
 
     /**
-     * Get the osProfile value.
+     * Get specifies the operating system settings for the virtual machine.
      *
      * @return the osProfile value
      */
@@ -196,7 +196,7 @@ public OSProfile osProfile() {
     }
 
     /**
-     * Set the osProfile value.
+     * Set specifies the operating system settings for the virtual machine.
      *
      * @param osProfile the osProfile value to set
      * @return the VirtualMachineUpdate object itself.
@@ -207,7 +207,7 @@ public VirtualMachineUpdate withOsProfile(OSProfile osProfile) {
     }
 
     /**
-     * Get the networkProfile value.
+     * Get specifies the network interfaces of the virtual machine.
      *
      * @return the networkProfile value
      */
@@ -216,7 +216,7 @@ public NetworkProfile networkProfile() {
     }
 
     /**
-     * Set the networkProfile value.
+     * Set specifies the network interfaces of the virtual machine.
      *
      * @param networkProfile the networkProfile value to set
      * @return the VirtualMachineUpdate object itself.
@@ -227,7 +227,7 @@ public VirtualMachineUpdate withNetworkProfile(NetworkProfile networkProfile) {
     }
 
     /**
-     * Get the diagnosticsProfile value.
+     * Get specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15.
      *
      * @return the diagnosticsProfile value
      */
@@ -236,7 +236,7 @@ public DiagnosticsProfile diagnosticsProfile() {
     }
 
     /**
-     * Set the diagnosticsProfile value.
+     * Set specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15.
      *
      * @param diagnosticsProfile the diagnosticsProfile value to set
      * @return the VirtualMachineUpdate object itself.
@@ -247,7 +247,7 @@ public VirtualMachineUpdate withDiagnosticsProfile(DiagnosticsProfile diagnostic
     }
 
     /**
-     * Get the availabilitySet value.
+     * Get specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
      *
      * @return the availabilitySet value
      */
@@ -256,7 +256,7 @@ public SubResource availabilitySet() {
     }
 
     /**
-     * Set the availabilitySet value.
+     * Set specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
      *
      * @param availabilitySet the availabilitySet value to set
      * @return the VirtualMachineUpdate object itself.
@@ -267,7 +267,7 @@ public VirtualMachineUpdate withAvailabilitySet(SubResource availabilitySet) {
     }
 
     /**
-     * Get the provisioningState value.
+     * Get the provisioning state, which only appears in the response.
      *
      * @return the provisioningState value
      */
@@ -276,7 +276,7 @@ public String provisioningState() {
     }
 
     /**
-     * Get the instanceView value.
+     * Get the virtual machine instance view.
      *
      * @return the instanceView value
      */
@@ -285,7 +285,7 @@ public VirtualMachineInstanceViewInner instanceView() {
     }
 
     /**
-     * Get the licenseType value.
+     * Get specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @return the licenseType value
      */
@@ -294,7 +294,7 @@ public String licenseType() {
     }
 
     /**
-     * Set the licenseType value.
+     * Set specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @param licenseType the licenseType value to set
      * @return the VirtualMachineUpdate object itself.
@@ -305,7 +305,7 @@ public VirtualMachineUpdate withLicenseType(String licenseType) {
     }
 
     /**
-     * Get the vmId value.
+     * Get specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
      *
      * @return the vmId value
      */
@@ -314,7 +314,7 @@ public String vmId() {
     }
 
     /**
-     * Get the identity value.
+     * Get the identity of the virtual machine, if configured.
      *
      * @return the identity value
      */
@@ -323,7 +323,7 @@ public VirtualMachineIdentity identity() {
     }
 
     /**
-     * Set the identity value.
+     * Set the identity of the virtual machine, if configured.
      *
      * @param identity the identity value to set
      * @return the VirtualMachineUpdate object itself.
@@ -334,7 +334,7 @@ public VirtualMachineUpdate withIdentity(VirtualMachineIdentity identity) {
     }
 
     /**
-     * Get the zones value.
+     * Get the virtual machine zones.
      *
      * @return the zones value
      */
@@ -343,7 +343,7 @@ public List<String> zones() {
     }
 
     /**
-     * Set the zones value.
+     * Set the virtual machine zones.
      *
      * @param zones the zones value to set
      * @return the VirtualMachineUpdate object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachines.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachines.java
index 19735474f5b3f..1101d7e343c3b 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachines.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/VirtualMachines.java
@@ -8,21 +8,31 @@
 
 package com.microsoft.azure.management.compute.v2017_12_01;
 
-import com.microsoft.azure.arm.collection.SupportsCreating;
-import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
-import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
-import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
 import rx.Observable;
-import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
-import com.microsoft.azure.arm.collection.SupportsListing;
-import com.microsoft.azure.management.compute.v2017_12_01.implementation.VirtualMachinesInner;
-import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachine;
+import rx.Completable;
 import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineVirtualMachineSize;
 
 /**
  * Type representing VirtualMachines.
  */
-public interface VirtualMachines extends SupportsCreating<VirtualMachine.DefinitionStages.Blank>, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup<VirtualMachine>, SupportsListingByResourceGroup<VirtualMachine>, SupportsListing<VirtualMachine>, HasInner<VirtualMachinesInner> {
+public interface VirtualMachines {
+    /**
+     * Begins definition for a new VirtualMachine resource.
+     * @param name resource name.
+     * @return the first stage of the new VirtualMachine definition.
+     */
+    VirtualMachine.DefinitionStages.Blank defineVirtualMachine(String name);
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param location The location for which virtual machines under the subscription are queried.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable for the request
+     */
+    Observable<VirtualMachine> listByLocationAsync(final String location);
+
     /**
      * Captures the VM by copying virtual hard disks of the VM and outputs a template that can be used to create similar VMs.
      *
@@ -34,6 +44,26 @@ public interface VirtualMachines extends SupportsCreating<VirtualMachine.Definit
      */
     Observable<VirtualMachineCaptureResult> captureAsync(String resourceGroupName, String vmName, VirtualMachineCaptureParameters parameters);
 
+    /**
+     * The operation to delete a virtual machine.
+     *
+     * @param resourceGroupName The name of the resource group.
+     * @param vmName The name of the virtual machine.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable for the request
+     */
+    Observable<OperationStatusResponse> deleteAsync(String resourceGroupName, String vmName);
+
+    /**
+     * Retrieves information about the model view or the instance view of a virtual machine.
+     *
+     * @param resourceGroupName The name of the resource group.
+     * @param vmName The name of the virtual machine.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable for the request
+     */
+    Observable<VirtualMachine> getByResourceGroupAsync(String resourceGroupName, String vmName);
+
     /**
      * Retrieves information about the run-time state of a virtual machine.
      *
@@ -105,7 +135,7 @@ public interface VirtualMachines extends SupportsCreating<VirtualMachine.Definit
     Observable<OperationStatusResponse> startAsync(String resourceGroupName, String vmName);
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -135,6 +165,23 @@ public interface VirtualMachines extends SupportsCreating<VirtualMachine.Definit
      */
     Observable<RunCommandResult> runCommandAsync(String resourceGroupName, String vmName, RunCommandInput parameters);
 
+    /**
+     * Lists all of the virtual machines in the specified resource group. Use the nextLink property in the response to get the next page of virtual machines.
+     *
+     * @param resourceGroupName The name of the resource group.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable for the request
+     */
+    Observable<VirtualMachine> listByResourceGroupAsync(final String resourceGroupName);
+
+    /**
+     * Lists all of the virtual machines in the specified subscription. Use the nextLink property in the response to get the next page of virtual machines.
+     *
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable for the request
+     */
+    Observable<VirtualMachine> listAsync();
+
     /**
      * The operation to get all extensions of a Virtual Machine.
      *
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WinRMConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WinRMConfiguration.java
index 30bdcfe1e06ea..da00d7ac90516 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WinRMConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WinRMConfiguration.java
@@ -22,7 +22,7 @@ public class WinRMConfiguration {
     private List<WinRMListener> listeners;
 
     /**
-     * Get the listeners value.
+     * Get the list of Windows Remote Management listeners.
      *
      * @return the listeners value
      */
@@ -31,7 +31,7 @@ public List<WinRMListener> listeners() {
     }
 
     /**
-     * Set the listeners value.
+     * Set the list of Windows Remote Management listeners.
      *
      * @param listeners the listeners value to set
      * @return the WinRMConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WinRMListener.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WinRMListener.java
index 66941981f5083..0cf0c4c7fafa6 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WinRMListener.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WinRMListener.java
@@ -38,7 +38,7 @@ public class WinRMListener {
     private String certificateUrl;
 
     /**
-     * Get the protocol value.
+     * Get specifies the protocol of listener. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;**http** &lt;br&gt;&lt;br&gt; **https**. Possible values include: 'Http', 'Https'.
      *
      * @return the protocol value
      */
@@ -47,7 +47,7 @@ public ProtocolTypes protocol() {
     }
 
     /**
-     * Set the protocol value.
+     * Set specifies the protocol of listener. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;**http** &lt;br&gt;&lt;br&gt; **https**. Possible values include: 'Http', 'Https'.
      *
      * @param protocol the protocol value to set
      * @return the WinRMListener object itself.
@@ -58,7 +58,7 @@ public WinRMListener withProtocol(ProtocolTypes protocol) {
     }
 
     /**
-     * Get the certificateUrl value.
+     * Get this is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: &lt;br&gt;&lt;br&gt; {&lt;br&gt;  "data":"&lt;Base64-encoded-certificate&gt;",&lt;br&gt;  "dataType":"pfx",&lt;br&gt;  "password":"&lt;pfx-file-password&gt;"&lt;br&gt;}.
      *
      * @return the certificateUrl value
      */
@@ -67,7 +67,7 @@ public String certificateUrl() {
     }
 
     /**
-     * Set the certificateUrl value.
+     * Set this is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: &lt;br&gt;&lt;br&gt; {&lt;br&gt;  "data":"&lt;Base64-encoded-certificate&gt;",&lt;br&gt;  "dataType":"pfx",&lt;br&gt;  "password":"&lt;pfx-file-password&gt;"&lt;br&gt;}.
      *
      * @param certificateUrl the certificateUrl value to set
      * @return the WinRMListener object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WindowsConfiguration.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WindowsConfiguration.java
index a4276da6d0b6d..74eb118f148e9 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WindowsConfiguration.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/WindowsConfiguration.java
@@ -53,7 +53,7 @@ public class WindowsConfiguration {
     private WinRMConfiguration winRM;
 
     /**
-     * Get the provisionVMAgent value.
+     * Get indicates whether virtual machine agent should be provisioned on the virtual machine. &lt;br&gt;&lt;br&gt; When this property is not specified in the request body, default behavior is to set it to true.  This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
      *
      * @return the provisionVMAgent value
      */
@@ -62,7 +62,7 @@ public Boolean provisionVMAgent() {
     }
 
     /**
-     * Set the provisionVMAgent value.
+     * Set indicates whether virtual machine agent should be provisioned on the virtual machine. &lt;br&gt;&lt;br&gt; When this property is not specified in the request body, default behavior is to set it to true.  This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
      *
      * @param provisionVMAgent the provisionVMAgent value to set
      * @return the WindowsConfiguration object itself.
@@ -73,7 +73,7 @@ public WindowsConfiguration withProvisionVMAgent(Boolean provisionVMAgent) {
     }
 
     /**
-     * Get the enableAutomaticUpdates value.
+     * Get indicates whether virtual machine is enabled for automatic updates.
      *
      * @return the enableAutomaticUpdates value
      */
@@ -82,7 +82,7 @@ public Boolean enableAutomaticUpdates() {
     }
 
     /**
-     * Set the enableAutomaticUpdates value.
+     * Set indicates whether virtual machine is enabled for automatic updates.
      *
      * @param enableAutomaticUpdates the enableAutomaticUpdates value to set
      * @return the WindowsConfiguration object itself.
@@ -93,7 +93,7 @@ public WindowsConfiguration withEnableAutomaticUpdates(Boolean enableAutomaticUp
     }
 
     /**
-     * Get the timeZone value.
+     * Get specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".
      *
      * @return the timeZone value
      */
@@ -102,7 +102,7 @@ public String timeZone() {
     }
 
     /**
-     * Set the timeZone value.
+     * Set specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".
      *
      * @param timeZone the timeZone value to set
      * @return the WindowsConfiguration object itself.
@@ -113,7 +113,7 @@ public WindowsConfiguration withTimeZone(String timeZone) {
     }
 
     /**
-     * Get the additionalUnattendContent value.
+     * Get specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
      *
      * @return the additionalUnattendContent value
      */
@@ -122,7 +122,7 @@ public List<AdditionalUnattendContent> additionalUnattendContent() {
     }
 
     /**
-     * Set the additionalUnattendContent value.
+     * Set specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
      *
      * @param additionalUnattendContent the additionalUnattendContent value to set
      * @return the WindowsConfiguration object itself.
@@ -133,7 +133,7 @@ public WindowsConfiguration withAdditionalUnattendContent(List<AdditionalUnatten
     }
 
     /**
-     * Get the winRM value.
+     * Get specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
      *
      * @return the winRM value
      */
@@ -142,7 +142,7 @@ public WinRMConfiguration winRM() {
     }
 
     /**
-     * Set the winRM value.
+     * Set specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
      *
      * @param winRM the winRM value to set
      * @return the WindowsConfiguration object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetInner.java
index f702763348a1b..2eb55ea0c61cd 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetInner.java
@@ -22,7 +22,7 @@
  * set are allocated to different nodes to maximize availability. For more
  * information about availability sets, see [Manage the availability of virtual
  * machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
- * &lt;br&gt;&lt;br&gt; For more information on Azure planned maintainance, see
+ * &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see
  * [Planned maintenance for virtual machines in
  * Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
  * &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set
@@ -61,7 +61,7 @@ public class AvailabilitySetInner extends Resource {
     private Sku sku;
 
     /**
-     * Get the platformUpdateDomainCount value.
+     * Get update Domain count.
      *
      * @return the platformUpdateDomainCount value
      */
@@ -70,7 +70,7 @@ public Integer platformUpdateDomainCount() {
     }
 
     /**
-     * Set the platformUpdateDomainCount value.
+     * Set update Domain count.
      *
      * @param platformUpdateDomainCount the platformUpdateDomainCount value to set
      * @return the AvailabilitySetInner object itself.
@@ -81,7 +81,7 @@ public AvailabilitySetInner withPlatformUpdateDomainCount(Integer platformUpdate
     }
 
     /**
-     * Get the platformFaultDomainCount value.
+     * Get fault Domain count.
      *
      * @return the platformFaultDomainCount value
      */
@@ -90,7 +90,7 @@ public Integer platformFaultDomainCount() {
     }
 
     /**
-     * Set the platformFaultDomainCount value.
+     * Set fault Domain count.
      *
      * @param platformFaultDomainCount the platformFaultDomainCount value to set
      * @return the AvailabilitySetInner object itself.
@@ -101,7 +101,7 @@ public AvailabilitySetInner withPlatformFaultDomainCount(Integer platformFaultDo
     }
 
     /**
-     * Get the virtualMachines value.
+     * Get a list of references to all virtual machines in the availability set.
      *
      * @return the virtualMachines value
      */
@@ -110,7 +110,7 @@ public List<SubResource> virtualMachines() {
     }
 
     /**
-     * Set the virtualMachines value.
+     * Set a list of references to all virtual machines in the availability set.
      *
      * @param virtualMachines the virtualMachines value to set
      * @return the AvailabilitySetInner object itself.
@@ -121,7 +121,7 @@ public AvailabilitySetInner withVirtualMachines(List<SubResource> virtualMachine
     }
 
     /**
-     * Get the statuses value.
+     * Get the resource status information.
      *
      * @return the statuses value
      */
@@ -130,7 +130,7 @@ public List<InstanceViewStatus> statuses() {
     }
 
     /**
-     * Get the sku value.
+     * Get sku of the availability set.
      *
      * @return the sku value
      */
@@ -139,7 +139,7 @@ public Sku sku() {
     }
 
     /**
-     * Set the sku value.
+     * Set sku of the availability set.
      *
      * @param sku the sku value to set
      * @return the AvailabilitySetInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetsImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetsImpl.java
index 6ce355a240142..2a6b514d323ce 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetsImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetsImpl.java
@@ -84,10 +84,34 @@ public PagedList<AvailabilitySet> listByResourceGroup(String resourceGroupName)
     public Observable<AvailabilitySet> listByResourceGroupAsync(String resourceGroupName) {
         AvailabilitySetsInner client = this.inner();
         return client.listByResourceGroupAsync(resourceGroupName)
-        .flatMap(new Func1<Page<AvailabilitySetInner>, Observable<AvailabilitySetInner>>() {
+        .flatMapIterable(new Func1<Page<AvailabilitySetInner>, Iterable<AvailabilitySetInner>>() {
             @Override
-            public Observable<AvailabilitySetInner> call(Page<AvailabilitySetInner> innerPage) {
-                return Observable.from(innerPage.items());
+            public Iterable<AvailabilitySetInner> call(Page<AvailabilitySetInner> page) {
+                return page.items();
+            }
+        })
+        .map(new Func1<AvailabilitySetInner, AvailabilitySet>() {
+            @Override
+            public AvailabilitySet call(AvailabilitySetInner inner) {
+                return wrapModel(inner);
+            }
+        });
+    }
+
+    @Override
+    public PagedList<AvailabilitySet> list() {
+        AvailabilitySetsInner client = this.inner();
+        return this.wrapList(client.list());
+    }
+
+    @Override
+    public Observable<AvailabilitySet> listAsync() {
+        AvailabilitySetsInner client = this.inner();
+        return client.listAsync()
+        .flatMapIterable(new Func1<Page<AvailabilitySetInner>, Iterable<AvailabilitySetInner>>() {
+            @Override
+            public Iterable<AvailabilitySetInner> call(Page<AvailabilitySetInner> page) {
+                return page.items();
             }
         })
         .map(new Func1<AvailabilitySetInner, AvailabilitySet>() {
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetsInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetsInner.java
index fa14ad6ae1b65..6375d2cd4d697 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetsInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/AvailabilitySetsInner.java
@@ -10,9 +10,12 @@
 
 import com.microsoft.azure.arm.collection.InnerSupportsGet;
 import com.microsoft.azure.arm.collection.InnerSupportsDelete;
+import com.microsoft.azure.arm.collection.InnerSupportsListing;
 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.management.compute.v2017_12_01.AvailabilitySetUpdate;
 import com.microsoft.azure.Page;
 import com.microsoft.azure.PagedList;
@@ -32,6 +35,7 @@
 import retrofit2.http.Path;
 import retrofit2.http.PUT;
 import retrofit2.http.Query;
+import retrofit2.http.Url;
 import retrofit2.Response;
 import rx.functions.Func1;
 import rx.Observable;
@@ -40,7 +44,7 @@
  * An instance of this class provides access to all the operations defined
  * in AvailabilitySets.
  */
-public class AvailabilitySetsInner implements InnerSupportsGet<AvailabilitySetInner>, InnerSupportsDelete<OperationStatusResponseInner> {
+public class AvailabilitySetsInner implements InnerSupportsGet<AvailabilitySetInner>, InnerSupportsDelete<OperationStatusResponseInner>, InnerSupportsListing<AvailabilitySetInner> {
     /** The Retrofit service to perform REST calls. */
     private AvailabilitySetsService service;
     /** The service client containing this operation class. */
@@ -78,6 +82,10 @@ interface AvailabilitySetsService {
         @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
         Observable<Response<ResponseBody>> getByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("availabilitySetName") String availabilitySetName, @Path("subscriptionId") String subscriptionId, @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.compute.v2017_12_01.AvailabilitySets list" })
+        @GET("subscriptions/{subscriptionId}/providers/Microsoft.Compute/availabilitySets")
+        Observable<Response<ResponseBody>> list(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Query("$expand") String expand, @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.compute.v2017_12_01.AvailabilitySets listByResourceGroup" })
         @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets")
         Observable<Response<ResponseBody>> listByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@@ -86,6 +94,14 @@ interface AvailabilitySetsService {
         @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}/vmSizes")
         Observable<Response<ResponseBody>> listAvailableSizes(@Path("resourceGroupName") String resourceGroupName, @Path("availabilitySetName") String availabilitySetName, @Path("subscriptionId") String subscriptionId, @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.compute.v2017_12_01.AvailabilitySets listNext" })
+        @GET
+        Observable<Response<ResponseBody>> listNext(@Url String nextUrl, @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.compute.v2017_12_01.AvailabilitySets listByResourceGroupNext" })
+        @GET
+        Observable<Response<ResponseBody>> listByResourceGroupNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
     }
 
     /**
@@ -449,20 +465,234 @@ private ServiceResponse<AvailabilitySetInner> getByResourceGroupDelegate(Respons
                 .build(response);
     }
 
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @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&lt;AvailabilitySetInner&gt; object if successful.
+     */
+    public PagedList<AvailabilitySetInner> list() {
+        ServiceResponse<Page<AvailabilitySetInner>> response = listSinglePageAsync().toBlocking().single();
+        return new PagedList<AvailabilitySetInner>(response.body()) {
+            @Override
+            public Page<AvailabilitySetInner> nextPage(String nextPageLink) {
+                return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+            }
+        };
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @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<List<AvailabilitySetInner>> listAsync(final ListOperationCallback<AvailabilitySetInner> serviceCallback) {
+        return AzureServiceFuture.fromPageResponse(
+            listSinglePageAsync(),
+            new Func1<String, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(String nextPageLink) {
+                    return listNextSinglePageAsync(nextPageLink);
+                }
+            },
+            serviceCallback);
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<Page<AvailabilitySetInner>> listAsync() {
+        return listWithServiceResponseAsync()
+            .map(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Page<AvailabilitySetInner>>() {
+                @Override
+                public Page<AvailabilitySetInner> call(ServiceResponse<Page<AvailabilitySetInner>> response) {
+                    return response.body();
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listWithServiceResponseAsync() {
+        return listSinglePageAsync()
+            .concatMap(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(ServiceResponse<Page<AvailabilitySetInner>> page) {
+                    String nextPageLink = page.body().nextPageLink();
+                    if (nextPageLink == null) {
+                        return Observable.just(page);
+                    }
+                    return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the PagedList&lt;AvailabilitySetInner&gt; object wrapped in {@link ServiceResponse} if successful.
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listSinglePageAsync() {
+        if (this.client.subscriptionId() == null) {
+            throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+        }
+        if (this.client.apiVersion() == null) {
+            throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+        }
+        final String expand = null;
+        return service.list(this.client.subscriptionId(), this.client.apiVersion(), expand, this.client.acceptLanguage(), this.client.userAgent())
+            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(Response<ResponseBody> response) {
+                    try {
+                        ServiceResponse<PageImpl1<AvailabilitySetInner>> result = listDelegate(response);
+                        return Observable.just(new ServiceResponse<Page<AvailabilitySetInner>>(result.body(), result.response()));
+                    } catch (Throwable t) {
+                        return Observable.error(t);
+                    }
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
+     * @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&lt;AvailabilitySetInner&gt; object if successful.
+     */
+    public PagedList<AvailabilitySetInner> list(final String expand) {
+        ServiceResponse<Page<AvailabilitySetInner>> response = listSinglePageAsync(expand).toBlocking().single();
+        return new PagedList<AvailabilitySetInner>(response.body()) {
+            @Override
+            public Page<AvailabilitySetInner> nextPage(String nextPageLink) {
+                return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+            }
+        };
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
+     * @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<List<AvailabilitySetInner>> listAsync(final String expand, final ListOperationCallback<AvailabilitySetInner> serviceCallback) {
+        return AzureServiceFuture.fromPageResponse(
+            listSinglePageAsync(expand),
+            new Func1<String, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(String nextPageLink) {
+                    return listNextSinglePageAsync(nextPageLink);
+                }
+            },
+            serviceCallback);
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<Page<AvailabilitySetInner>> listAsync(final String expand) {
+        return listWithServiceResponseAsync(expand)
+            .map(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Page<AvailabilitySetInner>>() {
+                @Override
+                public Page<AvailabilitySetInner> call(ServiceResponse<Page<AvailabilitySetInner>> response) {
+                    return response.body();
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listWithServiceResponseAsync(final String expand) {
+        return listSinglePageAsync(expand)
+            .concatMap(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(ServiceResponse<Page<AvailabilitySetInner>> page) {
+                    String nextPageLink = page.body().nextPageLink();
+                    if (nextPageLink == null) {
+                        return Observable.just(page);
+                    }
+                    return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+    ServiceResponse<PageImpl1<AvailabilitySetInner>> * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the PagedList&lt;AvailabilitySetInner&gt; object wrapped in {@link ServiceResponse} if successful.
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listSinglePageAsync(final String expand) {
+        if (this.client.subscriptionId() == null) {
+            throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+        }
+        if (this.client.apiVersion() == null) {
+            throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+        }
+        return service.list(this.client.subscriptionId(), this.client.apiVersion(), expand, this.client.acceptLanguage(), this.client.userAgent())
+            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(Response<ResponseBody> response) {
+                    try {
+                        ServiceResponse<PageImpl1<AvailabilitySetInner>> result = listDelegate(response);
+                        return Observable.just(new ServiceResponse<Page<AvailabilitySetInner>>(result.body(), result.response()));
+                    } catch (Throwable t) {
+                        return Observable.error(t);
+                    }
+                }
+            });
+    }
+
+    private ServiceResponse<PageImpl1<AvailabilitySetInner>> listDelegate(Response<ResponseBody> response) throws CloudException, IOException, IllegalArgumentException {
+        return this.client.restClient().responseBuilderFactory().<PageImpl1<AvailabilitySetInner>, CloudException>newInstance(this.client.serializerAdapter())
+                .register(200, new TypeToken<PageImpl1<AvailabilitySetInner>>() { }.getType())
+                .registerError(CloudException.class)
+                .build(response);
+    }
+
     /**
      * Lists all availability sets in a resource group.
      *
      * @param resourceGroupName The name of the resource group.
-     * @return the PagedList<AvailabilitySetInner> object if successful.
+     * @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&lt;AvailabilitySetInner&gt; object if successful.
      */
-    public PagedList<AvailabilitySetInner> listByResourceGroup(String resourceGroupName) {
-        PageImpl<AvailabilitySetInner> page = new PageImpl<>();
-        page.setItems(listByResourceGroupWithServiceResponseAsync(resourceGroupName).toBlocking().single().body());
-        page.setNextPageLink(null);
-        return new PagedList<AvailabilitySetInner>(page) {
+    public PagedList<AvailabilitySetInner> listByResourceGroup(final String resourceGroupName) {
+        ServiceResponse<Page<AvailabilitySetInner>> response = listByResourceGroupSinglePageAsync(resourceGroupName).toBlocking().single();
+        return new PagedList<AvailabilitySetInner>(response.body()) {
             @Override
             public Page<AvailabilitySetInner> nextPage(String nextPageLink) {
-                return null;
+                return listByResourceGroupNextSinglePageAsync(nextPageLink).toBlocking().single().body();
             }
         };
     }
@@ -472,36 +702,67 @@ public Page<AvailabilitySetInner> nextPage(String nextPageLink) {
      *
      * @param resourceGroupName The name of the resource group.
      * @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<List<AvailabilitySetInner>> listByResourceGroupAsync(String resourceGroupName, final ServiceCallback<List<AvailabilitySetInner>> serviceCallback) {
-        return ServiceFuture.fromResponse(listByResourceGroupWithServiceResponseAsync(resourceGroupName), serviceCallback);
+    public ServiceFuture<List<AvailabilitySetInner>> listByResourceGroupAsync(final String resourceGroupName, final ListOperationCallback<AvailabilitySetInner> serviceCallback) {
+        return AzureServiceFuture.fromPageResponse(
+            listByResourceGroupSinglePageAsync(resourceGroupName),
+            new Func1<String, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(String nextPageLink) {
+                    return listByResourceGroupNextSinglePageAsync(nextPageLink);
+                }
+            },
+            serviceCallback);
     }
 
     /**
      * Lists all availability sets in a resource group.
      *
      * @param resourceGroupName The name of the resource group.
-     * @return the observable to the List&lt;AvailabilitySetInner&gt; object
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
      */
-    public Observable<Page<AvailabilitySetInner>> listByResourceGroupAsync(String resourceGroupName) {
-        return listByResourceGroupWithServiceResponseAsync(resourceGroupName).map(new Func1<ServiceResponse<List<AvailabilitySetInner>>, Page<AvailabilitySetInner>>() {
-            @Override
-            public Page<AvailabilitySetInner> call(ServiceResponse<List<AvailabilitySetInner>> response) {
-                PageImpl<AvailabilitySetInner> page = new PageImpl<>();
-                page.setItems(response.body());
-                return page;
-            }
-        });
+    public Observable<Page<AvailabilitySetInner>> listByResourceGroupAsync(final String resourceGroupName) {
+        return listByResourceGroupWithServiceResponseAsync(resourceGroupName)
+            .map(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Page<AvailabilitySetInner>>() {
+                @Override
+                public Page<AvailabilitySetInner> call(ServiceResponse<Page<AvailabilitySetInner>> response) {
+                    return response.body();
+                }
+            });
     }
 
     /**
      * Lists all availability sets in a resource group.
      *
      * @param resourceGroupName The name of the resource group.
-     * @return the observable to the List&lt;AvailabilitySetInner&gt; object
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listByResourceGroupWithServiceResponseAsync(final String resourceGroupName) {
+        return listByResourceGroupSinglePageAsync(resourceGroupName)
+            .concatMap(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(ServiceResponse<Page<AvailabilitySetInner>> page) {
+                    String nextPageLink = page.body().nextPageLink();
+                    if (nextPageLink == null) {
+                        return Observable.just(page);
+                    }
+                    return Observable.just(page).concatWith(listByResourceGroupNextWithServiceResponseAsync(nextPageLink));
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a resource group.
+     *
+    ServiceResponse<PageImpl1<AvailabilitySetInner>> * @param resourceGroupName The name of the resource group.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the PagedList&lt;AvailabilitySetInner&gt; object wrapped in {@link ServiceResponse} if successful.
      */
-    public Observable<ServiceResponse<List<AvailabilitySetInner>>> listByResourceGroupWithServiceResponseAsync(String resourceGroupName) {
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listByResourceGroupSinglePageAsync(final String resourceGroupName) {
         if (resourceGroupName == null) {
             throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
         }
@@ -512,17 +773,12 @@ public Observable<ServiceResponse<List<AvailabilitySetInner>>> listByResourceGro
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         return service.listByResourceGroup(resourceGroupName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
-            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<List<AvailabilitySetInner>>>>() {
+            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
                 @Override
-                public Observable<ServiceResponse<List<AvailabilitySetInner>>> call(Response<ResponseBody> response) {
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(Response<ResponseBody> response) {
                     try {
-                        ServiceResponse<PageImpl<AvailabilitySetInner>> result = listByResourceGroupDelegate(response);
-                        List<AvailabilitySetInner> items = null;
-                        if (result.body() != null) {
-                            items = result.body().items();
-                        }
-                        ServiceResponse<List<AvailabilitySetInner>> clientResponse = new ServiceResponse<List<AvailabilitySetInner>>(items, result.response());
-                        return Observable.just(clientResponse);
+                        ServiceResponse<PageImpl1<AvailabilitySetInner>> result = listByResourceGroupDelegate(response);
+                        return Observable.just(new ServiceResponse<Page<AvailabilitySetInner>>(result.body(), result.response()));
                     } catch (Throwable t) {
                         return Observable.error(t);
                     }
@@ -530,9 +786,9 @@ public Observable<ServiceResponse<List<AvailabilitySetInner>>> call(Response<Res
             });
     }
 
-    private ServiceResponse<PageImpl<AvailabilitySetInner>> listByResourceGroupDelegate(Response<ResponseBody> response) throws CloudException, IOException, IllegalArgumentException {
-        return this.client.restClient().responseBuilderFactory().<PageImpl<AvailabilitySetInner>, CloudException>newInstance(this.client.serializerAdapter())
-                .register(200, new TypeToken<PageImpl<AvailabilitySetInner>>() { }.getType())
+    private ServiceResponse<PageImpl1<AvailabilitySetInner>> listByResourceGroupDelegate(Response<ResponseBody> response) throws CloudException, IOException, IllegalArgumentException {
+        return this.client.restClient().responseBuilderFactory().<PageImpl1<AvailabilitySetInner>, CloudException>newInstance(this.client.serializerAdapter())
+                .register(200, new TypeToken<PageImpl1<AvailabilitySetInner>>() { }.getType())
                 .registerError(CloudException.class)
                 .build(response);
     }
@@ -628,4 +884,226 @@ private ServiceResponse<PageImpl<VirtualMachineSizeInner>> listAvailableSizesDel
                 .build(response);
     }
 
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @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&lt;AvailabilitySetInner&gt; object if successful.
+     */
+    public PagedList<AvailabilitySetInner> listNext(final String nextPageLink) {
+        ServiceResponse<Page<AvailabilitySetInner>> response = listNextSinglePageAsync(nextPageLink).toBlocking().single();
+        return new PagedList<AvailabilitySetInner>(response.body()) {
+            @Override
+            public Page<AvailabilitySetInner> nextPage(String nextPageLink) {
+                return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+            }
+        };
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+     * @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<List<AvailabilitySetInner>> listNextAsync(final String nextPageLink, final ServiceFuture<List<AvailabilitySetInner>> serviceFuture, final ListOperationCallback<AvailabilitySetInner> serviceCallback) {
+        return AzureServiceFuture.fromPageResponse(
+            listNextSinglePageAsync(nextPageLink),
+            new Func1<String, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(String nextPageLink) {
+                    return listNextSinglePageAsync(nextPageLink);
+                }
+            },
+            serviceCallback);
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<Page<AvailabilitySetInner>> listNextAsync(final String nextPageLink) {
+        return listNextWithServiceResponseAsync(nextPageLink)
+            .map(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Page<AvailabilitySetInner>>() {
+                @Override
+                public Page<AvailabilitySetInner> call(ServiceResponse<Page<AvailabilitySetInner>> response) {
+                    return response.body();
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listNextWithServiceResponseAsync(final String nextPageLink) {
+        return listNextSinglePageAsync(nextPageLink)
+            .concatMap(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(ServiceResponse<Page<AvailabilitySetInner>> page) {
+                    String nextPageLink = page.body().nextPageLink();
+                    if (nextPageLink == null) {
+                        return Observable.just(page);
+                    }
+                    return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a subscription.
+     *
+    ServiceResponse<PageImpl1<AvailabilitySetInner>> * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the PagedList&lt;AvailabilitySetInner&gt; object wrapped in {@link ServiceResponse} if successful.
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listNextSinglePageAsync(final String nextPageLink) {
+        if (nextPageLink == null) {
+            throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+        }
+        String nextUrl = String.format("%s", nextPageLink);
+        return service.listNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(Response<ResponseBody> response) {
+                    try {
+                        ServiceResponse<PageImpl1<AvailabilitySetInner>> result = listNextDelegate(response);
+                        return Observable.just(new ServiceResponse<Page<AvailabilitySetInner>>(result.body(), result.response()));
+                    } catch (Throwable t) {
+                        return Observable.error(t);
+                    }
+                }
+            });
+    }
+
+    private ServiceResponse<PageImpl1<AvailabilitySetInner>> listNextDelegate(Response<ResponseBody> response) throws CloudException, IOException, IllegalArgumentException {
+        return this.client.restClient().responseBuilderFactory().<PageImpl1<AvailabilitySetInner>, CloudException>newInstance(this.client.serializerAdapter())
+                .register(200, new TypeToken<PageImpl1<AvailabilitySetInner>>() { }.getType())
+                .registerError(CloudException.class)
+                .build(response);
+    }
+
+    /**
+     * Lists all availability sets in a resource group.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @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&lt;AvailabilitySetInner&gt; object if successful.
+     */
+    public PagedList<AvailabilitySetInner> listByResourceGroupNext(final String nextPageLink) {
+        ServiceResponse<Page<AvailabilitySetInner>> response = listByResourceGroupNextSinglePageAsync(nextPageLink).toBlocking().single();
+        return new PagedList<AvailabilitySetInner>(response.body()) {
+            @Override
+            public Page<AvailabilitySetInner> nextPage(String nextPageLink) {
+                return listByResourceGroupNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+            }
+        };
+    }
+
+    /**
+     * Lists all availability sets in a resource group.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+     * @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<List<AvailabilitySetInner>> listByResourceGroupNextAsync(final String nextPageLink, final ServiceFuture<List<AvailabilitySetInner>> serviceFuture, final ListOperationCallback<AvailabilitySetInner> serviceCallback) {
+        return AzureServiceFuture.fromPageResponse(
+            listByResourceGroupNextSinglePageAsync(nextPageLink),
+            new Func1<String, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(String nextPageLink) {
+                    return listByResourceGroupNextSinglePageAsync(nextPageLink);
+                }
+            },
+            serviceCallback);
+    }
+
+    /**
+     * Lists all availability sets in a resource group.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<Page<AvailabilitySetInner>> listByResourceGroupNextAsync(final String nextPageLink) {
+        return listByResourceGroupNextWithServiceResponseAsync(nextPageLink)
+            .map(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Page<AvailabilitySetInner>>() {
+                @Override
+                public Page<AvailabilitySetInner> call(ServiceResponse<Page<AvailabilitySetInner>> response) {
+                    return response.body();
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a resource group.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;AvailabilitySetInner&gt; object
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listByResourceGroupNextWithServiceResponseAsync(final String nextPageLink) {
+        return listByResourceGroupNextSinglePageAsync(nextPageLink)
+            .concatMap(new Func1<ServiceResponse<Page<AvailabilitySetInner>>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(ServiceResponse<Page<AvailabilitySetInner>> page) {
+                    String nextPageLink = page.body().nextPageLink();
+                    if (nextPageLink == null) {
+                        return Observable.just(page);
+                    }
+                    return Observable.just(page).concatWith(listByResourceGroupNextWithServiceResponseAsync(nextPageLink));
+                }
+            });
+    }
+
+    /**
+     * Lists all availability sets in a resource group.
+     *
+    ServiceResponse<PageImpl1<AvailabilitySetInner>> * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the PagedList&lt;AvailabilitySetInner&gt; object wrapped in {@link ServiceResponse} if successful.
+     */
+    public Observable<ServiceResponse<Page<AvailabilitySetInner>>> listByResourceGroupNextSinglePageAsync(final String nextPageLink) {
+        if (nextPageLink == null) {
+            throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+        }
+        String nextUrl = String.format("%s", nextPageLink);
+        return service.listByResourceGroupNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<Page<AvailabilitySetInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<AvailabilitySetInner>>> call(Response<ResponseBody> response) {
+                    try {
+                        ServiceResponse<PageImpl1<AvailabilitySetInner>> result = listByResourceGroupNextDelegate(response);
+                        return Observable.just(new ServiceResponse<Page<AvailabilitySetInner>>(result.body(), result.response()));
+                    } catch (Throwable t) {
+                        return Observable.error(t);
+                    }
+                }
+            });
+    }
+
+    private ServiceResponse<PageImpl1<AvailabilitySetInner>> listByResourceGroupNextDelegate(Response<ResponseBody> response) throws CloudException, IOException, IllegalArgumentException {
+        return this.client.restClient().responseBuilderFactory().<PageImpl1<AvailabilitySetInner>, CloudException>newInstance(this.client.serializerAdapter())
+                .register(200, new TypeToken<PageImpl1<AvailabilitySetInner>>() { }.getType())
+                .registerError(CloudException.class)
+                .build(response);
+    }
+
 }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ComputeManagementClientImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ComputeManagementClientImpl.java
index c8ac26af222b1..46548a84784d5 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ComputeManagementClientImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ComputeManagementClientImpl.java
@@ -10,6 +10,8 @@
 
 import com.microsoft.azure.AzureClient;
 import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.azure.LongRunningFinalState;
+import com.microsoft.azure.LongRunningOperationOptions;
 import com.microsoft.rest.credentials.ServiceClientCredentials;
 import com.microsoft.rest.RestClient;
 
@@ -63,11 +65,11 @@ public String apiVersion() {
         return this.apiVersion;
     }
 
-    /** Gets or sets the preferred language for the response. */
+    /** The preferred language for the response. */
     private String acceptLanguage;
 
     /**
-     * Gets Gets or sets the preferred language for the response.
+     * Gets The preferred language for the response.
      *
      * @return the acceptLanguage value.
      */
@@ -76,7 +78,7 @@ public String acceptLanguage() {
     }
 
     /**
-     * Sets Gets or sets the preferred language for the response.
+     * Sets The preferred language for the response.
      *
      * @param acceptLanguage the acceptLanguage value.
      * @return the service client itself
@@ -86,11 +88,11 @@ public ComputeManagementClientImpl withAcceptLanguage(String acceptLanguage) {
         return this;
     }
 
-    /** Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30. */
+    /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
     private int longRunningOperationRetryTimeout;
 
     /**
-     * Gets Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30.
+     * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
      *
      * @return the longRunningOperationRetryTimeout value.
      */
@@ -99,7 +101,7 @@ public int longRunningOperationRetryTimeout() {
     }
 
     /**
-     * Sets Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30.
+     * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
      *
      * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
      * @return the service client itself
@@ -109,11 +111,11 @@ public ComputeManagementClientImpl withLongRunningOperationRetryTimeout(int long
         return this;
     }
 
-    /** When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+    /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
     private boolean generateClientRequestId;
 
     /**
-     * Gets When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+     * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
      *
      * @return the generateClientRequestId value.
      */
@@ -122,7 +124,7 @@ public boolean generateClientRequestId() {
     }
 
     /**
-     * Sets When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+     * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
      *
      * @param generateClientRequestId the generateClientRequestId value.
      * @return the service client itself
@@ -387,6 +389,6 @@ protected void initialize() {
      */
     @Override
     public String userAgent() {
-        return String.format("%s (%s, %s)", super.userAgent(), "ComputeManagementClient", "2017-12-01");
+        return String.format("%s (%s, %s, auto-generated)", super.userAgent(), "ComputeManagementClient", "2017-12-01");
     }
 }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ComputeOperationValueInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ComputeOperationValueInner.java
index e82311886fd3d..c41754b4b0acb 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ComputeOperationValueInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ComputeOperationValueInner.java
@@ -53,7 +53,7 @@ public class ComputeOperationValueInner {
     private String provider;
 
     /**
-     * Get the origin value.
+     * Get the origin of the compute operation.
      *
      * @return the origin value
      */
@@ -62,7 +62,7 @@ public String origin() {
     }
 
     /**
-     * Get the name value.
+     * Get the name of the compute operation.
      *
      * @return the name value
      */
@@ -71,7 +71,7 @@ public String name() {
     }
 
     /**
-     * Get the operation value.
+     * Get the display name of the compute operation.
      *
      * @return the operation value
      */
@@ -80,7 +80,7 @@ public String operation() {
     }
 
     /**
-     * Get the resource value.
+     * Get the display name of the resource the operation applies to.
      *
      * @return the resource value
      */
@@ -89,7 +89,7 @@ public String resource() {
     }
 
     /**
-     * Get the description value.
+     * Get the description of the operation.
      *
      * @return the description value
      */
@@ -98,7 +98,7 @@ public String description() {
     }
 
     /**
-     * Get the provider value.
+     * Get the resource provider for the operation.
      *
      * @return the provider value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ImageInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ImageInner.java
index 8677533dc069d..e1f7806ff7297 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ImageInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/ImageInner.java
@@ -40,7 +40,7 @@ public class ImageInner extends Resource {
     private String provisioningState;
 
     /**
-     * Get the sourceVirtualMachine value.
+     * Get the source virtual machine from which Image is created.
      *
      * @return the sourceVirtualMachine value
      */
@@ -49,7 +49,7 @@ public SubResource sourceVirtualMachine() {
     }
 
     /**
-     * Set the sourceVirtualMachine value.
+     * Set the source virtual machine from which Image is created.
      *
      * @param sourceVirtualMachine the sourceVirtualMachine value to set
      * @return the ImageInner object itself.
@@ -60,7 +60,7 @@ public ImageInner withSourceVirtualMachine(SubResource sourceVirtualMachine) {
     }
 
     /**
-     * Get the storageProfile value.
+     * Get specifies the storage settings for the virtual machine disks.
      *
      * @return the storageProfile value
      */
@@ -69,7 +69,7 @@ public ImageStorageProfile storageProfile() {
     }
 
     /**
-     * Set the storageProfile value.
+     * Set specifies the storage settings for the virtual machine disks.
      *
      * @param storageProfile the storageProfile value to set
      * @return the ImageInner object itself.
@@ -80,7 +80,7 @@ public ImageInner withStorageProfile(ImageStorageProfile storageProfile) {
     }
 
     /**
-     * Get the provisioningState value.
+     * Get the provisioning state.
      *
      * @return the provisioningState value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/LogAnalyticsInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/LogAnalyticsInner.java
index 80dd9094b0d01..6356a7bd0d9e2 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/LogAnalyticsInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/LogAnalyticsInner.java
@@ -28,6 +28,8 @@
 import retrofit2.Response;
 import rx.functions.Func1;
 import rx.Observable;
+import com.microsoft.azure.LongRunningFinalState;
+import com.microsoft.azure.LongRunningOperationOptions;
 
 /**
  * An instance of this class provides access to all the operations defined
@@ -140,7 +142,7 @@ public Observable<ServiceResponse<LogAnalyticsOperationResultInner>> exportReque
         }
         Validator.validate(parameters);
         Observable<Response<ResponseBody>> observable = service.exportRequestRateByInterval(location, this.client.subscriptionId(), parameters, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<LogAnalyticsOperationResultInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<LogAnalyticsOperationResultInner>() { }.getType());
     }
 
     /**
@@ -298,7 +300,7 @@ public Observable<ServiceResponse<LogAnalyticsOperationResultInner>> exportThrot
         }
         Validator.validate(parameters);
         Observable<Response<ResponseBody>> observable = service.exportThrottledRequests(location, this.client.subscriptionId(), parameters, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<LogAnalyticsOperationResultInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<LogAnalyticsOperationResultInner>() { }.getType());
     }
 
     /**
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/LogAnalyticsOperationResultInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/LogAnalyticsOperationResultInner.java
index 86e31eb7330c4..afca07fcf0518 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/LogAnalyticsOperationResultInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/LogAnalyticsOperationResultInner.java
@@ -22,7 +22,7 @@ public class LogAnalyticsOperationResultInner extends OperationStatusResponseInn
     private LogAnalyticsOutput properties;
 
     /**
-     * Get the properties value.
+     * Get logAnalyticsOutput.
      *
      * @return the properties value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/OperationStatusResponseInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/OperationStatusResponseInner.java
index 66f3b7784f70a..ef1d5db2a087d 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/OperationStatusResponseInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/OperationStatusResponseInner.java
@@ -47,7 +47,7 @@ public class OperationStatusResponseInner {
     private ApiError error;
 
     /**
-     * Get the name value.
+     * Get operation ID.
      *
      * @return the name value
      */
@@ -56,7 +56,7 @@ public String name() {
     }
 
     /**
-     * Get the status value.
+     * Get operation status.
      *
      * @return the status value
      */
@@ -65,7 +65,7 @@ public String status() {
     }
 
     /**
-     * Get the startTime value.
+     * Get start time of the operation.
      *
      * @return the startTime value
      */
@@ -74,7 +74,7 @@ public DateTime startTime() {
     }
 
     /**
-     * Get the endTime value.
+     * Get end time of the operation.
      *
      * @return the endTime value
      */
@@ -83,7 +83,7 @@ public DateTime endTime() {
     }
 
     /**
-     * Get the error value.
+     * Get api error.
      *
      * @return the error value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/OperationsImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/OperationsImpl.java
index abee543a7818b..fc45996cbeece 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/OperationsImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/OperationsImpl.java
@@ -37,7 +37,8 @@ public Observable<ComputeOperationValue> listAsync() {
             public Observable<ComputeOperationValueInner> call(List<ComputeOperationValueInner> innerList) {
                 return Observable.from(innerList);
             }
-        })    .map(new Func1<ComputeOperationValueInner, ComputeOperationValue>() {
+        })
+        .map(new Func1<ComputeOperationValueInner, ComputeOperationValue>() {
             @Override
             public ComputeOperationValue call(ComputeOperationValueInner inner) {
                 return new ComputeOperationValueImpl(inner, manager());
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RecoveryWalkResponseInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RecoveryWalkResponseInner.java
index c77b8cec2975e..c58bd81dfb026 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RecoveryWalkResponseInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RecoveryWalkResponseInner.java
@@ -28,7 +28,7 @@ public class RecoveryWalkResponseInner {
     private Integer nextPlatformUpdateDomain;
 
     /**
-     * Get the walkPerformed value.
+     * Get whether the recovery walk was performed.
      *
      * @return the walkPerformed value
      */
@@ -37,7 +37,7 @@ public Boolean walkPerformed() {
     }
 
     /**
-     * Get the nextPlatformUpdateDomain value.
+     * Get the next update domain that needs to be walked. Null means walk spanning all update domains has been completed.
      *
      * @return the nextPlatformUpdateDomain value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RollingUpgradeStatusInfoInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RollingUpgradeStatusInfoInner.java
index 0af22fd1bbf42..3e41bafe67f3f 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RollingUpgradeStatusInfoInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RollingUpgradeStatusInfoInner.java
@@ -47,7 +47,7 @@ public class RollingUpgradeStatusInfoInner extends Resource {
     private ApiError error;
 
     /**
-     * Get the policy value.
+     * Get the rolling upgrade policies applied for this upgrade.
      *
      * @return the policy value
      */
@@ -56,7 +56,7 @@ public RollingUpgradePolicy policy() {
     }
 
     /**
-     * Get the runningStatus value.
+     * Get information about the current running state of the overall upgrade.
      *
      * @return the runningStatus value
      */
@@ -65,7 +65,7 @@ public RollingUpgradeRunningStatus runningStatus() {
     }
 
     /**
-     * Get the progress value.
+     * Get information about the number of virtual machine instances in each upgrade state.
      *
      * @return the progress value
      */
@@ -74,7 +74,7 @@ public RollingUpgradeProgressInfo progress() {
     }
 
     /**
-     * Get the error value.
+     * Get error details for this upgrade, if there are any.
      *
      * @return the error value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentBaseInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentBaseInner.java
index 11ee1a247b1ee..2123b1fcaade0 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentBaseInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentBaseInner.java
@@ -46,7 +46,7 @@ public class RunCommandDocumentBaseInner {
     private String description;
 
     /**
-     * Get the schema value.
+     * Get the VM run command schema.
      *
      * @return the schema value
      */
@@ -55,7 +55,7 @@ public String schema() {
     }
 
     /**
-     * Set the schema value.
+     * Set the VM run command schema.
      *
      * @param schema the schema value to set
      * @return the RunCommandDocumentBaseInner object itself.
@@ -66,7 +66,7 @@ public RunCommandDocumentBaseInner withSchema(String schema) {
     }
 
     /**
-     * Get the id value.
+     * Get the VM run command id.
      *
      * @return the id value
      */
@@ -75,7 +75,7 @@ public String id() {
     }
 
     /**
-     * Set the id value.
+     * Set the VM run command id.
      *
      * @param id the id value to set
      * @return the RunCommandDocumentBaseInner object itself.
@@ -86,7 +86,7 @@ public RunCommandDocumentBaseInner withId(String id) {
     }
 
     /**
-     * Get the osType value.
+     * Get the Operating System type. Possible values include: 'Windows', 'Linux'.
      *
      * @return the osType value
      */
@@ -95,7 +95,7 @@ public OperatingSystemTypes osType() {
     }
 
     /**
-     * Set the osType value.
+     * Set the Operating System type. Possible values include: 'Windows', 'Linux'.
      *
      * @param osType the osType value to set
      * @return the RunCommandDocumentBaseInner object itself.
@@ -106,7 +106,7 @@ public RunCommandDocumentBaseInner withOsType(OperatingSystemTypes osType) {
     }
 
     /**
-     * Get the label value.
+     * Get the VM run command label.
      *
      * @return the label value
      */
@@ -115,7 +115,7 @@ public String label() {
     }
 
     /**
-     * Set the label value.
+     * Set the VM run command label.
      *
      * @param label the label value to set
      * @return the RunCommandDocumentBaseInner object itself.
@@ -126,7 +126,7 @@ public RunCommandDocumentBaseInner withLabel(String label) {
     }
 
     /**
-     * Get the description value.
+     * Get the VM run command description.
      *
      * @return the description value
      */
@@ -135,7 +135,7 @@ public String description() {
     }
 
     /**
-     * Set the description value.
+     * Set the VM run command description.
      *
      * @param description the description value to set
      * @return the RunCommandDocumentBaseInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentImpl.java
index 090c559e1f0bf..50cb3bc33ff46 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentImpl.java
@@ -23,6 +23,7 @@ class RunCommandDocumentImpl extends IndexableRefreshableWrapperImpl<RunCommandD
     RunCommandDocumentImpl(RunCommandDocumentInner inner,  ComputeManager manager) {
         super(null, inner);
         this.manager = manager;
+        // set resource ancestor and positional variables
         this.location = IdParsingUtils.getValueFromIdByName(inner.id(), "locations");
         this.commandId = IdParsingUtils.getValueFromIdByName(inner.id(), "runCommands");
     }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentInner.java
index ba8b20178115c..e54ad7176894a 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandDocumentInner.java
@@ -29,7 +29,7 @@ public class RunCommandDocumentInner extends RunCommandDocumentBaseInner {
     private List<RunCommandParameterDefinition> parameters;
 
     /**
-     * Get the script value.
+     * Get the script to be executed.
      *
      * @return the script value
      */
@@ -38,7 +38,7 @@ public List<String> script() {
     }
 
     /**
-     * Set the script value.
+     * Set the script to be executed.
      *
      * @param script the script value to set
      * @return the RunCommandDocumentInner object itself.
@@ -49,7 +49,7 @@ public RunCommandDocumentInner withScript(List<String> script) {
     }
 
     /**
-     * Get the parameters value.
+     * Get the parameters used by the script.
      *
      * @return the parameters value
      */
@@ -58,7 +58,7 @@ public List<RunCommandParameterDefinition> parameters() {
     }
 
     /**
-     * Set the parameters value.
+     * Set the parameters used by the script.
      *
      * @param parameters the parameters value to set
      * @return the RunCommandDocumentInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandResultInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandResultInner.java
index cec1487a8d063..ee7ce16a09292 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandResultInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/RunCommandResultInner.java
@@ -23,7 +23,7 @@ public class RunCommandResultInner extends OperationStatusResponseInner {
     private Object output;
 
     /**
-     * Get the output value.
+     * Get operation output data (raw JSON).
      *
      * @return the output value
      */
@@ -32,7 +32,7 @@ public Object output() {
     }
 
     /**
-     * Set the output value.
+     * Set operation output data (raw JSON).
      *
      * @param output the output value to set
      * @return the RunCommandResultInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/UpgradeOperationHistoricalStatusInfoInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/UpgradeOperationHistoricalStatusInfoInner.java
index 4a918adffc9f8..07cce45a581be 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/UpgradeOperationHistoricalStatusInfoInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/UpgradeOperationHistoricalStatusInfoInner.java
@@ -34,7 +34,7 @@ public class UpgradeOperationHistoricalStatusInfoInner {
     private String location;
 
     /**
-     * Get the properties value.
+     * Get information about the properties of the upgrade operation.
      *
      * @return the properties value
      */
@@ -43,7 +43,7 @@ public UpgradeOperationHistoricalStatusInfoProperties properties() {
     }
 
     /**
-     * Get the type value.
+     * Get resource type.
      *
      * @return the type value
      */
@@ -52,7 +52,7 @@ public String type() {
     }
 
     /**
-     * Get the location value.
+     * Get resource location.
      *
      * @return the location value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/UsageInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/UsageInner.java
index 842f01bf0fead..294d2ffaef277 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/UsageInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/UsageInner.java
@@ -41,13 +41,16 @@ public class UsageInner {
 
     /**
      * Creates an instance of UsageInner class.
+     * @param currentValue the current usage of the resource.
+     * @param limit the maximum permitted usage of the resource.
+     * @param name the name of the type of usage.
      */
     public UsageInner() {
         unit = "Count";
     }
 
     /**
-     * Get the unit value.
+     * Get an enum describing the unit of usage measurement.
      *
      * @return the unit value
      */
@@ -56,7 +59,7 @@ public String unit() {
     }
 
     /**
-     * Set the unit value.
+     * Set an enum describing the unit of usage measurement.
      *
      * @param unit the unit value to set
      * @return the UsageInner object itself.
@@ -67,7 +70,7 @@ public UsageInner withUnit(String unit) {
     }
 
     /**
-     * Get the currentValue value.
+     * Get the current usage of the resource.
      *
      * @return the currentValue value
      */
@@ -76,7 +79,7 @@ public int currentValue() {
     }
 
     /**
-     * Set the currentValue value.
+     * Set the current usage of the resource.
      *
      * @param currentValue the currentValue value to set
      * @return the UsageInner object itself.
@@ -87,7 +90,7 @@ public UsageInner withCurrentValue(int currentValue) {
     }
 
     /**
-     * Get the limit value.
+     * Get the maximum permitted usage of the resource.
      *
      * @return the limit value
      */
@@ -96,7 +99,7 @@ public long limit() {
     }
 
     /**
-     * Set the limit value.
+     * Set the maximum permitted usage of the resource.
      *
      * @param limit the limit value to set
      * @return the UsageInner object itself.
@@ -107,7 +110,7 @@ public UsageInner withLimit(long limit) {
     }
 
     /**
-     * Get the name value.
+     * Get the name of the type of usage.
      *
      * @return the name value
      */
@@ -116,7 +119,7 @@ public UsageName name() {
     }
 
     /**
-     * Set the name value.
+     * Set the name of the type of usage.
      *
      * @param name the name value to set
      * @return the UsageInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineCaptureResultInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineCaptureResultInner.java
index 80219944631c2..7e63454abbd15 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineCaptureResultInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineCaptureResultInner.java
@@ -24,7 +24,7 @@ public class VirtualMachineCaptureResultInner extends SubResource {
     private Object output;
 
     /**
-     * Get the output value.
+     * Get operation output data (raw JSON).
      *
      * @return the output value
      */
@@ -33,7 +33,7 @@ public Object output() {
     }
 
     /**
-     * Set the output value.
+     * Set operation output data (raw JSON).
      *
      * @param output the output value to set
      * @return the VirtualMachineCaptureResultInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImageImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImageImpl.java
index 23f6e02a55483..cdc4673369121 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImageImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImageImpl.java
@@ -23,6 +23,7 @@ class VirtualMachineExtensionImageImpl extends IndexableRefreshableWrapperImpl<V
     VirtualMachineExtensionImageImpl(VirtualMachineExtensionImageInner inner,  ComputeManager manager) {
         super(null, inner);
         this.manager = manager;
+        // set resource ancestor and positional variables
         this.location = IdParsingUtils.getValueFromIdByName(inner.id(), "locations");
         this.publisherName = IdParsingUtils.getValueFromIdByName(inner.id(), "publishers");
         this.type = IdParsingUtils.getValueFromIdByName(inner.id(), "types");
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImageInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImageInner.java
index cf3d684fc058b..5a0b62e1348ef 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImageInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImageInner.java
@@ -52,7 +52,7 @@ public class VirtualMachineExtensionImageInner extends Resource {
     private Boolean supportsMultipleExtensions;
 
     /**
-     * Get the operatingSystem value.
+     * Get the operating system this extension supports.
      *
      * @return the operatingSystem value
      */
@@ -61,7 +61,7 @@ public String operatingSystem() {
     }
 
     /**
-     * Set the operatingSystem value.
+     * Set the operating system this extension supports.
      *
      * @param operatingSystem the operatingSystem value to set
      * @return the VirtualMachineExtensionImageInner object itself.
@@ -72,7 +72,7 @@ public VirtualMachineExtensionImageInner withOperatingSystem(String operatingSys
     }
 
     /**
-     * Get the computeRole value.
+     * Get the type of role (IaaS or PaaS) this extension supports.
      *
      * @return the computeRole value
      */
@@ -81,7 +81,7 @@ public String computeRole() {
     }
 
     /**
-     * Set the computeRole value.
+     * Set the type of role (IaaS or PaaS) this extension supports.
      *
      * @param computeRole the computeRole value to set
      * @return the VirtualMachineExtensionImageInner object itself.
@@ -92,7 +92,7 @@ public VirtualMachineExtensionImageInner withComputeRole(String computeRole) {
     }
 
     /**
-     * Get the handlerSchema value.
+     * Get the schema defined by publisher, where extension consumers should provide settings in a matching schema.
      *
      * @return the handlerSchema value
      */
@@ -101,7 +101,7 @@ public String handlerSchema() {
     }
 
     /**
-     * Set the handlerSchema value.
+     * Set the schema defined by publisher, where extension consumers should provide settings in a matching schema.
      *
      * @param handlerSchema the handlerSchema value to set
      * @return the VirtualMachineExtensionImageInner object itself.
@@ -112,7 +112,7 @@ public VirtualMachineExtensionImageInner withHandlerSchema(String handlerSchema)
     }
 
     /**
-     * Get the vmScaleSetEnabled value.
+     * Get whether the extension can be used on xRP VMScaleSets. By default existing extensions are usable on scalesets, but there might be cases where a publisher wants to explicitly indicate the extension is only enabled for CRP VMs but not VMSS.
      *
      * @return the vmScaleSetEnabled value
      */
@@ -121,7 +121,7 @@ public Boolean vmScaleSetEnabled() {
     }
 
     /**
-     * Set the vmScaleSetEnabled value.
+     * Set whether the extension can be used on xRP VMScaleSets. By default existing extensions are usable on scalesets, but there might be cases where a publisher wants to explicitly indicate the extension is only enabled for CRP VMs but not VMSS.
      *
      * @param vmScaleSetEnabled the vmScaleSetEnabled value to set
      * @return the VirtualMachineExtensionImageInner object itself.
@@ -132,7 +132,7 @@ public VirtualMachineExtensionImageInner withVmScaleSetEnabled(Boolean vmScaleSe
     }
 
     /**
-     * Get the supportsMultipleExtensions value.
+     * Get whether the handler can support multiple extensions.
      *
      * @return the supportsMultipleExtensions value
      */
@@ -141,7 +141,7 @@ public Boolean supportsMultipleExtensions() {
     }
 
     /**
-     * Set the supportsMultipleExtensions value.
+     * Set whether the handler can support multiple extensions.
      *
      * @param supportsMultipleExtensions the supportsMultipleExtensions value to set
      * @return the VirtualMachineExtensionImageInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImagesImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImagesImpl.java
index 58df049ee1b82..fe5ef19125b84 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImagesImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImagesImpl.java
@@ -45,10 +45,14 @@ private Observable<VirtualMachineExtensionImageInner> getVirtualMachineExtension
     public Observable<VirtualMachineExtensionImage> getAsync(String location, String publisherName, String type, String version) {
         VirtualMachineExtensionImagesInner client = this.inner();
         return client.getAsync(location, publisherName, type, version)
-        .map(new Func1<VirtualMachineExtensionImageInner, VirtualMachineExtensionImage>() {
+        .flatMap(new Func1<VirtualMachineExtensionImageInner, Observable<VirtualMachineExtensionImage>>() {
             @Override
-            public VirtualMachineExtensionImage call(VirtualMachineExtensionImageInner inner) {
-                return wrapVirtualMachineExtensionImageModel(inner);
+            public Observable<VirtualMachineExtensionImage> call(VirtualMachineExtensionImageInner inner) {
+                if (inner == null) {
+                    return Observable.empty();
+                } else {
+                    return Observable.just((VirtualMachineExtensionImage)wrapVirtualMachineExtensionImageModel(inner));
+                }
             }
        });
     }
@@ -80,7 +84,8 @@ public Observable<VirtualMachineExtensionImage> listTypesAsync(String location,
             public Observable<VirtualMachineExtensionImageInner> call(List<VirtualMachineExtensionImageInner> innerList) {
                 return Observable.from(innerList);
             }
-        })    .map(new Func1<VirtualMachineExtensionImageInner, VirtualMachineExtensionImage>() {
+        })
+        .map(new Func1<VirtualMachineExtensionImageInner, VirtualMachineExtensionImage>() {
             @Override
             public VirtualMachineExtensionImage call(VirtualMachineExtensionImageInner inner) {
                 return new VirtualMachineExtensionImageImpl(inner, manager());
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImpl.java
index f8db1948936ea..fbf810b9e0e35 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionImpl.java
@@ -37,7 +37,7 @@ class VirtualMachineExtensionImpl extends CreatableUpdatableImpl<VirtualMachineE
         this.manager = manager;
         // Set resource name
         this.vmExtensionName = inner.name();
-        // resource ancestor names
+        // set resource ancestor and positional variables
         this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
         this.vmName = IdParsingUtils.getValueFromIdByName(inner.id(), "virtualMachines");
         this.vmExtensionName = IdParsingUtils.getValueFromIdByName(inner.id(), "extensions");
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionInner.java
index e3a7e7f13e381..fb00b50e8c678 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionInner.java
@@ -79,7 +79,7 @@ public class VirtualMachineExtensionInner extends Resource {
     private VirtualMachineExtensionInstanceView instanceView;
 
     /**
-     * Get the forceUpdateTag value.
+     * Get how the extension handler should be forced to update even if the extension configuration has not changed.
      *
      * @return the forceUpdateTag value
      */
@@ -88,7 +88,7 @@ public String forceUpdateTag() {
     }
 
     /**
-     * Set the forceUpdateTag value.
+     * Set how the extension handler should be forced to update even if the extension configuration has not changed.
      *
      * @param forceUpdateTag the forceUpdateTag value to set
      * @return the VirtualMachineExtensionInner object itself.
@@ -99,7 +99,7 @@ public VirtualMachineExtensionInner withForceUpdateTag(String forceUpdateTag) {
     }
 
     /**
-     * Get the publisher value.
+     * Get the name of the extension handler publisher.
      *
      * @return the publisher value
      */
@@ -108,7 +108,7 @@ public String publisher() {
     }
 
     /**
-     * Set the publisher value.
+     * Set the name of the extension handler publisher.
      *
      * @param publisher the publisher value to set
      * @return the VirtualMachineExtensionInner object itself.
@@ -119,7 +119,7 @@ public VirtualMachineExtensionInner withPublisher(String publisher) {
     }
 
     /**
-     * Get the virtualMachineExtensionType value.
+     * Get specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @return the virtualMachineExtensionType value
      */
@@ -128,7 +128,7 @@ public String virtualMachineExtensionType() {
     }
 
     /**
-     * Set the virtualMachineExtensionType value.
+     * Set specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @param virtualMachineExtensionType the virtualMachineExtensionType value to set
      * @return the VirtualMachineExtensionInner object itself.
@@ -139,7 +139,7 @@ public VirtualMachineExtensionInner withVirtualMachineExtensionType(String virtu
     }
 
     /**
-     * Get the typeHandlerVersion value.
+     * Get specifies the version of the script handler.
      *
      * @return the typeHandlerVersion value
      */
@@ -148,7 +148,7 @@ public String typeHandlerVersion() {
     }
 
     /**
-     * Set the typeHandlerVersion value.
+     * Set specifies the version of the script handler.
      *
      * @param typeHandlerVersion the typeHandlerVersion value to set
      * @return the VirtualMachineExtensionInner object itself.
@@ -159,7 +159,7 @@ public VirtualMachineExtensionInner withTypeHandlerVersion(String typeHandlerVer
     }
 
     /**
-     * Get the autoUpgradeMinorVersion value.
+     * Get indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
      *
      * @return the autoUpgradeMinorVersion value
      */
@@ -168,7 +168,7 @@ public Boolean autoUpgradeMinorVersion() {
     }
 
     /**
-     * Set the autoUpgradeMinorVersion value.
+     * Set indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
      *
      * @param autoUpgradeMinorVersion the autoUpgradeMinorVersion value to set
      * @return the VirtualMachineExtensionInner object itself.
@@ -179,7 +179,7 @@ public VirtualMachineExtensionInner withAutoUpgradeMinorVersion(Boolean autoUpgr
     }
 
     /**
-     * Get the settings value.
+     * Get json formatted public settings for the extension.
      *
      * @return the settings value
      */
@@ -188,7 +188,7 @@ public Object settings() {
     }
 
     /**
-     * Set the settings value.
+     * Set json formatted public settings for the extension.
      *
      * @param settings the settings value to set
      * @return the VirtualMachineExtensionInner object itself.
@@ -199,7 +199,7 @@ public VirtualMachineExtensionInner withSettings(Object settings) {
     }
 
     /**
-     * Get the protectedSettings value.
+     * Get the extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
      *
      * @return the protectedSettings value
      */
@@ -208,7 +208,7 @@ public Object protectedSettings() {
     }
 
     /**
-     * Set the protectedSettings value.
+     * Set the extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
      *
      * @param protectedSettings the protectedSettings value to set
      * @return the VirtualMachineExtensionInner object itself.
@@ -219,7 +219,7 @@ public VirtualMachineExtensionInner withProtectedSettings(Object protectedSettin
     }
 
     /**
-     * Get the provisioningState value.
+     * Get the provisioning state, which only appears in the response.
      *
      * @return the provisioningState value
      */
@@ -228,7 +228,7 @@ public String provisioningState() {
     }
 
     /**
-     * Get the instanceView value.
+     * Get the virtual machine extension instance view.
      *
      * @return the instanceView value
      */
@@ -237,7 +237,7 @@ public VirtualMachineExtensionInstanceView instanceView() {
     }
 
     /**
-     * Set the instanceView value.
+     * Set the virtual machine extension instance view.
      *
      * @param instanceView the instanceView value to set
      * @return the VirtualMachineExtensionInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionsImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionsImpl.java
index f0ff02f0132b6..85506ed9642cc 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionsImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionsImpl.java
@@ -4,17 +4,17 @@
  * license information.
  *
  * Code generated by Microsoft (R) AutoRest Code Generator.
- *
+ * abc
  */
 
 package com.microsoft.azure.management.compute.v2017_12_01.implementation;
 
 import com.microsoft.azure.arm.model.implementation.WrapperImpl;
 import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineExtensions;
-import rx.Completable;
 import rx.Observable;
 import rx.functions.Func1;
 import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineExtension;
+import rx.Completable;
 
 class VirtualMachineExtensionsImpl extends WrapperImpl<VirtualMachineExtensionsInner> implements VirtualMachineExtensions {
     private final ComputeManager manager;
@@ -29,26 +29,38 @@ public ComputeManager manager() {
     }
 
     @Override
-    public VirtualMachineExtensionImpl define(String name) {
-        return wrapModel(name);
+    public VirtualMachineExtensionImpl defineExtension(String name) {
+        return wrapExtensionModel(name);
+    }
+
+    private VirtualMachineExtensionImpl wrapExtensionModel(String name) {
+        return new VirtualMachineExtensionImpl(name, this.manager());
     }
 
-    private VirtualMachineExtensionImpl wrapModel(VirtualMachineExtensionInner inner) {
+    private VirtualMachineExtensionImpl wrapVirtualMachineExtensionModel(VirtualMachineExtensionInner inner) {
         return  new VirtualMachineExtensionImpl(inner, manager());
     }
 
-    private VirtualMachineExtensionImpl wrapModel(String name) {
-        return new VirtualMachineExtensionImpl(name, this.manager());
+    private Observable<VirtualMachineExtensionInner> getVirtualMachineExtensionInnerUsingVirtualMachineExtensionsInnerAsync(String id) {
+        String resourceGroupName = IdParsingUtils.getValueFromIdByName(id, "resourceGroups");
+        String vmName = IdParsingUtils.getValueFromIdByName(id, "virtualMachines");
+        String vmExtensionName = IdParsingUtils.getValueFromIdByName(id, "extensions");
+        VirtualMachineExtensionsInner client = this.inner();
+        return client.getAsync(resourceGroupName, vmName, vmExtensionName);
     }
 
     @Override
     public Observable<VirtualMachineExtension> getAsync(String resourceGroupName, String vmName, String vmExtensionName) {
         VirtualMachineExtensionsInner client = this.inner();
         return client.getAsync(resourceGroupName, vmName, vmExtensionName)
-        .map(new Func1<VirtualMachineExtensionInner, VirtualMachineExtension>() {
+        .flatMap(new Func1<VirtualMachineExtensionInner, Observable<VirtualMachineExtension>>() {
             @Override
-            public VirtualMachineExtension call(VirtualMachineExtensionInner inner) {
-                return wrapModel(inner);
+            public Observable<VirtualMachineExtension> call(VirtualMachineExtensionInner inner) {
+                if (inner == null) {
+                    return Observable.empty();
+                } else {
+                    return Observable.just((VirtualMachineExtension)wrapVirtualMachineExtensionModel(inner));
+                }
             }
        });
     }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionsListResultInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionsListResultInner.java
index d253ec1fb1bfe..6bdfbf7e4e3f8 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionsListResultInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineExtensionsListResultInner.java
@@ -22,7 +22,7 @@ public class VirtualMachineExtensionsListResultInner {
     private List<VirtualMachineExtensionInner> value;
 
     /**
-     * Get the value value.
+     * Get the list of extensions.
      *
      * @return the value value
      */
@@ -31,7 +31,7 @@ public List<VirtualMachineExtensionInner> value() {
     }
 
     /**
-     * Set the value value.
+     * Set the list of extensions.
      *
      * @param value the value value to set
      * @return the VirtualMachineExtensionsListResultInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImageImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImageImpl.java
index a0414d563497d..6192c7a1a1074 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImageImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImageImpl.java
@@ -28,6 +28,7 @@ class VirtualMachineImageImpl extends IndexableRefreshableWrapperImpl<VirtualMac
     VirtualMachineImageImpl(VirtualMachineImageInner inner,  ComputeManager manager) {
         super(null, inner);
         this.manager = manager;
+        // set resource ancestor and positional variables
         this.location = IdParsingUtils.getValueFromIdByName(inner.id(), "locations");
         this.publisherName = IdParsingUtils.getValueFromIdByName(inner.id(), "publishers");
         this.offer = IdParsingUtils.getValueFromIdByName(inner.id(), "offers");
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImageResourceInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImageResourceInner.java
index f5965ef35a69d..f6e31814cf2d7 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImageResourceInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImageResourceInner.java
@@ -37,7 +37,7 @@ public class VirtualMachineImageResourceInner extends SubResource {
     private Map<String, String> tags;
 
     /**
-     * Get the name value.
+     * Get the name of the resource.
      *
      * @return the name value
      */
@@ -46,7 +46,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the name of the resource.
      *
      * @param name the name value to set
      * @return the VirtualMachineImageResourceInner object itself.
@@ -57,7 +57,7 @@ public VirtualMachineImageResourceInner withName(String name) {
     }
 
     /**
-     * Get the location value.
+     * Get the supported Azure location of the resource.
      *
      * @return the location value
      */
@@ -66,7 +66,7 @@ public String location() {
     }
 
     /**
-     * Set the location value.
+     * Set the supported Azure location of the resource.
      *
      * @param location the location value to set
      * @return the VirtualMachineImageResourceInner object itself.
@@ -77,7 +77,7 @@ public VirtualMachineImageResourceInner withLocation(String location) {
     }
 
     /**
-     * Get the tags value.
+     * Get specifies the tags that are assigned to the virtual machine. For more information about using tags, see [Using tags to organize your Azure resources](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md).
      *
      * @return the tags value
      */
@@ -86,7 +86,7 @@ public Map<String, String> tags() {
     }
 
     /**
-     * Set the tags value.
+     * Set specifies the tags that are assigned to the virtual machine. For more information about using tags, see [Using tags to organize your Azure resources](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md).
      *
      * @param tags the tags value to set
      * @return the VirtualMachineImageResourceInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImagesImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImagesImpl.java
index 2ed07babff36e..3c1d0f342b5f1 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImagesImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImagesImpl.java
@@ -69,10 +69,14 @@ public VirtualMachineImageResource call(VirtualMachineImageResourceInner inner)
     public Observable<VirtualMachineImage> getAsync(String location, String publisherName, String offer, String skus, String version) {
         VirtualMachineImagesInner client = this.inner();
         return client.getAsync(location, publisherName, offer, skus, version)
-        .map(new Func1<VirtualMachineImageInner, VirtualMachineImage>() {
+        .flatMap(new Func1<VirtualMachineImageInner, Observable<VirtualMachineImage>>() {
             @Override
-            public VirtualMachineImage call(VirtualMachineImageInner inner) {
-                return wrapVirtualMachineImageModel(inner);
+            public Observable<VirtualMachineImage> call(VirtualMachineImageInner inner) {
+                if (inner == null) {
+                    return Observable.empty();
+                } else {
+                    return Observable.just((VirtualMachineImage)wrapVirtualMachineImageModel(inner));
+                }
             }
        });
     }
@@ -110,7 +114,8 @@ public Observable<VirtualMachineImageResource> listOffersAsync(String location,
             public Observable<VirtualMachineImageResourceInner> call(List<VirtualMachineImageResourceInner> innerList) {
                 return Observable.from(innerList);
             }
-        })    .map(new Func1<VirtualMachineImageResourceInner, VirtualMachineImageResource>() {
+        })
+        .map(new Func1<VirtualMachineImageResourceInner, VirtualMachineImageResource>() {
             @Override
             public VirtualMachineImageResource call(VirtualMachineImageResourceInner inner) {
                 return new VirtualMachineImageResourceImpl(inner, manager());
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImagesInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImagesInner.java
index b98dbb36d3092..b765f62f54c5c 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImagesInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImagesInner.java
@@ -58,7 +58,7 @@ interface VirtualMachineImagesService {
 
         @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineImages list" })
         @GET("subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions")
-        Observable<Response<ResponseBody>> list(@Path("location") String location, @Path("publisherName") String publisherName, @Path("offer") String offer, @Path("skus") String skus, @Path("subscriptionId") String subscriptionId, @Query("$filter") String filter, @Query("$top") Integer top, @Query("$orderby") String orderby, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+        Observable<Response<ResponseBody>> list(@Path("location") String location, @Path("publisherName") String publisherName, @Path("offer") String offer, @Path("skus") String skus, @Path("subscriptionId") String subscriptionId, @Query("$expand") String expand, @Query("$top") Integer top, @Query("$orderby") String orderby, @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.compute.v2017_12_01.VirtualMachineImages listOffers" })
         @GET("subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers")
@@ -260,10 +260,10 @@ public Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>> listW
         if (this.client.apiVersion() == null) {
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
-        final String filter = null;
+        final String expand = null;
         final Integer top = null;
         final String orderby = null;
-        return service.list(location, publisherName, offer, skus, this.client.subscriptionId(), filter, top, orderby, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+        return service.list(location, publisherName, offer, skus, this.client.subscriptionId(), expand, top, orderby, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
             .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>>>() {
                 @Override
                 public Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>> call(Response<ResponseBody> response) {
@@ -284,7 +284,7 @@ public Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>> call(
      * @param publisherName A valid image publisher.
      * @param offer A valid image publisher offer.
      * @param skus A valid image SKU.
-     * @param filter The filter to apply on the operation.
+     * @param expand The expand expression to apply on the operation.
      * @param top the Integer value
      * @param orderby the String value
      * @throws IllegalArgumentException thrown if parameters fail the validation
@@ -292,8 +292,8 @@ public Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>> call(
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
      * @return the List&lt;VirtualMachineImageResourceInner&gt; object if successful.
      */
-    public List<VirtualMachineImageResourceInner> list(String location, String publisherName, String offer, String skus, String filter, Integer top, String orderby) {
-        return listWithServiceResponseAsync(location, publisherName, offer, skus, filter, top, orderby).toBlocking().single().body();
+    public List<VirtualMachineImageResourceInner> list(String location, String publisherName, String offer, String skus, String expand, Integer top, String orderby) {
+        return listWithServiceResponseAsync(location, publisherName, offer, skus, expand, top, orderby).toBlocking().single().body();
     }
 
     /**
@@ -303,15 +303,15 @@ public List<VirtualMachineImageResourceInner> list(String location, String publi
      * @param publisherName A valid image publisher.
      * @param offer A valid image publisher offer.
      * @param skus A valid image SKU.
-     * @param filter The filter to apply on the operation.
+     * @param expand The expand expression to apply on the operation.
      * @param top the Integer value
      * @param orderby the String value
      * @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<List<VirtualMachineImageResourceInner>> listAsync(String location, String publisherName, String offer, String skus, String filter, Integer top, String orderby, final ServiceCallback<List<VirtualMachineImageResourceInner>> serviceCallback) {
-        return ServiceFuture.fromResponse(listWithServiceResponseAsync(location, publisherName, offer, skus, filter, top, orderby), serviceCallback);
+    public ServiceFuture<List<VirtualMachineImageResourceInner>> listAsync(String location, String publisherName, String offer, String skus, String expand, Integer top, String orderby, final ServiceCallback<List<VirtualMachineImageResourceInner>> serviceCallback) {
+        return ServiceFuture.fromResponse(listWithServiceResponseAsync(location, publisherName, offer, skus, expand, top, orderby), serviceCallback);
     }
 
     /**
@@ -321,14 +321,14 @@ public ServiceFuture<List<VirtualMachineImageResourceInner>> listAsync(String lo
      * @param publisherName A valid image publisher.
      * @param offer A valid image publisher offer.
      * @param skus A valid image SKU.
-     * @param filter The filter to apply on the operation.
+     * @param expand The expand expression to apply on the operation.
      * @param top the Integer value
      * @param orderby the String value
      * @throws IllegalArgumentException thrown if parameters fail the validation
      * @return the observable to the List&lt;VirtualMachineImageResourceInner&gt; object
      */
-    public Observable<List<VirtualMachineImageResourceInner>> listAsync(String location, String publisherName, String offer, String skus, String filter, Integer top, String orderby) {
-        return listWithServiceResponseAsync(location, publisherName, offer, skus, filter, top, orderby).map(new Func1<ServiceResponse<List<VirtualMachineImageResourceInner>>, List<VirtualMachineImageResourceInner>>() {
+    public Observable<List<VirtualMachineImageResourceInner>> listAsync(String location, String publisherName, String offer, String skus, String expand, Integer top, String orderby) {
+        return listWithServiceResponseAsync(location, publisherName, offer, skus, expand, top, orderby).map(new Func1<ServiceResponse<List<VirtualMachineImageResourceInner>>, List<VirtualMachineImageResourceInner>>() {
             @Override
             public List<VirtualMachineImageResourceInner> call(ServiceResponse<List<VirtualMachineImageResourceInner>> response) {
                 return response.body();
@@ -343,13 +343,13 @@ public List<VirtualMachineImageResourceInner> call(ServiceResponse<List<VirtualM
      * @param publisherName A valid image publisher.
      * @param offer A valid image publisher offer.
      * @param skus A valid image SKU.
-     * @param filter The filter to apply on the operation.
+     * @param expand The expand expression to apply on the operation.
      * @param top the Integer value
      * @param orderby the String value
      * @throws IllegalArgumentException thrown if parameters fail the validation
      * @return the observable to the List&lt;VirtualMachineImageResourceInner&gt; object
      */
-    public Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>> listWithServiceResponseAsync(String location, String publisherName, String offer, String skus, String filter, Integer top, String orderby) {
+    public Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>> listWithServiceResponseAsync(String location, String publisherName, String offer, String skus, String expand, Integer top, String orderby) {
         if (location == null) {
             throw new IllegalArgumentException("Parameter location is required and cannot be null.");
         }
@@ -368,7 +368,7 @@ public Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>> listW
         if (this.client.apiVersion() == null) {
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
-        return service.list(location, publisherName, offer, skus, this.client.subscriptionId(), filter, top, orderby, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+        return service.list(location, publisherName, offer, skus, this.client.subscriptionId(), expand, top, orderby, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
             .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>>>() {
                 @Override
                 public Observable<ServiceResponse<List<VirtualMachineImageResourceInner>>> call(Response<ResponseBody> response) {
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImpl.java
index ed1c149f62708..5ba1dc9a9f535 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineImpl.java
@@ -8,10 +8,11 @@
 
 package com.microsoft.azure.management.compute.v2017_12_01.implementation;
 
-import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
 import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachine;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
 import rx.Observable;
 import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineUpdate;
+import java.util.Map;
 import com.microsoft.azure.SubResource;
 import java.util.List;
 import com.microsoft.azure.management.compute.v2017_12_01.Plan;
@@ -26,17 +27,42 @@
 import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineExtension;
 import rx.functions.Func1;
 
-class VirtualMachineImpl extends GroupableResourceCoreImpl<VirtualMachine, VirtualMachineInner, VirtualMachineImpl, ComputeManager> implements VirtualMachine, VirtualMachine.Definition, VirtualMachine.Update {
+class VirtualMachineImpl extends CreatableUpdatableImpl<VirtualMachine, VirtualMachineInner, VirtualMachineImpl> implements VirtualMachine, VirtualMachine.Definition, VirtualMachine.Update {
+    private final ComputeManager manager;
+    private String resourceGroupName;
+    private String vmName;
     private VirtualMachineUpdate updateParameter;
-    VirtualMachineImpl(String name, VirtualMachineInner inner, ComputeManager manager) {
-        super(name, inner, manager);
+
+    VirtualMachineImpl(String name, ComputeManager manager) {
+        super(name, new VirtualMachineInner());
+        this.manager = manager;
+        // Set resource name
+        this.vmName = name;
+        //
         this.updateParameter = new VirtualMachineUpdate();
     }
 
+    VirtualMachineImpl(VirtualMachineInner inner, ComputeManager manager) {
+        super(inner.name(), inner);
+        this.manager = manager;
+        // Set resource name
+        this.vmName = inner.name();
+        // set resource ancestor and positional variables
+        this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+        this.vmName = IdParsingUtils.getValueFromIdByName(inner.id(), "virtualMachines");
+        //
+        this.updateParameter = new VirtualMachineUpdate();
+    }
+
+    @Override
+    public ComputeManager manager() {
+        return this.manager;
+    }
+
     @Override
     public Observable<VirtualMachine> createResourceAsync() {
         VirtualMachinesInner client = this.manager().inner().virtualMachines();
-        return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+        return client.createOrUpdateAsync(this.resourceGroupName, this.vmName, this.inner())
             .map(new Func1<VirtualMachineInner, VirtualMachineInner>() {
                @Override
                public VirtualMachineInner call(VirtualMachineInner resource) {
@@ -50,7 +76,7 @@ public VirtualMachineInner call(VirtualMachineInner resource) {
     @Override
     public Observable<VirtualMachine> updateResourceAsync() {
         VirtualMachinesInner client = this.manager().inner().virtualMachines();
-        return client.updateAsync(this.resourceGroupName(), this.name(), this.updateParameter)
+        return client.updateAsync(this.resourceGroupName, this.vmName, this.updateParameter)
             .map(new Func1<VirtualMachineInner, VirtualMachineInner>() {
                @Override
                public VirtualMachineInner call(VirtualMachineInner resource) {
@@ -64,7 +90,7 @@ public VirtualMachineInner call(VirtualMachineInner resource) {
     @Override
     protected Observable<VirtualMachineInner> getInnerAsync() {
         VirtualMachinesInner client = this.manager().inner().virtualMachines();
-        return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+        return null; // NOP getInnerAsync implementation as get is not supported
     }
 
     @Override
@@ -91,6 +117,11 @@ public HardwareProfile hardwareProfile() {
         return this.inner().hardwareProfile();
     }
 
+    @Override
+    public String id() {
+        return this.inner().id();
+    }
+
     @Override
     public VirtualMachineIdentity identity() {
         return this.inner().identity();
@@ -111,6 +142,16 @@ public String licenseType() {
         return this.inner().licenseType();
     }
 
+    @Override
+    public String location() {
+        return this.inner().location();
+    }
+
+    @Override
+    public String name() {
+        return this.inner().name();
+    }
+
     @Override
     public NetworkProfile networkProfile() {
         return this.inner().networkProfile();
@@ -147,6 +188,16 @@ public StorageProfile storageProfile() {
         return this.inner().storageProfile();
     }
 
+    @Override
+    public Map<String, String> tags() {
+        return this.inner().getTags();
+    }
+
+    @Override
+    public String type() {
+        return this.inner().type();
+    }
+
     @Override
     public String vmId() {
         return this.inner().vmId();
@@ -157,6 +208,18 @@ public List<String> zones() {
         return this.inner().zones();
     }
 
+    @Override
+    public VirtualMachineImpl withExistingLocation(String resourceGroupName) {
+        this.resourceGroupName = resourceGroupName;
+        return this;
+    }
+
+    @Override
+    public VirtualMachineImpl withLocation(String location) {
+        this.inner().withLocation(location);
+        return this;
+    }
+
     @Override
     public VirtualMachineImpl withAvailabilitySet(SubResource availabilitySet) {
         if (isInCreateMode()) {
@@ -247,6 +310,16 @@ public VirtualMachineImpl withStorageProfile(StorageProfile storageProfile) {
         return this;
     }
 
+    @Override
+    public VirtualMachineImpl withTags(Map<String, String> tags) {
+        if (isInCreateMode()) {
+            this.inner().withTags(tags);
+        } else {
+            this.updateParameter.withTags(tags);
+        }
+        return this;
+    }
+
     @Override
     public VirtualMachineImpl withZones(List<String> zones) {
         if (isInCreateMode()) {
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineInner.java
index ab7e4d2768d90..ad4cfc3deddde 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineInner.java
@@ -76,7 +76,7 @@ public class VirtualMachineInner extends Resource {
      * availability. For more information about availability sets, see [Manage
      * the availability of virtual
      * machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
-     * &lt;br&gt;&lt;br&gt; For more information on Azure planned maintainance,
+     * &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance,
      * see [Planned maintenance for virtual machines in
      * Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
      * &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability
@@ -140,7 +140,7 @@ public class VirtualMachineInner extends Resource {
     private List<String> zones;
 
     /**
-     * Get the plan value.
+     * Get specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**.
      *
      * @return the plan value
      */
@@ -149,7 +149,7 @@ public Plan plan() {
     }
 
     /**
-     * Set the plan value.
+     * Set specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**.
      *
      * @param plan the plan value to set
      * @return the VirtualMachineInner object itself.
@@ -160,7 +160,7 @@ public VirtualMachineInner withPlan(Plan plan) {
     }
 
     /**
-     * Get the hardwareProfile value.
+     * Get specifies the hardware settings for the virtual machine.
      *
      * @return the hardwareProfile value
      */
@@ -169,7 +169,7 @@ public HardwareProfile hardwareProfile() {
     }
 
     /**
-     * Set the hardwareProfile value.
+     * Set specifies the hardware settings for the virtual machine.
      *
      * @param hardwareProfile the hardwareProfile value to set
      * @return the VirtualMachineInner object itself.
@@ -180,7 +180,7 @@ public VirtualMachineInner withHardwareProfile(HardwareProfile hardwareProfile)
     }
 
     /**
-     * Get the storageProfile value.
+     * Get specifies the storage settings for the virtual machine disks.
      *
      * @return the storageProfile value
      */
@@ -189,7 +189,7 @@ public StorageProfile storageProfile() {
     }
 
     /**
-     * Set the storageProfile value.
+     * Set specifies the storage settings for the virtual machine disks.
      *
      * @param storageProfile the storageProfile value to set
      * @return the VirtualMachineInner object itself.
@@ -200,7 +200,7 @@ public VirtualMachineInner withStorageProfile(StorageProfile storageProfile) {
     }
 
     /**
-     * Get the osProfile value.
+     * Get specifies the operating system settings for the virtual machine.
      *
      * @return the osProfile value
      */
@@ -209,7 +209,7 @@ public OSProfile osProfile() {
     }
 
     /**
-     * Set the osProfile value.
+     * Set specifies the operating system settings for the virtual machine.
      *
      * @param osProfile the osProfile value to set
      * @return the VirtualMachineInner object itself.
@@ -220,7 +220,7 @@ public VirtualMachineInner withOsProfile(OSProfile osProfile) {
     }
 
     /**
-     * Get the networkProfile value.
+     * Get specifies the network interfaces of the virtual machine.
      *
      * @return the networkProfile value
      */
@@ -229,7 +229,7 @@ public NetworkProfile networkProfile() {
     }
 
     /**
-     * Set the networkProfile value.
+     * Set specifies the network interfaces of the virtual machine.
      *
      * @param networkProfile the networkProfile value to set
      * @return the VirtualMachineInner object itself.
@@ -240,7 +240,7 @@ public VirtualMachineInner withNetworkProfile(NetworkProfile networkProfile) {
     }
 
     /**
-     * Get the diagnosticsProfile value.
+     * Get specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15.
      *
      * @return the diagnosticsProfile value
      */
@@ -249,7 +249,7 @@ public DiagnosticsProfile diagnosticsProfile() {
     }
 
     /**
-     * Set the diagnosticsProfile value.
+     * Set specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15.
      *
      * @param diagnosticsProfile the diagnosticsProfile value to set
      * @return the VirtualMachineInner object itself.
@@ -260,7 +260,7 @@ public VirtualMachineInner withDiagnosticsProfile(DiagnosticsProfile diagnostics
     }
 
     /**
-     * Get the availabilitySet value.
+     * Get specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
      *
      * @return the availabilitySet value
      */
@@ -269,7 +269,7 @@ public SubResource availabilitySet() {
     }
 
     /**
-     * Set the availabilitySet value.
+     * Set specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
      *
      * @param availabilitySet the availabilitySet value to set
      * @return the VirtualMachineInner object itself.
@@ -280,7 +280,7 @@ public VirtualMachineInner withAvailabilitySet(SubResource availabilitySet) {
     }
 
     /**
-     * Get the provisioningState value.
+     * Get the provisioning state, which only appears in the response.
      *
      * @return the provisioningState value
      */
@@ -289,7 +289,7 @@ public String provisioningState() {
     }
 
     /**
-     * Get the instanceView value.
+     * Get the virtual machine instance view.
      *
      * @return the instanceView value
      */
@@ -298,7 +298,7 @@ public VirtualMachineInstanceViewInner instanceView() {
     }
 
     /**
-     * Get the licenseType value.
+     * Get specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @return the licenseType value
      */
@@ -307,7 +307,7 @@ public String licenseType() {
     }
 
     /**
-     * Set the licenseType value.
+     * Set specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @param licenseType the licenseType value to set
      * @return the VirtualMachineInner object itself.
@@ -318,7 +318,7 @@ public VirtualMachineInner withLicenseType(String licenseType) {
     }
 
     /**
-     * Get the vmId value.
+     * Get specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
      *
      * @return the vmId value
      */
@@ -327,7 +327,7 @@ public String vmId() {
     }
 
     /**
-     * Get the resources value.
+     * Get the virtual machine child extension resources.
      *
      * @return the resources value
      */
@@ -336,7 +336,7 @@ public List<VirtualMachineExtensionInner> resources() {
     }
 
     /**
-     * Get the identity value.
+     * Get the identity of the virtual machine, if configured.
      *
      * @return the identity value
      */
@@ -345,7 +345,7 @@ public VirtualMachineIdentity identity() {
     }
 
     /**
-     * Set the identity value.
+     * Set the identity of the virtual machine, if configured.
      *
      * @param identity the identity value to set
      * @return the VirtualMachineInner object itself.
@@ -356,7 +356,7 @@ public VirtualMachineInner withIdentity(VirtualMachineIdentity identity) {
     }
 
     /**
-     * Get the zones value.
+     * Get the virtual machine zones.
      *
      * @return the zones value
      */
@@ -365,7 +365,7 @@ public List<String> zones() {
     }
 
     /**
-     * Set the zones value.
+     * Set the virtual machine zones.
      *
      * @param zones the zones value to set
      * @return the VirtualMachineInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineInstanceViewInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineInstanceViewInner.java
index 491e8b04bbb0e..384370c1f4492 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineInstanceViewInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineInstanceViewInner.java
@@ -83,9 +83,8 @@ public class VirtualMachineInstanceViewInner {
 
     /**
      * Boot Diagnostics is a debugging feature which allows you to view Console
-     * Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; For
-     * Linux Virtual Machines, you can easily view the output of your console
-     * log. &lt;br&gt;&lt;br&gt; For both Windows and Linux virtual machines,
+     * Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You
+     * can easily view the output of your console log. &lt;br&gt;&lt;br&gt;
      * Azure also enables you to see a screenshot of the VM from the
      * hypervisor.
      */
@@ -99,7 +98,7 @@ public class VirtualMachineInstanceViewInner {
     private List<InstanceViewStatus> statuses;
 
     /**
-     * Get the platformUpdateDomain value.
+     * Get specifies the update domain of the virtual machine.
      *
      * @return the platformUpdateDomain value
      */
@@ -108,7 +107,7 @@ public Integer platformUpdateDomain() {
     }
 
     /**
-     * Set the platformUpdateDomain value.
+     * Set specifies the update domain of the virtual machine.
      *
      * @param platformUpdateDomain the platformUpdateDomain value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -119,7 +118,7 @@ public VirtualMachineInstanceViewInner withPlatformUpdateDomain(Integer platform
     }
 
     /**
-     * Get the platformFaultDomain value.
+     * Get specifies the fault domain of the virtual machine.
      *
      * @return the platformFaultDomain value
      */
@@ -128,7 +127,7 @@ public Integer platformFaultDomain() {
     }
 
     /**
-     * Set the platformFaultDomain value.
+     * Set specifies the fault domain of the virtual machine.
      *
      * @param platformFaultDomain the platformFaultDomain value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -139,7 +138,7 @@ public VirtualMachineInstanceViewInner withPlatformFaultDomain(Integer platformF
     }
 
     /**
-     * Get the computerName value.
+     * Get the computer name assigned to the virtual machine.
      *
      * @return the computerName value
      */
@@ -148,7 +147,7 @@ public String computerName() {
     }
 
     /**
-     * Set the computerName value.
+     * Set the computer name assigned to the virtual machine.
      *
      * @param computerName the computerName value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -159,7 +158,7 @@ public VirtualMachineInstanceViewInner withComputerName(String computerName) {
     }
 
     /**
-     * Get the osName value.
+     * Get the Operating System running on the virtual machine.
      *
      * @return the osName value
      */
@@ -168,7 +167,7 @@ public String osName() {
     }
 
     /**
-     * Set the osName value.
+     * Set the Operating System running on the virtual machine.
      *
      * @param osName the osName value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -179,7 +178,7 @@ public VirtualMachineInstanceViewInner withOsName(String osName) {
     }
 
     /**
-     * Get the osVersion value.
+     * Get the version of Operating System running on the virtual machine.
      *
      * @return the osVersion value
      */
@@ -188,7 +187,7 @@ public String osVersion() {
     }
 
     /**
-     * Set the osVersion value.
+     * Set the version of Operating System running on the virtual machine.
      *
      * @param osVersion the osVersion value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -199,7 +198,7 @@ public VirtualMachineInstanceViewInner withOsVersion(String osVersion) {
     }
 
     /**
-     * Get the rdpThumbPrint value.
+     * Get the Remote desktop certificate thumbprint.
      *
      * @return the rdpThumbPrint value
      */
@@ -208,7 +207,7 @@ public String rdpThumbPrint() {
     }
 
     /**
-     * Set the rdpThumbPrint value.
+     * Set the Remote desktop certificate thumbprint.
      *
      * @param rdpThumbPrint the rdpThumbPrint value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -219,7 +218,7 @@ public VirtualMachineInstanceViewInner withRdpThumbPrint(String rdpThumbPrint) {
     }
 
     /**
-     * Get the vmAgent value.
+     * Get the VM Agent running on the virtual machine.
      *
      * @return the vmAgent value
      */
@@ -228,7 +227,7 @@ public VirtualMachineAgentInstanceView vmAgent() {
     }
 
     /**
-     * Set the vmAgent value.
+     * Set the VM Agent running on the virtual machine.
      *
      * @param vmAgent the vmAgent value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -239,7 +238,7 @@ public VirtualMachineInstanceViewInner withVmAgent(VirtualMachineAgentInstanceVi
     }
 
     /**
-     * Get the maintenanceRedeployStatus value.
+     * Get the Maintenance Operation status on the virtual machine.
      *
      * @return the maintenanceRedeployStatus value
      */
@@ -248,7 +247,7 @@ public MaintenanceRedeployStatus maintenanceRedeployStatus() {
     }
 
     /**
-     * Set the maintenanceRedeployStatus value.
+     * Set the Maintenance Operation status on the virtual machine.
      *
      * @param maintenanceRedeployStatus the maintenanceRedeployStatus value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -259,7 +258,7 @@ public VirtualMachineInstanceViewInner withMaintenanceRedeployStatus(Maintenance
     }
 
     /**
-     * Get the disks value.
+     * Get the virtual machine disk information.
      *
      * @return the disks value
      */
@@ -268,7 +267,7 @@ public List<DiskInstanceView> disks() {
     }
 
     /**
-     * Set the disks value.
+     * Set the virtual machine disk information.
      *
      * @param disks the disks value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -279,7 +278,7 @@ public VirtualMachineInstanceViewInner withDisks(List<DiskInstanceView> disks) {
     }
 
     /**
-     * Get the extensions value.
+     * Get the extensions information.
      *
      * @return the extensions value
      */
@@ -288,7 +287,7 @@ public List<VirtualMachineExtensionInstanceView> extensions() {
     }
 
     /**
-     * Set the extensions value.
+     * Set the extensions information.
      *
      * @param extensions the extensions value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -299,7 +298,7 @@ public VirtualMachineInstanceViewInner withExtensions(List<VirtualMachineExtensi
     }
 
     /**
-     * Get the bootDiagnostics value.
+     * Get boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You can easily view the output of your console log. &lt;br&gt;&lt;br&gt; Azure also enables you to see a screenshot of the VM from the hypervisor.
      *
      * @return the bootDiagnostics value
      */
@@ -308,7 +307,7 @@ public BootDiagnosticsInstanceView bootDiagnostics() {
     }
 
     /**
-     * Set the bootDiagnostics value.
+     * Set boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You can easily view the output of your console log. &lt;br&gt;&lt;br&gt; Azure also enables you to see a screenshot of the VM from the hypervisor.
      *
      * @param bootDiagnostics the bootDiagnostics value to set
      * @return the VirtualMachineInstanceViewInner object itself.
@@ -319,7 +318,7 @@ public VirtualMachineInstanceViewInner withBootDiagnostics(BootDiagnosticsInstan
     }
 
     /**
-     * Get the statuses value.
+     * Get the resource status information.
      *
      * @return the statuses value
      */
@@ -328,7 +327,7 @@ public List<InstanceViewStatus> statuses() {
     }
 
     /**
-     * Set the statuses value.
+     * Set the resource status information.
      *
      * @param statuses the statuses value to set
      * @return the VirtualMachineInstanceViewInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineRunCommandsImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineRunCommandsImpl.java
index 167aebd7c7971..d37f5bb11359c 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineRunCommandsImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineRunCommandsImpl.java
@@ -43,10 +43,14 @@ private Observable<RunCommandDocumentInner> getRunCommandDocumentInnerUsingVirtu
     public Observable<RunCommandDocument> getAsync(String location, String commandId) {
         VirtualMachineRunCommandsInner client = this.inner();
         return client.getAsync(location, commandId)
-        .map(new Func1<RunCommandDocumentInner, RunCommandDocument>() {
+        .flatMap(new Func1<RunCommandDocumentInner, Observable<RunCommandDocument>>() {
             @Override
-            public RunCommandDocument call(RunCommandDocumentInner inner) {
-                return wrapRunCommandDocumentModel(inner);
+            public Observable<RunCommandDocument> call(RunCommandDocumentInner inner) {
+                if (inner == null) {
+                    return Observable.empty();
+                } else {
+                    return Observable.just((RunCommandDocument)wrapRunCommandDocumentModel(inner));
+                }
             }
        });
     }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionImpl.java
index 071da7a3d3275..8f0abc269ae14 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionImpl.java
@@ -31,7 +31,7 @@ class VirtualMachineScaleSetExtensionImpl extends CreatableUpdatableImpl<Virtual
         this.manager = manager;
         // Set resource name
         this.vmssExtensionName = inner.name();
-        // resource ancestor names
+        // set resource ancestor and positional variables
         this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
         this.vmScaleSetName = IdParsingUtils.getValueFromIdByName(inner.id(), "virtualMachineScaleSets");
         this.vmssExtensionName = IdParsingUtils.getValueFromIdByName(inner.id(), "extensions");
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionInner.java
index c846b8739ea35..fb2d9d32dcdc6 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionInner.java
@@ -79,7 +79,7 @@ public class VirtualMachineScaleSetExtensionInner extends SubResourceReadOnly {
     private String provisioningState;
 
     /**
-     * Get the name value.
+     * Get the name of the extension.
      *
      * @return the name value
      */
@@ -88,7 +88,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the name of the extension.
      *
      * @param name the name value to set
      * @return the VirtualMachineScaleSetExtensionInner object itself.
@@ -99,7 +99,7 @@ public VirtualMachineScaleSetExtensionInner withName(String name) {
     }
 
     /**
-     * Get the forceUpdateTag value.
+     * Get if a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
      *
      * @return the forceUpdateTag value
      */
@@ -108,7 +108,7 @@ public String forceUpdateTag() {
     }
 
     /**
-     * Set the forceUpdateTag value.
+     * Set if a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
      *
      * @param forceUpdateTag the forceUpdateTag value to set
      * @return the VirtualMachineScaleSetExtensionInner object itself.
@@ -119,7 +119,7 @@ public VirtualMachineScaleSetExtensionInner withForceUpdateTag(String forceUpdat
     }
 
     /**
-     * Get the publisher value.
+     * Get the name of the extension handler publisher.
      *
      * @return the publisher value
      */
@@ -128,7 +128,7 @@ public String publisher() {
     }
 
     /**
-     * Set the publisher value.
+     * Set the name of the extension handler publisher.
      *
      * @param publisher the publisher value to set
      * @return the VirtualMachineScaleSetExtensionInner object itself.
@@ -139,7 +139,7 @@ public VirtualMachineScaleSetExtensionInner withPublisher(String publisher) {
     }
 
     /**
-     * Get the type value.
+     * Get specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @return the type value
      */
@@ -148,7 +148,7 @@ public String type() {
     }
 
     /**
-     * Set the type value.
+     * Set specifies the type of the extension; an example is "CustomScriptExtension".
      *
      * @param type the type value to set
      * @return the VirtualMachineScaleSetExtensionInner object itself.
@@ -159,7 +159,7 @@ public VirtualMachineScaleSetExtensionInner withType(String type) {
     }
 
     /**
-     * Get the typeHandlerVersion value.
+     * Get specifies the version of the script handler.
      *
      * @return the typeHandlerVersion value
      */
@@ -168,7 +168,7 @@ public String typeHandlerVersion() {
     }
 
     /**
-     * Set the typeHandlerVersion value.
+     * Set specifies the version of the script handler.
      *
      * @param typeHandlerVersion the typeHandlerVersion value to set
      * @return the VirtualMachineScaleSetExtensionInner object itself.
@@ -179,7 +179,7 @@ public VirtualMachineScaleSetExtensionInner withTypeHandlerVersion(String typeHa
     }
 
     /**
-     * Get the autoUpgradeMinorVersion value.
+     * Get indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
      *
      * @return the autoUpgradeMinorVersion value
      */
@@ -188,7 +188,7 @@ public Boolean autoUpgradeMinorVersion() {
     }
 
     /**
-     * Set the autoUpgradeMinorVersion value.
+     * Set indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
      *
      * @param autoUpgradeMinorVersion the autoUpgradeMinorVersion value to set
      * @return the VirtualMachineScaleSetExtensionInner object itself.
@@ -199,7 +199,7 @@ public VirtualMachineScaleSetExtensionInner withAutoUpgradeMinorVersion(Boolean
     }
 
     /**
-     * Get the settings value.
+     * Get json formatted public settings for the extension.
      *
      * @return the settings value
      */
@@ -208,7 +208,7 @@ public Object settings() {
     }
 
     /**
-     * Set the settings value.
+     * Set json formatted public settings for the extension.
      *
      * @param settings the settings value to set
      * @return the VirtualMachineScaleSetExtensionInner object itself.
@@ -219,7 +219,7 @@ public VirtualMachineScaleSetExtensionInner withSettings(Object settings) {
     }
 
     /**
-     * Get the protectedSettings value.
+     * Get the extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
      *
      * @return the protectedSettings value
      */
@@ -228,7 +228,7 @@ public Object protectedSettings() {
     }
 
     /**
-     * Set the protectedSettings value.
+     * Set the extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
      *
      * @param protectedSettings the protectedSettings value to set
      * @return the VirtualMachineScaleSetExtensionInner object itself.
@@ -239,7 +239,7 @@ public VirtualMachineScaleSetExtensionInner withProtectedSettings(Object protect
     }
 
     /**
-     * Get the provisioningState value.
+     * Get the provisioning state, which only appears in the response.
      *
      * @return the provisioningState value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionsImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionsImpl.java
index 822b607c68a11..2fea43c633f3d 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionsImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetExtensionsImpl.java
@@ -64,10 +64,14 @@ public VirtualMachineScaleSetExtension call(VirtualMachineScaleSetExtensionInner
     public Observable<VirtualMachineScaleSetExtension> getAsync(String resourceGroupName, String vmScaleSetName, String vmssExtensionName) {
         VirtualMachineScaleSetExtensionsInner client = this.inner();
         return client.getAsync(resourceGroupName, vmScaleSetName, vmssExtensionName)
-        .map(new Func1<VirtualMachineScaleSetExtensionInner, VirtualMachineScaleSetExtension>() {
+        .flatMap(new Func1<VirtualMachineScaleSetExtensionInner, Observable<VirtualMachineScaleSetExtension>>() {
             @Override
-            public VirtualMachineScaleSetExtension call(VirtualMachineScaleSetExtensionInner inner) {
-                return wrapModel(inner);
+            public Observable<VirtualMachineScaleSetExtension> call(VirtualMachineScaleSetExtensionInner inner) {
+                if (inner == null) {
+                    return Observable.empty();
+                } else {
+                    return Observable.just((VirtualMachineScaleSetExtension)wrapModel(inner));
+                }
             }
        });
     }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetInner.java
index ddb95c6866608..688fe13aeddb6 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetInner.java
@@ -80,8 +80,8 @@ public class VirtualMachineScaleSetInner extends Resource {
     private Boolean singlePlacementGroup;
 
     /**
-     * Whether to force stictly even Virtual Machine distribution cross x-zones
-     * in case there is zone outage.
+     * Whether to force strictly even Virtual Machine distribution cross
+     * x-zones in case there is zone outage.
      */
     @JsonProperty(value = "properties.zoneBalance")
     private Boolean zoneBalance;
@@ -99,13 +99,14 @@ public class VirtualMachineScaleSetInner extends Resource {
     private VirtualMachineScaleSetIdentity identity;
 
     /**
-     * The virtual machine scale set zones.
+     * The virtual machine scale set zones. NOTE: Availability zones can only
+     * be set when you create the scale set.
      */
     @JsonProperty(value = "zones")
     private List<String> zones;
 
     /**
-     * Get the sku value.
+     * Get the virtual machine scale set sku.
      *
      * @return the sku value
      */
@@ -114,7 +115,7 @@ public Sku sku() {
     }
 
     /**
-     * Set the sku value.
+     * Set the virtual machine scale set sku.
      *
      * @param sku the sku value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -125,7 +126,7 @@ public VirtualMachineScaleSetInner withSku(Sku sku) {
     }
 
     /**
-     * Get the plan value.
+     * Get specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**.
      *
      * @return the plan value
      */
@@ -134,7 +135,7 @@ public Plan plan() {
     }
 
     /**
-     * Set the plan value.
+     * Set specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**.
      *
      * @param plan the plan value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -145,7 +146,7 @@ public VirtualMachineScaleSetInner withPlan(Plan plan) {
     }
 
     /**
-     * Get the upgradePolicy value.
+     * Get the upgrade policy.
      *
      * @return the upgradePolicy value
      */
@@ -154,7 +155,7 @@ public UpgradePolicy upgradePolicy() {
     }
 
     /**
-     * Set the upgradePolicy value.
+     * Set the upgrade policy.
      *
      * @param upgradePolicy the upgradePolicy value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -165,7 +166,7 @@ public VirtualMachineScaleSetInner withUpgradePolicy(UpgradePolicy upgradePolicy
     }
 
     /**
-     * Get the virtualMachineProfile value.
+     * Get the virtual machine profile.
      *
      * @return the virtualMachineProfile value
      */
@@ -174,7 +175,7 @@ public VirtualMachineScaleSetVMProfile virtualMachineProfile() {
     }
 
     /**
-     * Set the virtualMachineProfile value.
+     * Set the virtual machine profile.
      *
      * @param virtualMachineProfile the virtualMachineProfile value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -185,7 +186,7 @@ public VirtualMachineScaleSetInner withVirtualMachineProfile(VirtualMachineScale
     }
 
     /**
-     * Get the provisioningState value.
+     * Get the provisioning state, which only appears in the response.
      *
      * @return the provisioningState value
      */
@@ -194,7 +195,7 @@ public String provisioningState() {
     }
 
     /**
-     * Get the overprovision value.
+     * Get specifies whether the Virtual Machine Scale Set should be overprovisioned.
      *
      * @return the overprovision value
      */
@@ -203,7 +204,7 @@ public Boolean overprovision() {
     }
 
     /**
-     * Set the overprovision value.
+     * Set specifies whether the Virtual Machine Scale Set should be overprovisioned.
      *
      * @param overprovision the overprovision value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -214,7 +215,7 @@ public VirtualMachineScaleSetInner withOverprovision(Boolean overprovision) {
     }
 
     /**
-     * Get the uniqueId value.
+     * Get specifies the ID which uniquely identifies a Virtual Machine Scale Set.
      *
      * @return the uniqueId value
      */
@@ -223,7 +224,7 @@ public String uniqueId() {
     }
 
     /**
-     * Get the singlePlacementGroup value.
+     * Get when true this limits the scale set to a single placement group, of max size 100 virtual machines.
      *
      * @return the singlePlacementGroup value
      */
@@ -232,7 +233,7 @@ public Boolean singlePlacementGroup() {
     }
 
     /**
-     * Set the singlePlacementGroup value.
+     * Set when true this limits the scale set to a single placement group, of max size 100 virtual machines.
      *
      * @param singlePlacementGroup the singlePlacementGroup value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -243,7 +244,7 @@ public VirtualMachineScaleSetInner withSinglePlacementGroup(Boolean singlePlacem
     }
 
     /**
-     * Get the zoneBalance value.
+     * Get whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage.
      *
      * @return the zoneBalance value
      */
@@ -252,7 +253,7 @@ public Boolean zoneBalance() {
     }
 
     /**
-     * Set the zoneBalance value.
+     * Set whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage.
      *
      * @param zoneBalance the zoneBalance value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -263,7 +264,7 @@ public VirtualMachineScaleSetInner withZoneBalance(Boolean zoneBalance) {
     }
 
     /**
-     * Get the platformFaultDomainCount value.
+     * Get fault Domain count for each placement group.
      *
      * @return the platformFaultDomainCount value
      */
@@ -272,7 +273,7 @@ public Integer platformFaultDomainCount() {
     }
 
     /**
-     * Set the platformFaultDomainCount value.
+     * Set fault Domain count for each placement group.
      *
      * @param platformFaultDomainCount the platformFaultDomainCount value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -283,7 +284,7 @@ public VirtualMachineScaleSetInner withPlatformFaultDomainCount(Integer platform
     }
 
     /**
-     * Get the identity value.
+     * Get the identity of the virtual machine scale set, if configured.
      *
      * @return the identity value
      */
@@ -292,7 +293,7 @@ public VirtualMachineScaleSetIdentity identity() {
     }
 
     /**
-     * Set the identity value.
+     * Set the identity of the virtual machine scale set, if configured.
      *
      * @param identity the identity value to set
      * @return the VirtualMachineScaleSetInner object itself.
@@ -303,7 +304,7 @@ public VirtualMachineScaleSetInner withIdentity(VirtualMachineScaleSetIdentity i
     }
 
     /**
-     * Get the zones value.
+     * Get the virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set.
      *
      * @return the zones value
      */
@@ -312,7 +313,7 @@ public List<String> zones() {
     }
 
     /**
-     * Set the zones value.
+     * Set the virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set.
      *
      * @param zones the zones value to set
      * @return the VirtualMachineScaleSetInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetInstanceViewInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetInstanceViewInner.java
index 11d9b60747fd6..9d6e2526326b4 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetInstanceViewInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetInstanceViewInner.java
@@ -37,7 +37,7 @@ public class VirtualMachineScaleSetInstanceViewInner {
     private List<InstanceViewStatus> statuses;
 
     /**
-     * Get the virtualMachine value.
+     * Get the instance view status summary for the virtual machine scale set.
      *
      * @return the virtualMachine value
      */
@@ -46,7 +46,7 @@ public VirtualMachineScaleSetInstanceViewStatusesSummary virtualMachine() {
     }
 
     /**
-     * Get the extensions value.
+     * Get the extensions information.
      *
      * @return the extensions value
      */
@@ -55,7 +55,7 @@ public List<VirtualMachineScaleSetVMExtensionsSummary> extensions() {
     }
 
     /**
-     * Get the statuses value.
+     * Get the resource status information.
      *
      * @return the statuses value
      */
@@ -64,7 +64,7 @@ public List<InstanceViewStatus> statuses() {
     }
 
     /**
-     * Set the statuses value.
+     * Set the resource status information.
      *
      * @param statuses the statuses value to set
      * @return the VirtualMachineScaleSetInstanceViewInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetRollingUpgradesInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetRollingUpgradesInner.java
index 3976530d9f562..97127d83ac096 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetRollingUpgradesInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetRollingUpgradesInner.java
@@ -25,6 +25,8 @@
 import retrofit2.Response;
 import rx.functions.Func1;
 import rx.Observable;
+import com.microsoft.azure.LongRunningFinalState;
+import com.microsoft.azure.LongRunningOperationOptions;
 
 /**
  * An instance of this class provides access to all the operations defined
@@ -140,7 +142,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> cancelWithServi
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.cancel(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -296,7 +298,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> startOSUpgradeW
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.startOSUpgrade(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetSkuInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetSkuInner.java
index 93da5395a1249..306d43b2ee3dd 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetSkuInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetSkuInner.java
@@ -35,7 +35,7 @@ public class VirtualMachineScaleSetSkuInner {
     private VirtualMachineScaleSetSkuCapacity capacity;
 
     /**
-     * Get the resourceType value.
+     * Get the type of resource the sku applies to.
      *
      * @return the resourceType value
      */
@@ -44,7 +44,7 @@ public String resourceType() {
     }
 
     /**
-     * Get the sku value.
+     * Get the Sku.
      *
      * @return the sku value
      */
@@ -53,7 +53,7 @@ public Sku sku() {
     }
 
     /**
-     * Get the capacity value.
+     * Get specifies the number of virtual machines in the scale set.
      *
      * @return the capacity value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMImpl.java
index 4d074eeefb9b6..78c2d519de229 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMImpl.java
@@ -21,7 +21,7 @@
 import com.microsoft.azure.SubResource;
 import com.microsoft.azure.management.compute.v2017_12_01.Plan;
 import java.util.List;
-import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineInstanceView;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineScaleSetVMInstanceView;
 import java.util.ArrayList;
 import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineExtension;
 
@@ -44,7 +44,7 @@ class VirtualMachineScaleSetVMImpl extends CreatableUpdatableImpl<VirtualMachine
         this.manager = manager;
         // Set resource name
         this.instanceId = inner.name();
-        // resource ancestor names
+        // set resource ancestor and positional variables
         this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
         this.vmScaleSetName = IdParsingUtils.getValueFromIdByName(inner.id(), "virtualMachineScaleSets");
         this.instanceId = IdParsingUtils.getValueFromIdByName(inner.id(), "virtualmachines");
@@ -107,10 +107,10 @@ public String instanceId() {
     }
 
     @Override
-    public VirtualMachineInstanceView instanceView() {
-        VirtualMachineInstanceViewInner inner = this.inner().instanceView();
+    public VirtualMachineScaleSetVMInstanceView instanceView() {
+        VirtualMachineScaleSetVMInstanceViewInner inner = this.inner().instanceView();
         if (inner != null) {
-            return  new VirtualMachineInstanceViewImpl(inner, manager());
+            return  new VirtualMachineScaleSetVMInstanceViewImpl(inner, manager());
         } else {
             return null;
         }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMInner.java
index e95dbb7a68457..a876af4eaf056 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMInner.java
@@ -55,7 +55,7 @@ public class VirtualMachineScaleSetVMInner extends Resource {
      * The virtual machine instance view.
      */
     @JsonProperty(value = "properties.instanceView", access = JsonProperty.Access.WRITE_ONLY)
-    private VirtualMachineInstanceViewInner instanceView;
+    private VirtualMachineScaleSetVMInstanceViewInner instanceView;
 
     /**
      * Specifies the hardware settings for the virtual machine.
@@ -95,7 +95,7 @@ public class VirtualMachineScaleSetVMInner extends Resource {
      * availability. For more information about availability sets, see [Manage
      * the availability of virtual
      * machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
-     * &lt;br&gt;&lt;br&gt; For more information on Azure planned maintainance,
+     * &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance,
      * see [Planned maintenance for virtual machines in
      * Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
      * &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability
@@ -145,7 +145,7 @@ public class VirtualMachineScaleSetVMInner extends Resource {
     private List<VirtualMachineExtensionInner> resources;
 
     /**
-     * Get the instanceId value.
+     * Get the virtual machine instance ID.
      *
      * @return the instanceId value
      */
@@ -154,7 +154,7 @@ public String instanceId() {
     }
 
     /**
-     * Get the sku value.
+     * Get the virtual machine SKU.
      *
      * @return the sku value
      */
@@ -163,7 +163,7 @@ public Sku sku() {
     }
 
     /**
-     * Get the latestModelApplied value.
+     * Get specifies whether the latest model has been applied to the virtual machine.
      *
      * @return the latestModelApplied value
      */
@@ -172,7 +172,7 @@ public Boolean latestModelApplied() {
     }
 
     /**
-     * Get the vmId value.
+     * Get azure VM unique ID.
      *
      * @return the vmId value
      */
@@ -181,16 +181,16 @@ public String vmId() {
     }
 
     /**
-     * Get the instanceView value.
+     * Get the virtual machine instance view.
      *
      * @return the instanceView value
      */
-    public VirtualMachineInstanceViewInner instanceView() {
+    public VirtualMachineScaleSetVMInstanceViewInner instanceView() {
         return this.instanceView;
     }
 
     /**
-     * Get the hardwareProfile value.
+     * Get specifies the hardware settings for the virtual machine.
      *
      * @return the hardwareProfile value
      */
@@ -199,7 +199,7 @@ public HardwareProfile hardwareProfile() {
     }
 
     /**
-     * Set the hardwareProfile value.
+     * Set specifies the hardware settings for the virtual machine.
      *
      * @param hardwareProfile the hardwareProfile value to set
      * @return the VirtualMachineScaleSetVMInner object itself.
@@ -210,7 +210,7 @@ public VirtualMachineScaleSetVMInner withHardwareProfile(HardwareProfile hardwar
     }
 
     /**
-     * Get the storageProfile value.
+     * Get specifies the storage settings for the virtual machine disks.
      *
      * @return the storageProfile value
      */
@@ -219,7 +219,7 @@ public StorageProfile storageProfile() {
     }
 
     /**
-     * Set the storageProfile value.
+     * Set specifies the storage settings for the virtual machine disks.
      *
      * @param storageProfile the storageProfile value to set
      * @return the VirtualMachineScaleSetVMInner object itself.
@@ -230,7 +230,7 @@ public VirtualMachineScaleSetVMInner withStorageProfile(StorageProfile storagePr
     }
 
     /**
-     * Get the osProfile value.
+     * Get specifies the operating system settings for the virtual machine.
      *
      * @return the osProfile value
      */
@@ -239,7 +239,7 @@ public OSProfile osProfile() {
     }
 
     /**
-     * Set the osProfile value.
+     * Set specifies the operating system settings for the virtual machine.
      *
      * @param osProfile the osProfile value to set
      * @return the VirtualMachineScaleSetVMInner object itself.
@@ -250,7 +250,7 @@ public VirtualMachineScaleSetVMInner withOsProfile(OSProfile osProfile) {
     }
 
     /**
-     * Get the networkProfile value.
+     * Get specifies the network interfaces of the virtual machine.
      *
      * @return the networkProfile value
      */
@@ -259,7 +259,7 @@ public NetworkProfile networkProfile() {
     }
 
     /**
-     * Set the networkProfile value.
+     * Set specifies the network interfaces of the virtual machine.
      *
      * @param networkProfile the networkProfile value to set
      * @return the VirtualMachineScaleSetVMInner object itself.
@@ -270,7 +270,7 @@ public VirtualMachineScaleSetVMInner withNetworkProfile(NetworkProfile networkPr
     }
 
     /**
-     * Get the diagnosticsProfile value.
+     * Get specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15.
      *
      * @return the diagnosticsProfile value
      */
@@ -279,7 +279,7 @@ public DiagnosticsProfile diagnosticsProfile() {
     }
 
     /**
-     * Set the diagnosticsProfile value.
+     * Set specifies the boot diagnostic settings state. &lt;br&gt;&lt;br&gt;Minimum api-version: 2015-06-15.
      *
      * @param diagnosticsProfile the diagnosticsProfile value to set
      * @return the VirtualMachineScaleSetVMInner object itself.
@@ -290,7 +290,7 @@ public VirtualMachineScaleSetVMInner withDiagnosticsProfile(DiagnosticsProfile d
     }
 
     /**
-     * Get the availabilitySet value.
+     * Get specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
      *
      * @return the availabilitySet value
      */
@@ -299,7 +299,7 @@ public SubResource availabilitySet() {
     }
 
     /**
-     * Set the availabilitySet value.
+     * Set specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). &lt;br&gt;&lt;br&gt; For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
      *
      * @param availabilitySet the availabilitySet value to set
      * @return the VirtualMachineScaleSetVMInner object itself.
@@ -310,7 +310,7 @@ public VirtualMachineScaleSetVMInner withAvailabilitySet(SubResource availabilit
     }
 
     /**
-     * Get the provisioningState value.
+     * Get the provisioning state, which only appears in the response.
      *
      * @return the provisioningState value
      */
@@ -319,7 +319,7 @@ public String provisioningState() {
     }
 
     /**
-     * Get the licenseType value.
+     * Get specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @return the licenseType value
      */
@@ -328,7 +328,7 @@ public String licenseType() {
     }
 
     /**
-     * Set the licenseType value.
+     * Set specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server &lt;br&gt;&lt;br&gt; If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15.
      *
      * @param licenseType the licenseType value to set
      * @return the VirtualMachineScaleSetVMInner object itself.
@@ -339,7 +339,7 @@ public VirtualMachineScaleSetVMInner withLicenseType(String licenseType) {
     }
 
     /**
-     * Get the plan value.
+     * Get specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**.
      *
      * @return the plan value
      */
@@ -348,7 +348,7 @@ public Plan plan() {
     }
 
     /**
-     * Set the plan value.
+     * Set specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started -&gt;**. Enter any required information and then click **Save**.
      *
      * @param plan the plan value to set
      * @return the VirtualMachineScaleSetVMInner object itself.
@@ -359,7 +359,7 @@ public VirtualMachineScaleSetVMInner withPlan(Plan plan) {
     }
 
     /**
-     * Get the resources value.
+     * Get the virtual machine child extension resources.
      *
      * @return the resources value
      */
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMInstanceViewInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMInstanceViewInner.java
index fff6826a94040..7df32beff89b3 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMInstanceViewInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMInstanceViewInner.java
@@ -72,9 +72,8 @@ public class VirtualMachineScaleSetVMInstanceViewInner {
 
     /**
      * Boot Diagnostics is a debugging feature which allows you to view Console
-     * Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; For
-     * Linux Virtual Machines, you can easily view the output of your console
-     * log. &lt;br&gt;&lt;br&gt; For both Windows and Linux virtual machines,
+     * Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You
+     * can easily view the output of your console log. &lt;br&gt;&lt;br&gt;
      * Azure also enables you to see a screenshot of the VM from the
      * hypervisor.
      */
@@ -95,7 +94,7 @@ public class VirtualMachineScaleSetVMInstanceViewInner {
     private String placementGroupId;
 
     /**
-     * Get the platformUpdateDomain value.
+     * Get the Update Domain count.
      *
      * @return the platformUpdateDomain value
      */
@@ -104,7 +103,7 @@ public Integer platformUpdateDomain() {
     }
 
     /**
-     * Set the platformUpdateDomain value.
+     * Set the Update Domain count.
      *
      * @param platformUpdateDomain the platformUpdateDomain value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -115,7 +114,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withPlatformUpdateDomain(Intege
     }
 
     /**
-     * Get the platformFaultDomain value.
+     * Get the Fault Domain count.
      *
      * @return the platformFaultDomain value
      */
@@ -124,7 +123,7 @@ public Integer platformFaultDomain() {
     }
 
     /**
-     * Set the platformFaultDomain value.
+     * Set the Fault Domain count.
      *
      * @param platformFaultDomain the platformFaultDomain value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -135,7 +134,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withPlatformFaultDomain(Integer
     }
 
     /**
-     * Get the rdpThumbPrint value.
+     * Get the Remote desktop certificate thumbprint.
      *
      * @return the rdpThumbPrint value
      */
@@ -144,7 +143,7 @@ public String rdpThumbPrint() {
     }
 
     /**
-     * Set the rdpThumbPrint value.
+     * Set the Remote desktop certificate thumbprint.
      *
      * @param rdpThumbPrint the rdpThumbPrint value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -155,7 +154,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withRdpThumbPrint(String rdpThu
     }
 
     /**
-     * Get the vmAgent value.
+     * Get the VM Agent running on the virtual machine.
      *
      * @return the vmAgent value
      */
@@ -164,7 +163,7 @@ public VirtualMachineAgentInstanceView vmAgent() {
     }
 
     /**
-     * Set the vmAgent value.
+     * Set the VM Agent running on the virtual machine.
      *
      * @param vmAgent the vmAgent value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -175,7 +174,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withVmAgent(VirtualMachineAgent
     }
 
     /**
-     * Get the maintenanceRedeployStatus value.
+     * Get the Maintenance Operation status on the virtual machine.
      *
      * @return the maintenanceRedeployStatus value
      */
@@ -184,7 +183,7 @@ public MaintenanceRedeployStatus maintenanceRedeployStatus() {
     }
 
     /**
-     * Set the maintenanceRedeployStatus value.
+     * Set the Maintenance Operation status on the virtual machine.
      *
      * @param maintenanceRedeployStatus the maintenanceRedeployStatus value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -195,7 +194,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withMaintenanceRedeployStatus(M
     }
 
     /**
-     * Get the disks value.
+     * Get the disks information.
      *
      * @return the disks value
      */
@@ -204,7 +203,7 @@ public List<DiskInstanceView> disks() {
     }
 
     /**
-     * Set the disks value.
+     * Set the disks information.
      *
      * @param disks the disks value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -215,7 +214,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withDisks(List<DiskInstanceView
     }
 
     /**
-     * Get the extensions value.
+     * Get the extensions information.
      *
      * @return the extensions value
      */
@@ -224,7 +223,7 @@ public List<VirtualMachineExtensionInstanceView> extensions() {
     }
 
     /**
-     * Set the extensions value.
+     * Set the extensions information.
      *
      * @param extensions the extensions value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -235,7 +234,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withExtensions(List<VirtualMach
     }
 
     /**
-     * Get the vmHealth value.
+     * Get the health status for the VM.
      *
      * @return the vmHealth value
      */
@@ -244,7 +243,7 @@ public VirtualMachineHealthStatus vmHealth() {
     }
 
     /**
-     * Get the bootDiagnostics value.
+     * Get boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You can easily view the output of your console log. &lt;br&gt;&lt;br&gt; Azure also enables you to see a screenshot of the VM from the hypervisor.
      *
      * @return the bootDiagnostics value
      */
@@ -253,7 +252,7 @@ public BootDiagnosticsInstanceView bootDiagnostics() {
     }
 
     /**
-     * Set the bootDiagnostics value.
+     * Set boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. &lt;br&gt;&lt;br&gt; You can easily view the output of your console log. &lt;br&gt;&lt;br&gt; Azure also enables you to see a screenshot of the VM from the hypervisor.
      *
      * @param bootDiagnostics the bootDiagnostics value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -264,7 +263,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withBootDiagnostics(BootDiagnos
     }
 
     /**
-     * Get the statuses value.
+     * Get the resource status information.
      *
      * @return the statuses value
      */
@@ -273,7 +272,7 @@ public List<InstanceViewStatus> statuses() {
     }
 
     /**
-     * Set the statuses value.
+     * Set the resource status information.
      *
      * @param statuses the statuses value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
@@ -284,7 +283,7 @@ public VirtualMachineScaleSetVMInstanceViewInner withStatuses(List<InstanceViewS
     }
 
     /**
-     * Get the placementGroupId value.
+     * Get the placement group in which the VM is running. If the VM is deallocated it will not have a placementGroupId.
      *
      * @return the placementGroupId value
      */
@@ -293,7 +292,7 @@ public String placementGroupId() {
     }
 
     /**
-     * Set the placementGroupId value.
+     * Set the placement group in which the VM is running. If the VM is deallocated it will not have a placementGroupId.
      *
      * @param placementGroupId the placementGroupId value to set
      * @return the VirtualMachineScaleSetVMInstanceViewInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMsImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMsImpl.java
index 2bf780ed59f8a..e671f2a6b31c1 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMsImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMsImpl.java
@@ -165,10 +165,14 @@ public VirtualMachineScaleSetVM call(VirtualMachineScaleSetVMInner inner) {
     public Observable<VirtualMachineScaleSetVM> getAsync(String resourceGroupName, String vmScaleSetName, String instanceId) {
         VirtualMachineScaleSetVMsInner client = this.inner();
         return client.getAsync(resourceGroupName, vmScaleSetName, instanceId)
-        .map(new Func1<VirtualMachineScaleSetVMInner, VirtualMachineScaleSetVM>() {
+        .flatMap(new Func1<VirtualMachineScaleSetVMInner, Observable<VirtualMachineScaleSetVM>>() {
             @Override
-            public VirtualMachineScaleSetVM call(VirtualMachineScaleSetVMInner inner) {
-                return wrapModel(inner);
+            public Observable<VirtualMachineScaleSetVM> call(VirtualMachineScaleSetVMInner inner) {
+                if (inner == null) {
+                    return Observable.empty();
+                } else {
+                    return Observable.just((VirtualMachineScaleSetVM)wrapModel(inner));
+                }
             }
        });
     }
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMsInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMsInner.java
index 788c82df93875..55a187b9c59ef 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMsInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetVMsInner.java
@@ -35,6 +35,8 @@
 import retrofit2.Response;
 import rx.functions.Func1;
 import rx.Observable;
+import com.microsoft.azure.LongRunningFinalState;
+import com.microsoft.azure.LongRunningOperationOptions;
 
 /**
  * An instance of this class provides access to all the operations defined
@@ -233,7 +235,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> reimageWithServ
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.reimage(resourceGroupName, vmScaleSetName, instanceId, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -403,7 +405,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> reimageAllWithS
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.reimageAll(resourceGroupName, vmScaleSetName, instanceId, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -573,7 +575,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> deallocateWithS
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.deallocate(resourceGroupName, vmScaleSetName, instanceId, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -1337,9 +1339,9 @@ public Observable<ServiceResponse<Page<VirtualMachineScaleSetVMInner>>> call(Res
      *
      * @param resourceGroupName The name of the resource group.
      * @param virtualMachineScaleSetName The name of the VM scale set.
-     * @param filter The filter to apply to the operation.
-     * @param select The list parameters.
-     * @param expand The expand expression to apply to the operation.
+     * @param filter The filter to apply to the operation. Allowed values are 'startswith(instanceView/statuses/code, 'PowerState') eq true', 'properties/latestModelApplied eq true', 'properties/latestModelApplied eq false'.
+     * @param select The list parameters. Allowed values are 'instanceView', 'instanceView/statuses'.
+     * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
      * @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
@@ -1360,9 +1362,9 @@ public Page<VirtualMachineScaleSetVMInner> nextPage(String nextPageLink) {
      *
      * @param resourceGroupName The name of the resource group.
      * @param virtualMachineScaleSetName The name of the VM scale set.
-     * @param filter The filter to apply to the operation.
-     * @param select The list parameters.
-     * @param expand The expand expression to apply to the operation.
+     * @param filter The filter to apply to the operation. Allowed values are 'startswith(instanceView/statuses/code, 'PowerState') eq true', 'properties/latestModelApplied eq true', 'properties/latestModelApplied eq false'.
+     * @param select The list parameters. Allowed values are 'instanceView', 'instanceView/statuses'.
+     * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
      * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
      * @throws IllegalArgumentException thrown if parameters fail the validation
      * @return the {@link ServiceFuture} object
@@ -1384,9 +1386,9 @@ public Observable<ServiceResponse<Page<VirtualMachineScaleSetVMInner>>> call(Str
      *
      * @param resourceGroupName The name of the resource group.
      * @param virtualMachineScaleSetName The name of the VM scale set.
-     * @param filter The filter to apply to the operation.
-     * @param select The list parameters.
-     * @param expand The expand expression to apply to the operation.
+     * @param filter The filter to apply to the operation. Allowed values are 'startswith(instanceView/statuses/code, 'PowerState') eq true', 'properties/latestModelApplied eq true', 'properties/latestModelApplied eq false'.
+     * @param select The list parameters. Allowed values are 'instanceView', 'instanceView/statuses'.
+     * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
      * @throws IllegalArgumentException thrown if parameters fail the validation
      * @return the observable to the PagedList&lt;VirtualMachineScaleSetVMInner&gt; object
      */
@@ -1405,9 +1407,9 @@ public Page<VirtualMachineScaleSetVMInner> call(ServiceResponse<Page<VirtualMach
      *
      * @param resourceGroupName The name of the resource group.
      * @param virtualMachineScaleSetName The name of the VM scale set.
-     * @param filter The filter to apply to the operation.
-     * @param select The list parameters.
-     * @param expand The expand expression to apply to the operation.
+     * @param filter The filter to apply to the operation. Allowed values are 'startswith(instanceView/statuses/code, 'PowerState') eq true', 'properties/latestModelApplied eq true', 'properties/latestModelApplied eq false'.
+     * @param select The list parameters. Allowed values are 'instanceView', 'instanceView/statuses'.
+     * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
      * @throws IllegalArgumentException thrown if parameters fail the validation
      * @return the observable to the PagedList&lt;VirtualMachineScaleSetVMInner&gt; object
      */
@@ -1430,9 +1432,9 @@ public Observable<ServiceResponse<Page<VirtualMachineScaleSetVMInner>>> call(Ser
      *
     ServiceResponse<PageImpl1<VirtualMachineScaleSetVMInner>> * @param resourceGroupName The name of the resource group.
     ServiceResponse<PageImpl1<VirtualMachineScaleSetVMInner>> * @param virtualMachineScaleSetName The name of the VM scale set.
-    ServiceResponse<PageImpl1<VirtualMachineScaleSetVMInner>> * @param filter The filter to apply to the operation.
-    ServiceResponse<PageImpl1<VirtualMachineScaleSetVMInner>> * @param select The list parameters.
-    ServiceResponse<PageImpl1<VirtualMachineScaleSetVMInner>> * @param expand The expand expression to apply to the operation.
+    ServiceResponse<PageImpl1<VirtualMachineScaleSetVMInner>> * @param filter The filter to apply to the operation. Allowed values are 'startswith(instanceView/statuses/code, 'PowerState') eq true', 'properties/latestModelApplied eq true', 'properties/latestModelApplied eq false'.
+    ServiceResponse<PageImpl1<VirtualMachineScaleSetVMInner>> * @param select The list parameters. Allowed values are 'instanceView', 'instanceView/statuses'.
+    ServiceResponse<PageImpl1<VirtualMachineScaleSetVMInner>> * @param expand The expand expression to apply to the operation. Allowed values are 'instanceView'.
      * @throws IllegalArgumentException thrown if parameters fail the validation
      * @return the PagedList&lt;VirtualMachineScaleSetVMInner&gt; object wrapped in {@link ServiceResponse} if successful.
      */
@@ -1543,7 +1545,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> powerOffWithSer
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.powerOff(resourceGroupName, vmScaleSetName, instanceId, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -1713,7 +1715,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> restartWithServ
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.restart(resourceGroupName, vmScaleSetName, instanceId, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -1883,7 +1885,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> startWithServic
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.start(resourceGroupName, vmScaleSetName, instanceId, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -1981,7 +1983,7 @@ private ServiceResponse<OperationStatusResponseInner> beginStartDelegate(Respons
     }
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -1996,7 +1998,7 @@ public OperationStatusResponseInner redeploy(String resourceGroupName, String vm
     }
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2010,7 +2012,7 @@ public ServiceFuture<OperationStatusResponseInner> redeployAsync(String resource
     }
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2028,7 +2030,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2053,11 +2055,11 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> redeployWithSer
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.redeploy(resourceGroupName, vmScaleSetName, instanceId, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2072,7 +2074,7 @@ public OperationStatusResponseInner beginRedeploy(String resourceGroupName, Stri
     }
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2086,7 +2088,7 @@ public ServiceFuture<OperationStatusResponseInner> beginRedeployAsync(String res
     }
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2104,7 +2106,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Redeploys a virtual machine in a VM scale set.
+     * Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2223,7 +2225,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> performMaintena
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.performMaintenance(resourceGroupName, vmScaleSetName, instanceId, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetsImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetsImpl.java
index 26e2ff1958fcc..71b2ad876e933 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetsImpl.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetsImpl.java
@@ -176,7 +176,8 @@ public Observable<UpgradeOperationHistoricalStatusInfo> getOSUpgradeHistoryAsync
             public Iterable<UpgradeOperationHistoricalStatusInfoInner> call(Page<UpgradeOperationHistoricalStatusInfoInner> page) {
                 return page.items();
             }
-        })    .map(new Func1<UpgradeOperationHistoricalStatusInfoInner, UpgradeOperationHistoricalStatusInfo>() {
+        })
+        .map(new Func1<UpgradeOperationHistoricalStatusInfoInner, UpgradeOperationHistoricalStatusInfo>() {
             @Override
             public UpgradeOperationHistoricalStatusInfo call(UpgradeOperationHistoricalStatusInfoInner inner) {
                 return new UpgradeOperationHistoricalStatusInfoImpl(inner, manager());
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetsInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetsInner.java
index ceb67b6a912b7..c9640a0d26940 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetsInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineScaleSetsInner.java
@@ -42,6 +42,8 @@
 import retrofit2.Response;
 import rx.functions.Func1;
 import rx.Observable;
+import com.microsoft.azure.LongRunningFinalState;
+import com.microsoft.azure.LongRunningOperationOptions;
 
 /**
  * An instance of this class provides access to all the operations defined
@@ -874,7 +876,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> deallocateWithS
         VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
         vmInstanceIDs.withInstanceIds(null);
         Observable<Response<ResponseBody>> observable = service.deallocate(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
     /**
      * Deallocates specific virtual machines in a VM scale set. Shuts down the virtual machines and releases the compute resources. You are not billed for the compute resources that this virtual machine scale set deallocates.
@@ -952,7 +954,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> deallocateWithS
             vmInstanceIDs.withInstanceIds(instanceIds);
         }
         Observable<Response<ResponseBody>> observable = service.deallocate(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -1210,7 +1212,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> deleteInstances
         VirtualMachineScaleSetVMInstanceRequiredIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceRequiredIDs();
         vmInstanceIDs.withInstanceIds(instanceIds);
         Observable<Response<ResponseBody>> observable = service.deleteInstances(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -1933,7 +1935,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> powerOffWithSer
         VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
         vmInstanceIDs.withInstanceIds(null);
         Observable<Response<ResponseBody>> observable = service.powerOff(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
     /**
      * Power off (stop) one or more virtual machines in a VM scale set. Note that resources are still attached and you are getting charged for the resources. Instead, use deallocate to release resources and avoid charges.
@@ -2011,7 +2013,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> powerOffWithSer
             vmInstanceIDs.withInstanceIds(instanceIds);
         }
         Observable<Response<ResponseBody>> observable = service.powerOff(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -2262,7 +2264,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> restartWithServ
         VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
         vmInstanceIDs.withInstanceIds(null);
         Observable<Response<ResponseBody>> observable = service.restart(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
     /**
      * Restarts one or more virtual machines in a VM scale set.
@@ -2340,7 +2342,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> restartWithServ
             vmInstanceIDs.withInstanceIds(instanceIds);
         }
         Observable<Response<ResponseBody>> observable = service.restart(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -2591,7 +2593,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> startWithServic
         VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
         vmInstanceIDs.withInstanceIds(null);
         Observable<Response<ResponseBody>> observable = service.start(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
     /**
      * Starts one or more virtual machines in a VM scale set.
@@ -2669,7 +2671,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> startWithServic
             vmInstanceIDs.withInstanceIds(instanceIds);
         }
         Observable<Response<ResponseBody>> observable = service.start(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -2852,7 +2854,7 @@ private ServiceResponse<OperationStatusResponseInner> beginStartDelegate(Respons
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2866,7 +2868,7 @@ public OperationStatusResponseInner redeploy(String resourceGroupName, String vm
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2879,7 +2881,7 @@ public ServiceFuture<OperationStatusResponseInner> redeployAsync(String resource
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2896,7 +2898,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2920,10 +2922,10 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> redeployWithSer
         VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
         vmInstanceIDs.withInstanceIds(null);
         Observable<Response<ResponseBody>> observable = service.redeploy(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2938,7 +2940,7 @@ public OperationStatusResponseInner redeploy(String resourceGroupName, String vm
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2952,7 +2954,7 @@ public ServiceFuture<OperationStatusResponseInner> redeployAsync(String resource
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2970,7 +2972,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -2998,11 +3000,11 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> redeployWithSer
             vmInstanceIDs.withInstanceIds(instanceIds);
         }
         Observable<Response<ResponseBody>> observable = service.redeploy(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3016,7 +3018,7 @@ public OperationStatusResponseInner beginRedeploy(String resourceGroupName, Stri
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3029,7 +3031,7 @@ public ServiceFuture<OperationStatusResponseInner> beginRedeployAsync(String res
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3046,7 +3048,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3084,7 +3086,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> call(Response<R
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3099,7 +3101,7 @@ public OperationStatusResponseInner beginRedeploy(String resourceGroupName, Stri
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3113,7 +3115,7 @@ public ServiceFuture<OperationStatusResponseInner> beginRedeployAsync(String res
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3131,7 +3133,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Redeploy one or more virtual machines in a VM scale set.
+     * Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3181,7 +3183,7 @@ private ServiceResponse<OperationStatusResponseInner> beginRedeployDelegate(Resp
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3195,7 +3197,7 @@ public OperationStatusResponseInner performMaintenance(String resourceGroupName,
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3208,7 +3210,7 @@ public ServiceFuture<OperationStatusResponseInner> performMaintenanceAsync(Strin
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3225,7 +3227,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3249,10 +3251,10 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> performMaintena
         VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
         vmInstanceIDs.withInstanceIds(null);
         Observable<Response<ResponseBody>> observable = service.performMaintenance(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3267,7 +3269,7 @@ public OperationStatusResponseInner performMaintenance(String resourceGroupName,
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3281,7 +3283,7 @@ public ServiceFuture<OperationStatusResponseInner> performMaintenanceAsync(Strin
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3299,7 +3301,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3327,11 +3329,11 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> performMaintena
             vmInstanceIDs.withInstanceIds(instanceIds);
         }
         Observable<Response<ResponseBody>> observable = service.performMaintenance(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3345,7 +3347,7 @@ public OperationStatusResponseInner beginPerformMaintenance(String resourceGroup
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3358,7 +3360,7 @@ public ServiceFuture<OperationStatusResponseInner> beginPerformMaintenanceAsync(
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3375,7 +3377,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3413,7 +3415,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> call(Response<R
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3428,7 +3430,7 @@ public OperationStatusResponseInner beginPerformMaintenance(String resourceGroup
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3442,7 +3444,7 @@ public ServiceFuture<OperationStatusResponseInner> beginPerformMaintenanceAsync(
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3460,7 +3462,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * Perform maintenance on one or more virtual machines in a VM scale set.
+     * Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmScaleSetName The name of the VM scale set.
@@ -3585,7 +3587,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> updateInstances
         VirtualMachineScaleSetVMInstanceRequiredIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceRequiredIDs();
         vmInstanceIDs.withInstanceIds(instanceIds);
         Observable<Response<ResponseBody>> observable = service.updateInstances(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -3754,7 +3756,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> reimageWithServ
         VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
         vmInstanceIDs.withInstanceIds(null);
         Observable<Response<ResponseBody>> observable = service.reimage(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
     /**
      * Reimages (upgrade the operating system) one or more virtual machines in a VM scale set.
@@ -3832,7 +3834,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> reimageWithServ
             vmInstanceIDs.withInstanceIds(instanceIds);
         }
         Observable<Response<ResponseBody>> observable = service.reimage(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -4083,7 +4085,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> reimageAllWithS
         VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
         vmInstanceIDs.withInstanceIds(null);
         Observable<Response<ResponseBody>> observable = service.reimageAll(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
     /**
      * Reimages all the disks ( including data disks ) in the virtual machines in a VM scale set. This operation is only supported for managed disks.
@@ -4161,7 +4163,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> reimageAllWithS
             vmInstanceIDs.withInstanceIds(instanceIds);
         }
         Observable<Response<ResponseBody>> observable = service.reimageAll(resourceGroupName, vmScaleSetName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), vmInstanceIDs, this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineSizeInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineSizeInner.java
index 6268a4b674e10..97bf7798135ac 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineSizeInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachineSizeInner.java
@@ -52,7 +52,7 @@ public class VirtualMachineSizeInner {
     private Integer maxDataDiskCount;
 
     /**
-     * Get the name value.
+     * Get the name of the virtual machine size.
      *
      * @return the name value
      */
@@ -61,7 +61,7 @@ public String name() {
     }
 
     /**
-     * Set the name value.
+     * Set the name of the virtual machine size.
      *
      * @param name the name value to set
      * @return the VirtualMachineSizeInner object itself.
@@ -72,7 +72,7 @@ public VirtualMachineSizeInner withName(String name) {
     }
 
     /**
-     * Get the numberOfCores value.
+     * Get the number of cores supported by the virtual machine size.
      *
      * @return the numberOfCores value
      */
@@ -81,7 +81,7 @@ public Integer numberOfCores() {
     }
 
     /**
-     * Set the numberOfCores value.
+     * Set the number of cores supported by the virtual machine size.
      *
      * @param numberOfCores the numberOfCores value to set
      * @return the VirtualMachineSizeInner object itself.
@@ -92,7 +92,7 @@ public VirtualMachineSizeInner withNumberOfCores(Integer numberOfCores) {
     }
 
     /**
-     * Get the osDiskSizeInMB value.
+     * Get the OS disk size, in MB, allowed by the virtual machine size.
      *
      * @return the osDiskSizeInMB value
      */
@@ -101,7 +101,7 @@ public Integer osDiskSizeInMB() {
     }
 
     /**
-     * Set the osDiskSizeInMB value.
+     * Set the OS disk size, in MB, allowed by the virtual machine size.
      *
      * @param osDiskSizeInMB the osDiskSizeInMB value to set
      * @return the VirtualMachineSizeInner object itself.
@@ -112,7 +112,7 @@ public VirtualMachineSizeInner withOsDiskSizeInMB(Integer osDiskSizeInMB) {
     }
 
     /**
-     * Get the resourceDiskSizeInMB value.
+     * Get the resource disk size, in MB, allowed by the virtual machine size.
      *
      * @return the resourceDiskSizeInMB value
      */
@@ -121,7 +121,7 @@ public Integer resourceDiskSizeInMB() {
     }
 
     /**
-     * Set the resourceDiskSizeInMB value.
+     * Set the resource disk size, in MB, allowed by the virtual machine size.
      *
      * @param resourceDiskSizeInMB the resourceDiskSizeInMB value to set
      * @return the VirtualMachineSizeInner object itself.
@@ -132,7 +132,7 @@ public VirtualMachineSizeInner withResourceDiskSizeInMB(Integer resourceDiskSize
     }
 
     /**
-     * Get the memoryInMB value.
+     * Get the amount of memory, in MB, supported by the virtual machine size.
      *
      * @return the memoryInMB value
      */
@@ -141,7 +141,7 @@ public Integer memoryInMB() {
     }
 
     /**
-     * Set the memoryInMB value.
+     * Set the amount of memory, in MB, supported by the virtual machine size.
      *
      * @param memoryInMB the memoryInMB value to set
      * @return the VirtualMachineSizeInner object itself.
@@ -152,7 +152,7 @@ public VirtualMachineSizeInner withMemoryInMB(Integer memoryInMB) {
     }
 
     /**
-     * Get the maxDataDiskCount value.
+     * Get the maximum number of data disks that can be attached to the virtual machine size.
      *
      * @return the maxDataDiskCount value
      */
@@ -161,7 +161,7 @@ public Integer maxDataDiskCount() {
     }
 
     /**
-     * Set the maxDataDiskCount value.
+     * Set the maximum number of data disks that can be attached to the virtual machine size.
      *
      * @param maxDataDiskCount the maxDataDiskCount value to set
      * @return the VirtualMachineSizeInner object itself.
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachinesImpl.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachinesImpl.java
new file mode 100644
index 0000000000000..6474872196e45
--- /dev/null
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachinesImpl.java
@@ -0,0 +1,297 @@
+/**
+ * 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.
+ * abc
+ */
+
+package com.microsoft.azure.management.compute.v2017_12_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachines;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachine;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineCaptureResult;
+import com.microsoft.azure.management.compute.v2017_12_01.OperationStatusResponse;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineInstanceView;
+import com.microsoft.azure.management.compute.v2017_12_01.RunCommandResult;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineCaptureParameters;
+import com.microsoft.azure.management.compute.v2017_12_01.RunCommandInput;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineExtensionsListResult;
+import java.util.List;
+import com.microsoft.azure.management.compute.v2017_12_01.VirtualMachineVirtualMachineSize;
+
+class VirtualMachinesImpl extends WrapperImpl<VirtualMachinesInner> implements VirtualMachines {
+    private final ComputeManager manager;
+
+    VirtualMachinesImpl(ComputeManager manager) {
+        super(manager.inner().virtualMachines());
+        this.manager = manager;
+    }
+
+    public ComputeManager manager() {
+        return this.manager;
+    }
+
+    @Override
+    public VirtualMachineImpl defineVirtualMachine(String name) {
+        return wrapVirtualMachineModel(name);
+    }
+
+    private VirtualMachineImpl wrapVirtualMachineModel(String name) {
+        return new VirtualMachineImpl(name, this.manager());
+    }
+
+    private VirtualMachineImpl wrapVirtualMachineModel(VirtualMachineInner inner) {
+        return  new VirtualMachineImpl(inner, manager());
+    }
+
+    private VirtualMachineVirtualMachineSizeImpl wrapVirtualMachineVirtualMachineSizeModel(VirtualMachineSizeInner inner) {
+        return  new VirtualMachineVirtualMachineSizeImpl(inner, manager());
+    }
+
+    @Override
+    public Observable<VirtualMachine> listByLocationAsync(final String location) {
+        VirtualMachinesInner client = this.inner();
+        return client.listByLocationAsync(location)
+        .flatMapIterable(new Func1<Page<VirtualMachineInner>, Iterable<VirtualMachineInner>>() {
+            @Override
+            public Iterable<VirtualMachineInner> call(Page<VirtualMachineInner> page) {
+                return page.items();
+            }
+        })
+        .map(new Func1<VirtualMachineInner, VirtualMachine>() {
+            @Override
+            public VirtualMachine call(VirtualMachineInner inner) {
+                return wrapVirtualMachineModel(inner);
+            }
+        });
+    }
+
+    @Override
+    public Observable<VirtualMachineCaptureResult> captureAsync(String resourceGroupName, String vmName, VirtualMachineCaptureParameters parameters) {
+        VirtualMachinesInner client = this.inner();
+        return client.captureAsync(resourceGroupName, vmName, parameters)
+        .map(new Func1<VirtualMachineCaptureResultInner, VirtualMachineCaptureResult>() {
+            @Override
+            public VirtualMachineCaptureResult call(VirtualMachineCaptureResultInner inner) {
+                return new VirtualMachineCaptureResultImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> deleteAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.deleteAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<VirtualMachine> getByResourceGroupAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.getByResourceGroupAsync(resourceGroupName, vmName)
+        .map(new Func1<VirtualMachineInner, VirtualMachine>() {
+            @Override
+            public VirtualMachine call(VirtualMachineInner inner) {
+                return new VirtualMachineImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<VirtualMachineInstanceView> instanceViewAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.instanceViewAsync(resourceGroupName, vmName)
+        .map(new Func1<VirtualMachineInstanceViewInner, VirtualMachineInstanceView>() {
+            @Override
+            public VirtualMachineInstanceView call(VirtualMachineInstanceViewInner inner) {
+                return new VirtualMachineInstanceViewImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> convertToManagedDisksAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.convertToManagedDisksAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> deallocateAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.deallocateAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> generalizeAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.generalizeAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> powerOffAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.powerOffAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> restartAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.restartAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> startAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.startAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> redeployAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.redeployAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<OperationStatusResponse> performMaintenanceAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.performMaintenanceAsync(resourceGroupName, vmName)
+        .map(new Func1<OperationStatusResponseInner, OperationStatusResponse>() {
+            @Override
+            public OperationStatusResponse call(OperationStatusResponseInner inner) {
+                return new OperationStatusResponseImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<RunCommandResult> runCommandAsync(String resourceGroupName, String vmName, RunCommandInput parameters) {
+        VirtualMachinesInner client = this.inner();
+        return client.runCommandAsync(resourceGroupName, vmName, parameters)
+        .map(new Func1<RunCommandResultInner, RunCommandResult>() {
+            @Override
+            public RunCommandResult call(RunCommandResultInner inner) {
+                return new RunCommandResultImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<VirtualMachine> listByResourceGroupAsync(final String resourceGroupName) {
+        VirtualMachinesInner client = this.inner();
+        return client.listByResourceGroupAsync(resourceGroupName)
+        .flatMapIterable(new Func1<Page<VirtualMachineInner>, Iterable<VirtualMachineInner>>() {
+            @Override
+            public Iterable<VirtualMachineInner> call(Page<VirtualMachineInner> page) {
+                return page.items();
+            }
+        })
+        .map(new Func1<VirtualMachineInner, VirtualMachine>() {
+            @Override
+            public VirtualMachine call(VirtualMachineInner inner) {
+                return new VirtualMachineImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<VirtualMachine> listAsync() {
+        VirtualMachinesInner client = this.inner();
+        return client.listAsync()
+        .flatMapIterable(new Func1<Page<VirtualMachineInner>, Iterable<VirtualMachineInner>>() {
+            @Override
+            public Iterable<VirtualMachineInner> call(Page<VirtualMachineInner> page) {
+                return page.items();
+            }
+        })
+        .map(new Func1<VirtualMachineInner, VirtualMachine>() {
+            @Override
+            public VirtualMachine call(VirtualMachineInner inner) {
+                return new VirtualMachineImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<VirtualMachineExtensionsListResult> getExtensionsAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.getExtensionsAsync(resourceGroupName, vmName)
+        .map(new Func1<VirtualMachineExtensionsListResultInner, VirtualMachineExtensionsListResult>() {
+            @Override
+            public VirtualMachineExtensionsListResult call(VirtualMachineExtensionsListResultInner inner) {
+                return new VirtualMachineExtensionsListResultImpl(inner, manager());
+            }
+        });
+    }
+
+    @Override
+    public Observable<VirtualMachineVirtualMachineSize> listAvailableSizesAsync(String resourceGroupName, String vmName) {
+        VirtualMachinesInner client = this.inner();
+        return client.listAvailableSizesAsync(resourceGroupName, vmName)
+        .flatMap(new Func1<List<VirtualMachineSizeInner>, Observable<VirtualMachineSizeInner>>() {
+            @Override
+            public Observable<VirtualMachineSizeInner> call(List<VirtualMachineSizeInner> innerList) {
+                return Observable.from(innerList);
+            }
+        })
+        .map(new Func1<VirtualMachineSizeInner, VirtualMachineVirtualMachineSize>() {
+            @Override
+            public VirtualMachineVirtualMachineSize call(VirtualMachineSizeInner inner) {
+                return wrapVirtualMachineVirtualMachineSizeModel(inner);
+            }
+        });
+    }
+
+}
diff --git a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachinesInner.java b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachinesInner.java
index 68236ab662c2e..8fe9606e717b3 100644
--- a/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachinesInner.java
+++ b/sdk/compute/mgmt-v2017_12_01/src/main/java/com/microsoft/azure/management/compute/v2017_12_01/implementation/VirtualMachinesInner.java
@@ -43,6 +43,8 @@
 import retrofit2.Response;
 import rx.functions.Func1;
 import rx.Observable;
+import com.microsoft.azure.LongRunningFinalState;
+import com.microsoft.azure.LongRunningOperationOptions;
 
 /**
  * An instance of this class provides access to all the operations defined
@@ -74,6 +76,10 @@ interface VirtualMachinesService {
         @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions")
         Observable<Response<ResponseBody>> getExtensions(@Path("resourceGroupName") String resourceGroupName, @Path("vmName") String vmName, @Path("subscriptionId") String subscriptionId, @Query("$expand") String expand, @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.compute.v2017_12_01.VirtualMachines listByLocation" })
+        @GET("subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/virtualMachines")
+        Observable<Response<ResponseBody>> listByLocation(@Path("location") String location, @Path("subscriptionId") String subscriptionId, @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.compute.v2017_12_01.VirtualMachines capture" })
         @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture")
         Observable<Response<ResponseBody>> capture(@Path("resourceGroupName") String resourceGroupName, @Path("vmName") String vmName, @Path("subscriptionId") String subscriptionId, @Body VirtualMachineCaptureParameters parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@@ -194,6 +200,10 @@ interface VirtualMachinesService {
         @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/runCommand")
         Observable<Response<ResponseBody>> beginRunCommand(@Path("resourceGroupName") String resourceGroupName, @Path("vmName") String vmName, @Path("subscriptionId") String subscriptionId, @Body RunCommandInput parameters, @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.compute.v2017_12_01.VirtualMachines listByLocationNext" })
+        @GET
+        Observable<Response<ResponseBody>> listByLocationNext(@Url String nextUrl, @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.compute.v2017_12_01.VirtualMachines listByResourceGroupNext" })
         @GET
         Observable<Response<ResponseBody>> listByResourceGroupNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@@ -374,6 +384,121 @@ private ServiceResponse<VirtualMachineExtensionsListResultInner> getExtensionsDe
                 .build(response);
     }
 
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param location The location for which virtual machines under the subscription are queried.
+     * @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&lt;VirtualMachineInner&gt; object if successful.
+     */
+    public PagedList<VirtualMachineInner> listByLocation(final String location) {
+        ServiceResponse<Page<VirtualMachineInner>> response = listByLocationSinglePageAsync(location).toBlocking().single();
+        return new PagedList<VirtualMachineInner>(response.body()) {
+            @Override
+            public Page<VirtualMachineInner> nextPage(String nextPageLink) {
+                return listByLocationNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+            }
+        };
+    }
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param location The location for which virtual machines under the subscription are queried.
+     * @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<List<VirtualMachineInner>> listByLocationAsync(final String location, final ListOperationCallback<VirtualMachineInner> serviceCallback) {
+        return AzureServiceFuture.fromPageResponse(
+            listByLocationSinglePageAsync(location),
+            new Func1<String, Observable<ServiceResponse<Page<VirtualMachineInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<VirtualMachineInner>>> call(String nextPageLink) {
+                    return listByLocationNextSinglePageAsync(nextPageLink);
+                }
+            },
+            serviceCallback);
+    }
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param location The location for which virtual machines under the subscription are queried.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;VirtualMachineInner&gt; object
+     */
+    public Observable<Page<VirtualMachineInner>> listByLocationAsync(final String location) {
+        return listByLocationWithServiceResponseAsync(location)
+            .map(new Func1<ServiceResponse<Page<VirtualMachineInner>>, Page<VirtualMachineInner>>() {
+                @Override
+                public Page<VirtualMachineInner> call(ServiceResponse<Page<VirtualMachineInner>> response) {
+                    return response.body();
+                }
+            });
+    }
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param location The location for which virtual machines under the subscription are queried.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;VirtualMachineInner&gt; object
+     */
+    public Observable<ServiceResponse<Page<VirtualMachineInner>>> listByLocationWithServiceResponseAsync(final String location) {
+        return listByLocationSinglePageAsync(location)
+            .concatMap(new Func1<ServiceResponse<Page<VirtualMachineInner>>, Observable<ServiceResponse<Page<VirtualMachineInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<VirtualMachineInner>>> call(ServiceResponse<Page<VirtualMachineInner>> page) {
+                    String nextPageLink = page.body().nextPageLink();
+                    if (nextPageLink == null) {
+                        return Observable.just(page);
+                    }
+                    return Observable.just(page).concatWith(listByLocationNextWithServiceResponseAsync(nextPageLink));
+                }
+            });
+    }
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+    ServiceResponse<PageImpl1<VirtualMachineInner>> * @param location The location for which virtual machines under the subscription are queried.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the PagedList&lt;VirtualMachineInner&gt; object wrapped in {@link ServiceResponse} if successful.
+     */
+    public Observable<ServiceResponse<Page<VirtualMachineInner>>> listByLocationSinglePageAsync(final String location) {
+        if (location == null) {
+            throw new IllegalArgumentException("Parameter location is required and cannot be null.");
+        }
+        if (this.client.subscriptionId() == null) {
+            throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+        }
+        if (this.client.apiVersion() == null) {
+            throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+        }
+        return service.listByLocation(location, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<Page<VirtualMachineInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<VirtualMachineInner>>> call(Response<ResponseBody> response) {
+                    try {
+                        ServiceResponse<PageImpl1<VirtualMachineInner>> result = listByLocationDelegate(response);
+                        return Observable.just(new ServiceResponse<Page<VirtualMachineInner>>(result.body(), result.response()));
+                    } catch (Throwable t) {
+                        return Observable.error(t);
+                    }
+                }
+            });
+    }
+
+    private ServiceResponse<PageImpl1<VirtualMachineInner>> listByLocationDelegate(Response<ResponseBody> response) throws CloudException, IOException, IllegalArgumentException {
+        return this.client.restClient().responseBuilderFactory().<PageImpl1<VirtualMachineInner>, CloudException>newInstance(this.client.serializerAdapter())
+                .register(200, new TypeToken<PageImpl1<VirtualMachineInner>>() { }.getType())
+                .registerError(CloudException.class)
+                .build(response);
+    }
+
     /**
      * Captures the VM by copying virtual hard disks of the VM and outputs a template that can be used to create similar VMs.
      *
@@ -448,7 +573,7 @@ public Observable<ServiceResponse<VirtualMachineCaptureResultInner>> captureWith
         }
         Validator.validate(parameters);
         Observable<Response<ResponseBody>> observable = service.capture(resourceGroupName, vmName, this.client.subscriptionId(), parameters, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<VirtualMachineCaptureResultInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<VirtualMachineCaptureResultInner>() { }.getType());
     }
 
     /**
@@ -1369,7 +1494,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> convertToManage
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.convertToManagedDisks(resourceGroupName, vmName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -1525,7 +1650,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> deallocateWithS
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.deallocate(resourceGroupName, vmName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -2080,7 +2205,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> powerOffWithSer
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.powerOff(resourceGroupName, vmName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -2236,7 +2361,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> restartWithServ
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.restart(resourceGroupName, vmName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -2392,7 +2517,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> startWithServic
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.start(resourceGroupName, vmName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -2483,7 +2608,7 @@ private ServiceResponse<OperationStatusResponseInner> beginStartDelegate(Respons
     }
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -2497,7 +2622,7 @@ public OperationStatusResponseInner redeploy(String resourceGroupName, String vm
     }
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -2510,7 +2635,7 @@ public ServiceFuture<OperationStatusResponseInner> redeployAsync(String resource
     }
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -2527,7 +2652,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -2548,11 +2673,11 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> redeployWithSer
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.redeploy(resourceGroupName, vmName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -2566,7 +2691,7 @@ public OperationStatusResponseInner beginRedeploy(String resourceGroupName, Stri
     }
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -2579,7 +2704,7 @@ public ServiceFuture<OperationStatusResponseInner> beginRedeployAsync(String res
     }
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -2596,7 +2721,7 @@ public OperationStatusResponseInner call(ServiceResponse<OperationStatusResponse
     }
 
     /**
-     * The operation to redeploy a virtual machine.
+     * Shuts down the virtual machine, moves it to a new node, and powers it back on.
      *
      * @param resourceGroupName The name of the resource group.
      * @param vmName The name of the virtual machine.
@@ -2704,7 +2829,7 @@ public Observable<ServiceResponse<OperationStatusResponseInner>> performMaintena
             throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
         }
         Observable<Response<ResponseBody>> observable = service.performMaintenance(resourceGroupName, vmName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<OperationStatusResponseInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<OperationStatusResponseInner>() { }.getType());
     }
 
     /**
@@ -2868,7 +2993,7 @@ public Observable<ServiceResponse<RunCommandResultInner>> runCommandWithServiceR
         }
         Validator.validate(parameters);
         Observable<Response<ResponseBody>> observable = service.runCommand(resourceGroupName, vmName, this.client.subscriptionId(), parameters, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
-        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<RunCommandResultInner>() { }.getType());
+        return client.getAzureClient().getPostOrDeleteResultAsync(observable, new LongRunningOperationOptions().withFinalStateVia(LongRunningFinalState.AZURE_ASYNC_OPERATION), new TypeToken<RunCommandResultInner>() { }.getType());
     }
 
     /**
@@ -2966,6 +3091,117 @@ private ServiceResponse<RunCommandResultInner> beginRunCommandDelegate(Response<
                 .build(response);
     }
 
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @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&lt;VirtualMachineInner&gt; object if successful.
+     */
+    public PagedList<VirtualMachineInner> listByLocationNext(final String nextPageLink) {
+        ServiceResponse<Page<VirtualMachineInner>> response = listByLocationNextSinglePageAsync(nextPageLink).toBlocking().single();
+        return new PagedList<VirtualMachineInner>(response.body()) {
+            @Override
+            public Page<VirtualMachineInner> nextPage(String nextPageLink) {
+                return listByLocationNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+            }
+        };
+    }
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+     * @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<List<VirtualMachineInner>> listByLocationNextAsync(final String nextPageLink, final ServiceFuture<List<VirtualMachineInner>> serviceFuture, final ListOperationCallback<VirtualMachineInner> serviceCallback) {
+        return AzureServiceFuture.fromPageResponse(
+            listByLocationNextSinglePageAsync(nextPageLink),
+            new Func1<String, Observable<ServiceResponse<Page<VirtualMachineInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<VirtualMachineInner>>> call(String nextPageLink) {
+                    return listByLocationNextSinglePageAsync(nextPageLink);
+                }
+            },
+            serviceCallback);
+    }
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;VirtualMachineInner&gt; object
+     */
+    public Observable<Page<VirtualMachineInner>> listByLocationNextAsync(final String nextPageLink) {
+        return listByLocationNextWithServiceResponseAsync(nextPageLink)
+            .map(new Func1<ServiceResponse<Page<VirtualMachineInner>>, Page<VirtualMachineInner>>() {
+                @Override
+                public Page<VirtualMachineInner> call(ServiceResponse<Page<VirtualMachineInner>> response) {
+                    return response.body();
+                }
+            });
+    }
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+     * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the observable to the PagedList&lt;VirtualMachineInner&gt; object
+     */
+    public Observable<ServiceResponse<Page<VirtualMachineInner>>> listByLocationNextWithServiceResponseAsync(final String nextPageLink) {
+        return listByLocationNextSinglePageAsync(nextPageLink)
+            .concatMap(new Func1<ServiceResponse<Page<VirtualMachineInner>>, Observable<ServiceResponse<Page<VirtualMachineInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<VirtualMachineInner>>> call(ServiceResponse<Page<VirtualMachineInner>> page) {
+                    String nextPageLink = page.body().nextPageLink();
+                    if (nextPageLink == null) {
+                        return Observable.just(page);
+                    }
+                    return Observable.just(page).concatWith(listByLocationNextWithServiceResponseAsync(nextPageLink));
+                }
+            });
+    }
+
+    /**
+     * Gets all the virtual machines under the specified subscription for the specified location.
+     *
+    ServiceResponse<PageImpl1<VirtualMachineInner>> * @param nextPageLink The NextLink from the previous successful call to List operation.
+     * @throws IllegalArgumentException thrown if parameters fail the validation
+     * @return the PagedList&lt;VirtualMachineInner&gt; object wrapped in {@link ServiceResponse} if successful.
+     */
+    public Observable<ServiceResponse<Page<VirtualMachineInner>>> listByLocationNextSinglePageAsync(final String nextPageLink) {
+        if (nextPageLink == null) {
+            throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+        }
+        String nextUrl = String.format("%s", nextPageLink);
+        return service.listByLocationNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<Page<VirtualMachineInner>>>>() {
+                @Override
+                public Observable<ServiceResponse<Page<VirtualMachineInner>>> call(Response<ResponseBody> response) {
+                    try {
+                        ServiceResponse<PageImpl1<VirtualMachineInner>> result = listByLocationNextDelegate(response);
+                        return Observable.just(new ServiceResponse<Page<VirtualMachineInner>>(result.body(), result.response()));
+                    } catch (Throwable t) {
+                        return Observable.error(t);
+                    }
+                }
+            });
+    }
+
+    private ServiceResponse<PageImpl1<VirtualMachineInner>> listByLocationNextDelegate(Response<ResponseBody> response) throws CloudException, IOException, IllegalArgumentException {
+        return this.client.restClient().responseBuilderFactory().<PageImpl1<VirtualMachineInner>, CloudException>newInstance(this.client.serializerAdapter())
+                .register(200, new TypeToken<PageImpl1<VirtualMachineInner>>() { }.getType())
+                .registerError(CloudException.class)
+                .build(response);
+    }
+
     /**
      * Lists all of the virtual machines in the specified resource group. Use the nextLink property in the response to get the next page of virtual machines.
      *