-
Notifications
You must be signed in to change notification settings - Fork 12
/
VirtualMachineScaleSets_Update_MaximumSet_Gen.go
298 lines (295 loc) · 13.3 KB
/
VirtualMachineScaleSets_Update_MaximumSet_Gen.go
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
package armcompute_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v4"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/compute/resource-manager/Microsoft.Compute/ComputeRP/stable/2022-08-01/examples/virtualMachineScaleSetExamples/VirtualMachineScaleSets_Update_MaximumSet_Gen.json
func ExampleVirtualMachineScaleSetsClient_BeginUpdate_virtualMachineScaleSetsUpdateMaximumSetGen() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
client, err := armcompute.NewVirtualMachineScaleSetsClient("{subscription-id}", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
poller, err := client.BeginUpdate(ctx, "rgcompute", "aaaaaaaaaaaaa", armcompute.VirtualMachineScaleSetUpdate{
Tags: map[string]*string{
"key246": to.Ptr("aaaaaaaaaaaaaaaaaaaaaaaa"),
},
Identity: &armcompute.VirtualMachineScaleSetIdentity{
Type: to.Ptr(armcompute.ResourceIdentityTypeSystemAssigned),
UserAssignedIdentities: map[string]*armcompute.UserAssignedIdentitiesValue{
"key3951": {},
},
},
Plan: &armcompute.Plan{
Name: to.Ptr("windows2016"),
Product: to.Ptr("windows-data-science-vm"),
PromotionCode: to.Ptr("aaaaaaaaaa"),
Publisher: to.Ptr("microsoft-ads"),
},
Properties: &armcompute.VirtualMachineScaleSetUpdateProperties{
AdditionalCapabilities: &armcompute.AdditionalCapabilities{
HibernationEnabled: to.Ptr(true),
UltraSSDEnabled: to.Ptr(true),
},
AutomaticRepairsPolicy: &armcompute.AutomaticRepairsPolicy{
Enabled: to.Ptr(true),
GracePeriod: to.Ptr("PT30M"),
},
DoNotRunExtensionsOnOverprovisionedVMs: to.Ptr(true),
Overprovision: to.Ptr(true),
ProximityPlacementGroup: &armcompute.SubResource{
ID: to.Ptr("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"),
},
ScaleInPolicy: &armcompute.ScaleInPolicy{
ForceDeletion: to.Ptr(true),
Rules: []*armcompute.VirtualMachineScaleSetScaleInRules{
to.Ptr(armcompute.VirtualMachineScaleSetScaleInRulesOldestVM)},
},
SinglePlacementGroup: to.Ptr(true),
UpgradePolicy: &armcompute.UpgradePolicy{
AutomaticOSUpgradePolicy: &armcompute.AutomaticOSUpgradePolicy{
DisableAutomaticRollback: to.Ptr(true),
EnableAutomaticOSUpgrade: to.Ptr(true),
},
Mode: to.Ptr(armcompute.UpgradeModeManual),
RollingUpgradePolicy: &armcompute.RollingUpgradePolicy{
EnableCrossZoneUpgrade: to.Ptr(true),
MaxBatchInstancePercent: to.Ptr[int32](49),
MaxUnhealthyInstancePercent: to.Ptr[int32](81),
MaxUnhealthyUpgradedInstancePercent: to.Ptr[int32](98),
PauseTimeBetweenBatches: to.Ptr("aaaaaaaaaaaaaaa"),
PrioritizeUnhealthyInstances: to.Ptr(true),
},
},
VirtualMachineProfile: &armcompute.VirtualMachineScaleSetUpdateVMProfile{
BillingProfile: &armcompute.BillingProfile{
MaxPrice: to.Ptr[float64](-1),
},
DiagnosticsProfile: &armcompute.DiagnosticsProfile{
BootDiagnostics: &armcompute.BootDiagnostics{
Enabled: to.Ptr(true),
StorageURI: to.Ptr("http://{existing-storage-account-name}.blob.core.windows.net"),
},
},
ExtensionProfile: &armcompute.VirtualMachineScaleSetExtensionProfile{
ExtensionsTimeBudget: to.Ptr("PT1H20M"),
Extensions: []*armcompute.VirtualMachineScaleSetExtension{
{
Name: to.Ptr("{extension-name}"),
Properties: &armcompute.VirtualMachineScaleSetExtensionProperties{
Type: to.Ptr("{extension-Type}"),
AutoUpgradeMinorVersion: to.Ptr(true),
EnableAutomaticUpgrade: to.Ptr(true),
ForceUpdateTag: to.Ptr("aaaaaaaaa"),
ProtectedSettings: map[string]interface{}{},
ProvisionAfterExtensions: []*string{
to.Ptr("aa")},
Publisher: to.Ptr("{extension-Publisher}"),
Settings: map[string]interface{}{},
SuppressFailures: to.Ptr(true),
TypeHandlerVersion: to.Ptr("{handler-version}"),
},
}},
},
LicenseType: to.Ptr("aaaaaaaaaaaa"),
NetworkProfile: &armcompute.VirtualMachineScaleSetUpdateNetworkProfile{
HealthProbe: &armcompute.APIEntityReference{
ID: to.Ptr("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/disk123"),
},
NetworkAPIVersion: to.Ptr(armcompute.NetworkAPIVersionTwoThousandTwenty1101),
NetworkInterfaceConfigurations: []*armcompute.VirtualMachineScaleSetUpdateNetworkConfiguration{
{
ID: to.Ptr("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
Name: to.Ptr("aaaaaaaa"),
Properties: &armcompute.VirtualMachineScaleSetUpdateNetworkConfigurationProperties{
DeleteOption: to.Ptr(armcompute.DeleteOptionsDelete),
DNSSettings: &armcompute.VirtualMachineScaleSetNetworkConfigurationDNSSettings{
DNSServers: []*string{},
},
EnableAcceleratedNetworking: to.Ptr(true),
EnableFpga: to.Ptr(true),
EnableIPForwarding: to.Ptr(true),
IPConfigurations: []*armcompute.VirtualMachineScaleSetUpdateIPConfiguration{
{
ID: to.Ptr("aaaaaaaaaaaaaaaa"),
Name: to.Ptr("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
Properties: &armcompute.VirtualMachineScaleSetUpdateIPConfigurationProperties{
ApplicationGatewayBackendAddressPools: []*armcompute.SubResource{
{
ID: to.Ptr("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"),
}},
ApplicationSecurityGroups: []*armcompute.SubResource{
{
ID: to.Ptr("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"),
}},
LoadBalancerBackendAddressPools: []*armcompute.SubResource{
{
ID: to.Ptr("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"),
}},
LoadBalancerInboundNatPools: []*armcompute.SubResource{
{
ID: to.Ptr("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"),
}},
Primary: to.Ptr(true),
PrivateIPAddressVersion: to.Ptr(armcompute.IPVersionIPv4),
PublicIPAddressConfiguration: &armcompute.VirtualMachineScaleSetUpdatePublicIPAddressConfiguration{
Name: to.Ptr("a"),
Properties: &armcompute.VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties{
DeleteOption: to.Ptr(armcompute.DeleteOptionsDelete),
DNSSettings: &armcompute.VirtualMachineScaleSetPublicIPAddressConfigurationDNSSettings{
DomainNameLabel: to.Ptr("aaaaaaaaaaaaaaaaaa"),
},
IdleTimeoutInMinutes: to.Ptr[int32](3),
},
},
Subnet: &armcompute.APIEntityReference{
ID: to.Ptr("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/disk123"),
},
},
}},
NetworkSecurityGroup: &armcompute.SubResource{
ID: to.Ptr("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"),
},
Primary: to.Ptr(true),
},
}},
},
OSProfile: &armcompute.VirtualMachineScaleSetUpdateOSProfile{
CustomData: to.Ptr("aaaaaaaaaaaaaaaaaaaaaaaaaa"),
LinuxConfiguration: &armcompute.LinuxConfiguration{
DisablePasswordAuthentication: to.Ptr(true),
PatchSettings: &armcompute.LinuxPatchSettings{
AssessmentMode: to.Ptr(armcompute.LinuxPatchAssessmentModeImageDefault),
PatchMode: to.Ptr(armcompute.LinuxVMGuestPatchModeImageDefault),
},
ProvisionVMAgent: to.Ptr(true),
SSH: &armcompute.SSHConfiguration{
PublicKeys: []*armcompute.SSHPublicKey{
{
Path: to.Ptr("/home/{your-username}/.ssh/authorized_keys"),
KeyData: to.Ptr("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1"),
}},
},
},
Secrets: []*armcompute.VaultSecretGroup{
{
SourceVault: &armcompute.SubResource{
ID: to.Ptr("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
},
VaultCertificates: []*armcompute.VaultCertificate{
{
CertificateStore: to.Ptr("aaaaaaaaaaaaaaaaaaaaaaaaa"),
CertificateURL: to.Ptr("aaaaaaa"),
}},
}},
WindowsConfiguration: &armcompute.WindowsConfiguration{
AdditionalUnattendContent: []*armcompute.AdditionalUnattendContent{
{
ComponentName: to.Ptr("Microsoft-Windows-Shell-Setup"),
Content: to.Ptr("aaaaaaaaaaaaaaaaaaaa"),
PassName: to.Ptr("OobeSystem"),
SettingName: to.Ptr(armcompute.SettingNamesAutoLogon),
}},
EnableAutomaticUpdates: to.Ptr(true),
PatchSettings: &armcompute.PatchSettings{
AssessmentMode: to.Ptr(armcompute.WindowsPatchAssessmentModeImageDefault),
AutomaticByPlatformSettings: &armcompute.WindowsVMGuestPatchAutomaticByPlatformSettings{
RebootSetting: to.Ptr(armcompute.WindowsVMGuestPatchAutomaticByPlatformRebootSettingNever),
},
EnableHotpatching: to.Ptr(true),
PatchMode: to.Ptr(armcompute.WindowsVMGuestPatchModeAutomaticByPlatform),
},
ProvisionVMAgent: to.Ptr(true),
TimeZone: to.Ptr("aaaaaaaaaaaaaaaa"),
WinRM: &armcompute.WinRMConfiguration{
Listeners: []*armcompute.WinRMListener{
{
CertificateURL: to.Ptr("aaaaaaaaaaaaaaaaaaaaaa"),
Protocol: to.Ptr(armcompute.ProtocolTypesHTTP),
}},
},
},
},
ScheduledEventsProfile: &armcompute.ScheduledEventsProfile{
TerminateNotificationProfile: &armcompute.TerminateNotificationProfile{
Enable: to.Ptr(true),
NotBeforeTimeout: to.Ptr("PT10M"),
},
},
SecurityProfile: &armcompute.SecurityProfile{
EncryptionAtHost: to.Ptr(true),
SecurityType: to.Ptr(armcompute.SecurityTypesTrustedLaunch),
UefiSettings: &armcompute.UefiSettings{
SecureBootEnabled: to.Ptr(true),
VTpmEnabled: to.Ptr(true),
},
},
StorageProfile: &armcompute.VirtualMachineScaleSetUpdateStorageProfile{
DataDisks: []*armcompute.VirtualMachineScaleSetDataDisk{
{
Name: to.Ptr("aaaaaaaaaaaaaaaaaaaaaaaaaa"),
Caching: to.Ptr(armcompute.CachingTypesNone),
CreateOption: to.Ptr(armcompute.DiskCreateOptionTypesEmpty),
DiskIOPSReadWrite: to.Ptr[int64](28),
DiskMBpsReadWrite: to.Ptr[int64](15),
DiskSizeGB: to.Ptr[int32](1023),
Lun: to.Ptr[int32](26),
ManagedDisk: &armcompute.VirtualMachineScaleSetManagedDiskParameters{
DiskEncryptionSet: &armcompute.DiskEncryptionSetParameters{
ID: to.Ptr("aaaaaaaaaaaa"),
},
StorageAccountType: to.Ptr(armcompute.StorageAccountTypesStandardLRS),
},
WriteAcceleratorEnabled: to.Ptr(true),
}},
ImageReference: &armcompute.ImageReference{
ID: to.Ptr("aaaaaaaaaaaaaaaaaaa"),
Offer: to.Ptr("WindowsServer"),
Publisher: to.Ptr("MicrosoftWindowsServer"),
SharedGalleryImageID: to.Ptr("aaaaaa"),
SKU: to.Ptr("2016-Datacenter"),
Version: to.Ptr("latest"),
},
OSDisk: &armcompute.VirtualMachineScaleSetUpdateOSDisk{
Caching: to.Ptr(armcompute.CachingTypesReadWrite),
DiskSizeGB: to.Ptr[int32](6),
Image: &armcompute.VirtualHardDisk{
URI: to.Ptr("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd"),
},
ManagedDisk: &armcompute.VirtualMachineScaleSetManagedDiskParameters{
DiskEncryptionSet: &armcompute.DiskEncryptionSetParameters{
ID: to.Ptr("aaaaaaaaaaaa"),
},
StorageAccountType: to.Ptr(armcompute.StorageAccountTypesStandardLRS),
},
VhdContainers: []*string{
to.Ptr("aa")},
WriteAcceleratorEnabled: to.Ptr(true),
},
},
UserData: to.Ptr("aaaaaaaaaaaaa"),
},
},
SKU: &armcompute.SKU{
Name: to.Ptr("DSv3-Type1"),
Capacity: to.Ptr[int64](7),
Tier: to.Ptr("aaa"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
res, err := poller.PollUntilDone(ctx, nil)
if err != nil {
log.Fatalf("failed to pull the result: %v", err)
}
// TODO: use response item
_ = res
}