-
Notifications
You must be signed in to change notification settings - Fork 4.5k
/
VirtualMachineScaleSetPatch.cs
104 lines (97 loc) · 8.06 KB
/
VirtualMachineScaleSetPatch.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// <auto-generated/>
#nullable disable
using System;
using System.Collections.Generic;
using Azure.Core;
using Azure.ResourceManager.Models;
using Azure.ResourceManager.Resources.Models;
namespace Azure.ResourceManager.Compute.Models
{
/// <summary> Describes a Virtual Machine Scale Set. </summary>
public partial class VirtualMachineScaleSetPatch : ComputeResourcePatch
{
/// <summary> Initializes a new instance of <see cref="VirtualMachineScaleSetPatch"/>. </summary>
public VirtualMachineScaleSetPatch()
{
}
/// <summary> Initializes a new instance of <see cref="VirtualMachineScaleSetPatch"/>. </summary>
/// <param name="tags"> Resource tags. </param>
/// <param name="serializedAdditionalRawData"> Keeps track of any properties unknown to the library. </param>
/// <param name="sku"> The virtual machine scale set sku. </param>
/// <param name="plan"> The purchase plan when deploying a virtual machine scale set from VM Marketplace images. </param>
/// <param name="identity"> The identity of the virtual machine scale set, if configured. </param>
/// <param name="upgradePolicy"> The upgrade policy. </param>
/// <param name="automaticRepairsPolicy"> Policy for automatic repairs. </param>
/// <param name="virtualMachineProfile"> The virtual machine profile. </param>
/// <param name="overprovision"> Specifies whether the Virtual Machine Scale Set should be overprovisioned. </param>
/// <param name="doNotRunExtensionsOnOverprovisionedVms"> When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. </param>
/// <param name="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. </param>
/// <param name="additionalCapabilities"> Specifies additional capabilities enabled or disabled on the Virtual Machines in the 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 policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. </param>
/// <param name="proximityPlacementGroup"> Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. <br><br>Minimum api-version: 2018-04-01. </param>
/// <param name="priorityMixPolicy"> Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. </param>
/// <param name="spotRestorePolicy"> Specifies the Spot Restore properties for the virtual machine scale set. </param>
/// <param name="resiliencyPolicy"> Policy for Resiliency. </param>
internal VirtualMachineScaleSetPatch(IDictionary<string, string> tags, IDictionary<string, BinaryData> serializedAdditionalRawData, ComputeSku sku, ComputePlan plan, ManagedServiceIdentity identity, VirtualMachineScaleSetUpgradePolicy upgradePolicy, AutomaticRepairsPolicy automaticRepairsPolicy, VirtualMachineScaleSetUpdateVmProfile virtualMachineProfile, bool? overprovision, bool? doNotRunExtensionsOnOverprovisionedVms, bool? singlePlacementGroup, AdditionalCapabilities additionalCapabilities, ScaleInPolicy scaleInPolicy, WritableSubResource proximityPlacementGroup, VirtualMachineScaleSetPriorityMixPolicy priorityMixPolicy, SpotRestorePolicy spotRestorePolicy, ResiliencyPolicy resiliencyPolicy) : base(tags, serializedAdditionalRawData)
{
Sku = sku;
Plan = plan;
Identity = identity;
UpgradePolicy = upgradePolicy;
AutomaticRepairsPolicy = automaticRepairsPolicy;
VirtualMachineProfile = virtualMachineProfile;
Overprovision = overprovision;
DoNotRunExtensionsOnOverprovisionedVms = doNotRunExtensionsOnOverprovisionedVms;
SinglePlacementGroup = singlePlacementGroup;
AdditionalCapabilities = additionalCapabilities;
ScaleInPolicy = scaleInPolicy;
ProximityPlacementGroup = proximityPlacementGroup;
PriorityMixPolicy = priorityMixPolicy;
SpotRestorePolicy = spotRestorePolicy;
ResiliencyPolicy = resiliencyPolicy;
}
/// <summary> The virtual machine scale set sku. </summary>
public ComputeSku Sku { get; set; }
/// <summary> The purchase plan when deploying a virtual machine scale set from VM Marketplace images. </summary>
public ComputePlan Plan { get; set; }
/// <summary> The identity of the virtual machine scale set, if configured. </summary>
public ManagedServiceIdentity Identity { get; set; }
/// <summary> The upgrade policy. </summary>
public VirtualMachineScaleSetUpgradePolicy UpgradePolicy { get; set; }
/// <summary> Policy for automatic repairs. </summary>
public AutomaticRepairsPolicy AutomaticRepairsPolicy { get; set; }
/// <summary> The virtual machine profile. </summary>
public VirtualMachineScaleSetUpdateVmProfile VirtualMachineProfile { get; set; }
/// <summary> Specifies whether the Virtual Machine Scale Set should be overprovisioned. </summary>
public bool? Overprovision { get; set; }
/// <summary> When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. </summary>
public bool? DoNotRunExtensionsOnOverprovisionedVms { get; set; }
/// <summary> 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. </summary>
public bool? SinglePlacementGroup { get; set; }
/// <summary> Specifies additional capabilities enabled or disabled on the Virtual Machines in the 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. </summary>
public AdditionalCapabilities AdditionalCapabilities { get; set; }
/// <summary> Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. </summary>
public ScaleInPolicy ScaleInPolicy { get; set; }
/// <summary> Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. <br><br>Minimum api-version: 2018-04-01. </summary>
internal WritableSubResource ProximityPlacementGroup { get; set; }
/// <summary> Gets or sets Id. </summary>
public ResourceIdentifier ProximityPlacementGroupId
{
get => ProximityPlacementGroup is null ? default : ProximityPlacementGroup.Id;
set
{
if (ProximityPlacementGroup is null)
ProximityPlacementGroup = new WritableSubResource();
ProximityPlacementGroup.Id = value;
}
}
/// <summary> Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. </summary>
public VirtualMachineScaleSetPriorityMixPolicy PriorityMixPolicy { get; set; }
/// <summary> Specifies the Spot Restore properties for the virtual machine scale set. </summary>
public SpotRestorePolicy SpotRestorePolicy { get; set; }
/// <summary> Policy for Resiliency. </summary>
public ResiliencyPolicy ResiliencyPolicy { get; set; }
}
}