From e7f43b325664479c485dc7a98396ce0b5e7181b7 Mon Sep 17 00:00:00 2001
From: "openapi-bot[bot]" <37845953+openapi-bot[bot]@users.noreply.github.com>
Date: Mon, 9 Sep 2019 06:27:11 +0000
Subject: [PATCH] [AutoPR Microsoft.Azure.Management.Compute] Add VMScaleSet
 ScaleIn Policy (#137)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* [AutoPR Microsoft.Azure.Management.HealthcareApis] Move to stable version (#134)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 98f6703f2854ce61a22c8ba99a243a3ecb85ec8c

Updated the way we retrieve version parameter

* [AutoPR Microsoft.Azure.Management.DataFactory] Chainingtrigger (#163)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 5e1bb35d5c3314d8f4fead76c3d69a2522be026b

Update review comments

* [AutoPR Microsoft.Azure.Management.EventHub] Eventhub: added NetworkRuleSets list API (#155)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 8bc2a7edfeebb1a6bb30abbbb03d08bf1f8a8dbc

update

* [AutoPR Microsoft.Azure.Management.Compute] [Compute] Add missing $expand parameter to AvSet list by subscription API (#165)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from ed6acf4e35d75fc3c1c9e617b7131e83b6f59384

Add missing $expand parameter to AvSet list by subscription API

* [AutoPR Microsoft.Azure.Management.CognitiveServices] Fix check domain path (#147)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 111d1bc1666fe89cebb960135cf2f5336bbcb35a

Removed rogue file

* Generated from ba2bfe74bad69d5419a8966d712ebb7fbee44941 (#170)

removed pageable

* [AutoPR Microsoft.Azure.Management.DataFactory] [Data Factory]Add ORC Dataset/Copy Source/Copy Sink (#143)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 864a2b3827b7237d7cb60d77069b693dcbaf7001

[DataFactory]Add support for ORC dataset

* [AutoPR Microsoft.Azure.Management.DataFactory] [Datafactory] Add a new property in Office365 connector (#166)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* [AutoPR Microsoft.Azure.Management.HealthcareApis] Move to stable version (#134)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 98f6703f2854ce61a22c8ba99a243a3ecb85ec8c

Updated the way we retrieve version parameter

* [AutoPR Microsoft.Azure.Management.DataFactory] Chainingtrigger (#163)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 5e1bb35d5c3314d8f4fead76c3d69a2522be026b

Update review comments

* [AutoPR Microsoft.Azure.Management.EventHub] Eventhub: added NetworkRuleSets list API (#155)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 8bc2a7edfeebb1a6bb30abbbb03d08bf1f8a8dbc

update

* Generated from eb6cdadb1aa229489cd5d7108cf02ba799416f40

Resovle comments

* [AutoPR Microsoft.Azure.Management.ContainerService] Container Services: add java package 2019 08 01 (#172)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* [AutoPR Microsoft.Azure.Management.HealthcareApis] Move to stable version (#134)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 98f6703f2854ce61a22c8ba99a243a3ecb85ec8c

Updated the way we retrieve version parameter

* [AutoPR Microsoft.Azure.Management.DataFactory] Chainingtrigger (#163)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 5e1bb35d5c3314d8f4fead76c3d69a2522be026b

Update review comments

* [AutoPR Microsoft.Azure.Management.EventHub] Eventhub: added NetworkRuleSets list API (#155)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 8bc2a7edfeebb1a6bb30abbbb03d08bf1f8a8dbc

update

* [AutoPR Microsoft.Azure.Management.Compute] [Compute] Add missing $expand parameter to AvSet list by subscription API (#165)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from ed6acf4e35d75fc3c1c9e617b7131e83b6f59384

Add missing $expand parameter to AvSet list by subscription API

* [AutoPR Microsoft.Azure.Management.CognitiveServices] Fix check domain path (#147)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 111d1bc1666fe89cebb960135cf2f5336bbcb35a

Removed rogue file

* Generated from ba2bfe74bad69d5419a8966d712ebb7fbee44941 (#170)

removed pageable

* [AutoPR Microsoft.Azure.Management.DataFactory] [Data Factory]Add ORC Dataset/Copy Source/Copy Sink (#143)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 864a2b3827b7237d7cb60d77069b693dcbaf7001

[DataFactory]Add support for ORC dataset

* [AutoPR Microsoft.Azure.Management.DataFactory] [Datafactory] Add a new property in Office365 connector (#166)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* [AutoPR Microsoft.Azure.Management.HealthcareApis] Move to stable version (#134)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 98f6703f2854ce61a22c8ba99a243a3ecb85ec8c

Updated the way we retrieve version parameter

* [AutoPR Microsoft.Azure.Management.DataFactory] Chainingtrigger (#163)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 5e1bb35d5c3314d8f4fead76c3d69a2522be026b

Update review comments

* [AutoPR Microsoft.Azure.Management.EventHub] Eventhub: added NetworkRuleSets list API (#155)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 8bc2a7edfeebb1a6bb30abbbb03d08bf1f8a8dbc

update

* Generated from eb6cdadb1aa229489cd5d7108cf02ba799416f40

Resovle comments

* Generated from 65a64690d9907f680b0070b16416ed61391f7d90

fix: not to remove 2019-06 tag in multiapi

* [AutoPR Microsoft.Azure.Management.IotHub] [Hub Generated] Review request for Microsoft.Devices to add version stable/2019-03-22 (#173)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* [AutoPR Microsoft.Azure.Management.HealthcareApis] Move to stable version (#134)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 98f6703f2854ce61a22c8ba99a243a3ecb85ec8c

Updated the way we retrieve version parameter

* [AutoPR Microsoft.Azure.Management.DataFactory] Chainingtrigger (#163)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 5e1bb35d5c3314d8f4fead76c3d69a2522be026b

Update review comments

* [AutoPR Microsoft.Azure.Management.EventHub] Eventhub: added NetworkRuleSets list API (#155)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 8bc2a7edfeebb1a6bb30abbbb03d08bf1f8a8dbc

update

* [AutoPR Microsoft.Azure.Management.Compute] [Compute] Add missing $expand parameter to AvSet list by subscription API (#165)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from ed6acf4e35d75fc3c1c9e617b7131e83b6f59384

Add missing $expand parameter to AvSet list by subscription API

* [AutoPR Microsoft.Azure.Management.CognitiveServices] Fix check domain path (#147)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 111d1bc1666fe89cebb960135cf2f5336bbcb35a

Removed rogue file

* Generated from ba2bfe74bad69d5419a8966d712ebb7fbee44941 (#170)

removed pageable

* [AutoPR Microsoft.Azure.Management.DataFactory] [Data Factory]Add ORC Dataset/Copy Source/Copy Sink (#143)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 864a2b3827b7237d7cb60d77069b693dcbaf7001

[DataFactory]Add support for ORC dataset

* [AutoPR Microsoft.Azure.Management.DataFactory] [Datafactory] Add a new property in Office365 connector (#166)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* [AutoPR Microsoft.Azure.Management.HealthcareApis] Move to stable version (#134)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 98f6703f2854ce61a22c8ba99a243a3ecb85ec8c

Updated the way we retrieve version parameter

* [AutoPR Microsoft.Azure.Management.DataFactory] Chainingtrigger (#163)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 5e1bb35d5c3314d8f4fead76c3d69a2522be026b

Update review comments

* [AutoPR Microsoft.Azure.Management.EventHub] Eventhub: added NetworkRuleSets list API (#155)

* Generated from cce264ba7c751076c58518d67e19b9e469832c0c (#136)

Update ListLegacyPeerings.json

* Generated from 92006e420d65cb70e4b93bc5850af575da4efb78 (#162)

Mark "provisioningState" as read-only

* Generated from 8bc2a7edfeebb1a6bb30abbbb03d08bf1f8a8dbc

update

* Generated from eb6cdadb1aa229489cd5d7108cf02ba799416f40

Resovle comments

* Generated from f05eef4a3235f304777a2a1489423c6bb11335e9

Update iothub.json

* Generated from 0382c5495183ec9676153aca02fa21e186ef98d3 (#108)

naming and mismatch

* Generated from b9be4bd083f2d38c8153aa00955739f41afc64ff

Fix indentation

Fix indentation
---
 .../src/Generated/Models/ScaleInPolicy.cs     | 92 +++++++++++++++++++
 .../Models/VirtualMachineScaleSet.cs          | 14 ++-
 .../VirtualMachineScaleSetScaleInRules.cs     | 23 +++++
 .../Models/VirtualMachineScaleSetUpdate.cs    | 14 ++-
 4 files changed, 141 insertions(+), 2 deletions(-)
 create mode 100644 sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/ScaleInPolicy.cs
 create mode 100644 sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSetScaleInRules.cs

diff --git a/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/ScaleInPolicy.cs b/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/ScaleInPolicy.cs
new file mode 100644
index 0000000000000..894e661e2ff56
--- /dev/null
+++ b/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/ScaleInPolicy.cs
@@ -0,0 +1,92 @@
+// <auto-generated>
+// 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.
+// Changes may cause incorrect behavior and will be lost if the code is
+// regenerated.
+// </auto-generated>
+
+namespace Microsoft.Azure.Management.Compute.Models
+{
+    using Newtonsoft.Json;
+    using System.Collections;
+    using System.Collections.Generic;
+    using System.Linq;
+
+    /// <summary>
+    /// Describes a scale-in policy for a virtual machine scale set.
+    /// </summary>
+    public partial class ScaleInPolicy
+    {
+        /// <summary>
+        /// Initializes a new instance of the ScaleInPolicy class.
+        /// </summary>
+        public ScaleInPolicy()
+        {
+            CustomInit();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the ScaleInPolicy class.
+        /// </summary>
+        /// <param name="rules">The rules to be followed when scaling-in a
+        /// virtual machine scale set. &lt;br&gt;&lt;br&gt; Possible values
+        /// are: &lt;br&gt;&lt;br&gt; **Default** When a virtual machine scale
+        /// set is scaled in, the scale set will first be balanced across zones
+        /// if it is a zonal scale set. Then, it will be balanced across Fault
+        /// Domains as far as possible. Within each Fault Domain, the virtual
+        /// machines chosen for removal will be the newest ones that are not
+        /// protected from scale-in. &lt;br&gt;&lt;br&gt; **OldestVM** When a
+        /// virtual machine scale set is being scaled-in, the oldest virtual
+        /// machines that are not protected from scale-in will be chosen for
+        /// removal. For zonal virtual machine scale sets, the scale set will
+        /// first be balanced across zones. Within each zone, the oldest
+        /// virtual machines that are not protected will be chosen for removal.
+        /// &lt;br&gt;&lt;br&gt; **NewestVM** When a virtual machine scale set
+        /// is being scaled-in, the newest virtual machines that are not
+        /// protected from scale-in will be chosen for removal. For zonal
+        /// virtual machine scale sets, the scale set will first be balanced
+        /// across zones. Within each zone, the newest virtual machines that
+        /// are not protected will be chosen for removal.
+        /// &lt;br&gt;&lt;br&gt;</param>
+        public ScaleInPolicy(IList<string> rules = default(IList<string>))
+        {
+            Rules = rules;
+            CustomInit();
+        }
+
+        /// <summary>
+        /// An initialization method that performs custom operations like setting defaults
+        /// </summary>
+        partial void CustomInit();
+
+        /// <summary>
+        /// Gets or sets the rules to be followed when scaling-in a virtual
+        /// machine scale set. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; Possible
+        /// values are: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; **Default** When a
+        /// virtual machine scale set is scaled in, the scale set will first be
+        /// balanced across zones if it is a zonal scale set. Then, it will be
+        /// balanced across Fault Domains as far as possible. Within each Fault
+        /// Domain, the virtual machines chosen for removal will be the newest
+        /// ones that are not protected from scale-in.
+        /// &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; **OldestVM** When a virtual
+        /// machine scale set is being scaled-in, the oldest virtual machines
+        /// that are not protected from scale-in will be chosen for removal.
+        /// For zonal virtual machine scale sets, the scale set will first be
+        /// balanced across zones. Within each zone, the oldest virtual
+        /// machines that are not protected will be chosen for removal.
+        /// &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; **NewestVM** When a virtual
+        /// machine scale set is being scaled-in, the newest virtual machines
+        /// that are not protected from scale-in will be chosen for removal.
+        /// For zonal virtual machine scale sets, the scale set will first be
+        /// balanced across zones. Within each zone, the newest virtual
+        /// machines that are not protected will be chosen for removal.
+        /// &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
+        /// </summary>
+        [JsonProperty(PropertyName = "rules")]
+        public IList<string> Rules { get; set; }
+
+    }
+}
diff --git a/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSet.cs b/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSet.cs
index b72fa2db6acf7..9564720813b18 100644
--- a/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSet.cs
+++ b/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSet.cs
@@ -78,10 +78,13 @@ public VirtualMachineScaleSet()
         /// Virtual Machine Scale Set. For instance: whether the Virtual
         /// Machines have the capability to support attaching managed data
         /// disks with UltraSSD_LRS storage account type.</param>
+        /// <param name="scaleInPolicy">Specifies the scale-in policy that
+        /// decides which virtual machines are chosen for removal when a
+        /// Virtual Machine Scale Set is scaled-in.</param>
         /// <param name="identity">The identity of the virtual machine scale
         /// set, if configured.</param>
         /// <param name="zones">The virtual machine scale set zones.</param>
-        public VirtualMachineScaleSet(string location, string id = default(string), string name = default(string), string type = default(string), IDictionary<string, string> tags = default(IDictionary<string, string>), Sku sku = default(Sku), Plan plan = default(Plan), UpgradePolicy upgradePolicy = default(UpgradePolicy), VirtualMachineScaleSetVMProfile virtualMachineProfile = default(VirtualMachineScaleSetVMProfile), string provisioningState = default(string), bool? overprovision = default(bool?), bool? doNotRunExtensionsOnOverprovisionedVMs = default(bool?), string uniqueId = default(string), bool? singlePlacementGroup = default(bool?), bool? zoneBalance = default(bool?), int? platformFaultDomainCount = default(int?), SubResource proximityPlacementGroup = default(SubResource), AdditionalCapabilities additionalCapabilities = default(AdditionalCapabilities), VirtualMachineScaleSetIdentity identity = default(VirtualMachineScaleSetIdentity), IList<string> zones = default(IList<string>))
+        public VirtualMachineScaleSet(string location, string id = default(string), string name = default(string), string type = default(string), IDictionary<string, string> tags = default(IDictionary<string, string>), Sku sku = default(Sku), Plan plan = default(Plan), UpgradePolicy upgradePolicy = default(UpgradePolicy), VirtualMachineScaleSetVMProfile virtualMachineProfile = default(VirtualMachineScaleSetVMProfile), string provisioningState = default(string), bool? overprovision = default(bool?), bool? doNotRunExtensionsOnOverprovisionedVMs = default(bool?), string uniqueId = default(string), bool? singlePlacementGroup = default(bool?), bool? zoneBalance = default(bool?), int? platformFaultDomainCount = default(int?), SubResource proximityPlacementGroup = default(SubResource), AdditionalCapabilities additionalCapabilities = default(AdditionalCapabilities), ScaleInPolicy scaleInPolicy = default(ScaleInPolicy), VirtualMachineScaleSetIdentity identity = default(VirtualMachineScaleSetIdentity), IList<string> zones = default(IList<string>))
             : base(location, id, name, type, tags)
         {
             Sku = sku;
@@ -97,6 +100,7 @@ public VirtualMachineScaleSet()
             PlatformFaultDomainCount = platformFaultDomainCount;
             ProximityPlacementGroup = proximityPlacementGroup;
             AdditionalCapabilities = additionalCapabilities;
+            ScaleInPolicy = scaleInPolicy;
             Identity = identity;
             Zones = zones;
             CustomInit();
@@ -205,6 +209,14 @@ public VirtualMachineScaleSet()
         [JsonProperty(PropertyName = "properties.additionalCapabilities")]
         public AdditionalCapabilities AdditionalCapabilities { get; set; }
 
+        /// <summary>
+        /// Gets or sets specifies the scale-in policy that decides which
+        /// virtual machines are chosen for removal when a Virtual Machine
+        /// Scale Set is scaled-in.
+        /// </summary>
+        [JsonProperty(PropertyName = "properties.scaleInPolicy")]
+        public ScaleInPolicy ScaleInPolicy { get; set; }
+
         /// <summary>
         /// Gets or sets the identity of the virtual machine scale set, if
         /// configured.
diff --git a/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSetScaleInRules.cs b/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSetScaleInRules.cs
new file mode 100644
index 0000000000000..bbe4bf22bc332
--- /dev/null
+++ b/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSetScaleInRules.cs
@@ -0,0 +1,23 @@
+// <auto-generated>
+// 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.
+// Changes may cause incorrect behavior and will be lost if the code is
+// regenerated.
+// </auto-generated>
+
+namespace Microsoft.Azure.Management.Compute.Models
+{
+
+    /// <summary>
+    /// Defines values for VirtualMachineScaleSetScaleInRules.
+    /// </summary>
+    public static class VirtualMachineScaleSetScaleInRules
+    {
+        public const string Default = "Default";
+        public const string OldestVM = "OldestVM";
+        public const string NewestVM = "NewestVM";
+    }
+}
diff --git a/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSetUpdate.cs b/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSetUpdate.cs
index 0f18654a44616..266834c34d7ba 100644
--- a/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSetUpdate.cs
+++ b/sdk/compute/Microsoft.Azure.Management.Compute/src/Generated/Models/VirtualMachineScaleSetUpdate.cs
@@ -53,9 +53,12 @@ public VirtualMachineScaleSetUpdate()
         /// Virtual Machine Scale Set. For instance: whether the Virtual
         /// Machines have the capability to support attaching managed data
         /// disks with UltraSSD_LRS storage account type.</param>
+        /// <param name="scaleInPolicy">Specifies the scale-in policy that
+        /// decides which virtual machines are chosen for removal when a
+        /// Virtual Machine Scale Set is scaled-in.</param>
         /// <param name="identity">The identity of the virtual machine scale
         /// set, if configured.</param>
-        public VirtualMachineScaleSetUpdate(IDictionary<string, string> tags = default(IDictionary<string, string>), Sku sku = default(Sku), Plan plan = default(Plan), UpgradePolicy upgradePolicy = default(UpgradePolicy), VirtualMachineScaleSetUpdateVMProfile virtualMachineProfile = default(VirtualMachineScaleSetUpdateVMProfile), bool? overprovision = default(bool?), bool? singlePlacementGroup = default(bool?), AdditionalCapabilities additionalCapabilities = default(AdditionalCapabilities), VirtualMachineScaleSetIdentity identity = default(VirtualMachineScaleSetIdentity))
+        public VirtualMachineScaleSetUpdate(IDictionary<string, string> tags = default(IDictionary<string, string>), Sku sku = default(Sku), Plan plan = default(Plan), UpgradePolicy upgradePolicy = default(UpgradePolicy), VirtualMachineScaleSetUpdateVMProfile virtualMachineProfile = default(VirtualMachineScaleSetUpdateVMProfile), bool? overprovision = default(bool?), bool? singlePlacementGroup = default(bool?), AdditionalCapabilities additionalCapabilities = default(AdditionalCapabilities), ScaleInPolicy scaleInPolicy = default(ScaleInPolicy), VirtualMachineScaleSetIdentity identity = default(VirtualMachineScaleSetIdentity))
             : base(tags)
         {
             Sku = sku;
@@ -65,6 +68,7 @@ public VirtualMachineScaleSetUpdate()
             Overprovision = overprovision;
             SinglePlacementGroup = singlePlacementGroup;
             AdditionalCapabilities = additionalCapabilities;
+            ScaleInPolicy = scaleInPolicy;
             Identity = identity;
             CustomInit();
         }
@@ -123,6 +127,14 @@ public VirtualMachineScaleSetUpdate()
         [JsonProperty(PropertyName = "properties.additionalCapabilities")]
         public AdditionalCapabilities AdditionalCapabilities { get; set; }
 
+        /// <summary>
+        /// Gets or sets specifies the scale-in policy that decides which
+        /// virtual machines are chosen for removal when a Virtual Machine
+        /// Scale Set is scaled-in.
+        /// </summary>
+        [JsonProperty(PropertyName = "properties.scaleInPolicy")]
+        public ScaleInPolicy ScaleInPolicy { get; set; }
+
         /// <summary>
         /// Gets or sets the identity of the virtual machine scale set, if
         /// configured.