-
Notifications
You must be signed in to change notification settings - Fork 11
/
ClusterPutOperation_example_max.go
394 lines (390 loc) · 18.5 KB
/
ClusterPutOperation_example_max.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
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
package armservicefabric_test
import (
"context"
"log"
"time"
"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/servicefabric/armservicefabric"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/stable/2021-06-01/examples/ClusterPutOperation_example_max.json
func ExampleClustersClient_BeginCreateOrUpdate_putAClusterWithMaximumParameters() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armservicefabric.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
poller, err := clientFactory.NewClustersClient().BeginCreateOrUpdate(ctx, "resRg", "myCluster", armservicefabric.Cluster{
Location: to.Ptr("eastus"),
Tags: map[string]*string{},
Properties: &armservicefabric.ClusterProperties{
AddOnFeatures: []*armservicefabric.AddOnFeatures{
to.Ptr(armservicefabric.AddOnFeaturesRepairManager),
to.Ptr(armservicefabric.AddOnFeaturesDNSService),
to.Ptr(armservicefabric.AddOnFeaturesBackupRestoreService),
to.Ptr(armservicefabric.AddOnFeaturesResourceMonitorService)},
ApplicationTypeVersionsCleanupPolicy: &armservicefabric.ApplicationTypeVersionsCleanupPolicy{
MaxUnusedVersionsToKeep: to.Ptr[int64](2),
},
AzureActiveDirectory: &armservicefabric.AzureActiveDirectory{
ClientApplication: to.Ptr("d151ad89-4bce-4ae8-b3d1-1dc79679fa75"),
ClusterApplication: to.Ptr("5886372e-7bf4-4878-a497-8098aba608ae"),
TenantID: to.Ptr("6abcc6a0-8666-43f1-87b8-172cf86a9f9c"),
},
CertificateCommonNames: &armservicefabric.ServerCertificateCommonNames{
CommonNames: []*armservicefabric.ServerCertificateCommonName{
{
CertificateCommonName: to.Ptr("abc.com"),
CertificateIssuerThumbprint: to.Ptr("12599211F8F14C90AFA9532AD79A6F2CA1C00622"),
}},
X509StoreName: to.Ptr(armservicefabric.StoreNameMy),
},
ClientCertificateCommonNames: []*armservicefabric.ClientCertificateCommonName{
{
CertificateCommonName: to.Ptr("abc.com"),
CertificateIssuerThumbprint: to.Ptr("5F3660C715EBBDA31DB1FFDCF508302348DE8E7A"),
IsAdmin: to.Ptr(true),
}},
ClientCertificateThumbprints: []*armservicefabric.ClientCertificateThumbprint{
{
CertificateThumbprint: to.Ptr("5F3660C715EBBDA31DB1FFDCF508302348DE8E7A"),
IsAdmin: to.Ptr(true),
}},
ClusterCodeVersion: to.Ptr("7.0.470.9590"),
DiagnosticsStorageAccountConfig: &armservicefabric.DiagnosticsStorageAccountConfig{
BlobEndpoint: to.Ptr("https://diag.blob.core.windows.net/"),
ProtectedAccountKeyName: to.Ptr("StorageAccountKey1"),
QueueEndpoint: to.Ptr("https://diag.queue.core.windows.net/"),
StorageAccountName: to.Ptr("diag"),
TableEndpoint: to.Ptr("https://diag.table.core.windows.net/"),
},
EventStoreServiceEnabled: to.Ptr(true),
FabricSettings: []*armservicefabric.SettingsSectionDescription{
{
Name: to.Ptr("UpgradeService"),
Parameters: []*armservicefabric.SettingsParameterDescription{
{
Name: to.Ptr("AppPollIntervalInSeconds"),
Value: to.Ptr("60"),
}},
}},
InfrastructureServiceManager: to.Ptr(true),
ManagementEndpoint: to.Ptr("https://myCluster.eastus.cloudapp.azure.com:19080"),
NodeTypes: []*armservicefabric.NodeTypeDescription{
{
Name: to.Ptr("nt1vm"),
ApplicationPorts: &armservicefabric.EndpointRangeDescription{
EndPort: to.Ptr[int32](30000),
StartPort: to.Ptr[int32](20000),
},
ClientConnectionEndpointPort: to.Ptr[int32](19000),
DurabilityLevel: to.Ptr(armservicefabric.DurabilityLevelSilver),
EphemeralPorts: &armservicefabric.EndpointRangeDescription{
EndPort: to.Ptr[int32](64000),
StartPort: to.Ptr[int32](49000),
},
HTTPGatewayEndpointPort: to.Ptr[int32](19007),
IsPrimary: to.Ptr(true),
IsStateless: to.Ptr(false),
MultipleAvailabilityZones: to.Ptr(true),
VMInstanceCount: to.Ptr[int32](5),
}},
Notifications: []*armservicefabric.Notification{
{
IsEnabled: to.Ptr(true),
NotificationCategory: to.Ptr(armservicefabric.NotificationCategoryWaveProgress),
NotificationLevel: to.Ptr(armservicefabric.NotificationLevelCritical),
NotificationTargets: []*armservicefabric.NotificationTarget{
{
NotificationChannel: to.Ptr(armservicefabric.NotificationChannelEmailUser),
Receivers: []*string{
to.Ptr("****@microsoft.com"),
to.Ptr("****@microsoft.com")},
},
{
NotificationChannel: to.Ptr(armservicefabric.NotificationChannelEmailSubscription),
Receivers: []*string{
to.Ptr("Owner"),
to.Ptr("AccountAdmin")},
}},
},
{
IsEnabled: to.Ptr(true),
NotificationCategory: to.Ptr(armservicefabric.NotificationCategoryWaveProgress),
NotificationLevel: to.Ptr(armservicefabric.NotificationLevelAll),
NotificationTargets: []*armservicefabric.NotificationTarget{
{
NotificationChannel: to.Ptr(armservicefabric.NotificationChannelEmailUser),
Receivers: []*string{
to.Ptr("****@microsoft.com"),
to.Ptr("****@microsoft.com")},
},
{
NotificationChannel: to.Ptr(armservicefabric.NotificationChannelEmailSubscription),
Receivers: []*string{
to.Ptr("Owner"),
to.Ptr("AccountAdmin")},
}},
}},
ReliabilityLevel: to.Ptr(armservicefabric.ReliabilityLevelPlatinum),
ReverseProxyCertificateCommonNames: &armservicefabric.ServerCertificateCommonNames{
CommonNames: []*armservicefabric.ServerCertificateCommonName{
{
CertificateCommonName: to.Ptr("abc.com"),
CertificateIssuerThumbprint: to.Ptr("12599211F8F14C90AFA9532AD79A6F2CA1C00622"),
}},
X509StoreName: to.Ptr(armservicefabric.StoreNameMy),
},
SfZonalUpgradeMode: to.Ptr(armservicefabric.SfZonalUpgradeModeHierarchical),
UpgradeDescription: &armservicefabric.ClusterUpgradePolicy{
DeltaHealthPolicy: &armservicefabric.ClusterUpgradeDeltaHealthPolicy{
ApplicationDeltaHealthPolicies: map[string]*armservicefabric.ApplicationDeltaHealthPolicy{
"fabric:/myApp1": {
DefaultServiceTypeDeltaHealthPolicy: &armservicefabric.ServiceTypeDeltaHealthPolicy{
MaxPercentDeltaUnhealthyServices: to.Ptr[int32](0),
},
ServiceTypeDeltaHealthPolicies: map[string]*armservicefabric.ServiceTypeDeltaHealthPolicy{
"myServiceType1": {
MaxPercentDeltaUnhealthyServices: to.Ptr[int32](0),
},
},
},
},
MaxPercentDeltaUnhealthyApplications: to.Ptr[int32](0),
MaxPercentDeltaUnhealthyNodes: to.Ptr[int32](0),
MaxPercentUpgradeDomainDeltaUnhealthyNodes: to.Ptr[int32](0),
},
ForceRestart: to.Ptr(false),
HealthCheckRetryTimeout: to.Ptr("00:05:00"),
HealthCheckStableDuration: to.Ptr("00:00:30"),
HealthCheckWaitDuration: to.Ptr("00:00:30"),
HealthPolicy: &armservicefabric.ClusterHealthPolicy{
ApplicationHealthPolicies: map[string]*armservicefabric.ApplicationHealthPolicy{
"fabric:/myApp1": {
DefaultServiceTypeHealthPolicy: &armservicefabric.ServiceTypeHealthPolicy{
MaxPercentUnhealthyServices: to.Ptr[int32](0),
},
ServiceTypeHealthPolicies: map[string]*armservicefabric.ServiceTypeHealthPolicy{
"myServiceType1": {
MaxPercentUnhealthyServices: to.Ptr[int32](100),
},
},
},
},
MaxPercentUnhealthyApplications: to.Ptr[int32](0),
MaxPercentUnhealthyNodes: to.Ptr[int32](0),
},
UpgradeDomainTimeout: to.Ptr("00:15:00"),
UpgradeReplicaSetCheckTimeout: to.Ptr("00:10:00"),
UpgradeTimeout: to.Ptr("01:00:00"),
},
UpgradeMode: to.Ptr(armservicefabric.UpgradeModeManual),
UpgradePauseEndTimestampUTC: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-06-25T22:00:00Z"); return t }()),
UpgradePauseStartTimestampUTC: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-06-21T22:00:00Z"); return t }()),
UpgradeWave: to.Ptr(armservicefabric.ClusterUpgradeCadenceWave1),
VMImage: to.Ptr("Windows"),
VmssZonalUpgradeMode: to.Ptr(armservicefabric.VmssZonalUpgradeModeParallel),
},
}, 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)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Cluster = armservicefabric.Cluster{
// Name: to.Ptr("myCluster"),
// Type: to.Ptr("Microsoft.ServiceFabric/clusters"),
// Etag: to.Ptr("W/\"636462502169240745\""),
// ID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.ServiceFabric/clusters/myCluster"),
// Location: to.Ptr("eastus"),
// Tags: map[string]*string{
// },
// Properties: &armservicefabric.ClusterProperties{
// AddOnFeatures: []*armservicefabric.AddOnFeatures{
// to.Ptr(armservicefabric.AddOnFeaturesRepairManager),
// to.Ptr(armservicefabric.AddOnFeaturesDNSService),
// to.Ptr(armservicefabric.AddOnFeaturesBackupRestoreService),
// to.Ptr(armservicefabric.AddOnFeaturesResourceMonitorService)},
// ApplicationTypeVersionsCleanupPolicy: &armservicefabric.ApplicationTypeVersionsCleanupPolicy{
// MaxUnusedVersionsToKeep: to.Ptr[int64](2),
// },
// AvailableClusterVersions: []*armservicefabric.ClusterVersionDetails{
// {
// CodeVersion: to.Ptr("7.0.470.9590"),
// Environment: to.Ptr(armservicefabric.ClusterEnvironmentWindows),
// SupportExpiryUTC: to.Ptr("2018-06-15T23:59:59.9999999"),
// }},
// AzureActiveDirectory: &armservicefabric.AzureActiveDirectory{
// ClientApplication: to.Ptr("d151ad89-4bce-4ae8-b3d1-1dc79679fa75"),
// ClusterApplication: to.Ptr("5886372e-7bf4-4878-a497-8098aba608ae"),
// TenantID: to.Ptr("6abcc6a0-8666-43f1-87b8-172cf86a9f9c"),
// },
// CertificateCommonNames: &armservicefabric.ServerCertificateCommonNames{
// CommonNames: []*armservicefabric.ServerCertificateCommonName{
// {
// CertificateCommonName: to.Ptr("abc.com"),
// CertificateIssuerThumbprint: to.Ptr("12599211F8F14C90AFA9532AD79A6F2CA1C00622"),
// }},
// X509StoreName: to.Ptr(armservicefabric.StoreNameMy),
// },
// ClientCertificateCommonNames: []*armservicefabric.ClientCertificateCommonName{
// {
// CertificateCommonName: to.Ptr("abc.com"),
// CertificateIssuerThumbprint: to.Ptr("5F3660C715EBBDA31DB1FFDCF508302348DE8E7A"),
// IsAdmin: to.Ptr(true),
// }},
// ClientCertificateThumbprints: []*armservicefabric.ClientCertificateThumbprint{
// {
// CertificateThumbprint: to.Ptr("5F3660C715EBBDA31DB1FFDCF508302348DE8E7A"),
// IsAdmin: to.Ptr(false),
// }},
// ClusterCodeVersion: to.Ptr("7.0.470.9590"),
// ClusterEndpoint: to.Ptr("https://eastus.servicefabric.azure.com"),
// ClusterID: to.Ptr("92584666-9889-4ae8-8d02-91902923d37f"),
// ClusterState: to.Ptr(armservicefabric.ClusterStateWaitingForNodes),
// DiagnosticsStorageAccountConfig: &armservicefabric.DiagnosticsStorageAccountConfig{
// BlobEndpoint: to.Ptr("https://diag.blob.core.windows.net/"),
// ProtectedAccountKeyName: to.Ptr("StorageAccountKey1"),
// QueueEndpoint: to.Ptr("https://diag.queue.core.windows.net/"),
// StorageAccountName: to.Ptr("diag"),
// TableEndpoint: to.Ptr("https://diag.table.core.windows.net/"),
// },
// EventStoreServiceEnabled: to.Ptr(true),
// FabricSettings: []*armservicefabric.SettingsSectionDescription{
// {
// Name: to.Ptr("UpgradeService"),
// Parameters: []*armservicefabric.SettingsParameterDescription{
// {
// Name: to.Ptr("AppPollIntervalInSeconds"),
// Value: to.Ptr("60"),
// }},
// }},
// InfrastructureServiceManager: to.Ptr(true),
// ManagementEndpoint: to.Ptr("https://myCluster.eastus.cloudapp.azure.com:19080"),
// NodeTypes: []*armservicefabric.NodeTypeDescription{
// {
// Name: to.Ptr("nt1vm"),
// ApplicationPorts: &armservicefabric.EndpointRangeDescription{
// EndPort: to.Ptr[int32](30000),
// StartPort: to.Ptr[int32](20000),
// },
// ClientConnectionEndpointPort: to.Ptr[int32](19000),
// DurabilityLevel: to.Ptr(armservicefabric.DurabilityLevelSilver),
// EphemeralPorts: &armservicefabric.EndpointRangeDescription{
// EndPort: to.Ptr[int32](64000),
// StartPort: to.Ptr[int32](49000),
// },
// HTTPGatewayEndpointPort: to.Ptr[int32](19007),
// IsPrimary: to.Ptr(true),
// IsStateless: to.Ptr(false),
// MultipleAvailabilityZones: to.Ptr(true),
// VMInstanceCount: to.Ptr[int32](5),
// }},
// Notifications: []*armservicefabric.Notification{
// {
// IsEnabled: to.Ptr(true),
// NotificationCategory: to.Ptr(armservicefabric.NotificationCategoryWaveProgress),
// NotificationLevel: to.Ptr(armservicefabric.NotificationLevelCritical),
// NotificationTargets: []*armservicefabric.NotificationTarget{
// {
// NotificationChannel: to.Ptr(armservicefabric.NotificationChannelEmailUser),
// Receivers: []*string{
// to.Ptr("****@microsoft.com"),
// to.Ptr("****@microsoft.com")},
// },
// {
// NotificationChannel: to.Ptr(armservicefabric.NotificationChannelEmailSubscription),
// Receivers: []*string{
// to.Ptr("Owner"),
// to.Ptr("AccountAdmin")},
// }},
// },
// {
// IsEnabled: to.Ptr(true),
// NotificationCategory: to.Ptr(armservicefabric.NotificationCategoryWaveProgress),
// NotificationLevel: to.Ptr(armservicefabric.NotificationLevelAll),
// NotificationTargets: []*armservicefabric.NotificationTarget{
// {
// NotificationChannel: to.Ptr(armservicefabric.NotificationChannelEmailUser),
// Receivers: []*string{
// to.Ptr("****@microsoft.com"),
// to.Ptr("****@microsoft.com")},
// },
// {
// NotificationChannel: to.Ptr(armservicefabric.NotificationChannelEmailSubscription),
// Receivers: []*string{
// to.Ptr("Owner"),
// to.Ptr("AccountAdmin")},
// }},
// }},
// ProvisioningState: to.Ptr(armservicefabric.ProvisioningStateSucceeded),
// ReliabilityLevel: to.Ptr(armservicefabric.ReliabilityLevelPlatinum),
// ReverseProxyCertificateCommonNames: &armservicefabric.ServerCertificateCommonNames{
// CommonNames: []*armservicefabric.ServerCertificateCommonName{
// {
// CertificateCommonName: to.Ptr("abc.com"),
// CertificateIssuerThumbprint: to.Ptr("12599211F8F14C90AFA9532AD79A6F2CA1C00622"),
// }},
// X509StoreName: to.Ptr(armservicefabric.StoreNameMy),
// },
// SfZonalUpgradeMode: to.Ptr(armservicefabric.SfZonalUpgradeModeHierarchical),
// UpgradeDescription: &armservicefabric.ClusterUpgradePolicy{
// DeltaHealthPolicy: &armservicefabric.ClusterUpgradeDeltaHealthPolicy{
// ApplicationDeltaHealthPolicies: map[string]*armservicefabric.ApplicationDeltaHealthPolicy{
// "fabric:/myApp1": &armservicefabric.ApplicationDeltaHealthPolicy{
// DefaultServiceTypeDeltaHealthPolicy: &armservicefabric.ServiceTypeDeltaHealthPolicy{
// MaxPercentDeltaUnhealthyServices: to.Ptr[int32](0),
// },
// ServiceTypeDeltaHealthPolicies: map[string]*armservicefabric.ServiceTypeDeltaHealthPolicy{
// "myServiceType1": &armservicefabric.ServiceTypeDeltaHealthPolicy{
// MaxPercentDeltaUnhealthyServices: to.Ptr[int32](0),
// },
// },
// },
// },
// MaxPercentDeltaUnhealthyApplications: to.Ptr[int32](0),
// MaxPercentDeltaUnhealthyNodes: to.Ptr[int32](0),
// MaxPercentUpgradeDomainDeltaUnhealthyNodes: to.Ptr[int32](0),
// },
// ForceRestart: to.Ptr(true),
// HealthCheckRetryTimeout: to.Ptr("00:05:00"),
// HealthCheckStableDuration: to.Ptr("00:00:30"),
// HealthCheckWaitDuration: to.Ptr("00:00:30"),
// HealthPolicy: &armservicefabric.ClusterHealthPolicy{
// ApplicationHealthPolicies: map[string]*armservicefabric.ApplicationHealthPolicy{
// "fabric:/myApp1": &armservicefabric.ApplicationHealthPolicy{
// DefaultServiceTypeHealthPolicy: &armservicefabric.ServiceTypeHealthPolicy{
// MaxPercentUnhealthyServices: to.Ptr[int32](0),
// },
// ServiceTypeHealthPolicies: map[string]*armservicefabric.ServiceTypeHealthPolicy{
// "myServiceType1": &armservicefabric.ServiceTypeHealthPolicy{
// MaxPercentUnhealthyServices: to.Ptr[int32](100),
// },
// },
// },
// },
// MaxPercentUnhealthyApplications: to.Ptr[int32](0),
// MaxPercentUnhealthyNodes: to.Ptr[int32](0),
// },
// UpgradeDomainTimeout: to.Ptr("00:15:00"),
// UpgradeReplicaSetCheckTimeout: to.Ptr("00:10:00"),
// UpgradeTimeout: to.Ptr("00:15:00"),
// },
// UpgradeMode: to.Ptr(armservicefabric.UpgradeModeManual),
// UpgradePauseEndTimestampUTC: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-06-25T22:00:00Z"); return t}()),
// UpgradePauseStartTimestampUTC: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-06-21T22:00:00Z"); return t}()),
// UpgradeWave: to.Ptr(armservicefabric.ClusterUpgradeCadenceWave1),
// VMImage: to.Ptr("Windows"),
// VmssZonalUpgradeMode: to.Ptr(armservicefabric.VmssZonalUpgradeModeParallel),
// },
// }
}